{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/actions.ts","webpack:///./src/store/getters.ts","webpack:///./src/store/mutations.ts","webpack:///./src/modules/@orgmap/store/actions.ts","webpack:///./src/modules/@orgmap/store/getters.ts","webpack:///./src/modules/@orgmap/store/mutations.ts","webpack:///./src/modules/@orgmap/store/index.ts","webpack:///./src/modules/mail/store/actions.ts","webpack:///./src/modules/mail/store/getters.ts","webpack:///./src/modules/mail/store/mutations.ts","webpack:///./src/modules/mail/store/index.ts","webpack:///./src/modules/calendar/components/menu.ts","webpack:///./src/modules/calendar/store/actions.ts","webpack:///./src/modules/calendar/store/getters.ts","webpack:///./src/modules/calendar/store/mutations.ts","webpack:///./src/modules/calendar/store/index.ts","webpack:///./src/modules/contact/store/actions.ts","webpack:///./src/modules/contact/store/getters.ts","webpack:///./src/modules/contact/store/mutations.ts","webpack:///./src/modules/contact/store/index.ts","webpack:///./src/modules/workflow/store/actions.ts","webpack:///./src/modules/workflow/store/getters.ts","webpack:///./src/modules/workflow/store/mutations.ts","webpack:///./src/modules/workflow/store/index.ts","webpack:///./src/modules/board/store/actions.ts","webpack:///./src/modules/board/store/getters.ts","webpack:///./src/modules/board/store/mutations.ts","webpack:///./src/modules/board/store/index.ts","webpack:///./src/modules/@gnb/store/actions.ts","webpack:///./src/modules/@gnb/store/getters.ts","webpack:///./src/modules/@gnb/store/mutations.ts","webpack:///./src/modules/@gnb/store/index.ts","webpack:///./src/store/logging.ts","webpack:///./src/store/index.ts","webpack:///./src/modules/@appbase/templates/BaseLayout/BaseLayout.vue?f22e","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalContainer.vue?a9bf","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalContainer.ts","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalContainer.ts?1bcc","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalContainer.vue","webpack:///./src/modules/@appbase/components/organism/Modals/ModalContainer2.vue?9bd7","webpack:///./src/modules/@appbase/components/organism/Modals/EmailAttachmentModal.vue?2a1f","webpack:///./src/modules/@appbase/components/atom/ButtonGroup.vue?e83b","webpack:///./src/modules/@appbase/components/atom/ButtonGroup.ts","webpack:///./src/modules/@appbase/components/atom/ButtonGroup.ts?020f","webpack:///./src/modules/@appbase/components/atom/ButtonGroup.vue","webpack:///./src/modules/@appbase/components/atom/ToolbarButton.vue?3388","webpack:///./src/modules/@appbase/components/atom/ToolbarButton.ts","webpack:///./src/modules/@appbase/components/atom/ToolbarButton.ts?95bd","webpack:///./src/modules/@appbase/components/atom/ToolbarButton.vue","webpack:///./src/modules/@appbase/components/atom/ModalMask.vue?5965","webpack:///./src/modules/@appbase/components/atom/ModalMask.ts","webpack:///./src/modules/@appbase/components/atom/ModalMask.ts?5e47","webpack:///./src/modules/@appbase/components/atom/ModalMask.vue","webpack:///./src/modules/@appbase/components/atom/Modal.vue?f701","webpack:///./src/modules/@appbase/components/atom/Modal.ts","webpack:///./src/modules/@appbase/components/atom/Modal.ts?51f1","webpack:///./src/modules/@appbase/components/atom/Modal.vue","webpack:///./src/modules/@appbase/components/atom/ModalBody.vue?c908","webpack:///./src/modules/@appbase/components/atom/ModalBody.ts","webpack:///./src/modules/@appbase/components/atom/ModalBody.ts?e902","webpack:///./src/modules/@appbase/components/atom/ModalBody.vue","webpack:///./src/modules/@appbase/components/atom/ModalFooter.vue?4b40","webpack:///./src/modules/@appbase/components/atom/ModalFooter.ts","webpack:///./src/modules/@appbase/components/atom/ModalFooter.ts?6093","webpack:///./src/modules/@appbase/components/atom/ModalFooter.vue","webpack:///./src/modules/@appbase/components/atom/ModalHeader.vue?2a10","webpack:///./src/modules/@appbase/components/atom/ModalHeader.ts","webpack:///./src/modules/@appbase/components/atom/ModalHeader.ts?ddf9","webpack:///./src/modules/@appbase/components/atom/ModalHeader.vue","webpack:///./src/modules/@appbase/components/atom/Tooltip.vue?1435","webpack:///./src/modules/@appbase/components/atom/Tooltip.ts","webpack:///./src/modules/@appbase/components/atom/Tooltip.ts?c01a","webpack:///./src/modules/@appbase/components/atom/Tooltip.vue","webpack:///./src/modules/@appbase/components/atom/ProgressRing.vue?042a","webpack:///./src/modules/@appbase/components/atom/ProgressRing.ts","webpack:///./src/modules/@appbase/components/atom/ProgressRing.ts?0970","webpack:///./src/modules/@appbase/components/atom/ProgressRing.vue","webpack:///./src/modules/@appbase/components/atom/DropDown.vue?c79d","webpack:///./src/modules/@appbase/components/atom/DropDown.ts","webpack:///./src/modules/@appbase/components/atom/DropDown.ts?69b6","webpack:///./src/modules/@appbase/components/atom/DropDown.vue","webpack:///./src/modules/@appbase/components/atom/DropDownButton.vue?e7e9","webpack:///./src/modules/@appbase/components/atom/DropDownButton.ts","webpack:///./src/modules/@appbase/components/atom/DropDownButton.ts?e159","webpack:///./src/modules/@appbase/components/atom/DropDownButton.vue","webpack:///./src/modules/@appbase/components/atom/PageNavigationBar.vue?d544","webpack:///./src/modules/@appbase/components/atom/Paginate.vue?5046","webpack:///src/modules/@appbase/components/atom/Paginate.vue","webpack:///./src/modules/@appbase/components/atom/Paginate.vue?439a","webpack:///./src/modules/@appbase/components/atom/Paginate.vue","webpack:///./src/modules/@appbase/components/atom/PageNavigationBar.ts","webpack:///./src/modules/@appbase/components/atom/PageNavigationBar.ts?ce62","webpack:///./src/modules/@appbase/components/atom/PageNavigationBar.vue","webpack:///./src/modules/@appbase/components/atom/ComboBox.vue?203b","webpack:///./src/modules/@appbase/components/atom/ComboBox.ts","webpack:///./src/modules/@appbase/components/atom/ComboBox.ts?e746","webpack:///./src/modules/@appbase/components/atom/ComboBox.vue","webpack:///./src/modules/@appbase/components/atom/TreeListItem.vue?d6ae","webpack:///./src/modules/@appbase/components/atom/TreeListItem.ts","webpack:///./src/modules/@appbase/components/atom/TreeListItem.ts?536c","webpack:///./src/modules/@appbase/components/atom/TreeListItem.vue","webpack:///./src/modules/@appbase/components/molecule/PopupModal.vue?1598","webpack:///./src/modules/@appbase/components/molecule/PopupModal.ts","webpack:///./src/modules/@appbase/components/molecule/PopupModal.ts?e611","webpack:///./src/modules/@appbase/components/molecule/PopupModal.vue","webpack:///./src/modules/@appbase/components/molecule/TreeList.vue?6ce8","webpack:///./src/modules/@appbase/components/molecule/TreeList.ts","webpack:///./src/modules/@appbase/components/molecule/TreeList.ts?15ac","webpack:///./src/modules/@appbase/components/molecule/TreeList.vue","webpack:///./src/modules/@appbase/components/organism/GraphList.vue?b31d","webpack:///./src/modules/@appbase/components/organism/GraphList.ts","webpack:///./src/modules/@appbase/components/organism/GraphList.ts?319e","webpack:///./src/modules/@appbase/components/organism/GraphList.vue","webpack:///./src/modules/@appbase/components/organism/Modals/EmailAttachmentModal.ts","webpack:///./src/modules/@appbase/components/organism/Modals/EmailAttachmentModal.ts?2f52","webpack:///./src/modules/@appbase/components/organism/Modals/EmailAttachmentModal.vue","webpack:///./src/modules/@appbase/components/organism/Modals/ModalContainer2.ts","webpack:///./src/modules/@appbase/components/organism/Modals/ModalContainer2.ts?a42d","webpack:///./src/modules/@appbase/components/organism/Modals/ModalContainer2.vue","webpack:///./src/modules/@appbase/templates/BaseLayout/BaseLayout.ts","webpack:///./src/modules/@appbase/templates/BaseLayout/BaseLayout.ts?c5f8","webpack:///./src/modules/@appbase/templates/BaseLayout/BaseLayout.vue","webpack:///./src/modules/@appbase/templates/PopupLayout/PopupLayout.vue?ad1d","webpack:///./src/modules/@appbase/templates/PopupLayout/PopupLayout.ts","webpack:///./src/modules/@appbase/templates/PopupLayout/PopupLayout.ts?ac48","webpack:///./src/modules/@appbase/templates/PopupLayout/PopupLayout.vue","webpack:///./src/modules/@appbase/templates/PageLayout/PageLayout.vue?434c","webpack:///./src/modules/@appbase/containers/ModalContainer/IframeModal.vue?42bc","webpack:///./src/modules/@appbase/containers/ModalContainer/IframeModal.ts","webpack:///./src/modules/@appbase/containers/ModalContainer/IframeModal.ts?cbb5","webpack:///./src/modules/@appbase/containers/ModalContainer/IframeModal.vue","webpack:///./src/modules/@appbase/templates/PageLayout/PageLayout.ts","webpack:///./src/modules/@appbase/templates/PageLayout/PageLayout.ts?3648","webpack:///./src/modules/@appbase/templates/PageLayout/PageLayout.vue","webpack:///./src/modules/@appbase/templates/ModalLayout/ModalLayout.vue?40d0","webpack:///./src/modules/@appbase/templates/ModalLayout/ModalLayout.vue?732a","webpack:///./src/modules/@appbase/templates/ModalLayout/ModalLayout.vue?f660","webpack:///./src/modules/@appbase/templates/ModalLayout/ModalLayout.vue","webpack:///./src/modules/@appbase/templates/CardTemplate/CardTemplate.vue?7f88","webpack:///./src/modules/@appbase/templates/CardTemplate/CardTemplate.ts","webpack:///./src/modules/@appbase/templates/CardTemplate/CardTemplate.ts?597e","webpack:///./src/modules/@appbase/templates/CardTemplate/CardTemplate.vue","webpack:///./src/modules/@appbase/templates/SubContentTemplate.vue?960c","webpack:///src/modules/@appbase/templates/SubContentTemplate.vue","webpack:///./src/modules/@appbase/templates/SubContentTemplate.vue?e0fe","webpack:///./src/modules/@appbase/templates/SubContentTemplate.vue","webpack:///./src/modules/@appbase/templates/MasterTemplate.vue?c84a","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FlowFileUploader.vue?e4da","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileList/FileList.vue?b5da","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileListItem/FileListItem.vue?ce11","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileListItem/FileListItem.ts","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileListItem/FileListItem.ts?ff9f","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileListItem/FileListItem.vue","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileList/FileList.ts","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileList/FileList.ts?7f98","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileList/FileList.vue","webpack:///./src/modules/@appbase/util/office-helper.ts","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/flow-file-handler.ts","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FlowFileUploader.ts","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FlowFileUploader.ts?4b84","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FlowFileUploader.vue","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenu.vue?dfd7","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenuItem.vue?b4d8","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenuItem.ts","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenuItem.ts?4adb","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenuItem.vue","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenu.ts","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenu.ts?f8cd","webpack:///./src/modules/@appbase/components/common/LeftMenu/LeftMenu.vue","webpack:///src/modules/@appbase/templates/MasterTemplate.vue","webpack:///./src/modules/@appbase/templates/MasterTemplate.vue?59ce","webpack:///./src/modules/@appbase/templates/MasterTemplate.vue","webpack:///./src/modules/@appbase/templates/FullMasterTemplate.vue?5e5e","webpack:///src/modules/@appbase/templates/FullMasterTemplate.vue","webpack:///./src/modules/@appbase/templates/FullMasterTemplate.vue?364f","webpack:///./src/modules/@appbase/templates/FullMasterTemplate.vue","webpack:///./src/components/common/ProgressRing.vue?2f2c","webpack:///./src/modules/@account/api/auth.ts","webpack:///./src/modules/@account/api/account.ts","webpack:///./src/modules/@account/api/access-control.ts","webpack:///./src/modules/@account/api/index.ts","webpack:///./src/modules/@appbase/components/organism/GraphList.vue?2978","webpack:///./src/modules/calendar/types/enums.ts","webpack:///./src/util/date-helper.ts","webpack:///./src/modules/calendar/api/ews_resource.ts","webpack:///./src/modules/calendar/api/ews_folder.ts","webpack:///./src/modules/calendar/api/db_main.ts","webpack:///./src/modules/calendar/api/db_resource.ts","webpack:///./src/modules/calendar/api/db_folder.ts","webpack:///./src/modules/calendar/api/db_calendar.ts","webpack:///./src/modules/calendar/api/db_resourceReserve.ts","webpack:///./src/modules/calendar/api/index.ts","webpack:///./src/modules/calendar/components/Write/WriteForm.vue?08f4","webpack:///./src/modules/calendar/components/Write/WriteForm.ts","webpack:///./src/modules/calendar/components/Write/WriteForm.ts?7031","webpack:///./src/modules/calendar/components/Write/WriteForm.vue","webpack:///./src/modules/@account/store/types.ts","webpack:///./src/modules/@appbase/components/common/VueDraggable/util/helper.js","webpack:///./src/components/common/RecipientFields.vue?8b71","webpack:///./src/modules/@orgmap/util/storage-helper.ts","webpack:///./src/components/common/DisplayName.vue?381a","webpack:///./src/components/common/DisplayName.ts","webpack:///./src/components/common/DisplayName.ts?c1e1","webpack:///./src/components/common/DisplayName.vue","webpack:///./src/components/common/Modal/OrgchartModal.vue?53f2","webpack:///./src/components/common/Modal/OrgchartView.vue?c867","webpack:///./src/components/common/Modal/OrgchartToolbar.vue?95d5","webpack:///./src/components/common/Modal/OrgchartToolbar.ts","webpack:///./src/components/common/Modal/OrgchartToolbar.ts?c189","webpack:///./src/components/common/Modal/OrgchartToolbar.vue","webpack:///./src/components/common/Modal/OrgchartView.ts","webpack:///./src/components/common/Modal/OrgchartView.ts?542f","webpack:///./src/components/common/Modal/OrgchartView.vue","webpack:///./src/components/common/Modal/OrgchartModal.ts","webpack:///./src/components/common/Modal/OrgchartModal.ts?e6b7","webpack:///./src/components/common/Modal/OrgchartModal.vue","webpack:///./src/components/common/RecipientFields.ts","webpack:///./src/components/common/RecipientFields.ts?6d8b","webpack:///./src/components/common/RecipientFields.vue","webpack:///./src/modules/@appbase/util/config.ts","webpack:///./src/modules/@orgmap/api/hr.ts","webpack:///./src/modules/@orgmap/api/favorite.ts","webpack:///./src/modules/@orgmap/api/personal.ts","webpack:///./src/modules/@orgmap/api/local.ts","webpack:///./src/modules/@orgmap/api/public.ts","webpack:///./src/modules/@orgmap/api/group.ts","webpack:///./src/modules/@orgmap/api/account.ts","webpack:///./src/modules/@orgmap/api/auth.ts","webpack:///./src/modules/@orgmap/api/index.ts","webpack:///./src/modules/@orgmap/components/WishList/WishList.vue?78d9","webpack:///./src/modules/@orgmap/components/WishList/WishListItem.vue?4c5b","webpack:///./src/modules/@orgmap/components/WishList/WishListItem.ts","webpack:///./src/modules/@orgmap/components/WishList/WishListItem.ts?7b92","webpack:///./src/modules/@orgmap/components/WishList/WishListItem.vue","webpack:///./src/modules/@orgmap/components/WishList/WishList.ts","webpack:///./src/modules/@orgmap/components/WishList/WishList.ts?7e9e","webpack:///./src/modules/@orgmap/components/WishList/WishList.vue","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTree.vue?f158","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTreeItem.vue?c113","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTreeItem.ts","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTreeItem.ts?d950","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTreeItem.vue","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTree.ts","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTree.ts?3d0d","webpack:///./src/modules/@orgmap/components/DeptTree/DeptTree.vue","webpack:///./src/modules/@orgmap/components/MemberList/MemberList.vue?8855","webpack:///./src/modules/@orgmap/components/MemberList/MemberListItem.vue?fefb","webpack:///./src/modules/@orgmap/components/MemberList/MemberListItem.ts","webpack:///./src/modules/@orgmap/components/MemberList/MemberListItem.ts?204b","webpack:///./src/modules/@orgmap/components/MemberList/MemberListItem.vue","webpack:///./src/modules/@orgmap/components/MemberList/MemberList.ts","webpack:///./src/modules/@orgmap/components/MemberList/MemberList.ts?858a","webpack:///./src/modules/@orgmap/components/MemberList/MemberList.vue","webpack:///./src/modules/@orgmap/components/MemberList/DepartmentInfo.vue?08e9","webpack:///./src/modules/@orgmap/components/MemberList/DepartmentInfo.ts","webpack:///./src/modules/@orgmap/components/MemberList/DepartmentInfo.ts?918a","webpack:///./src/modules/@orgmap/components/MemberList/DepartmentInfo.vue","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentItem.vue?7bb7","webpack:///./src/modules/@orgmap/components/Mobile/UserList.vue?7fb9","webpack:///./src/modules/@orgmap/components/Mobile/User.vue?7092","webpack:///./src/modules/@orgmap/components/Mobile/User.ts","webpack:///./src/modules/@orgmap/components/Mobile/User.ts?6f7b","webpack:///./src/modules/@orgmap/components/Mobile/User.vue","webpack:///./src/modules/@orgmap/components/Mobile/UserList.ts","webpack:///./src/modules/@orgmap/components/Mobile/UserList.ts?1564","webpack:///./src/modules/@orgmap/components/Mobile/UserList.vue","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentItem.ts","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentItem.ts?ce95","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentItem.vue","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentList.vue?3f0a","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentList.ts","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentList.ts?c87a","webpack:///./src/modules/@orgmap/components/Mobile/DepartmentList.vue","webpack:///./src/modules/@orgmap/components/DetailCard.vue?01a1","webpack:///./src/modules/@orgmap/components/DetailCard.ts","webpack:///./src/modules/@orgmap/components/DetailCard.ts?4a7d","webpack:///./src/modules/@orgmap/components/DetailCard.vue","webpack:///./src/modules/@gnb/components/Preference/PreferenceModal.vue?af02","webpack:///./src/modules/@gnb/components/NavigationTab.vue?fd02","webpack:///./src/modules/@gnb/components/NavigationTab.ts","webpack:///./src/modules/@gnb/components/NavigationTab.ts?faaa","webpack:///./src/modules/@gnb/components/NavigationTab.vue","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Language.vue?536f","webpack:///./src/modules/@gnb/components/Common/ModalHeader.vue?dd20","webpack:///./src/modules/@gnb/components/Common/ModalHeader.ts","webpack:///./src/modules/@gnb/components/Common/ModalHeader.ts?c3f0","webpack:///./src/modules/@gnb/components/Common/ModalHeader.vue","webpack:///./src/modules/@gnb/components/Common/ModalContent.vue?1858","webpack:///./src/modules/@gnb/components/Common/ModalContent.ts","webpack:///./src/modules/@gnb/components/Common/ModalContent.ts?7e94","webpack:///./src/modules/@gnb/components/Common/ModalContent.vue","webpack:///./src/modules/@gnb/components/Common/ModalFooter.vue?b63c","webpack:///./src/modules/@gnb/components/Common/ModalFooter.ts","webpack:///./src/modules/@gnb/components/Common/ModalFooter.ts?9a0c","webpack:///./src/modules/@gnb/components/Common/ModalFooter.vue","webpack:///./src/modules/@gnb/components/Common/ContentItem.vue?fc48","webpack:///./src/modules/@gnb/components/Common/ContentItem.ts","webpack:///./src/modules/@gnb/components/Common/ContentItem.ts?ed8a","webpack:///./src/modules/@gnb/components/Common/ContentItem.vue","webpack:///./src/modules/@gnb/components/Common/Dropdown.vue?7e05","webpack:///./src/modules/@gnb/components/Common/Dropdown.ts","webpack:///./src/modules/@gnb/components/Common/Dropdown.ts?c9ca","webpack:///./src/modules/@gnb/components/Common/Dropdown.vue","webpack:///./src/modules/@gnb/components/Common/Checkbox.vue?93b3","webpack:///./src/modules/@gnb/components/Common/Checkbox.ts","webpack:///./src/modules/@gnb/components/Common/Checkbox.ts?be75","webpack:///./src/modules/@gnb/components/Common/Checkbox.vue","webpack:///./src/modules/@gnb/templates/PreferenceContentTemplate.vue?67fb","webpack:///./src/modules/@gnb/templates/PreferenceContentTemplate.ts","webpack:///./src/modules/@gnb/templates/PreferenceContentTemplate.ts?2868","webpack:///./src/modules/@gnb/templates/PreferenceContentTemplate.vue","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Language.ts","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Language.ts?3937","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Language.vue","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Time.vue?8916","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Time.ts","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Time.ts?7669","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/Time.vue","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/LanguageTime.vue?fa84","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/LanguageTime.ts","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/LanguageTime.ts?cab5","webpack:///./src/modules/@gnb/components/Preference/General/LanguageTime/LanguageTime.vue","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Board.vue?210e","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Board.ts","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Board.ts?023a","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Board.vue","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Wallpapers.vue?b626","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Wallpapers.ts","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Wallpapers.ts?06c7","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Wallpapers.vue","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Notice.vue?1114","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Notice.ts","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Notice.ts?dda2","webpack:///./src/modules/@gnb/components/Preference/General/Notice/Notice.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/SettingMissedTime.vue?77ea","webpack:///./src/modules/@appbase/components/DatePicker/DatePicker.vue?8a39","webpack:///./src/modules/@appbase/util/component-helper.ts","webpack:///./src/modules/@appbase/components/DatePicker/DatePicker.ts","webpack:///./src/modules/@appbase/components/DatePicker/DatePicker.ts?9c11","webpack:///./src/modules/@appbase/components/DatePicker/DatePicker.vue","webpack:///./src/modules/@gnb/components/Common/CheckSlider.vue?28b5","webpack:///./src/modules/@gnb/components/Common/CheckSlider.ts","webpack:///./src/modules/@gnb/components/Common/CheckSlider.ts?f38d","webpack:///./src/modules/@gnb/components/Common/CheckSlider.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/SettingMissedTime.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/SettingMissedTime.ts?d217","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/SettingMissedTime.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/MissedAutoReply.vue?f30c","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/MissedAutoReply.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/MissedAutoReply.ts?6c0d","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/MissedAutoReply.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/Missed.vue?a893","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/Missed.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/Missed.ts?4f14","webpack:///./src/modules/@gnb/components/Preference/Mail/Missed/Missed.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/LayoutView.vue?9d89","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/LayoutView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/LayoutView.ts?bd50","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/LayoutView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/ListCount.vue?4eff","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/ListCount.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/ListCount.ts?4011","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/ListCount.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/Layout.vue?d3a5","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/Layout.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/Layout.ts?1e67","webpack:///./src/modules/@gnb/components/Preference/Mail/Layout/Layout.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureView.vue?31d3","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Modals/SignatureModal.vue?a0c8","webpack:///./src/modules/@gnb/components/Common/PopupModal.vue?e6dd","webpack:///./src/modules/@gnb/components/Common/PopupModal.ts","webpack:///./src/modules/@gnb/components/Common/PopupModal.ts?3284","webpack:///./src/modules/@gnb/components/Common/PopupModal.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Modals/SignatureModal.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Modals/SignatureModal.ts?30f7","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Modals/SignatureModal.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureView.ts?dec3","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Signature.vue?039b","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Signature.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Signature.ts?d029","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/Signature.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureOptionView.vue?5154","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureOptionView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureOptionView.ts?eac7","webpack:///./src/modules/@gnb/components/Preference/Mail/Signature/SignatureOptionView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleView.vue?8e39","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleView.ts?7cfe","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/Rule.vue?2387","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/AddRule.vue?862c","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleModal.vue?ab51","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/StorageView.vue?0e6f","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/StorageModal.vue?7c93","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/StorageModal.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/StorageModal.ts?7a2b","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/StorageModal.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/FolderMoveModal.vue?03e8","webpack:///./src/modules/@gnb/components/Common/SimpleFolderList.vue?75cc","webpack:///./src/modules/@gnb/components/Common/TreeList.vue?caa0","webpack:///./src/modules/@gnb/components/Common/TreeListItem.vue?164d","webpack:///./src/modules/@gnb/components/Common/TreeListItem.ts","webpack:///./src/modules/@gnb/components/Common/TreeListItem.ts?0416","webpack:///./src/modules/@gnb/components/Common/TreeListItem.vue","webpack:///./src/modules/@gnb/components/Common/TreeList.ts","webpack:///./src/modules/@gnb/components/Common/TreeList.ts?0430","webpack:///./src/modules/@gnb/components/Common/TreeList.vue","webpack:///./src/modules/@gnb/components/Common/FolderList.vue?6613","webpack:///./src/modules/@gnb/components/Common/FolderItem.vue?0e13","webpack:///./src/modules/@gnb/components/Common/FolderItem.ts","webpack:///./src/modules/@gnb/components/Common/FolderItem.ts?2381","webpack:///./src/modules/@gnb/components/Common/FolderItem.vue","webpack:///./src/modules/@gnb/components/Common/FolderList.ts","webpack:///./src/modules/@gnb/components/Common/FolderList.ts?4600","webpack:///./src/modules/@gnb/components/Common/FolderList.vue","webpack:///./src/modules/@gnb/components/Common/SimpleFolderList.ts","webpack:///./src/modules/@gnb/components/Common/SimpleFolderList.ts?cd29","webpack:///./src/modules/@gnb/components/Common/SimpleFolderList.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/FolderMoveModal.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/FolderMoveModal.ts?1c82","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Modals/FolderMoveModal.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/StorageView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/StorageView.ts?4e98","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/StorageView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleModal.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleModal.ts?1761","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/RuleModal.vue","webpack:///./src/modules/@gnb/components/Common/RecipientField.vue?f5e7","webpack:///./src/modules/@gnb/components/Common/RecipientField.ts","webpack:///./src/modules/@gnb/components/Common/RecipientField.ts?c051","webpack:///./src/modules/@gnb/components/Common/RecipientField.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/AddRule.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/AddRule.ts?5a61","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/AddRule.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/Rule.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/Rule.ts?778c","webpack:///./src/modules/@gnb/components/Preference/Mail/Rule/Rule.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/DeleteView.vue?844b","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/DeleteView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/DeleteView.ts?5123","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/DeleteView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/Delete.vue?00c2","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/Delete.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/Delete.ts?d51e","webpack:///./src/modules/@gnb/components/Preference/Mail/Delete/Delete.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDeliveryView.vue?3ba8","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDeliveryView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDeliveryView.ts?5d21","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDeliveryView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDelivery.vue?8324","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDelivery.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDelivery.ts?f5db","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoDelivery/AutoDelivery.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReplyView.vue?5d3f","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReplyView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReplyView.ts?7bd4","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReplyView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReply.vue?0b1e","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReply.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReply.ts?fc08","webpack:///./src/modules/@gnb/components/Preference/Mail/AutoReply/AutoReply.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/CategoryView.vue?887a","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/CategoryView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/CategoryView.ts?c539","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/CategoryView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Category.vue?2280","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Modals/CategoryModal.vue?fb49","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Modals/CategoryModal.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Modals/CategoryModal.ts?4de3","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Modals/CategoryModal.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Category.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Category.ts?79b3","webpack:///./src/modules/@gnb/components/Preference/Mail/Category/Category.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Storage.vue?ad86","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Storage.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Storage.ts?c8fd","webpack:///./src/modules/@gnb/components/Preference/Mail/Storage/Storage.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccount.vue?38a3","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/Modals/MultiAccountModal.vue?fca1","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/Modals/MultiAccountModal.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/Modals/MultiAccountModal.ts?915e","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/Modals/MultiAccountModal.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccountView.vue?f3c7","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccountView.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccountView.ts?3cf3","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccountView.vue","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccount.ts","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccount.ts?8608","webpack:///./src/modules/@gnb/components/Preference/Mail/MultiAccount/MultiAccount.vue","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarShared.vue?c1de","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarSharedView.vue?5607","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarSharedView.ts","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarSharedView.ts?bba6","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarSharedView.vue","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarShared.ts","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarShared.ts?c3e3","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarShared/CalendarShared.vue","webpack:///./src/modules/@gnb/components/Preference/Calendar/Calendar.vue?0f8e","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarView.vue?3ef9","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarView.ts","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarView.ts?0032","webpack:///./src/modules/@gnb/components/Preference/Calendar/CalendarView.vue","webpack:///./src/modules/@gnb/components/Preference/Calendar/Calendar.ts","webpack:///./src/modules/@gnb/components/Preference/Calendar/Calendar.ts?3350","webpack:///./src/modules/@gnb/components/Preference/Calendar/Calendar.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/Setting.vue?78ae","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/ChangeApprovalOrder.vue?635b","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/TabOrder.vue?de6d","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/TabOrder.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/TabOrder.ts?d4fa","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/TabOrder.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/ChangeApprovalOrder.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/ChangeApprovalOrder.ts?719d","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/ChangeApprovalOrder.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/DocumentMaintenance.vue?f066","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/DocumentMaintenance.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/DocumentMaintenance.ts?ec61","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/DocumentMaintenance.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/Setting.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/Setting.ts?d20f","webpack:///./src/modules/@gnb/components/Preference/Approval/Setting/Setting.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/Confrontation.vue?f13d","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/ConfrontationView.vue?916a","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/ConfrontationView.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/ConfrontationView.ts?88f3","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/ConfrontationView.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/Confrontation.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/Confrontation.ts?726f","webpack:///./src/modules/@gnb/components/Preference/Approval/Confrontation/Confrontation.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPW.vue?7b0c","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPWView.vue?158a","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPWView.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPWView.ts?ee51","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPWView.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPW.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPW.ts?ade6","webpack:///./src/modules/@gnb/components/Preference/Approval/ChangeApprovalPW/ChangeApprovalPW.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/Reception.vue?46bc","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApproval.vue?e8f7","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApprovalView.vue?a673","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApprovalView.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApprovalView.ts?3bcf","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApprovalView.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApproval.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApproval.ts?c387","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MailApproval.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApproval.vue?ae5f","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApprovalView.vue?e881","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApprovalView.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApprovalView.ts?f01b","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApprovalView.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApproval.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApproval.ts?90b0","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/MessageApproval.vue","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/Reception.ts","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/Reception.ts?0489","webpack:///./src/modules/@gnb/components/Preference/Approval/Reception/Reception.vue","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChangePhoto.vue?8ead","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChangePhoto.ts","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChangePhoto.ts?2f2a","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChangePhoto.vue","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChoosePhoto.vue?b4ba","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChoosePhoto.ts","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChoosePhoto.ts?a739","webpack:///./src/modules/@gnb/components/Preference/General/ChangePhoto/ChoosePhoto.vue","webpack:///./src/modules/@gnb/components/Preference/PreferenceModal.ts","webpack:///./src/modules/@gnb/components/Preference/PreferenceModal.ts?e7ef","webpack:///./src/modules/@gnb/components/Preference/PreferenceModal.vue","webpack:///./src/modules/mail/api/mail.ts","webpack:///./src/modules/mail/api/folder.ts","webpack:///./src/modules/mail/api/favorite.ts","webpack:///./src/modules/mail/api/index.ts","webpack:///./src/modules/calendar/components/Write/WriteBody.vue?b51a","webpack:///./src/components/common/RecipientFields.vue?9cf5","webpack:///./src/components/common/ProgressRing.vue?a0f9","webpack:///./src/components/common/ProgressRing.ts","webpack:///./src/components/common/ProgressRing.ts?0cf8","webpack:///./src/components/common/ProgressRing.vue","webpack:///./src/modules/@appbase/templates/BaseLayout/BaseLayout.scss?2bab","webpack:///./src/modules/@appbase/util/local-storage-helper.ts","webpack:///./src/modules/calendar/containers/WriteContainer.ts","webpack:///./src/modules/@appbase/components/editor/EditorProxy.vue?61a0","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSiteMap.vue?54a9","webpack:///./src/modules/mail/store/types.ts","webpack:///./src/modules/@appbase/util/debounce.ts","webpack:///./src/modules/@appbase/util/cache.ts","webpack:///./src/modules/@gnb/views/GlobalNavigationBar/GlobalNavigationBar.vue?fbd2","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SiteMap.vue?f585","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SiteMap.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SiteMap.ts?6da2","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SiteMap.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbSearch.vue?a596","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbSearch.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbSearch.ts?834c","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbSearch.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbBookmark.vue?e710","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbBookmark.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbBookmark.ts?f31c","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbBookmark.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbQuickMenu.vue?c483","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbQuickMenu.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbQuickMenu.ts?5173","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbQuickMenu.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbWorkFeed.vue?7dbc","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbWorkFeed.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbWorkFeed.ts?8e8c","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/GnbWorkFeed.vue","webpack:///./src/modules/@gnb/views/GlobalNavigationBar/GlobalNavigationBar.ts","webpack:///./src/modules/@gnb/views/GlobalNavigationBar/GlobalNavigationBar.ts?e4bd","webpack:///./src/modules/@gnb/views/GlobalNavigationBar/GlobalNavigationBar.vue","webpack:///./src/modules/mail/components/Read/ReadAttachment.vue?2f7d","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileListItem/FileListItem.scss","webpack:///./src/modules/@appbase/libs/flowjs/index.ts","webpack:///./src/modules/mail/components/Read/ReadSender.vue?5a99","webpack:///./src/modules/@gnb/components/Preference/menu.ts","webpack:///./src/modules/@gnb/api/common.ts","webpack:///./src/modules/calendar/components/Write/WriteBody.vue?36f2","webpack:///./src/modules/calendar/components/Write/WriteBody.ts","webpack:///./src/modules/calendar/components/Write/WriteBody.ts?6457","webpack:///./src/modules/calendar/components/Write/WriteBody.vue","webpack:///./src/modules/@appbase/store/actions.ts","webpack:///./src/modules/@appbase/store/getters.ts","webpack:///./src/modules/@appbase/store/mutations.ts","webpack:///./src/modules/@appbase/store/index.ts","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbTop.vue?aa8d","webpack:///./src/util/eventBus.ts","webpack:///./src/components/common/Modal/Modal.vue?e156","webpack:///./src/components/common/Modal/Modal.ts","webpack:///./src/components/common/Modal/Modal.ts?1a0a","webpack:///./src/components/common/Modal/Modal.vue","webpack:///./src/modules/@appbase/libs/flowjs/Flow.ts","webpack:///./src/modules/calendar/components/Edit/WriteForm.vue?c22f","webpack:///./src/modules/calendar/components/Edit/WriteForm.ts","webpack:///./src/modules/calendar/components/Edit/WriteForm.ts?0e1d","webpack:///./src/modules/calendar/components/Edit/WriteForm.vue","webpack:///./src/components/common/Modal/ContactModal.ts","webpack:///./src/modules/workflow/containers/ViewContainer.vue?3667","webpack:///./src/modules/@appbase/util/i18n-setup.ts","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FlowFileUploader.scss?146f","webpack:///./src/store/types.ts","webpack:///./src/modules/@appbase/util/url-helper.ts","webpack:///./src/modules/@appbase/util/popup-helper.ts","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/FileList/FileList.scss?5d1f","webpack:///./src/modules/@appbase/types/enum.ts","webpack:///./src/modules/@appbase/util/regex-helper.ts","webpack:///./src/modules/@appbase/util/menu-helper.ts","webpack:///./src/components/common/ProfilePhoto.vue?7eda","webpack:///./src/components/common/ProfilePhoto.ts","webpack:///./src/components/common/ProfilePhoto.ts?63e5","webpack:///./src/components/common/ProfilePhoto.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSiteMap.vue?f6d3","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSiteMap.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSiteMap.ts?1eeb","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSiteMap.vue","webpack:///./src/modules/@appbase/components/loading/LoadingBar.vue?bfc0","webpack:///./src/modules/@appbase/util/aes-encrypt.ts","webpack:///./src/modules/@appbase/templates/PopupLayout/PopupLayout.scss","webpack:///./src/modules/@orgmap/store/types.ts","webpack:///./src/components/common/Modal/PopupModal.vue?6f88","webpack:///./src/components/common/Modal/ModalHeader.vue?041d","webpack:///./src/components/common/Modal/ModalHeader.ts","webpack:///./src/components/common/Modal/ModalHeader.ts?e554","webpack:///./src/components/common/Modal/ModalHeader.vue","webpack:///./src/components/common/Modal/ModalBody.vue?e284","webpack:///./src/components/common/Modal/ModalBody.ts","webpack:///./src/components/common/Modal/ModalBody.ts?b0d3","webpack:///./src/components/common/Modal/ModalBody.vue","webpack:///./src/components/common/Modal/ModalBottom.vue?bfd6","webpack:///./src/components/common/Modal/ModalBottom.ts","webpack:///./src/components/common/Modal/ModalBottom.ts?c73f","webpack:///./src/components/common/Modal/ModalBottom.vue","webpack:///./src/components/common/Modal/PopupModal.ts","webpack:///./src/components/common/Modal/PopupModal.ts?6cb1","webpack:///./src/components/common/Modal/PopupModal.vue","webpack:///D:/#NEWTFS/ISU/GroupWare/01. eum_Core/98.Packages/libs/eum-api/lib/types.js","webpack:///D:/#NEWTFS/ISU/GroupWare/01. eum_Core/98.Packages/libs/eum-api/lib/AxiosClient.js","webpack:///D:/#NEWTFS/ISU/GroupWare/01. eum_Core/98.Packages/libs/eum-api/lib/index.js","webpack:///./src/api/index.ts","webpack:///./src/modules/home/components/Orgmap/UserDetail.ts","webpack:///./src/modules/calendar/store/types.ts","webpack:///./src/modules/board/components/Modals/AttachModal.vue?c97c","webpack:///./src/modules/workflow/store/types.ts","webpack:///./src/modules/mail/types/index.ts","webpack:///./src/modules/@appbase/libs/flowjs/FlowChunk.ts","webpack:///./src/modules/home/api/orgmap.ts","webpack:///./src/modules/home/api/index.ts","webpack:///./src/modules/@appbase/components/modal/RoleGroupModal.vue?8793","webpack:///D:/#NEWTFS/ISU/GroupWare/01. eum_Core/98.Packages/vue/eum-tag-input-mobile/dist/eum-tag-input-mobile.esm.js","webpack:///D:/#NEWTFS/ISU/GroupWare/01. eum_Core/98.Packages/vue/eum-file-upload_mobile/dist/eum-file-upload.esm.js","webpack:///./src/components/common/Modal/index.ts","webpack:///./src/modules/@gnb/components/Common/SimpleFolderList.vue?d940","webpack:///./src/modules/contact/types/enums.ts","webpack:///./src/modules/@appbase/store/types.ts","webpack:///./src/modules/calendar/api/ews_calendar.ts","webpack:///./src/modules/@appbase/components/editor/EditorProxy.vue?d5ca","webpack:///./src/modules/@appbase/components/editor/Dext5Editor/Dext5Editor.vue?702d","webpack:///./src/modules/@appbase/components/editor/Dext5Editor/dext5-directive.ts","webpack:///./src/modules/@appbase/components/editor/Dext5Editor/Dext5Editor.ts","webpack:///./src/modules/@appbase/components/editor/Dext5Editor/Dext5Editor.ts?ee05","webpack:///./src/modules/@appbase/components/editor/Dext5Editor/Dext5Editor.vue","webpack:///./src/modules/@appbase/components/editor/TinyEditor/TinyEditor.vue?258a","webpack:///src/modules/@appbase/components/editor/TinyEditor/TinyEditor.vue","webpack:///./src/modules/@appbase/components/editor/TinyEditor/TinyEditor.vue?922c","webpack:///./src/modules/@appbase/components/editor/TinyEditor/TinyEditor.vue","webpack:///./src/modules/@appbase/components/editor/EditorProxy.vue?2564","webpack:///./src/modules/@appbase/components/editor/EditorProxy.vue?1008","webpack:///./src/modules/@appbase/components/editor/EditorProxy.vue","webpack:///./src/modules/@appbase/api/portal-cache.ts","webpack:///./src/modules/@appbase/api/file.ts","webpack:///./src/modules/@appbase/api/subcontent.ts","webpack:///./src/modules/@appbase/api/attachment.ts","webpack:///./src/modules/@appbase/api/role.ts","webpack:///./src/modules/@appbase/api/index.ts","webpack:///./src/modules/@account/store/actions.ts","webpack:///./src/modules/@account/store/getters.ts","webpack:///./src/modules/@account/store/mutations.ts","webpack:///./src/modules/@account/store/index.ts","webpack:///./src/modules/@orgmap/views/MobileView.vue?e721","webpack:///./src/modules/@orgmap/containers/MobileContainer.vue?f5ba","webpack:///./src/modules/@orgmap/containers/MobileContainer.ts","webpack:///./src/modules/@orgmap/containers/MobileContainer.ts?9073","webpack:///./src/modules/@orgmap/containers/MobileContainer.vue","webpack:///./src/modules/@orgmap/views/MobileView.ts","webpack:///./src/modules/@orgmap/views/MobileView.ts?9cb9","webpack:///./src/modules/@orgmap/views/MobileView.vue","webpack:///./src/modules/@appbase/components/common/FlowFileUploader/flow-helper.ts","webpack:///./src/modules/@appbase/util/guid.ts","webpack:///./src/components/common/DisplayName.vue?7813","webpack:///./src/modules/@appbase/libs/flowjs/FlowFile.ts","webpack:///./src/modules/@appbase/components/loading/LoadingBar.vue?12af","webpack:///src/modules/@appbase/components/loading/LoadingBar.vue","webpack:///./src/modules/@appbase/components/loading/LoadingBar.vue?db90","webpack:///./src/modules/@appbase/components/loading/LoadingBar.vue","webpack:///./src/modules/@gnb/views/GnbLeft/GnbLeftView.vue?4008","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbLeft.vue?f6ab","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItem.vue?744e","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItem.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItem.ts?a92d","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItem.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSub.vue?3614","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSubItem.vue?7583","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSubItem.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSubItem.ts?7122","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSubItem.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSub.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSub.ts?4256","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbItemSub.vue","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbLeft.ts","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbLeft.ts?0086","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbLeft.vue","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbTop.vue?8a3d","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSearch.vue?dfe5","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSearch.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSearch.ts?1ece","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbSearch.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbWorkFeed.vue?64d9","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbWorkFeed.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbWorkFeed.ts?a1e0","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbWorkFeed.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbBookmark.vue?f8be","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbBookmark.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbBookmark.ts?7057","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbBookmark.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenu.vue?c9bf","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenuItem.vue?af20","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenuItem.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenuItem.ts?91f0","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenuItem.vue","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenu.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenu.ts?ed52","webpack:///./src/modules/@gnb/components/GlobalNavigationBarLeft/GnbQuickMenu.vue","webpack:///./src/modules/@appbase/components/Custom/FloatingChat/FloatingChat.vue?a668","webpack:///./src/modules/@appbase/components/Custom/FloatingChat/FloatingChat.ts","webpack:///./src/modules/@appbase/components/Custom/FloatingChat/FloatingChat.ts?1c79","webpack:///./src/modules/@appbase/components/Custom/FloatingChat/FloatingChat.vue","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbTop.ts","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbTop.ts?3477","webpack:///./src/modules/@gnb/containers/GlobalNavigationBarLeft/GnbTop.vue","webpack:///./src/modules/@gnb/views/GnbLeft/GnbLeftView.ts","webpack:///./src/modules/@gnb/views/GnbLeft/GnbLeftView.ts?4bd1","webpack:///./src/modules/@gnb/views/GnbLeft/GnbLeftView.vue","webpack:///./src/modules/workflow/components/Read/Iframe.vue?daf2","webpack:///./src/modules/calendar/components/Modals/AlarmModal.vue?7d07","webpack:///./src/modules/calendar/components/Modals/AlarmModal.ts","webpack:///./src/modules/calendar/components/Modals/AlarmModal.ts?bb5b","webpack:///./src/modules/calendar/components/Modals/AlarmModal.vue","webpack:///./src/modules/calendar/components/Modals/StartDateModal.vue?65fa","webpack:///./src/modules/calendar/components/Modals/StartDateModal.ts","webpack:///./src/modules/calendar/components/Modals/StartDateModal.ts?96f1","webpack:///./src/modules/calendar/components/Modals/StartDateModal.vue","webpack:///./src/modules/calendar/components/Modals/EndDateModal.vue?71ed","webpack:///./src/modules/calendar/components/Modals/EndDateModal.ts","webpack:///./src/modules/calendar/components/Modals/EndDateModal.ts?35ad","webpack:///./src/modules/calendar/components/Modals/EndDateModal.vue","webpack:///./src/modules/calendar/components/Modals/FolderModal.vue?ad12","webpack:///./src/modules/calendar/components/Modals/FolderModal.ts","webpack:///./src/modules/calendar/components/Modals/FolderModal.ts?5a01","webpack:///./src/modules/calendar/components/Modals/FolderModal.vue","webpack:///./src/modules/calendar/components/Modals/MeetingRoomModal.vue?2c25","webpack:///./src/modules/calendar/components/Modals/MeetingRoomModal.ts","webpack:///./src/modules/calendar/components/Modals/MeetingRoomModal.ts?c585","webpack:///./src/modules/calendar/components/Modals/MeetingRoomModal.vue","webpack:///./src/modules/calendar/components/Modals/StartTimeModal.vue?d163","webpack:///./src/modules/calendar/components/Modals/StartTimeModal.ts","webpack:///./src/modules/calendar/components/Modals/StartTimeModal.ts?4287","webpack:///./src/modules/calendar/components/Modals/StartTimeModal.vue","webpack:///./src/modules/calendar/components/Modals/EndTimeModal.vue?5172","webpack:///./src/modules/calendar/components/Modals/EndTimeModal.ts","webpack:///./src/modules/calendar/components/Modals/EndTimeModal.ts?cea6","webpack:///./src/modules/calendar/components/Modals/EndTimeModal.vue","webpack:///./src/modules/board/views/ListView.vue?faa9","webpack:///./src/components/common/Header/PageHeaderWithActionBar.vue?edd8","webpack:///./src/components/common/Header/HamburgerButton.vue?2ff2","webpack:///./src/components/common/Header/HamburgerButton.ts","webpack:///./src/components/common/Header/HamburgerButton.ts?dfe7","webpack:///./src/components/common/Header/HamburgerButton.vue","webpack:///./src/components/common/Header/PageHeaderWithActionBar.ts","webpack:///./src/components/common/Header/PageHeaderWithActionBar.ts?c2bf","webpack:///./src/components/common/Header/PageHeaderWithActionBar.vue","webpack:///./src/components/common/Header/PageHeaderWithSearchBar.vue?cf88","webpack:///./src/components/common/Header/PageHeaderWithSearchBar.ts","webpack:///./src/components/common/Header/PageHeaderWithSearchBar.ts?325c","webpack:///./src/components/common/Header/PageHeaderWithSearchBar.vue","webpack:///./src/modules/board/containers/ListContainer.vue?1be2","webpack:///./src/modules/board/components/List/BoardListItem.vue?64f2","webpack:///./src/modules/board/components/List/BoardListItem.ts","webpack:///./src/modules/board/components/List/BoardListItem.ts?885e","webpack:///./src/modules/board/components/List/BoardListItem.vue","webpack:///./src/modules/board/containers/ListContainer.ts","webpack:///./src/modules/board/containers/ListContainer.ts?bf06","webpack:///./src/modules/board/containers/ListContainer.vue","webpack:///./src/modules/board/views/ListView.ts","webpack:///./src/modules/board/views/ListView.ts?eb30","webpack:///./src/modules/board/views/ListView.vue","webpack:///./src/modules/board/views/ReadView.vue?d047","webpack:///./src/components/common/Header/PageViewHeaderWithActionBar.vue?f765","webpack:///./src/components/common/Header/PageViewHeaderWithActionBar.ts","webpack:///./src/components/common/Header/PageViewHeaderWithActionBar.ts?6c79","webpack:///./src/components/common/Header/PageViewHeaderWithActionBar.vue","webpack:///./src/modules/board/containers/ReadContainer.vue?dfef","webpack:///./src/modules/board/components/Modals/AttachModal.vue?0a8e","webpack:///./src/modules/@appbase/util/doc-viewer-helper.ts","webpack:///./src/modules/board/components/Modals/AttachModal.ts","webpack:///./src/modules/board/components/Modals/AttachModal.ts?088a","webpack:///./src/modules/board/components/Modals/AttachModal.vue","webpack:///./src/modules/board/components/Read/CommentWrite.vue?53d3","webpack:///./src/modules/board/components/Read/CommentWrite.ts","webpack:///./src/modules/board/components/Read/CommentWrite.ts?ccce","webpack:///./src/modules/board/components/Read/CommentWrite.vue","webpack:///./src/modules/board/components/Read/CommentItem.vue?887e","webpack:///./src/modules/board/components/Read/CommentItem.ts","webpack:///./src/modules/board/components/Read/CommentItem.ts?a857","webpack:///./src/modules/board/components/Read/CommentItem.vue","webpack:///./src/modules/board/containers/ReadContainer.ts","webpack:///./src/modules/board/containers/ReadContainer.ts?09b7","webpack:///./src/modules/board/containers/ReadContainer.vue","webpack:///./src/modules/board/views/ReadView.ts","webpack:///./src/modules/board/views/ReadView.ts?2f93","webpack:///./src/modules/board/views/ReadView.vue","webpack:///./src/modules/board/views/WriteView.vue?2066","webpack:///./src/components/common/Header/PageEditHeaderWithActionBar.vue?ebdc","webpack:///./src/components/common/Header/PageEditHeaderWithActionBar.ts","webpack:///./src/modules/board/containers/WriteContainer.ts","webpack:///./src/components/common/Header/PageEditHeaderWithActionBar.ts?a576","webpack:///./src/components/common/Header/PageEditHeaderWithActionBar.vue","webpack:///./src/modules/board/containers/WriteContainer.vue?0374","webpack:///./src/modules/board/containers/WriteContainer.ts?6b8b","webpack:///./src/modules/board/containers/WriteContainer.vue","webpack:///./src/modules/board/views/WriteView.ts","webpack:///./src/modules/board/views/WriteView.ts?1134","webpack:///./src/modules/board/views/WriteView.vue","webpack:///./src/modules/board/views/RecommendView.vue?69a7","webpack:///./src/modules/board/containers/RecommendContainer.vue?720e","webpack:///./src/modules/board/containers/RecommendContainer.ts","webpack:///./src/modules/board/containers/RecommendContainer.ts?3154","webpack:///./src/modules/board/containers/RecommendContainer.vue","webpack:///./src/modules/board/views/RecommendView.ts","webpack:///./src/modules/board/views/RecommendView.ts?8791","webpack:///./src/modules/board/views/RecommendView.vue","webpack:///./src/modules/board/router/index.ts","webpack:///./src/modules/home/views/MainView.vue?207f","webpack:///./src/modules/home/containers/MainContainer.vue?7a6f","webpack:///./src/modules/workflow/components/List/WorkflowListItem.vue?1219","webpack:///./src/modules/workflow/components/List/ProcessLine.vue?7a9c","webpack:///./src/modules/workflow/components/List/ProcessLine.ts","webpack:///./src/modules/workflow/components/List/ProcessLine.ts?eff3","webpack:///./src/modules/workflow/components/List/ProcessLine.vue","webpack:///./src/modules/workflow/components/List/WorkflowListItem.ts","webpack:///./src/modules/workflow/components/List/WorkflowListItem.ts?32b0","webpack:///./src/modules/workflow/components/List/WorkflowListItem.vue","webpack:///./src/modules/home/containers/MainContainer.ts","webpack:///./src/modules/home/containers/MainContainer.ts?02a6","webpack:///./src/modules/home/containers/MainContainer.vue","webpack:///./src/modules/home/views/MainView.ts","webpack:///./src/modules/home/views/MainView.ts?9445","webpack:///./src/modules/home/views/MainView.vue","webpack:///./src/modules/home/views/AlarmView.vue?c906","webpack:///./src/modules/home/containers/AlarmContainer.vue?7477","webpack:///./src/components/common/WebMailBottom.vue?462a","webpack:///./src/components/common/WebMailBottom.ts","webpack:///./src/components/common/WebMailBottom.ts?40a1","webpack:///./src/components/common/WebMailBottom.vue","webpack:///./src/modules/home/containers/AlarmContainer.ts","webpack:///./src/modules/home/containers/AlarmContainer.ts?408c","webpack:///./src/modules/home/containers/AlarmContainer.vue","webpack:///./src/modules/home/views/AlarmView.ts","webpack:///./src/modules/home/views/AlarmView.ts?37b1","webpack:///./src/modules/home/views/AlarmView.vue","webpack:///./src/modules/home/views/OrgmapView.vue?9c7c","webpack:///./src/modules/home/containers/OrgmapContainer.vue?1b78","webpack:///./src/modules/home/components/Orgmap/UserNode.vue?c94d","webpack:///./src/modules/home/components/Orgmap/UserNode.ts","webpack:///./src/modules/home/components/Orgmap/UserNode.ts?094a","webpack:///./src/modules/home/components/Orgmap/UserNode.vue","webpack:///./src/modules/home/components/Orgmap/DeptNode.vue?5e45","webpack:///./src/modules/home/components/Orgmap/DeptNode.ts","webpack:///./src/modules/home/components/Orgmap/DeptNode.ts?93e8","webpack:///./src/modules/home/components/Orgmap/DeptNode.vue","webpack:///./src/modules/home/components/Orgmap/CompanySelectionModal.vue?3608","webpack:///./src/modules/home/components/Orgmap/CompanySelectionModal.ts","webpack:///./src/modules/home/components/Orgmap/CompanySelectionModal.ts?0f48","webpack:///./src/modules/home/components/Orgmap/CompanySelectionModal.vue","webpack:///./src/modules/home/components/Orgmap/UserDetail.vue?65e1","webpack:///./src/modules/home/components/Orgmap/UserDetail.ts?5fbb","webpack:///./src/modules/home/components/Orgmap/UserDetail.vue","webpack:///./src/modules/home/containers/OrgmapContainer.ts","webpack:///./src/modules/home/containers/OrgmapContainer.ts?2058","webpack:///./src/modules/home/containers/OrgmapContainer.vue","webpack:///./src/modules/home/views/OrgmapView.ts","webpack:///./src/modules/home/views/OrgmapView.ts?1151","webpack:///./src/modules/home/views/OrgmapView.vue","webpack:///./src/modules/home/views/SearchView.vue?c218","webpack:///./src/modules/home/containers/SearchContainer.vue?9bfe","webpack:///./src/modules/mail/components/MailList.vue?74d4","webpack:///./src/modules/mail/components/MailListItem.vue?594f","webpack:///./src/modules/mail/components/MailListItem.ts","webpack:///./src/modules/mail/components/MailListItem.ts?7585","webpack:///./src/modules/mail/components/MailListItem.vue","webpack:///./src/modules/mail/components/MailList.ts","webpack:///./src/modules/mail/components/MailList.ts?70c0","webpack:///./src/modules/mail/components/MailList.vue","webpack:///./src/modules/home/components/Search/ScheduleList.vue?e4ec","webpack:///./src/modules/home/components/Search/ScheduleList.ts","webpack:///./src/modules/home/components/Search/ScheduleList.ts?f380","webpack:///./src/modules/home/components/Search/ScheduleList.vue","webpack:///./src/modules/contact/components/List/ContactList.vue?cc64","webpack:///./src/modules/contact/components/List/ContactListItem.vue?5259","webpack:///./src/modules/contact/components/List/ContactListItem.ts","webpack:///./src/modules/contact/components/List/ContactListItem.ts?b16f","webpack:///./src/modules/contact/components/List/ContactListItem.vue","webpack:///./src/modules/contact/components/List/ContactList.ts","webpack:///./src/modules/contact/components/List/ContactList.ts?81a7","webpack:///./src/modules/contact/components/List/ContactList.vue","webpack:///./src/modules/home/containers/SearchContainer.ts","webpack:///./src/modules/home/containers/SearchContainer.ts?5b7e","webpack:///./src/modules/home/containers/SearchContainer.vue","webpack:///./src/modules/home/views/SearchView.ts","webpack:///./src/modules/home/views/SearchView.ts?580d","webpack:///./src/modules/home/views/SearchView.vue","webpack:///./src/modules/home/views/ScheduleSearchView.vue?8760","webpack:///./src/modules/home/containers/ScheduleSearchContainer.vue?484c","webpack:///./src/modules/home/containers/ScheduleSearchContainer.ts","webpack:///./src/modules/home/containers/ScheduleSearchContainer.ts?243f","webpack:///./src/modules/home/containers/ScheduleSearchContainer.vue","webpack:///./src/modules/home/views/ScheduleSearchView.ts","webpack:///./src/modules/home/views/ScheduleSearchView.ts?b37c","webpack:///./src/modules/home/views/ScheduleSearchView.vue","webpack:///./src/modules/home/router/index.ts","webpack:///./src/modules/mail/views/HomeView.vue?4797","webpack:///./src/modules/mail/containers/HomeContainer.vue?9992","webpack:///./src/modules/mail/components/menu.ts","webpack:///./src/modules/mail/containers/HomeContainer.ts","webpack:///./src/modules/mail/containers/HomeContainer.ts?7a64","webpack:///./src/modules/mail/containers/HomeContainer.vue","webpack:///./src/modules/mail/components/Modals/MoveModal.vue?d68d","webpack:///./src/modules/mail/components/Modals/FolderList.vue?687b","webpack:///./src/modules/mail/components/Modals/TreeList.vue?a6b1","webpack:///./src/modules/mail/components/Modals/TreeListItem.vue?2849","webpack:///./src/modules/mail/components/Modals/TreeListItem.ts","webpack:///./src/modules/mail/components/Modals/TreeListItem.ts?c0d8","webpack:///./src/modules/mail/components/Modals/TreeListItem.vue","webpack:///./src/modules/mail/components/Modals/TreeList.ts","webpack:///./src/modules/mail/components/Modals/TreeList.ts?3ad7","webpack:///./src/modules/mail/components/Modals/TreeList.vue","webpack:///./src/modules/mail/components/Modals/FolderList.ts","webpack:///./src/modules/mail/components/Modals/FolderList.ts?6923","webpack:///./src/modules/mail/components/Modals/FolderList.vue","webpack:///./src/modules/mail/components/Modals/MoveModal.ts","webpack:///./src/modules/mail/components/Modals/MoveModal.ts?dcce","webpack:///./src/modules/mail/components/Modals/MoveModal.vue","webpack:///./src/modules/mail/views/HomeView.ts","webpack:///./src/modules/mail/views/HomeView.ts?6d31","webpack:///./src/modules/mail/views/HomeView.vue","webpack:///./src/modules/mail/views/ListView.vue?912f","webpack:///./src/modules/mail/containers/ListContainer.vue?6fd7","webpack:///./src/modules/mail/containers/ListContainer.ts","webpack:///./src/modules/mail/containers/ListContainer.ts?2076","webpack:///./src/modules/mail/containers/ListContainer.vue","webpack:///./src/modules/mail/views/ListView.ts","webpack:///./src/modules/mail/views/ListView.ts?2fd3","webpack:///./src/modules/mail/views/ListView.vue","webpack:///./src/modules/mail/views/ReadView.vue?47fe","webpack:///./src/modules/mail/containers/ReadContainer.vue?37cd","webpack:///./src/modules/mail/components/Read/ReadBottom.vue?ca82","webpack:///./src/modules/mail/components/Read/ReadBottom.ts","webpack:///./src/modules/mail/components/Read/ReadBottom.ts?ac4e","webpack:///./src/modules/mail/components/Read/ReadBottom.vue","webpack:///./src/modules/mail/components/Read/ReadSender.vue?0972","webpack:///./src/modules/mail/components/Read/ReadSender.ts","webpack:///./src/modules/mail/components/Read/ReadSender.ts?0d64","webpack:///./src/modules/mail/components/Read/ReadSender.vue","webpack:///./src/modules/mail/components/Read/ReadAttachment.vue?da4d","webpack:///./src/modules/mail/components/Read/ReadAttachment.ts","webpack:///./src/modules/mail/components/Read/ReadAttachment.ts?c728","webpack:///./src/modules/mail/components/Read/ReadAttachment.vue","webpack:///./src/modules/mail/components/Read/ReadTitle.vue?c006","webpack:///./src/modules/mail/components/Read/ReadTitle.ts","webpack:///./src/modules/mail/components/Read/ReadTitle.ts?8123","webpack:///./src/modules/mail/components/Read/ReadTitle.vue","webpack:///./src/modules/mail/components/Read/ReadBody.vue?45e9","webpack:///./src/modules/mail/components/Read/ReadBody.ts","webpack:///./src/modules/mail/components/Read/ReadBody.ts?d1ad","webpack:///./src/modules/mail/components/Read/ReadBody.vue","webpack:///./src/modules/mail/containers/ReadContainer.ts","webpack:///./src/modules/mail/containers/ReadContainer.ts?c87b","webpack:///./src/modules/mail/containers/ReadContainer.vue","webpack:///./src/modules/mail/views/ReadView.ts","webpack:///./src/modules/mail/views/ReadView.ts?d3a6","webpack:///./src/modules/mail/views/ReadView.vue","webpack:///./src/modules/mail/views/WriteView.vue?22c7","webpack:///./src/modules/mail/containers/WriteContainer.vue?ae86","webpack:///./src/modules/mail/components/Write/WriteReceiver.vue?3d4b","webpack:///./src/modules/mail/components/Write/WriteReceiver.ts","webpack:///./src/modules/mail/components/Write/WriteReceiver.ts?aa6a","webpack:///./src/modules/mail/components/Write/WriteReceiver.vue","webpack:///./src/modules/mail/components/Write/WriteTitle.vue?ff91","webpack:///./src/modules/mail/components/Write/WriteTitle.ts","webpack:///./src/modules/mail/components/Write/WriteTitle.ts?cc1a","webpack:///./src/modules/mail/components/Write/WriteTitle.vue","webpack:///./src/modules/mail/components/Write/WriteAttachment.vue?5186","webpack:///./src/modules/mail/components/Write/WriteAttachment.ts","webpack:///./src/modules/mail/components/Write/WriteAttachment.ts?4da1","webpack:///./src/modules/mail/components/Write/WriteAttachment.vue","webpack:///./src/modules/mail/components/Write/WriteBody.vue?11b9","webpack:///./src/modules/mail/components/Write/WriteBody.ts","webpack:///./src/modules/mail/components/Write/WriteBody.ts?6a3f","webpack:///./src/modules/mail/components/Write/WriteBody.vue","webpack:///./src/modules/mail/components/Write/WriteCC.vue?6619","webpack:///./src/modules/mail/components/Write/WriteCC.ts","webpack:///./src/modules/mail/components/Write/WriteCC.ts?92f2","webpack:///./src/modules/mail/components/Write/WriteCC.vue","webpack:///./src/modules/mail/containers/WriteContainer.ts","webpack:///./src/modules/mail/containers/WriteContainer.ts?f25c","webpack:///./src/modules/mail/containers/WriteContainer.vue","webpack:///./src/modules/mail/views/WriteView.ts","webpack:///./src/modules/mail/views/WriteView.ts?cdb4","webpack:///./src/modules/mail/views/WriteView.vue","webpack:///./src/modules/mail/router/index.ts","webpack:///./src/modules/calendar/views/CalendarView.vue?2842","webpack:///./src/modules/calendar/containers/CalendarContainer.vue?24c8","webpack:///./src/modules/calendar/components/View/MonthView.vue?f0b4","webpack:///./src/modules/calendar/components/View/MonthItem.vue?fb34","webpack:///./src/modules/calendar/components/View/MonthItem.ts","webpack:///./src/modules/calendar/components/View/MonthItem.ts?107d","webpack:///./src/modules/calendar/components/View/MonthItem.vue","webpack:///./src/modules/calendar/components/View/MonthView.ts","webpack:///./src/modules/calendar/components/View/MonthView.ts?6302","webpack:///./src/modules/calendar/components/View/MonthView.vue","webpack:///./src/modules/calendar/components/View/WeekView.vue?ec76","webpack:///./src/modules/calendar/components/View/CalendarItem.vue?253a","webpack:///./src/modules/calendar/components/View/CalendarItem.ts","webpack:///./src/modules/calendar/components/View/CalendarItem.ts?6625","webpack:///./src/modules/calendar/components/View/CalendarItem.vue","webpack:///./src/modules/calendar/components/View/WeekView.ts","webpack:///./src/modules/calendar/components/View/WeekView.ts?8a0d","webpack:///./src/modules/calendar/components/View/WeekView.vue","webpack:///./src/modules/calendar/components/View/DayView.vue?dbbc","webpack:///./src/modules/calendar/components/View/DayView.ts","webpack:///./src/modules/calendar/components/View/DayView.ts?86f9","webpack:///./src/modules/calendar/components/View/DayView.vue","webpack:///./src/modules/calendar/components/Modals/RecurringScheduleModal.vue?3652","webpack:///./src/modules/calendar/components/Modals/RecurringScheduleModal.ts","webpack:///./src/modules/calendar/components/Modals/RecurringScheduleModal.ts?0018","webpack:///./src/modules/calendar/components/Modals/RecurringScheduleModal.vue","webpack:///./src/modules/calendar/containers/CalendarContainer.ts","webpack:///./src/modules/calendar/containers/CalendarContainer.ts?f6f5","webpack:///./src/modules/calendar/containers/CalendarContainer.vue","webpack:///./src/modules/calendar/views/CalendarView.ts","webpack:///./src/modules/calendar/views/CalendarView.ts?162b","webpack:///./src/modules/calendar/views/CalendarView.vue","webpack:///./src/modules/calendar/views/ReadView.vue?f5b6","webpack:///./src/modules/calendar/containers/ReadContainer.vue?8d59","webpack:///./src/modules/calendar/components/Modals/AttendanceModal.vue?dcb2","webpack:///./src/modules/calendar/components/Modals/AttendanceModal.ts","webpack:///./src/modules/calendar/components/Modals/AttendanceModal.ts?640d","webpack:///./src/modules/calendar/components/Modals/AttendanceModal.vue","webpack:///./src/modules/calendar/components/Read/ReadForm.vue?852e","webpack:///./src/modules/calendar/components/Read/ReadForm.ts","webpack:///./src/modules/calendar/components/Read/ReadForm.ts?36ff","webpack:///./src/modules/calendar/components/Read/ReadForm.vue","webpack:///./src/modules/calendar/containers/ReadContainer.ts","webpack:///./src/modules/calendar/containers/ReadContainer.ts?a4ad","webpack:///./src/modules/calendar/containers/ReadContainer.vue","webpack:///./src/modules/@appbase/util/permission-helper.ts","webpack:///./src/modules/calendar/views/ReadView.ts","webpack:///./src/modules/calendar/views/ReadView.ts?fa7b","webpack:///./src/modules/calendar/views/ReadView.vue","webpack:///./src/modules/calendar/views/WriteView.vue?9581","webpack:///./src/modules/calendar/containers/WriteContainer.vue?e795","webpack:///./src/modules/calendar/containers/WriteContainer.ts?f96e","webpack:///./src/modules/calendar/containers/WriteContainer.vue","webpack:///./src/modules/calendar/views/WriteView.ts","webpack:///./src/modules/calendar/views/WriteView.ts?075c","webpack:///./src/modules/calendar/views/WriteView.vue","webpack:///./src/modules/calendar/views/EditView.vue?9eb2","webpack:///./src/modules/calendar/containers/EditContainer.vue?32c8","webpack:///./src/modules/calendar/containers/EditContainer.ts?b244","webpack:///./src/modules/calendar/containers/EditContainer.vue","webpack:///./src/modules/calendar/views/EditView.ts","webpack:///./src/modules/calendar/views/EditView.ts?410b","webpack:///./src/modules/calendar/views/EditView.vue","webpack:///./src/modules/calendar/views/RecurringView.vue?d4df","webpack:///./src/modules/calendar/containers/RecurringContainer.vue?a692","webpack:///./src/modules/calendar/components/Modals/RecurringEndDateModal.vue?21b2","webpack:///./src/modules/calendar/components/Modals/RecurringEndDateModal.ts","webpack:///./src/modules/calendar/components/Modals/RecurringEndDateModal.ts?d8f3","webpack:///./src/modules/calendar/components/Modals/RecurringEndDateModal.vue","webpack:///./src/modules/calendar/components/Modals/RecurringDayModal.vue?df81","webpack:///./src/modules/calendar/components/Modals/RecurringDayModal.ts","webpack:///./src/modules/calendar/components/Modals/RecurringDayModal.ts?86e8","webpack:///./src/modules/calendar/components/Modals/RecurringDayModal.vue","webpack:///./src/modules/calendar/containers/RecurringContainer.ts","webpack:///./src/modules/calendar/containers/RecurringContainer.ts?e1e9","webpack:///./src/modules/calendar/containers/RecurringContainer.vue","webpack:///./src/modules/calendar/views/RecurringView.ts","webpack:///./src/modules/calendar/views/RecurringView.ts?677d","webpack:///./src/modules/calendar/views/RecurringView.vue","webpack:///./src/modules/calendar/router/index.ts","webpack:///./src/modules/contact/views/ContactView.vue?d477","webpack:///./src/modules/contact/containers/ViewContainer.vue?94a9","webpack:///./src/modules/contact/components/View/ContactPhoto.vue?3e32","webpack:///./src/components/common/Modal/ContactModal.vue?58ee","webpack:///./src/components/common/Modal/ContactModal.ts?f480","webpack:///./src/components/common/Modal/ContactModal.vue","webpack:///./src/modules/contact/components/View/ContactPhoto.ts","webpack:///./src/modules/contact/components/View/ContactPhoto.ts?2c9a","webpack:///./src/modules/contact/components/View/ContactPhoto.vue","webpack:///./src/modules/contact/components/View/ViewForm.vue?d0ef","webpack:///./src/modules/contact/components/View/ViewForm.ts","webpack:///./src/modules/contact/components/View/ViewForm.ts?9363","webpack:///./src/modules/contact/components/View/ViewForm.vue","webpack:///./src/modules/contact/containers/ViewContainer.ts","webpack:///./src/modules/contact/containers/ViewContainer.ts?124a","webpack:///./src/modules/contact/containers/ViewContainer.vue","webpack:///./src/modules/contact/views/ContactView.ts","webpack:///./src/modules/contact/views/ContactView.ts?c163","webpack:///./src/modules/contact/views/ContactView.vue","webpack:///./src/modules/contact/views/ListView.vue?4e33","webpack:///./src/modules/contact/containers/ListContainer.vue?7a1d","webpack:///./src/modules/contact/containers/ListContainer.ts","webpack:///./src/modules/contact/containers/ListContainer.ts?38ee","webpack:///./src/modules/contact/containers/ListContainer.vue","webpack:///./src/modules/contact/views/ListView.ts","webpack:///./src/modules/contact/views/ListView.ts?6280","webpack:///./src/modules/contact/views/ListView.vue","webpack:///./src/modules/contact/views/AddView.vue?8377","webpack:///./src/modules/contact/containers/AddContainer.vue?d115","webpack:///./src/modules/contact/components/Add/ProfilePhoto.vue?f0c5","webpack:///./src/modules/contact/components/Add/ProfilePhoto.ts","webpack:///./src/modules/contact/components/Add/ProfilePhoto.ts?c6d8","webpack:///./src/modules/contact/components/Add/ProfilePhoto.vue","webpack:///./src/modules/contact/components/Add/WriteForm.vue?8773","webpack:///./src/modules/contact/components/Add/WriteForm.ts","webpack:///./src/modules/contact/components/Add/WriteForm.ts?7992","webpack:///./src/modules/contact/components/Add/WriteForm.vue","webpack:///./src/modules/contact/containers/AddContainer.ts","webpack:///./src/modules/contact/containers/AddContainer.ts?ab94","webpack:///./src/modules/contact/containers/AddContainer.vue","webpack:///./src/modules/contact/views/AddView.ts","webpack:///./src/modules/contact/views/AddView.ts?8bff","webpack:///./src/modules/contact/views/AddView.vue","webpack:///./src/modules/contact/views/EditView.vue?fe4e","webpack:///./src/modules/contact/containers/EditContainer.vue?7a8a","webpack:///./src/modules/contact/components/Edit/EditForm.vue?32db","webpack:///./src/modules/contact/components/Edit/EditForm.ts","webpack:///./src/modules/contact/components/Edit/EditForm.ts?27f8","webpack:///./src/modules/contact/components/Edit/EditForm.vue","webpack:///./src/modules/contact/containers/EditContainer.ts","webpack:///./src/modules/contact/containers/EditContainer.ts?6d5c","webpack:///./src/modules/contact/containers/EditContainer.vue","webpack:///./src/modules/contact/views/EditView.ts","webpack:///./src/modules/contact/views/EditView.ts?61e3","webpack:///./src/modules/contact/views/EditView.vue","webpack:///./src/modules/contact/router/index.ts","webpack:///./src/modules/workflow/views/ReadView.vue?4544","webpack:///./src/modules/workflow/containers/ViewContainer.vue?cd09","webpack:///./src/modules/workflow/components/Title.vue?2686","webpack:///./src/modules/workflow/components/Title.ts","webpack:///./src/modules/workflow/components/Title.ts?76e2","webpack:///./src/modules/workflow/components/Title.vue","webpack:///./src/modules/workflow/components/ApprovalStatus.vue?dcfb","webpack:///./src/modules/workflow/components/ApprovalStatus.ts","webpack:///./src/modules/workflow/components/ApprovalStatus.ts?b450","webpack:///./src/modules/workflow/components/ApprovalStatus.vue","webpack:///./src/modules/workflow/components/ApprovalInfo.vue?83cd","webpack:///./src/modules/workflow/components/ApprovalInfo.ts","webpack:///./src/modules/workflow/components/ApprovalInfo.ts?33a9","webpack:///./src/modules/workflow/components/ApprovalInfo.vue","webpack:///./src/modules/workflow/components/Read/ProcessLine.vue?bb3d","webpack:///./src/modules/workflow/components/Read/ProcessLine.ts","webpack:///./src/modules/workflow/components/Read/ProcessLine.ts?7f0b","webpack:///./src/modules/workflow/components/Read/ProcessLine.vue","webpack:///./src/modules/workflow/components/Read/Iframe.vue?d7a7","webpack:///./src/modules/workflow/components/Read/Iframe.ts","webpack:///./src/modules/workflow/components/Read/Iframe.ts?11ae","webpack:///./src/modules/workflow/components/Read/Iframe.vue","webpack:///./src/modules/workflow/containers/ViewContainer.ts","webpack:///./src/modules/workflow/containers/ViewContainer.ts?2e1d","webpack:///./src/modules/workflow/containers/ViewContainer.vue","webpack:///./src/modules/workflow/components/Modals/ApprovalProcessingModal.vue?80af","webpack:///./src/modules/workflow/components/Modals/ApprovalProcessingModal.ts","webpack:///./src/modules/workflow/components/Modals/ApprovalProcessingModal.ts?9638","webpack:///./src/modules/workflow/components/Modals/ApprovalProcessingModal.vue","webpack:///./src/modules/workflow/components/Modals/CommentModal.vue?73a7","webpack:///./src/modules/workflow/components/Modals/CommentModal.ts","webpack:///./src/modules/workflow/components/Modals/CommentModal.ts?7fbd","webpack:///./src/modules/workflow/components/Modals/CommentModal.vue","webpack:///./src/modules/workflow/views/ReadView.ts","webpack:///./src/modules/workflow/views/ReadView.ts?2f0d","webpack:///./src/modules/workflow/views/ReadView.vue","webpack:///./src/modules/workflow/views/ListView.vue?0d77","webpack:///./src/modules/workflow/containers/ListContainer.vue?215d","webpack:///./src/modules/workflow/components/Modals/DrafterViewModal.vue?36e5","webpack:///./src/modules/workflow/components/Modals/DrafterViewModal.ts?fe96","webpack:///./src/modules/workflow/components/Modals/DrafterViewModal.vue","webpack:///./src/modules/workflow/containers/ListContainer.ts","webpack:///./src/modules/workflow/containers/ListContainer.ts?0ac0","webpack:///./src/modules/workflow/containers/ListContainer.vue","webpack:///./src/modules/workflow/views/ListView.ts","webpack:///./src/modules/workflow/views/ListView.ts?a708","webpack:///./src/modules/workflow/views/ListView.vue","webpack:///./src/modules/workflow/views/ApprovalStateView.vue?4958","webpack:///./src/modules/workflow/containers/ApprovalStateContainer.vue?707d","webpack:///./src/modules/workflow/containers/ApprovalStateContainer.ts","webpack:///./src/modules/workflow/containers/ApprovalStateContainer.ts?e83e","webpack:///./src/modules/workflow/containers/ApprovalStateContainer.vue","webpack:///./src/modules/workflow/views/ApprovalStateView.ts","webpack:///./src/modules/workflow/views/ApprovalStateView.ts?a757","webpack:///./src/modules/workflow/views/ApprovalStateView.vue","webpack:///./src/modules/workflow/router/index.ts","webpack:///./src/modules/@account/router/auth-guard.ts","webpack:///./src/modules/@account/router/index.ts","webpack:///./src/modules/@orgmap/views/PopupView.vue?3ebc","webpack:///./src/modules/@orgmap/containers/hr/DepartmentListContainer.vue?1be7","webpack:///./src/modules/@orgmap/containers/hr/DepartmentListContainer.ts","webpack:///./src/modules/@orgmap/containers/hr/DepartmentListContainer.ts?7571","webpack:///./src/modules/@orgmap/containers/hr/DepartmentListContainer.vue","webpack:///./src/modules/@orgmap/containers/PersonListContainer.vue?3cd9","webpack:///./src/modules/@orgmap/containers/PersonListContainer.ts","webpack:///./src/modules/@orgmap/containers/PersonListContainer.ts?bd81","webpack:///./src/modules/@orgmap/containers/PersonListContainer.vue","webpack:///./src/modules/@orgmap/containers/SearchContainer.vue?d34a","webpack:///./src/modules/@orgmap/containers/SearchContainer.ts","webpack:///./src/modules/@orgmap/containers/SearchContainer.ts?809b","webpack:///./src/modules/@orgmap/containers/SearchContainer.vue","webpack:///./src/modules/@orgmap/containers/WishListContainer.vue?25b2","webpack:///./src/modules/@orgmap/containers/WishListContainer.ts","webpack:///./src/modules/@orgmap/containers/WishListContainer.ts?be3b","webpack:///./src/modules/@orgmap/containers/WishListContainer.vue","webpack:///./src/modules/@orgmap/containers/hr/MemberListContainer.vue?eae2","webpack:///./src/modules/@orgmap/containers/hr/MemberListContainer.ts","webpack:///./src/modules/@orgmap/containers/hr/MemberListContainer.ts?5dd4","webpack:///./src/modules/@orgmap/containers/hr/MemberListContainer.vue","webpack:///./src/modules/@orgmap/containers/public/PublicAddressFolderListContainer.vue?0223","webpack:///./src/modules/@orgmap/containers/public/PublicAddressFolderListContainer.ts","webpack:///./src/modules/@orgmap/containers/public/PublicAddressFolderListContainer.ts?0a75","webpack:///./src/modules/@orgmap/containers/public/PublicAddressFolderListContainer.vue","webpack:///./src/modules/@orgmap/containers/public/PublicAddressMemberListContainer.vue?42bf","webpack:///./src/modules/@appbase/components/Paginate/PageNavigationBar.vue?5eee","webpack:///./src/modules/@appbase/components/Paginate/Paginate.vue?f00c","webpack:///src/modules/@appbase/components/Paginate/Paginate.vue","webpack:///./src/modules/@appbase/components/Paginate/Paginate.vue?f534","webpack:///./src/modules/@appbase/components/Paginate/Paginate.vue","webpack:///./src/modules/@appbase/components/Paginate/PageNavigationBar.ts","webpack:///./src/modules/@appbase/components/Paginate/PageNavigationBar.ts?5e31","webpack:///./src/modules/@appbase/components/Paginate/PageNavigationBar.vue","webpack:///./src/modules/@orgmap/containers/public/PublicAddressMemberListContainer.ts","webpack:///./src/modules/@orgmap/containers/public/PublicAddressMemberListContainer.ts?4ec9","webpack:///./src/modules/@orgmap/containers/public/PublicAddressMemberListContainer.vue","webpack:///./src/modules/@orgmap/containers/personal/PersonalFolderListContainer.vue?489a","webpack:///./src/modules/@orgmap/containers/personal/PersonalFolderListContainer.ts","webpack:///./src/modules/@orgmap/containers/personal/PersonalFolderListContainer.ts?2c0c","webpack:///./src/modules/@orgmap/containers/personal/PersonalFolderListContainer.vue","webpack:///./src/modules/@orgmap/containers/personal/PersonalMemberListContainer.vue?f021","webpack:///./src/modules/@orgmap/containers/personal/PersonalMemberListContainer.ts","webpack:///./src/modules/@orgmap/containers/personal/PersonalMemberListContainer.ts?0d03","webpack:///./src/modules/@orgmap/containers/personal/PersonalMemberListContainer.vue","webpack:///./src/modules/@orgmap/views/hr/HrView.vue?27c1","webpack:///./src/modules/@orgmap/views/hr/HrUserListView.vue?1f4e","webpack:///./src/modules/@orgmap/views/hr/HrUserListView.ts","webpack:///./src/modules/@orgmap/views/hr/HrUserListView.ts?3a1f","webpack:///./src/modules/@orgmap/views/hr/HrUserListView.vue","webpack:///./src/modules/@orgmap/views/hr/HrView.ts","webpack:///./src/modules/@orgmap/views/hr/HrView.ts?b9f0","webpack:///./src/modules/@orgmap/views/hr/HrView.vue","webpack:///./src/modules/@orgmap/views/personal/PersonalAddressBookView.vue?886d","webpack:///./src/modules/@orgmap/views/personal/PersonalMembersView.vue?05b3","webpack:///./src/modules/@orgmap/views/personal/PersonalMembersView.ts","webpack:///./src/modules/@orgmap/views/personal/PersonalMembersView.ts?4b66","webpack:///./src/modules/@orgmap/views/personal/PersonalMembersView.vue","webpack:///./src/modules/@orgmap/views/personal/PersonalAddressBookView.ts","webpack:///./src/modules/@orgmap/views/personal/PersonalAddressBookView.ts?7a01","webpack:///./src/modules/@orgmap/views/personal/PersonalAddressBookView.vue","webpack:///./src/modules/@orgmap/views/public/PublicAddressBookView.vue?60c1","webpack:///./src/modules/@orgmap/views/public/PublicMembersView.vue?7c78","webpack:///./src/modules/@orgmap/views/public/PublicMembersView.ts","webpack:///./src/modules/@orgmap/views/public/PublicMembersView.ts?0c66","webpack:///./src/modules/@orgmap/views/public/PublicMembersView.vue","webpack:///./src/modules/@orgmap/views/public/PublicAddressBookView.ts","webpack:///./src/modules/@orgmap/views/public/PublicAddressBookView.ts?33b3","webpack:///./src/modules/@orgmap/views/public/PublicAddressBookView.vue","webpack:///./src/modules/@orgmap/views/OrgmapMainBase.ts","webpack:///./src/modules/@orgmap/components/OrgTab.vue?c210","webpack:///./src/modules/@orgmap/components/OrgTab.ts","webpack:///./src/modules/@orgmap/components/OrgTab.ts?fff2","webpack:///./src/modules/@orgmap/components/OrgTab.vue","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalSlotLayout.vue?03a2","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalSlotLayout.ts","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalSlotLayout.ts?96f8","webpack:///./src/modules/@appbase/containers/ModalContainer/ModalSlotLayout.vue","webpack:///./src/modules/@orgmap/views/PopupView.ts","webpack:///./src/modules/@orgmap/views/PopupView.ts?7420","webpack:///./src/modules/@orgmap/views/PopupView.vue","webpack:///./src/modules/@orgmap/views/MainView.vue?4392","webpack:///./src/modules/@orgmap/views/MainView.ts","webpack:///./src/modules/@orgmap/views/MainView.ts?35c7","webpack:///./src/modules/@orgmap/views/MainView.vue","webpack:///./src/modules/@orgmap/router/index.ts","webpack:///./src/modules/@appbase/router/guards/portal-cache.guard.ts","webpack:///./src/modules/@appbase/router/guards/i18n.guard.ts","webpack:///./src/modules/@appbase/router/vue-router-multiguard.helper.ts","webpack:///./src/modules/@appbase/router/index.ts","webpack:///./src/modules/@gnb/router/index.ts","webpack:///./src/templates/BaseLayout/BaseLayout.vue?a836","webpack:///./src/components/common/Modal/DocumentViewer.vue?0d9e","webpack:///./src/components/common/Modal/DocumentViewer.ts","webpack:///./src/components/common/Modal/DocumentViewer.ts?151e","webpack:///./src/components/common/Modal/DocumentViewer.vue","webpack:///./src/templates/BaseLayout/BaseLayout.ts","webpack:///./src/templates/BaseLayout/BaseLayout.ts?c14f","webpack:///./src/templates/BaseLayout/BaseLayout.vue","webpack:///./src/router/index.ts","webpack:///./src/modules/@appbase/util/eventBus.ts","webpack:///./src/modules/board/api/article.ts","webpack:///./src/modules/board/api/board.ts","webpack:///./src/modules/board/api/index.ts","webpack:///./src/modules/workflow/components/Modals/DrafterViewModal.ts","webpack:///./src/modules/workflow/views/ReadView.vue?07c1","webpack:///./src/modules/@gnb/api/gnb.ts","webpack:///./src/modules/@gnb/api/orgmap.ts","webpack:///./src/modules/@gnb/api/totalSearch.ts","webpack:///./src/modules/@gnb/api/mail.ts","webpack:///./src/modules/@gnb/api/index.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SubGlobalNavigationBar.vue?d28f","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SubGlobalNavigationBar.ts","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SubGlobalNavigationBar.ts?17e4","webpack:///./src/modules/@gnb/components/GlobalNavigationBar/SubGlobalNavigationBar.vue","webpack:///./src/components/common/Modal/DocumentViewer.vue?1c3e","webpack:///./src/modules/@gnb/store/types.ts","webpack:///./src/modules/mail/views/ReadView.vue?a426","webpack:///./src/modules/contact/store/types.ts","webpack:///./src/modules/@appbase/templates/CardTemplate/CardTemplate.scss","webpack:///./src/modules/@appbase/util/modal-helper.ts","webpack:///./src/modules/@appbase/util/size-helper.ts","webpack:///./src/App.vue?758c","webpack:///src/App.vue","webpack:///./src/App.vue?4c4f","webpack:///./src/App.vue","webpack:///./src/modules/@appbase/components/modal/modal-names.ts","webpack:///./src/modules/@appbase/components/modal/EumModal.vue?fd6c","webpack:///./src/modules/@appbase/components/modal/EumModal.vue?8cda","webpack:///./src/modules/@appbase/components/modal/EumModal.vue?89be","webpack:///./src/modules/@appbase/components/modal/EumModal.vue","webpack:///./src/modules/@appbase/components/modal/RoleGroupModal.vue?76c1","webpack:///./src/modules/@appbase/components/common/SortableJs/BrowserInfo.js","webpack:///./src/modules/@appbase/components/common/SortableJs/utils.js","webpack:///./src/modules/@appbase/components/common/SortableJs/Animation.js","webpack:///./src/modules/@appbase/components/common/SortableJs/PluginManager.js","webpack:///./src/modules/@appbase/components/common/SortableJs/EventDispatcher.js","webpack:///./src/modules/@appbase/components/common/SortableJs/Sortable.js","webpack:///./src/modules/@appbase/components/common/VueDraggable/VueDraggable.js","webpack:///./src/modules/@appbase/components/modal/RoleGroupModal.vue?87fd","webpack:///./src/modules/@appbase/components/modal/RoleGroupModal.vue?f390","webpack:///./src/modules/@appbase/components/modal/RoleGroupModal.vue","webpack:///./src/modules/@appbase/components/modal/IframeModalV3.vue?9395","webpack:///./src/modules/@appbase/components/modal/IframeModalV3.vue?f376","webpack:///./src/modules/@appbase/components/modal/IframeModalV3.vue?31e7","webpack:///./src/modules/@appbase/components/modal/IframeModalV3.vue","webpack:///./src/modules/@appbase/module.ts","webpack:///./src/main.ts","webpack:///./src/modules/mail/types/enums.ts","webpack:///./src/modules/mail/components/Write/WriteBody.vue?70a8","webpack:///./src/util/i18n-setup.ts","webpack:///./src/modules/@appbase/templates/PageLayout/PageLayout.scss","webpack:///./src/modules/@appbase/components/atom/ProgressRing.vue?7134","webpack:///./src/modules/@appbase/components/forms/FormGroup.vue?49e6","webpack:///src/modules/@appbase/components/forms/FormGroup.vue","webpack:///./src/modules/@appbase/components/forms/FormGroup.vue?8955","webpack:///./src/modules/@appbase/components/forms/FormGroup.vue","webpack:///./src/modules/@appbase/components/forms/MultilineTextBoxField.vue?00a3","webpack:///src/modules/@appbase/components/forms/MultilineTextBoxField.vue","webpack:///./src/modules/@appbase/components/forms/MultilineTextBoxField.vue?6cd1","webpack:///./src/modules/@appbase/components/forms/MultilineTextBoxField.vue","webpack:///./src/modules/@appbase/components/forms/TextBoxField.vue?9fcf","webpack:///src/modules/@appbase/components/forms/TextBoxField.vue","webpack:///./src/modules/@appbase/components/forms/TextBoxField.vue?8f94","webpack:///./src/modules/@appbase/components/forms/TextBoxField.vue","webpack:///./src/components/common/Modal/ModalMask.vue?2acb","webpack:///./src/components/common/Modal/ModalMask.ts","webpack:///./src/components/common/Modal/ModalMask.ts?ef9a","webpack:///./src/components/common/Modal/ModalMask.vue","webpack:///./src/modules/@appbase/components/organism/Modals/EmailAttachmentModal.vue?e91c","webpack:///./src/modules/@appbase/components/atom/Paginate.vue?9b8d","webpack:///./src/util/local-storage-helper.ts","webpack:///./src/modules/@orgmap/types/enums.ts","webpack:///./src/components/common/DatePicker/DatePicker.vue?4d7c","webpack:///./src/components/common/DatePicker/DatePicker.ts","webpack:///./src/components/common/DatePicker/DatePicker.ts?2011","webpack:///./src/components/common/DatePicker/DatePicker.vue","webpack:///./src/modules/board/store/types.ts","webpack:///./src/util/debounce.ts","webpack:///./src/util/cache.ts","webpack:///./src/modules/@appbase/libs/flowjs/FlowFileHandler.ts","webpack:///./src/modules/contact/api/personal.ts","webpack:///./src/modules/contact/api/contact.ts","webpack:///./src/modules/contact/api/local.ts","webpack:///./src/modules/contact/api/group.ts","webpack:///./src/modules/contact/api/public.ts","webpack:///./src/modules/contact/api/share.ts","webpack:///./src/modules/contact/api/favorite.ts","webpack:///./src/modules/contact/api/index.ts","webpack:///./src/modules/calendar/containers/EditContainer.ts","webpack:///./src/modules/@appbase/util/date-helper.ts","webpack:///./src/modules/workflow/api/common.ts","webpack:///./src/modules/workflow/api/document.ts","webpack:///./src/modules/workflow/api/form.ts","webpack:///./src/modules/workflow/api/index.ts","webpack:///./src/modules/@gnb/components/Common/RecipientField.vue?4181","webpack:///./src/modules/board/containers/ReadContainer.vue?64a8","webpack:///./src/modules/@appbase/util/invalidate-url.ts","webpack:///./src/modules/@appbase/components/Paginate/Paginate.vue?e908"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","types","state","showSidebar","currentMenu","loading","currentPage","payload","busy","action","comCode","deptCode","commit","api","hr","getEmployeeList","items","totalCount","members","map","x","id","personCode","displayName","nameEn","displayNameEng","nameChi","displayNameChi","deptName","deptNameEn","photo","photoPath","titleCode","title","titleName","titleEn","titleNameEn","positionCode","positionName","positionNameEn","roleCode","roleName","roleNameEn","email","mobile","mobileTel","tel","officeExtTel","officeTel","officeFax","company","companyName","companyEn","companyNameEng","selected","employeeNumber","homeAddress","selectedAll","searchOrg","option","publics","getPublicContactsList","res","getPublicContactsMembersList","identity","funcArr","personal","getBasicContactFolder","getContactTree","local","flat","getContactsList","department","jobTitle","itemClass","forEach","includes","dispatch","item","group","getGroupMembers","children","targetPersonCode","found","find","user","options","wish","selections","users","select","single","container","selItems","filter","flatten","list","stack","next","pop","findIndex","a","reverse","flattened","newItems","y","text","evalContainerSelectAll","evalMembersSelectAll","containerItem","valueType","newContainer","activated","hasValueTypeItem","apiArr","TWishContainerValueType","includeAllFlag","query","retiredFlag","idxNo","indexOf","selectedItems","temp","JSON","parse","stringify","clone","containerId","personId","index","stateItems","dept","departments","addableDept","move","selectFixedComcode","public","containers","actions","getters","mutations","selection","isRead","mail","changeReadState","getDetail","method","parentId","folder","getFolderTree","folders","listData","currentEmail","getEmailById","orderBy","favorites","sort","b","getFolderById","hasChildren","ret","idx","ids","emails","selectAll","selectionFrom","idxCtrl","idxFrom","idxTo","addSelections","applyAddtionalProps","nodeStatus","moreAvailable","nextPageOffset","search","isAll","isSearch","unreadOnly","sorts","pattern","toolbar","orientation","write","visibles","sender","to","cc","bcc","file","bigfile","menues","icon","expand","child","path","colorArray","getMyFolderList","myFolder","ews_folder","getMyFolderItems","log","folderItem","color","colorCode","getCompanyList","db_main","getCompanyFolderList","getDeptFolderList","batchCalendars","isValidReloadFromChangedDate","forceType","flag","backDate","backupDate","date","curDate","currentDate","vmode","calendarMode","EnumCalendarViewType","Month","mStart","dateutil","mEnd","Week","wStart","wEnd","Daily","validEvent","errMessage","subject","start","starttime","end","endtime","isAllDayEvent","requiredAttendees","importance","optionalAttendees","address","ews_resource","getRooms","catch","monthDate","Date","currentCalendarDate","current","accountState","getSharedFolders","resultArray","itemList","rootIdx","root_index","eventId","calendarMonthMatrix","calendarWeekMatrix","calendarDateMatrix","viewType","assign","promiseArr","newCalendar","isEWS","fields","location","body","recurrence","resources","attachments","reminderMinutesBeforeStart","ews_calendar","createEvent","dispatchEventBus","PersonCode","rootState","$account","db_calendar","createCalendarEvent","editEvent","currentUser","appointmentType","updateRCalendarEvent","updateCalendarEvent","calendarHideShow","recursionFlags","CALENDAR_DAILY_EVENT_LOAD_LIST","calendarDailyEvents","endDate","setDate","getDate","getCalendarEventListWithRecurrence","EwsFolderIDArray","mylist","checked","StartDate","EndDate","edate","companylist","Number","getCalendarDailyEventList","FolderID","deptlist","events","sharedlist","calendar","existID","parentFolder","parentFolderId","parentName","isShared","sortFn","dateTimeCreated","forceViewMode","CALENDAR_EVENT_LOAD_LIST","calendarEvents","_getCurrentStartDate","mdate","_getCurrentEndDate","getCalendarEventList","keyword","resultOption","Keyword","ParentFolderID","searchCalendarEventList","parentFolderArray","showContentMask","currentFolder","myRooms","currentContextState","currentError","setAppointment","currentCalendarItem","calendarPrintEvents","currentCalendarTime","calendarSelectedEventID","calendarNextMonthMatrix","editCalendar","showDetailShareOption","showDetailSearchOption","showRecurringOption","searchEvents","loadedActions","currentRecurringItem","todayMode","findFolder","childFolderCount","foundFolder","findFolderAll","validChecking","savIdxArr","validCheckingAll","array","getContainsMonthEvents","resultEvents","sDate","ui_month_start","eDate","ui_month_end","ui_month_jump_date","newEvent","getContainsWeekEvents","strDate","ui_week_start","time","tarr","split","last","min","replace","getFullYear","getMonth","getHours","getMinutes","getContainsWeekCalcEvents","addPrintEvent","newObj","curDateItem","newdate","savMonth","setMonth","Math","abs","listStr","dbType","arrIdx","checkedIdxArray","folderShare","FolderName","SharedList","chkArray","lsh","set","myfolder","companyfolder","deptfolder","copyEvents","allEvents","limitCount","current_h_idx_flags","removeFlag","IsAtLeastOneDate","scheduleDuration","dayCount","isNaN","matrix","Rows","today","daysList","di","isWeekStart","f","isToday","isSelected","isDisplayArea","weekStartDate","weekEndDate","curEvents","curAllEvents","limitedEvents","litem","ui_month_hindex","ui_copyed","sdate","realEndDateTime","realAndDateOnly","isEndZero","expTimes","totalDays","round","ui_month_width_count","dayGap","calcDay","getDay","copyCount","floor","savWCount","copyItem","cDate","ui_month_in_week","flagIdx","addedCount","idxDate","ridxDate","getSeconds","setSeconds","moreCount","dateItem","isSun","isSat","MoreEventsCount","NewRows","Array","cStart","cEnd","toString","ui_week_end","daysEventList","timeList","valueList","oDate","calcEvents","timevalue","tidx","duplicateCheckArray","timeItem","eventArr","date30m","setMinutes","TotalMins","ui_week_height_count","svalue","evalue","virtualTime","Vsvalue","Vevalue","sidx","eidx","max","dp","num","ui_week_maxcount","source","smax","saveIndexArray","calcIdx","sStartNum","sevent","bStartNum","bEndNum","ui_week_ui_index","titleDateItem","ui_days_week_time_text","isAddedFlag","fevent","copyEvent","organizer","newMat","eventsList","errorMessage","isShowIgnorePanel","hasAttachments","status","pidLidRecurrenceType","ui_resourceArray","resourceId","startDate","ui_useRecurringButton","ui_useDefaultDate","ui_useRecurringDisplay","ui_useRecurring","ui_recurringType","monthValue","firstDayOfWeekValue","daysOfTheWeekArray","ui_endType","interval","numberOfOccurrences","codeValues","isCancelled","isRecurring","isAllowUpdate","isReadyData","isLoading","allowedResponseActions","miniCalendarMatrix","isWorkingTime","basics","currentCalendar","Subject","Location","OrganizerName","OrganizerAddress","RequiredAttendees","OptionalAttendees","EumPageNumber","EumRowsPerPage","selectedFolder","delegateUser","currentContactItem","contacts","favoriteFolder","isFavorite","sharedFolder","surname","givenName","officeLocation","hasPicture","businessPhone","businessFax","businessHomePage","businessAddress","city","countryOrRegion","postalCode","street","deletedDate","storedType","ContactsStoredType","DB","isSharing","listMode","showCheckbox","showEditToolbar","selectContactId","showSearch","favorite","departmental","shared","trash","lists","modalStatus","new","share","common","getApplicationOptionList","optionList","optionValues","isCommon","applicationId","typeId","results","appOptions","optionItem","systemOptions","systemOption","propertyName","subOptionValue","subOptionCode","applicationOption","system","application","form","getForm","workflows","drafterInfo","workflowMenuList","workflowHeader","documentPages","currentArticle","writeConfig","getMySetting","isFirst","createMySetting","setMysetting","sortValue","i18n","locale","getApplicationList","getDelegationList","delegation","setDelegator","seq","removeDelegator","Seq","DeleteFlag","setUserConfig","getUserBusinessCardStateList","getUserBusinessCardInfo","setUserBusinessCardInfo","checkDownloadEml","checkResult","succeed","downloadPC","alertAsync","resultCode","exception","maxSize","transitionSize","readablizeBytes","bytes","pow","nMaxSize","nTransitionSize","size","languageFields","timeFields","cardState","userCard","settings","mySetting","applicationList","delegate","tabOrder","language","isReceiveApproveMail","isReceiveNextMail","isReceiveBeforeMail","isReceiveAfterMail","isReceiveRefMail","isReceiveCompleteMail","isReceiveCompleteApproveMail","isReceiveDeptReceiptMail","isTUReceiveApproveMail","isTUReceiveNextMail","isTUReceiveBeforeMail","isTUReceiveAfterMail","isTUReceiveRefMail","isTUReceiveCompleteMail","isTUReceiveCompleteApproveMail","isTUReceiveDeptReceiptMail","fiDocumentCount","createdId","createdDate","isCreated","isUpdate","isDelete","actionType","delegationList","applicationGroupList","styleAction","styleMutation","configureLogging","store","subscribeAction","stateTemp","subscribe","mutation","Vue","use","Vuex","page","Store","storeAccount","$orgmap","storeOrgmap","$appbase","moduleAppbase","$mail","storeMail","$calendar","storeCalendar","$contact","storeContact","$workflow","storeWorkflow","$board","storeBoard","$gnb","storeGnb","render","_vm","this","_h","$createElement","_c","_self","class","classNames","attrs","staticStyle","on","logoutLoad","staticRenderFns","modal","component","_e","BaseLayout","Component","computed","mapGetters","open","staticClass","close","scopedSlots","_u","fn","_l","navi","_v","$event","naviationClick","_s","selectItem","highlightId","$emit","navigation","_isloading","proxy","$t","ok","cancel","_t","ButtonGroup","primary","preventDefault","ToolbarButton","__decorate","Prop","String","default","Boolean","show","ModalMask","Modal","ModalBody","ModalFooter","explanation","mousemove","header","description","ModalHeader","style","visibility","Tooltip","directives","rawName","expression","ProgressRing","components","methods","mapActions","mapMutations","dropdown","DropDown","ctrlKey","label","label2","DropDownButton","isFirstPage","moveToPrev","totalPageCount","range","isLastPage","moveToNext","noLiSurround","pagination","pageLinkClass","firstPageSelected","disabledClass","domProps","firstButtonText","selectFirstPage","_k","keyCode","hidePrevNext","prevLinkClass","prevText","prevPage","breakViewLinkClass","disabled","breakViewText","activeClass","content","handlePageSelected","lastPageSelected","nextLinkClass","nextText","nextPage","lastButtonText","selectLastPage","containerClass","pageClass","prevClass","breakView","breakViewClass","nextClass","props","pageCount","required","forcePage","clickHandler","pageRange","marginPages","firstLastButton","beforeUpdate","innerValue","newValue","pages","setPageItem","halfPageRange","selectedRangeLow","selectedRangeHigh","setBreakView","PageNavigationBar","ceil","total","moveByNumber","lastPage","calcNextPageNumber","calcPrevPageNumber","Paginate","valueField","nameField","ComboBox","expanded","headerField","arguments","childrenField","hasChildrenField","targetItem","TreeListItem","Function","Watch","ref","width","wValue","height","hValue","dragMouseDown","PopupModal","positions","clientX","clientY","movementX","movementY","positionStyle","onmousemove","elementDrag","onmouseup","closeDragElement","TreeList","imgUrl","Name","GraphList","o365GuId","teamsId","channelId","driveId","itemId","groupId","order","attachment","getTeamsLists","replaceAll","$set","getTeamsChannelsList","getChannelsDetail","plist","parentReference","getoneDriveItemsChildren","reschild","getoneDriveList","getoneDriveListChildren","selectedId","Folder","File","extension","substring","lastIndexOf","toLowerCase","o365Guid","selectedAttachment","accountTypes","EmailAttachmentModal","selectedItem","oneDriveList","teamsList","navigationList","selectedItemYn","parseInt","fetch","blob","itemFile","changeModal","filename","ModalContainer2","iframe","getElementById","$router","ModalContainer","PopupLayout","_m","IframeModal","isTeams","newUrl","$","css","removeClass","iframeClosed","attr","$layer","$ifrm","$html","contentDocument","intervalCount","trigger","setInterval","$common","addClass","$headerTitle","$footer","$mheader","$mfooter","appendTo","clearInterval","w","contentWindow","frameElement","nodeName","parent","jQuery","opener","click","ex","opacity","animate","duration","complete","removeAttr","elem","empty","hide","PageLayout","handleClose","loadingMessage","noFooter","DEFAULT_STYLE","ModalLayout","modalHelper","LoadingBar","CardTemplate","_obj","full","isBoard","isAlarm","fnSetAlarm","fnSetBookmark","isBookmark","userCurrent","userInfo","bookMarkId","menuId","sysId","locationPath","locationSearch","watch","$route","from","MENUID","pathname","fnCheckBookmark","menuItem","fhCheckAlarm","created","dragin","useSort","totalSizeLimit","deleteFile","handleSelectAll","nTotal","uniqueIdentifier","getFileId","files","isArray","_i","$$a","$$el","$$c","$$v","$$i","concat","download","beforeId","currentId","orderUp","afterId","orderDown","percent","FileListItem","flowHelper","navigator","msSaveOrOpenBlob","link","URL","createObjectURL","downloadUrl","flowFileSwapStart","swapFileSort","sourceId","targetId","flowFileSwapCompleted","flowFileSwapError","FileList","totalSize","reduce","sum","uploadedSize","sizeUploaded","OfficeHelper","outside","FlowFileHandler","uploader","context","progress","totalSizeLimitExcessMessage","bannedExtentions","bannedExtentionMessage","emptyFileDenialMessage","flow","filtered","alert","officeHelper","notify","match","upload","meta","splitFileName","fileExtention","identifier","serverPath","deleteFiles","flowFileUploadStart","flowFileUploadCompleted","flowFileError","FLOW_DROP_SELECTOR","flowDirective","inserted","el","binding","vnode","browseButton","browseFolderButton","deleteSelectedFilesButton","deleteSelectedFilesMessage","querySelector","assignDrop","assignBrowse","assignDeleteSelectedFiles","FlowFileUploader","isNotSupported","uploadUrl","singleFile","chunkSize","testChunks","Flow","support","arr","addFiles","removeFile","userLang","menuName","menuNameEn","menuItemPath","menuPermission","newArticleBoard","fnExpandMenu","fnClickMenu","customClass","expandCustomFlag","stopPropagation","expandflag","expandFlagChange","LeftMenuItem","expandbuttonChange","parentMenuId","menuHelper","getSubMenuId","isPermission","isNewArticle","updateIsNewIcon","systemId","$el","scrollIntoView","immediate","LeftMenu","reqMenuId","iObj","subObj","classList","contains","remove","add","removeAttribute","targetUrl","leftItem","getLeftMenuList","menuPath","getMenuIdFullPath","setMenuParam","permissions","userConfig","fnChangeMenuId","getNewArticleBoard","subcontent","fetchNewArticleBoardId","usertypes","GlobalNavigationBar","SubContentTemplate","GnbLeftView","useLeft","login","username","password","client","post","url","loginex","loginHint","logout","getCurrentUser","getPhotoUrl","getPhotoUrlByCodes","codes","check","clinet","params","ep","apiAccount","auth","account","ac","uGetZero","IEDate","uGetDateFormat","format","_date","getTime","uGetWeekArray","WeekArray","week","uGetDateOnly","rDate","uGetWeekStartPrev","mDate","uGetWeekStartDate","firstDay","uGetWeekEndDate","uGetWeekEndNext","uGetMonthStartPrev","uGetMonthStartDate","uGetMonthEndDate","uGetMonthEndNext","uGetDaysInMonth","isForDisplay","DateArray","PrevShiftDays","EndDateNum","NextShiftDays","prvDate","nxtDate","backMonthArray","newArray","isRemoveFirstLine","newDate","uGetDaysInWeek","uGetIsInDate","setHours","uGetTimeArray","displayArr","left","right","ampm","uGetMonthArray","uGetTotalDiffMinutes","diffMs","totalMins","uGetInDateBoundary","sourceStart","sourceEnd","targetStart","targetEnd","ss","se","ts","te","isTargetContain","isSourceContain","isSame","uGetDate","difValue","difDate","difType","setTime","setFullYear","DateAndTimeSplitor","dateString","filters","operator","condition","wellKnownParentName","Traversal","rlt","setFolderPermission","EwsFolderID","EwsFolderName","CalendarPermissionUsers","getSharedUsers","folderId","getFolder","ItemId","editFolderName","editFolderColor","addFolder","deleteFolder","delete","convertFolderToClient","parentID","calendarEventList","convertFolderToServer","ID","DisplayName","CalendarEventList","Type","Color","ComCode","DeptCode","convertAppointmentTypeToClient","convertEventToClient","db_ewsid","ewsid","EwsID","ewsID","AppointmentType","parentFolderID","organizerName","organizerAddress","Importance","IsAllDayEvent","IsCancelled","pidLidRecurrencePattern","recurringString","RecurringString","calendarEventBody","CalendarEventBody","requiredAttendeesList","Address","optionalAttendeesList","Attachments","attachmentFileCode","AttachmentFileCode","resourceID","ResourceID","db_masterID","masterID","MasterID","db_selectID","selectGuid","SelectGuid","setFolderAttrs","newItem","getCompanyDailyEventList","EumNoCondition","getRecurringMasterID","getCalendarResource","USE_TA_CALENDAR_EVENT","USE_TC_RESOURCE_TYPE","getAllCalendarResource","getFindCalendarResource","IsDeleted","Param1","Param2","Param3","Param4","Param5","Param6","Param7","Param8","Param9","Param10","EumSearchCategory","EumSearchKey","createCalendarResource","CreatedId","UpdatedId","CreatedDate","UpdatedDate","ResourceType","updateCalendarResource","deleteCalendarResource","getCalendarFolder","USE_TA_FOLDER_ATTRS","USE_TC_FOLDER_TYPE","getAllCalendarFolder","getFindCalendarFolder","ParentID","ParentIDMin","ParentIDMax","createCalendarFolder","FolderAttrs","FolderType","updateCalendarFolder","deleteCalendarFolder","convertAppointmentTypeToServer","convertRecurrenceToServer","CalendarRecurrence","RecurringType","Interval","NumberOfOccurrences","FirstDayOfWeek","DayOfMonth","dayOfMonth","DaysOfTheWeek_0","DaysOfTheWeek_1","DaysOfTheWeek_2","DaysOfTheWeek_3","DaysOfTheWeek_4","DaysOfTheWeek_5","DaysOfTheWeek_6","DaysOfTheWeek_7","DaysOfTheWeek_8","DaysOfTheWeek_9","convertRecurrenceToClient","recurringType","firstDayOfWeek","month","hasEnd","daysOfTheWeek_0","daysOfTheWeek_1","daysOfTheWeek_2","daysOfTheWeek_3","daysOfTheWeek_4","daysOfTheWeek_5","daysOfTheWeek_6","daysOfTheWeek_7","daysOfTheWeek_8","daysOfTheWeek_9","rRequiredAttendeesList","rOptionalAttendeesList","calendarREventBody","CalendarREventBody","calendarRecurrence","isSendMail","IsSendMail","convertEventToServer","ParentFolderId","Body","RequiredAttendeesList","OptionalAttendeesList","DeletedAttachIDArray","deletedAttachIDs","getCalendarEvent","USE_TA_CALENDAR_EVENT_BODY","USE_TA_OPTIONAL_ATTENDEES","USE_TA_REQUIRED_ATTENDEES","USE_TA_CALENDAR_RECURRENCE","USE_TA_CALENDAR_RESOURCE","USE_TA_CALENDAR_FOLDER","USE_TA_CALENDAR_R_EVENT","getAllCalendarEvent","getFindCalendarEvent","StartDateStart","StartDateEnd","EndDateStart","EndDateEnd","IsRecurring","CalendarFolder","CalendarResource","deleteCalendarEvent","getCalendarEventBody","EventID","getRCalendarEvent","USE_TA_CALENDAR_R_EVENT_BODY","USE_TA_R_OPTIONAL_ATTENDEES","USE_TA_R_REQUIRED_ATTENDEES","createRCalendarEvent","ROptionalAttendeesList","RRequiredAttendeesList","deleteRCalendarEvent","getConferenceResource","createReserveRequestCalendarMap","updateReserveRequestCalendarMap","deleteReserveRequestCalendarMap","reserveRequestId","createReserveRequest","updateReserveRequest","cancelReserveRequest","validationReserveRequest","validationReserveRequestIncludeWait","getMapByCalendarItemId","db_resource","db_folder","db_resourceReserve","composing","startDateText","endDateText","recurring","getRecurrencePatternDisplay","selectConference","groupDisplayName","folderName","tags","model","callback","reminderText","WriteForm","number","beautifyEndDate","substr","display","weeklist","showWeekText","join","setCurrentItem","WriteBody","RecipientFields","BASE","CURRENT","LOGIN","USER","LOGINEX","LOGINHINT","LOGOUT","getConsole","global","cached","cache","str","hit","regex","camelize","_","toUpperCase","removeNode","node","parentElement","insertNodeAt","fatherNode","position","refNode","nextSibling","insertBefore","openOrgchart","setInputFocus","inputKeyDown","tagAdded","tagDeleted","changeAutoComplete","tagProps","rcpts","autoCompleteSelect","img","showMove","storageAvailable","storage","setItem","removeItem","DOMException","localStorage","getItem","slot","avatar","selectedUsersCount","OrgchartToolbar","userList","OrgchartView","MobileView","OrgchartModal","showorg","isShow","showAutoComplete","autoCompleteList","srcElement","$refs","eumInput","ignoreBlur","ignoreEnter","uniqueId","valueKey","orgmapApi","User","openAutoComplete","imgRoot","clearAllAutoComplete","autoCompleteClearFlag","errorImg","count","obj","delayTime","offsetTop","offsetLeft","timeKey","flagKey","searchAction","appendByKey","displayDeptName","$input","focus","tempUser","v","updateRecipients","orgmapStorage","excepts","u","EumTagInput","orgTypes","STORAGE_KEY","defaultConfig","MailSplitSize","horizontal","vertical","invalidateConfig","config","update","newConfig","flatToHierarchy","roots","keys","parentCode","parentDeptCode","getOrgTree","getDeptPath","getDeptInfo","getUserInfo","encodeURIComponent","getCompanies","getFavoriteFolderList","traversal","getPersonalFavoriteFolderList","EWS","indexedKey","as","serialize","pageSize","offset","contactType","getPersonInfo","getUser","getUserByPersonCode","info","onDeleteOne","onSelect","onDelete","UserListItem","WishList","WishListItem","isFixedComcode","$$selectedVal","val","_value","currentCompany","multiple","userlang","onExpand","selectDept","addDept","DeptTreeItem","delay","timer","_this","DeptTree","oldValue","defaultLogic","comCodes","com","onSelectAll","onSelectOne","MemberListItem","newVal","MemberList","DepartmentInfo","domain","errorPhoto","protocol","host","selectUser","UserList","selectUserFlat","selectUsers","flatMap","orgmapTypes","DepartmentItem","clicks","DepartmentList","catchImgError","getFax","DetailCard","visible","companyNameDisplay","updateVisible","segment","chatUrl","tmenues","changed","mchildren","clickChildren","active","itemClick","NavigationTab","itemsModel","PropSync","selectedLang","ModalContent","ContentItem","selectedValue","Dropdown","onChange","Checkbox","isRule","PreferenceContentTemplate","Language","langChange","getUserConfig","languageLoad","getUserLanguage","selectedTime","Time","timeChange","timeZone","timeLoad","getUserTime","refInFor","handleSave","LanguageTime","contens","contents","save","name1","name2","onChangeAllChecked","allChecked","name3","onChangeNoticeChecked","noticeAlarmChecked","name4","onChangeBoardChecked","boardAlarmChecked","name5","onChangeServeyCHecked","serveyAlarmChecked","Board","getAlarmConfig","noticeAlarm","boardAlarm","serveyAlarm","setAlarmConfig","newAlarm","scheduleAlarm","onChagedAlarmConfig","onChangeNewAlarm","newAlarmChecked","onChangeScheduleAlarm","scheduleAlarmChecked","Wallpapers","Notice","checkUseAutoReply","placeholder","baseValue","togglePicker","setYear","year","dateValue","setMonthByCount","wItem","index2","out","isOut","selectDate","setToday","getScrollParent","element","includeHidden","getComputedStyle","excludeStaticParent","overflowRegex","test","overflow","overflowY","overflowX","findParent","selector","isID","isClass","tagName","DatePicker","MonthMatrix","YearArray","MonthArray","SelectItems","isAllowPlainText","isShowPicker","isInMouse","posX","posY","weekarray","PickerCollection","hidePicker","clientWidth","offsetY","clientHeight","yearArray","currentYear","yearMinMax","YearMinMax","monthArray","datePickerMatrix","renderPicker","toggleShowHide","selValue","selectedIndex","copyDate","newvalue","setShowYears","setShowMonths","setMonthMatrix","$this","cutil","$parent","scrollTop","scrollHeight","scroll","scrollLeft","addEventListener","isContain","checkBoxModel","CheckSlider","oldVal","SettingMissedTime","isEnabled","startTimeArray","endTimeArray","now","dateTime","getTimezoneOffset","startDateTime","endDateTime","checkDate","setOOF","startUtc","changeDate","endUtc","enabled","internalMessage","replyContent","externalMessage","tinyopts","dext5opts","MissedAutoReply","menubar","inline","relative_urls","remove_script_host","document_base_url","origin","content_style","setup","ed","editorCommands","execCommand","auto_focus","EditorBorder","Lang","EumEditor","Missed","checkReplyDate","getOOF","autoReply","_q","radioValues","onChangeView","LayoutView","mailLayout","getLayoutView","selectedCount","ListCount","mailListCount","getMailListCount","Layout","stateItem","tab","usageState","onClick","signInfo","freeContent","lang","officeAddress","titleNameEng","deptNameEng","officeAddressEng","SignatureModal","SignatureView","userBusinessCardStateList","roleNameEng","jobGroupName","jobGroupNameEng","homeAddressEng","homePage","template","autoSign","replyAutoSign","tempCardState","displayOrder","enumString","getCardInfo","loadEditorContent","setCardInfo","editor","getEditor","getBodyValue","getCardState","handlePreview","Signature","SignatureOptionView","preview","setUserBusinessCardState","onChangeUserCard","setUserCard","rules","rule","operation","changeIsEnable","lastIndex","edit","deleteRule","RuleView","tempText","innerDomain","getAppConfig","mailDomain","getUserInfoByEmail","routingType","conditions","cnt","getName","receiverList","convertConditions","getFolderName","confirmAsync","setRule","getRules","convert","selectedRule","addNewRule","selectRule","changeRules","closeNewRule","saveNewRule","senderList","senderPlaceholder","receiverPlaceholder","convertToActionsString","openModal","totalSizeString","sizeLimitString","unreadCount","readablizeBytesE","openFolder","deleteItem","deleteCompletely","pcModalShow","closePCModal","changePeriodType","savePCModal","folderModalShow","closeFolderModal","checkDisabled","StorageModal","StorageView","filteredFolders","fnExpandTree","fnFolderItemClick","itemclick","FolderItem","FolderList","treeType","nodeObj","mSubObj","SimpleFolderList","depth","exceptFolderNames","wellKnownFolderName","FolderMoveModal","moveFolders","userWellKnownName","fileName","showModal","using","getFolderList","process","reset","apiClient","MoveToDeletedItems","deleteSubFolders","HardDelete","getFolderInfo","getMailboxSizeInfo","sizeLimitBytes","totalSizeBytes","RuleModal","getDisplayName","readOnly","onDeleteClick","onSearching","onKeyDown","onKeyBlur","searchText","autoCompletesModel","onOrgmapClick","EVENT_ORG_POPUP","RecipientField","createEventBus","fieldGuid","handlePopupResult","removeEventBus","popupResult","recipientsSync","toLocaleLowerCase","inpElem","inpText","inpElemRect","getBoundingClientRect","ulElem","ulCompleteBox","top","trim","orgmap","handleUserPush","orgmapOption","openPopup","isFrame","AddRule","priority","CONST_HEADER","isReadOnlySender","con","newCondition","getUserItem","senderValue","receiverValue","headerValue","subjectValue","contentValue","fromAddress","convertToConditionString","onitemChanged","Rule","exceptions","setRules","isPermanentDelete","DeleteView","getDeleteInfo","Delete","autoDelivery","copyLabel","isCopy","member","requiredRecipients","AutoDeliveryView","ruleList","TempName","TempEmail","emailList","confirm","copyActions","AutoDelivery","AutoReplyView","AutoReply","categories","category","convertToClass","categoryEdit","categoryDelete","CategoryView","deleteCategory","setCategoryView","addNewCategory","selectedCategory","closeModal","CategoryModal","colors","updateCategory","createCategory","Category","categoryItem","getCategoryList","cat","Storage","getMultiMailList","multiList","saveList","tempRecipients","buttonTitle","MultiAccountModal","tempMultiList","emailRegex","RegExp","reason","validate","validateEmail","FormGroup","TextBoxField","multi","isDeleted","isUse","deleteMulti","MultiAccountView","onChangeValue","MultiAccount","updatedId","updatedDate","setMultiMail","CalendarSharedView","CalendarShared","firstday","selectDay","CalendarView","calendarList","eumNoCondition","eumPageNumber","eumRowsPerPage","eumSearchCategory","eumSearchKey","firstDayMax","firstDayMin","isCreate","persoN_CODE","rowNum","usE_TA_CONFIG","viewMode","viewModeMax","viewModeMin","workingEndTime","workingStartTime","workingWeek","contraction","setCalendarInfo","getCalendarInfo","Calendar","settingInfo","up","down","selectedTab","TabOrder","defaultTabOrder","tabs","newList","tabList","modifyList","newTabOrder","oldTabOrder","setTabSort","orderStr","ChangeApprovalOrder","saveSetting","change","DocumentMaintenance","isApmReuse","Setting","load","selApplication","applicationName","applicationNameEn","selReason","mstart","mend","delegatorName","openOrgmap","submit","delegator","getReason","getApplicationName","getStatus","deleteDelegator","ORG_LIST","ConfrontationView","selDelegator","reasons","dateFormat","checkedAll","mList","g","applicationItemList","applicationItem","applicationSubGroupList","sg","applicationSubItemList","applicationSubItem","delegatorList","orgData","getDispatchData","memberList","validateDelegator","delegatorCode","loadDelegationList","isChecked","appList","dateStr","loadApplicationList","Confrontation","ChangeApprovalPWView","ChangeApprovalPW","receiveNextMail","receiveBeforeMail","receiveAfterMail","receiveCompleteMail","receiveCompleteApproveMail","receiveApproveMail","receiveRefMail","receiveDeptReceiptMail","MailApproval","MailApprovalView","tureceiveNextMail","tureceiveBeforeMail","tureceiveAfterMail","tureceiveCompleteMail","tureceiveCompleteApproveMail","tureceiveApproveMail","tureceiveRefMail","tureceiveDeptReceiptMail","MessageApprovalView","MessageApproval","Reception","ChangePhoto","loadImageSrc","ChoosePhoto","fnSaveFileInfo","deleteImage","fileSrc","formData","FormData","startsWith","append","insertPersonPhotoUpload","personImageSave","loadImage","PreferneceModal","getChildrenMenues","menu","componentName","require","isMailOnly","getHasUnreadMailFolder","getUnreadMailList","FilterConditions","IsEqualTo","isIncludeChildSearch","deleted","moveEmails","destinationFolderId","getFiles","getSearchPagedList","gubun","getPagedList","read","getAttachments","deleteAttachments","fileIds","attachmentIds","getReadState","getBody","decodeBase64","atob","html","decodeURIComponent","htmls","setCategories","send","getListItem","createExportEmailFile","attachmentID","cid","getArticleFile","jobId","getUnreadCount","WellKnownFolderName","MsgFolderRoot","newData","getSubFolderTree","setFavorite","getFavorites","progressMessge","isSupported","WriteContainer","isBigfile","security","whenToSend","showStartDateModal","showEndDateModal","showStartTimeModal","showEndTimeModal","showMeetingRoomModal","showFolderModal","showAlarmModal","addCalendarId","setErrorMessage","room","eval","invoke","currentEditor","getContent","convertTagToRec","startTime","endTime","reserveResourceId","startDatetime","endDatetime","recurringOption","addCalendar","reserveSave","userListClear","requestTargets","isDepartment","isOptional","requestOptionalTargets","resName","inputData","recursiveDescription","fileCode","isRecursive","requestPersonCode","isCancel","approvalStatus","targets","resourceName","requestId","calendarItemId","msg","useApproval","finally","calcDate","_target","_pitem","citem","uid","pvalue","_occitem","getAddCalendarId","AlarmModal","StartDateModal","EndDateModal","FolderModal","MeetingRoomModal","StartTimeModal","EndTimeModal","currentItem","currentRecurring","messageClear","EMAIL_CURRENT","EMAIL_SELECT","EMAIL_SELECT_ALL","EMAIL_SELECT_CLEAR","EMAIL_DETAIL","FOLDER_LOAD","FOLDER_LIST","debounce","func","timeoutId","waitMilliseconds","isImmediate","args","doLater","shouldCallNow","CacheManagerBase","debounceFunction","AvatarCacheManager","accountApi","invalidateUrl","fnOpenGnbSiteMap","fnGoHome","fnGnbClick","baseUrl","imageUrl","dispGnbSearch","fnOpenGnbSearch","fnOrgPop","UnReadWorkFeedStatus","dispGnbWorkFeed","fnOpenGnbWorkFeed","dispGnbBookmark","fnOpenGnbBook","dispGnbQuickMenu","fnOpenGnbQuickMenu","handleLogoff","orgSearchItems","fnGnbSearch","workFeedItems","fnReadWorkFeed","fnAllReadWorkFeed","bookMarkItems","fnDeleteViewBookMarkItem","fnBookMarkClick","quickMenuItems","iconMenuItems","fnQuickMenuClick","fnOpenQuickMenuUserSet","selQuickMenuIds","fnInsertQuickMenuUserSet","siteMapItems","siteMap","fnSiteMapClick","sitemap","mSub","fnExpandSubMenu","mSub2","SiteMap","divSubObj","personName","GnbSearch","subSystemCd","itemText","itemPath","GnbBookmark","quick","quickMenuId","subItem","filePath","GNB_QUICKMENU_USERSET","GnbQuickMenu","quickMenuIds","fnOnChangeQuickMenuUserSet","workfeedType","fnSetWorkFeedType","alarmId","alarmType","getWorkFeedType","alarmText","createUserName","fnSetDisplayDate","createDate","GnbWorkFeed","sysName","displayDate","dtNow","dtCreate","toISOString","menuItems","isAdmin","payType","payTypeGubun","dispGnbSitemap","goHome","gnb","setmenuLog","menuOldName","searchVal","getOrgPersonSearch","fnGetWorkFeedList","getWorkFeedUnreadCount","getWorkFeedList","workfeedItem","itemUrl","fnOpenWindow","setWorkFeedReadStatus","nIdx","setWorkFeedAllReadStatus","fnGetBookMarkList","getBookMarkList","bookMarkItem","itemType","deleteBookMark","getUserQuickMenuList","resQuickMenuItems","linkType","quickItem","selQuickMenuItems","insertQuickMenuUserSet","fnGetQuickMenuList","nWidth","nHeight","nLeft","screen","nTop","childItems","isTopVisible","fnMakeMenuItem","PreferenceModal","force","aaa","portalCache","isSuperAdmin","isCompanyManager","mItem","callType","fnGetUnreadWorkFeedCount","SubGlobalNavigationBar","GnbSiteMap","define","axios","responseType","response","Blob","nextTick","SortValue","put","setConcurrentUserDeptCode","headers","readonly","teams","modalv2","selectAttachment","msTeams","KEY","eventName","eventBus","$on","$off","dataset","ie10plus","msPointerEnabled","webAPIFileRead","fileObj","startByte","endByte","fileType","function_name","mozSlice","webkitSlice","readFinished","initialOptions","forceChunkSize","simultaneousUploads","fileParameterName","progressCallbacksInterval","speedSmoothingFactor","withCredentials","preprocess","changeRawDataBeforeSend","testMethod","uploadMethod","prioritizeFirstAndLastChunk","allowDuplicateUploads","generateUniqueIdentifier","maxChunkRetries","chunkRetryInterval","permanentErrors","successStatuses","onDropStopPropagation","initFileFn","readFileFn","opts","defaults","supportDirectory","userAgent","extend","eventHandlerContext","FlowEventNames","dataTransfer","webkitGetAsEntry","webkitReadDataTransfer","arrayRemove","each","unshift","fire","queue","readDirectory","reader","successCallback","entries","entry","isFile","fullPath","fileReadSuccess","readError","isDirectory","createReader","decrement","readEntries","relativePath","fileError","getAsFile","custom","webkitRelativePath","preventEvents","paused","chunks","outstanding","isComplete","async","domNodes","msgNosel","Element","domNode","ev","attributes","input","nodes","preventEvent","onDrop","removeEventListener","uploading","isUploading","should","_shouldUploadNext","started","uploadNextChunk","resume","pause","totalDone","fileList","getFromUniqueIdentifier","FlowFile","abort","sizeDelta","averageSpeed","POSITIVE_INFINITY","dst","FlowChunk","beautifyStartTime","beautifyEndTime","beautifyStartDate","weekArrayString","ContactModal","phoneNumber","Param","PhoneNumber","invokeCSCode","invokeCSharpAction","VueI18n","loadedLanguages","setI18nLanguage","dic","dicString","cdic","setLocaleMessage","SIDEBAR_VISIBLE","CURRENT_MENU","GLOBAL_BUSY","CURRENT_PAGE","getUrlParamToDictionary","dicObject","urlSplit","vars","tmp","closed","combindWithQuery","newWindow","buildStyle","noinvalidateUrl","showModalDialog","showiFrameWindow","createTimeout","componet","componetValue","setEventBus","timeoutBus","defaultOptions","scrollbars","resizable","finalOptions","screenX","outerWidth","screenY","outerHeight","MenuPageTypes","MenuCallTypes","ModalComponentTypes","regexHelper","uri","MenuHelper","findOneByCalltype","_combindWithQuery","cacheItems","cacheItem","findOne","menuType","findOneBySysId","arrMenuPath","isLoop","menuIds","retMenuId","SYSID","_isSameSite","HOME","router","_proxy","isIncludeParam","referrer","isPopup","relativeUrl","homeMenu","_setParam","frameUrl","_replaceUrl","aesEncrypt","errorGhost","ProfilePhoto","fnSearchSiteMap","fnIsDisplay","fnGetMenuName","siteMapSearchText","level","fnCheckMenuName","menuLevel","isChecke","aesJs","Ke","Kd","numberOfRounds","16","24","32","iv","rcon","S","Si","T1","T2","T3","T4","T5","T6","T7","T8","U1","U2","U3","U4","init","keyBytes","toBytes","base64","decode","rounds","copyKey","coerceArray","roundKeyCount","KC","tk","convertToInt32","tt","rconpointer","checkInt","checkInts","arrayish","copyArray","sourceArray","targetArray","arg","copy","buffer","ArrayBuffer","isView","Uint8Array","pkcs7pad","padder","pkcs7strip","encodeURI","charCodeAt","fromBytes","fromCharCode","encrypt","plaintext","lastCipherblock","ciphertext","block","decrypt","cipherArr","aesDecrypt","$utf8","encode","charCode","output","charAt","plainText","textBytes","paddingBytes","encryptedBytes","btoa","ACCOUNT","ORG_ME","ORG_EVENT_TYPE","ORG_MEMBER_LIST","ORG_MEMBER_SELECT","ORG_MEMBER_SELECT_ALL","ORG_MEMBER_SEARCH","ORG_CONTAINER_REGISTER","ORG_CONTAINER_UPDATE","ORG_CONTAINER_ITEM_ADD","ORG_CONTAINER_ITEM_DEL","ORG_CONTAINER_ITEM_SELECT","ORG_CONTAINER_ITEM_SELECT_ALL","ORG_CONTAINER_ITEM_MOVE_UP","ORG_CONTAINER_ITEM_MOVE_DOWN","ORG_CONTAINER_DEPT_ITEM_ADD","ORG_CONTAINER_ACTIVATE","ORG_CONTAINER_CLEAR","ORG_PUBLIC_FOLDER_LIST","ORG_PUBLIC_MEMBER_LIST","ORG_PERSONAL_FOLDER_LIST","ORG_PERSONAL_MEMBER_LIST","ORG_PERSONAL_GROUPMEMBER_LIST","ORG_USER_SELECT","ORG_USER_SELECT_CLEAR","ORG_OPTION_SET","ORG_OPTION_GET","ACCOUNT_CURRENT","ModalBottom","HttpMethods","AxiosClient","axiosClient","requestConfig","interceptors","onFulfilled","onRejected","GET","userData","userParams","wrap","random","EumApiClient","apiConfig","invalidatedUrl","DELETE","PUT","POST","PATCH","rootUrl","style2","routeToLogin","methodName","returnUrl","currentRoute","UserDetail","isModalStatus","person","addNumber","back","getCompanyName","getImage","ADD_ACTION","GET_ACTION","SIDEBAR_CURRENT","SIDEBAR_CONTEXT_STATE","COMMON_COLOR_ARRAY","COMMON_COLOR_ARRAY_GET","COMMON_DATE_CURRENT","COMMON_CHANGE_DATE","COMMON_DATE_SELECT","COMMON_DATE_SELECT_TODAY","CALENDAR_MAININIT","COMMON_DATE_MONTH_PREV","COMMON_DATE_MONTH_NEXT","COMMON_DATE_SELECT_MONTH","COMMON_DATE_WEEK_PREV","COMMON_DATE_WEEK_NEXT","COMMON_DATE_DATE_PREV","COMMON_DATE_DATE_NEXT","COMMON_CALENDAR_PREV","COMMON_CALENDAR_NEXT","COMMON_ERROR_MESSAGE","COMMON_ERROR_CLEAR","COMMON_REFRESH","COMMON_ROOM_LOAD","COMMON_ROOM_LIST","COMMON_CURRNT_USER","COMMON_TOGGLE_CONTENTMASK","COMMON_SHOW_CONTENTMASK","FOLDER_SELECT","FOLDER_LIST_TREE","FOLDER_LOAD_TREE","FOLDER_EDIT_NAME","FOLDER_EDIT_COLOR","FOLDER_ROOT","CALENDAR_TODAY_MODE","CALENDAR_CURRENT_RECURRING","CALENDAR_NEXT","CALENDAR_DATE_NEXT","CURRENT_CALENDAR_ITEM","CALENDAR_DATE_CURRENT","CALENDAR_DATE_SELECT","CALENDAR_DATETIME_CURRENT","CALENDAR_DATETIME_SELECT","CALENDAR_EVENT_SELECT_ID","CALENDAR_EVENT_ADD","CALENDAR_EVENT_EDIT","CALENDAR_DAILY_EVENT_LIST","CALENDAR_HIDE_SHOW","CALENDAR_VIEWMODE_CHANGE","CALENDAR_VIEWMODE","CALENDAR_MONTH_MATRIX_LOAD","CALENDAR_MONTH_MATRIX_LIST","CALENDAR_WEEK_MATRIX_LOAD","CALENDAR_WEEK_MATRIX_LIST","CALENDAR_DATE_MATRIX_LOAD","CALENDAR_DATE_MATRIX_LIST","CALENDAR_SEARCH_LOAD","CALENDAR_SEARCH_LIST","CALENDAR_SEARCH_OPTION","CALENDAR_SEARCH_SHOW","CALENDAR_RECURRING_SHOW","CALENDAR_SHARED_SHOW","CALENDAR_PRINT_LIST","CALENDAR_CURRENT_APPOINTMENT","WORKFLOW_CURRENT","GET_WORKFLOW_OPTIONS","ADMIN_APPOPTIONLIST_LOAD","flowObj","tested","retries","pendingRetry","preprocessState","readState","loaded","xhr","computeEndByte","chunkEvent","lengthComputable","retryInterval","flowChunkNumber","flowChunkSize","flowCurrentChunkSize","flowTotalSize","flowIdentifier","flowFilename","flowRelativePath","flowTotalChunks","XMLHttpRequest","testHandler","evalOpts","prepareXhrRequest","progressHandler","doneHandler","isTest","readyState","responseText","paramsMethod","getParams","k","getTarget","setRequestHeader","useInput","mailValidMsg","changeByInput","idxInput","initTags","mounted","eumTagInputMobile","className","uniqueKey","tElem","tuniqueKey","clearAutoComplete","keyupEvent","$nextTick","blurEvent","enterEvent","isEmail","moveFocus","getInputIndex","deleteBykey","idxDel","isLeft","keycode","tagDel","deleteTag","moveInput","idxMove","normalizeComponent","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","__vue_script__","__vue_render__","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_component__","install","installed","plugin","GlobalVue","icons8MicrosoftPowerpoint201996","freeze","__proto__","img$1","icons8MicrosoftExcel201996","img$2","icons8MicrosoftWord201996","img$3","icons8File100","getCjsExportFromNamespace","require$$0","require$$1","require$$2","require$$3","currentSpeed","_lastProgressCallback","_prevUploadedSize","_prevProgress","bootstrap","off","getQuery","setQuery","unAssignDrop","addFile","getSize","timeRemaining","measureSpeed","timeSpan","smoothingFactor","uploaded","retry","bytesLoaded","delta","getType","getExtension","preprocessFinished","version","img$4","img$5","img$6","require$$0$1","require$$1$1","require$$2$1","script$1","icons","images","doc","excel","ppt","pdf","txt","zip","getExtensions","ext","aa","supports","downlaod","toFixed","__vue_script__$1","__vue_render__$1","__vue_staticRenderFns__$1","__vue_inject_styles__$1","__vue_scope_id__$1","__vue_module_identifier__$1","__vue_is_functional_template__$1","__vue_component__$1","script$2","FileListHeader","__vue_script__$2","__vue_render__$2","__vue_staticRenderFns__$2","__vue_inject_styles__$2","__vue_scope_id__$2","__vue_module_identifier__$2","__vue_is_functional_template__$2","__vue_component__$2","script$3","flowDrop","deleteUrl","deleteMethod","customDelete","deleteAllFiles","deleteSelectedFiles","pauseFile","resumeFile","processResult","origins","flowFile","uf","fileRemoved","customs","fileNames","Accept","secondsToStr","numberEnding","years","days","hours","minutes","seconds","setFileState","filesAdding","fileAdded","fileData","webkitURL","thumb","filetype","iconNames","filesSubmitted","fileSuccess","fileProgress","fileRetry","fileState","sizePerSeconds","uploadStart","catchAll","flow$1","__vue_script__$3","__vue_render__$3","__vue_staticRenderFns__$3","__vue_inject_styles__$3","__vue_scope_id__$3","__vue_module_identifier__$3","__vue_is_functional_template__$3","__vue_component__$3","ContactFolderType","ShareType","PublicSearchConditions","MODAL_CURRENT","PAGE_CURRENT","TEAMS","MODAL_CHANGE","SELECT_ATTACHMENT","getCalendarEvents","startdate","enddate","valueFormat","getCalendarDailyEvents","deleteEvent","acceptEvent","declineEvent","cancelEvent","downloadCalendarList","FolderIDArray","disposition","filenameRegex","matches","exec","editorComponent","_g","_b","$attrs","$listeners","editorId","callbacks","loadedEditorIds","dext_key_event","keyEvent","eventObject","currElem","_CONST_MODAL_EVENT","dext_editor_loaded_event","EditorReadyBase","EditorReady","Mode","Width","editorDirective","ctx","initialValue","DEXT5","EditorHolder","ReturnEventKeyboard","Dext5editor","setBodyValue","EditorBodyAddedBase","EditorBodyAdded","uuidv4","v4","Dext5Editor","disposed","uuid","newDiv","innerHTML","imgs","isEmpty","dext5","mInitialValue","editorOptions","outputFormat","onInit","FileReader","blobCache","tinymce","activeEditor","editorUpload","blobInfo","cb","getNode","shortcut","onAction","onSetup","checkInTableSelect","clipboardData","getData","Editor","menuBarDisplay","plugins","font_formats","toolbar1","toolbar2","fontsize_formats","inline_styles","automatic_uploads","file_picker_types","file_picker_callback","contextmenu","powerpaste_html_import","powerpaste_word_import","powerpaste_keep_unsupported_src","powerpaste_allow_local_images","userSetup","setContextMenu","menuBar","getElementsByClassName","emitInput","DEFAULT_EDITOR","EditorProxy","globalType","TinyEditor","loadMenuCache","loadQuickMenuCache","loadWebpartCache","loadDictionary","fileIdentifiers","downloadCheck","deleteByCode","docViewerKeyRequest","getCheckBookmark","urlPath","urlSearch","UrlPath","UrlSearch","deleteBookmark","BookMarkId","insertBookmark","menuText","menuTextEn","MenuText","MenuTextEn","ItemType","ItemUrl","getchannelsList","getRoleGroups","role","toggleDepartmentAsync","MobileContainer","pathArr","findDept","getOrgTreeAsync","compCode","defaultDeptState","mapResult","flatArr","getUserDept","initialFlowFileInfo","digits","convertToFlowFile","getGUID","upperCase","s4","guid","_bootstrap","topMenuId","fnMenuClick","fnSystemSetting","fnAdminMenu","subMenuItems","topMenuName","fnCloseSubMenu","GnbItem","fnExpandItem","GnbItemSubItem","GnbIUtemSub","selMenuId","subMenuId","GnbLeft","isDisplaySubMenu","eventTarget","paramMenuId","mItems","onClickEventCheck","fnChangeUrl","GnbItemSub","_obj$1","concurrentUsers","fnUserDisplay","is_concurrent_active","cuser","adminUrl","orgList","articleList","workflowList","searchCounts","fnSelectedGnbSearch","searchType","fnMoreSearch","fnReadWorkfeed","bookmarkItem","fnBookmarkClick","delBookmarkItem","counts","article","articleId","fnVieArticle","boardId","createdUserName","fnDisplayDate","workflow","onClickWorkflowItem","getWorkflowTitle","convertDatetime","dtDate","datetime","dateHelper","apmId","getWorkFeedImage","getWorkFeedStyle","alarmTextEng","sysImg","itemTextEng","fnGetQuickMenuName","quickMenuItem","fnExpandSubItem","sub","GnbQuickMenuItem","expandArrow","subContent","iconItems","quickItems","fnMakeQuickMenuItem","chatbotInfo","isExist","FloatingChat","isChatOpen","isFloating","chatbotId","linkUrl","savedFileName","fileSize","pflag","pelem","getChatbot","preScript","defer","getChatbotInfo","typesAccount","GnbTop","searchkeyword","searchselected","keywordOption","totalSearch","pageNumber","pagePerCount","include","orgItems","boardItems","workflowItems","port","SearchText","SearchOption","Target","isConfirm","fnGetQuickMenuItems","moveType","keydata","linkKey","publicKey","tenant","apiurl","initMulticapmersSsoInit","crypto","utf8Encode","TextEncoder","bufiv","encryptedCbcBuffer","createCipheriv","setAutoPadding","hmac","final","cono","initMulticapmersSsoBody","ssotoken","initMulticapmersSsoEnd","eumLoadingBefore","reload","eumLoadingAfter","isReserveManager","isGlobalReserveManager","isPopupManager","isBoardManager","isGroupwareAccountManager","remin$emit","allowList","folderListTree","conferenceList","timeArray","searchMode","useNameless","home","HamburgerButton","setShowSidebar","PageHeaderWithActionBar","basic","PageHeaderWithSearchBar","boardList","prefaceText","showreplyLevel","showNewIcon","showUpdateIcon","viewCount","commentCount","hasAttachFile","BoardListItem","oneDay","isDraft","updateDateString","updateDate","updateDiff","updateTimeSpan","setCurrentArticle","parentArticle","ListContainer","searchValue","loadMorePossible","searchSet","userCode","itemsPerPage","searchField","searchFieldValue","prefaceId1","prefaceId2","sortField","sortOrder","includeContent","useNotice","getArticles","isloading","loadData","loadDataReset","handleSearchRequest","ListView","currentBoard","board","getWriteConfig","canUpdate","canDelete","actionOpen","PageViewHeaderWithActionBar","history","showAttachModal","recommendArticle","userRecommended","recommendCount","loadComment","comment","commnetPhotos","photoUrl","SHOW_DOC_VIEWER","md5","DocumentViewerHelper","useEventBus","szServiceUrl","szFileId","fid","convertType","queryString","requestUrl","docurl","Headers","Key","Value","Url","Data","Method","WithHeaders","IgnoreWithHeaders","AttachModal","CheckDocumentExtension","exportStatus","fileViewer","exportUrl","createExportFile","decodeFile","_osCheck","_a","dsmobileapp","web2app","fileExtension","loadFile","userName","mComment","updateComment","createComment","CommentWrite","createdUser","deptName_En","userJobTitle","userJobTitle_En","userName_En","replyTo","commentId","userMail","userDept","userPhone","deleteComment","replyToName","replyComment","commentEdit","CommentItem","ReadContainer","commentList","getArticleComments","sortComments","loadCommentPhotos","comments","photoPromise","isReplyModel","getRecommendList","userset","displayDeptNameEn","recommendPromise","deleteRecommend","createRecommend","getRecommentList","returnModel","appendReplies","remains","nextRemains","parentComment","contentAfter","onEdit","createViewLog","deleteArticle","deleteUser","getArticleDetail","ReadView","systemAuth","readContainer","createPromise","getSystemAuth","isNameless","isMenuAdmin","attach","useAttachment","PageEditHeaderWithActionBar","go","WriteMode","mTitle","uploaderConfig","fileUploadStatusChaged","fileItemsChanged","tinyOptions","mContent","contentFields","returnValues","fieldLoaded","isFileUploading","currentArticleModel","writeMode","Write","mUsePreface","mUseNotice","mUseAttachment","mUseTags","mUseNameless","mUseContent","mBoardName","mIsNotice","mTags","mFileCode","mChildPreface","mParentPreface","mFileSizeDesc","mWritePassword","mSecret","mNoticeStartDate","mNoticeEndDate","childPrefaces","parentPrefaces","mShowChildPreface","sizeLimit","boardName","usePreface","usePrimaryNotice","useTag","useContent","Edit","editloadPromise","editload","isNotice","checkEditRights","mountCallback","systemAuths","attachableExtension","bannedExtensions","attachmentSizeLimit","fillComponentValues","targetPreface","Reply","replyPreface","localStorageHelper","prefaceId","serverPrefaces","prefaces","serverChilds","parentPrefaceId","serverParents","tpmodel","fieldId","returnValue","isSecret","noticeStartDate","noticeEndDate","updateSizeDesc","fieldValues","passVal","createArticleFile","sizeTotal","draft","hasImage","replyLevel","imageFilePath","isMailSend","useMailSend","etC1","etC2","etC3","etC4","etC5","articleVersion","articleSet","createArticle","updateArticle","queryModel","getRequestModel","checkValidate","requestPromise","EumFileUpload","WriteView","writeContainer","recommends","recommend","getPersonImage","userDeptName","RecommendContainer","photos","getPersonPhotos","personImage","getByCodes","RecommendView","BoardMaster","routes","unreadAlarmCount","mailCount","calendarCount","workflowId","workflowCount","movePage","menuClick","reqDeptName","reqName","draftDate","openApprovalView","openDrafterView","useExtend","isExtend","line","lineidx","getLineClass","approverName","isLast","ProcessLine","lineInfo","approverList","setProcessLine","sortNumber","isDisplay","processAreaHeight","processArea","WorkflowListItem","openDrafter","approvalLineList","isMobile","setCurrent","reqPerson","approverCode","isEdit","storekey","MainContainer","boardPageNum","mainConfig","workflowDocumentPages","hasUnreadMailFolder","boardApi","documentQueryNumber","apmStatus","pageItem","searchSortValue","workflowApi","getDocumentList","dir","loadBoardList","mailApi","getDocumentPages","loadWorkflowList","no","getWorkflowDocumentPages","getMailCount","loadCalendarList","calendarTypes","MainView","setMenu","gnbApi","getUnreadAlarm","setCurrentMenu","dateGroup","getItems","alarm","readFeed","getFeedItemTypeClass","alarmList","WebMailBottom","AlarmContainer","Set","AlarmView","detailViewMode","detailViewModeChange","detailViewClose","companies","searchData","showCompanyModal","handleCompanySelected","detailView","gotoDetail","UserNode","toggle","DeptNode","onClose","comp","CompanySelectionModal","writeEmail","OrgmapContainer","TreeData","searchKeyword","searchDepartmentList","searchUserList","userCompany","OrgmapView","mailList","mailMoreAvailable","scheduleList","scheduleMoreAvailable","contactList","isSend","getMailReadClass","loadingImage","onPhotoError","getMailDate","MailListItem","ghostImage","wellknownName","displayTo","selectList","selectEmail","sendDate","sendTime","todayString","pad","senderMail","szAddress","isMailRead","getTargetPath","globalTypes","MailList","goDetail","ScheduleList","itemid","loadContact","ContactListItem","selectionList","setCurreuntItem","selectContact","ContactList","SearchContainer","contact","hasMailFolder","clearPageInfo","getMailList","ContainsSubstring","containmentMode","FilterContainmentModes","Substring","comparisonMode","FilterComparisonModes","IgnoreCase","Prefixed","FullString","ExactPhrase","PrefixOnWords","Contacts","contactApi","searchOptions","Status","EXTFIELD_1","EXTFIELD_2","calendarApi","deep","SearchView","ScheduleSearchContainer","ScheduleSearchView","Home","HomeMaster","selectionCount","deleteItems","moveModalShow","readItems","moveModalClose","moveItems","unreadMailCount","goInbox","unreadMailList","getMailBoxIcon","wellknownFolderName","returnIcon","makeMenu","parentMenu","getFavoriteFolder","HomeContainer","inboxId","DeleteMode","selectListClear","mountAction","selectEmailAll","currentFolderId","childMenu","getChildMenu","mailTypes","MoveModal","route","HomeView","openDropdown","homeContainer","handleBackRequest","changeFilter","hasCategories","onChangedFolderId","listContainer","setCurrentPage","onChangedId","globaltypes","moveItem","ReadBottom","allowedActions","ensureAction","toPerson","viewMore","ReadSender","visibleMore","ReadAttachment","fileId","resFile","base","ReadTitle","ReadBody","escapedId","moveModalStatus","moveModal","loadDetail","showWriteCC","uploadStateChanged","writeEmailData","WriteReceiver","receiver","WriteTitle","WriteAttachment","tcfiles","emailfiles","loadFiles","newval","transitionDisabled","cctitle","bcctitle","WriteCC","openWriteCC","currentMenuId","uploadState","draftId","isChanged","replaceState","createAttachmentCode","tempId","invalidateBrowserHistoroy","buildBody","buildEmail","buildSubject","prefix","getTo","alter","getBodyHeadRawHtml","ps","converRcptString","saveMethod","sendMethod","invokeEditorEmitManually","allrcpts","szSmtpAddress","convertToRecipient","writeView","writeAttachment","scrollToTop","Mail","MailMaster","redirect","dateDisplay","prev","goToday","modeChangeOpen","modeChange","viewSchedule","showRecurringScheduleModal","cAppointment","sun","sat","eventItem","background","MonthItem","MonthView","transName","changeMonthNext","transToggle","changeDateMonthNext","changeMonthPrev","changeDateMonthPrev","direction","monthMatrix","witem","CalendarItem","WeekView","scrollFitToToday","dayWrap","todayElem","weekMatrix","getDayDate","DayView","WP","W","WN","WPL","WL","WNL","All","AllT","Select","dayScrollFitTo","bodyWidth","selectElem","dateMatrix","RecurringScheduleModal","CalendarContainer","setCalendarMode","loadCalendarPrev","loadCalendarNext","setCalendarItem","bname","beforeView","occitem","appoint","loadFolderTree","loadEventList","selectToday","calendarContainer","currentMode","updateItem","cancelItem","setReserveRequestItem","conference","showAttendanceModal","accept","decline","AttendanceModal","isAllowAccept","isAllowDecline","pidLidRecurring","conferenceText","folderText","displayCc","ReadForm","accepted","declined","conferenceId","reserveRequestItem","bodyLoaded","_id","sitem","isAllowCancel","isAllowDelete","repCount","convertRecToTag","conferenceReserveCheck","IsSuperadmin","accountStore","IsCompanyManager","conferenceReserveDelete","reqParam","bookingId","resourceBookingId","setFolder","setMeetingRoom","setStartTime","setEndTime","setReminder","editItem","EditView","editContainer","EditContainer","typeChangeOpen","getSelectedStatus","notUsingRecurring","passRecurringType","isNotUsed","localRecurrence","dateUnitText","showDayModal","getEndType","setDay","setEndDate","RecurringEndDateModal","RecurringDayModal","WeekCheckboxArray","checkedArray","RecurringContainer","EDate","weekText","day","valid","dayArray","cvalue","setCurrentRecurring","RecurringView","recurringContainer","CalendarMaster","ContactPhoto","writeMail","ViewForm","ViewContainer","deleteContacts","ContactView","viewContainer","getContactList","setSelectAll","contactTypes","AddContainer","Street","PostalCode","createContact","AddView","addContainer","EditForm","editContact","Contact","ContactMaster","getActionItems","getActionImgUrl","actionItem","showModalGotoList","toggleCommentModal","apm","readUrl","iframeLoading","getPositionName","Title","getDisplayDate","getDisplayTime","approverComment","ApprovalStatus","photoInfo","approvedDate","receptionDate","getPhotoInfo","detail","ApprovalInfo","Iframe","_window","frame","offsetHeight","minHeight","querySelectorAll","$div","buttonStyle","dataKey","$h1","$p","$btnRestore","$btnHardDelete","setIframeHeight","ifrm","getIframeDocument","calcSize","documentElement","loadCheckFn","formBody","loadCheckInterval","workflowPageUrl","apmid","loadDocument","reqTitleName","getActionChildItems","actionId","ApprovalProcessingModal","actionFlag","rflag","nextActionList","isCustom","apmDetail","apmConnectList","actionForm","isError","isRedirect","actionMessage","menus","CommentList","CommentModal","approvalMenu","bResult","isHide","iconName","getOptionValues","isGroup","lineRoleList","requesters","requester","parentApprovalLineId","approverType","lineType","prop","appValues","workflowOptions","sysValue","appid","setWorkflowOptions","IsExistComment","setDrafter","showDrafterModal","drafter","departmentName","gradeName","requestDocument","DrafterViewModal","ApprovalStateContainer","ApprovalStateView","Workflow","WorkflowMaster","BYPASS_NAMES","authenticated","authWithLoginHint","hint","loginData","appbaseStore","getLoginHintFromTeams","processForTeams","resetRouteForLogin","useWindowsAuth","decodeReturnUrl","addQueryString","authGuard","Account","AccountMaster","LoginView","NotAuthView","isModal","handleTabSelect","handleTabActive","contentComponent","rollOut","handleOk","handleExpand","selectCompany","REQUEST_LEVEL","DepartmentListContainer","loadCompanies","expandToMyDept","getDefaultDeptCode","currentDepts","paths","updatableDept","tdept","depts","minLength","parents","foundDept","PersonListContainer","handleAdd","handleDelete","handleActivate","handleDeleteOne","handleSelect","WishListContainer","wishContainers","registerContainer","addToContainer","deleteFromContainer","activateContainer","moveup","movedown","refresh","handleSelectOne","hitMember","MemeberListContainer","searching","loadMemberList","isSingle","btnApply","btnAdd","searchMember","PublicAddressFolderListContainer","pageNum","rowSize","manageDeptCode","dept_Level","emailAddress","pageMove","PublicAddressMemberListContainer","searchFilter","searchWord","initParam","PersonalFolderListContainer","PersonalMemberListContainer","apiOption","field","loadMembers","getDepartments","HrUserListView","MemberListContainer","HrView","PersonalMembersView","PersonalAddressBookView","PublicMembersView","PublicAddressBookView","OrgmapMainBase","propsOption","dispatchTarget","returnData","dispatchEvent","CustomEvent","wholeData","handleActive","OrgTab","modalClass","modalStyle","ModalSlotLayout","classStr","modalClassStr","modalStyleStr","PopupView","paramValue","setOptions","handleEventBus","processTabSelect","processTabActive","processOk","updateContainer","handleCancel","PortalCacheGuard","cacheVersion","quickMenu","webpart","webparts","I18nGuard","evaluateGuards","guards","guardsLeft","nextGuard","nextArg","multiguard","bypass","Appbase","AppbaseMaster","ErrorView","Gnb","GnbMaster","GlobalNavigationBarLeft","QuickMenuUserSetPop","SignPreview","DocumentViewer","AppLoginView","VueRouter","mailRoutes","AppLoginGuard","applogin","web2appPayload","function","userId","topics","MailOnlyGuard","routesAccount","beforeEnter","routesBoard","routesHome","routesMail","routesCalendar","routesContact","routesWorkflow","routesOrgmap","routesGnb","beforeEach","getTotalArticles","getAdminArticles","getBlogArticles","getArticleDetailHistory","deleteArticles","restoreArticles","createPermission","fildCode","getArticleFileHistory","getViewLogList","sendArticleMailAlarm","checkArticlePassword","getArticleHistoryList","readFlag","AlarmId","IsRead","EmployeeNumber","PayType","PayTypeGubun","SearchType","QuickMenuIds","Step","qs","HMAC","LANGUAGE_TIME_CHANGE","LANGUAGE_LOAD","TIME_LOAD","GET_CARDSTATE","GET_CARD","UPDATE_CARD","DOWNLOAD_PC","SETTINGS_MYSETTING_LOAD","SETTINGS_MYSETTING_DATA","SETTINGS_MYSETTING_SAVE","APPLICATION_LIST_DATA","APPLICATION_LIST_LOAD","SETTINGS_DELEGATOR_LIST_DATA","SETTINGS_DELEGATOR_LIST_LOAD","SETTINGS_DELEGATOR_ADD","SETTINGS_DELEGATOR_REMOVE","COMMON_LOADDING","CURRENT_CONTACT_ITEM","CONTACT_SELECT_ALL","CONTACT_SELECT_CLEAR","CONTACT_SELECTION","etc","ROLE_GROUP_MODAL","IFRAME_MODAL","vbind","vevent","EumModal","vmodel","canBind","canbind","modalSize","selectedRoles","availableRoles","dragOptions","roleId","clear","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","msMatchesSelector","webkitMatchesSelector","getParentOrHost","nodeType","closest","includeCTX","_throttleTimeout","R_SPACE","toggleClass","defaultView","currentStyle","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","iterator","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","bottom","innerHeight","innerWidth","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","includeDragEl","currentChild","Sortable","ghost","dragged","draggable","lastChild","lastElementChild","previousElementSibling","getRelativeScrollOffset","winScroller","indexOfObject","includeSelf","gotSelf","scrollWidth","elemCSS","isRectEqual","rect1","rect2","throttle","ms","scrollBy","Polymer","Zepto","dom","cloneNode","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","animation","rect","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","forRepaintDummy","repaint","easing","animated","offsetWidth","sqrt","initializeByDefault","mount","pluginName","pluginEvent","sortable","evt","eventCanceled","eventNameGlobal","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","PluginManager","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","float","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","some","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","otherGroup","originalGroup","checkPull","checkPut","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","textContent","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","onMove","willInsertAfter","retVal","onMoveFn","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_ghostIsFirst","spacer","_ghostIsLast","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","_saveInputCheckedState","root","inputs","_nextTick","_cancelNextTick","constructor","_getDirection","touch","pointerType","originalTarget","composedPath","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","getSelection","removeAllRanges","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","_loopId","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","firstChild","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","handleEvent","toArray","useAnimation","destroy","utils","is","cancelNextTick","detectDirection","buildAttribute","propName","computeVmIndex","vnodes","elt","elm","computeIndexes","slots","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","ind","emit","evtName","evtData","delegateAndEmit","realList","isTransitionName","componentOptions","getSlot","scopedSlot","computeChildrenAndOffsets","headerOffset","footer","getComponentAttributes","componentData","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","draggingElement","noTransitionOnDrag","original","draggableComponent","inheritAttrs","transitionMode","noneFunctionalComponentMode","$slots","$scopedSlots","getTag","warn","getIsFunctional","optionsAdded","onDragMove","_sortable","rootContainer","beforeDestroy","handler","newOptionValue","updateOptions","fnOptions","_vnode","getChildrenNodes","$children","rawNodes","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","vue","__vue__","_componentTag","emitChanges","alterList","onList","spliceList","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","currentIndex","draggedInList","draggedContext","futureIndex","sendEvt","onDragEnd","RoleGroupModal","selectedIds","initialRoles","roles","VueDraggable","IframeModalV3","$layerInner","initializeAsync","_CONST_MODAL_CLASS","_CONST_MODAL_MSG_CLASS","_CONST_BUTTON_OK_CLASS","_CONST_BUTTON_CANCEL_CLASS","_CONST_CONFIRM_AREA_CLASS","elemOk","modalHtml","_baseFunc","parser","DOMParser","parsedHtml","parseFromString","elemMsg","whiteSpace","onclick","elemClose","setPage","closeCurrentModal","appConfig","productionTip","infiniteScroll","Vue2TouchEvents","disableClick","touchHoldToTolerance","swipeTolerance","longTapTimeInterval","initAppBaseAsync","App","$mount","w100","resize","monthPrev","DateFormat","monthNext","BOARD_ARTICLE_CURRENT","oldStatus","folderType","Personal","copyContact","moveContact","getContactPhoto","shareType","getUserInfoByPersonCode","createGroupContact","setGroupMember","deleteGroupMember","getSharedContactsList","getSharingTargetList","addShare","removeShare","setFavoriteFolder","setFavoriteContact","PC","DC","publicContact","isConferenceReserveCreate","showRecurrChange","durationText","savedEndDate","savedNumberOfOccurrences","parentIdFlag","selectedFolderID","useSendMail","FdisplayName","isImportanceModalShow","isStatusModalShow","isRepeatModalShow","EndType","showDelay","CantClick","backup_starttime","backup_endtime","saveItem","conferenceReserveSave","mapAction","ewsPromise","isSixWeek","uGetDateFormat_UTC","req","getLineHistory"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,cAAgB,CAAC,QAAU,UAAU,QAAU,UAAU,uCAAuC,uCAAuC,MAAQ,QAAQ,SAAW,WAAW,QAAU,UAAU,KAAO,OAAO,SAAW,WAAW,IAAM,MAAM,OAAS,UAAU9B,IAAUA,GAAW,IAAM,CAAC,QAAU,WAAW,QAAU,WAAW,uCAAuC,WAAW,MAAQ,WAAW,SAAW,WAAW,QAAU,WAAW,KAAO,WAAW,SAAW,WAAW,iBAAiB,WAAW,IAAM,WAAW,OAAS,YAAYA,GAAW,MAI/kB,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,QAAU,EAAE,QAAU,GACpCR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,eAAiB,CAAC,QAAU,UAAU,QAAU,UAAU,uCAAuC,uCAAuC,MAAQ,QAAQ,SAAW,WAAW,QAAU,UAAU,KAAO,OAAO,SAAW,WAAW,IAAM,MAAM,OAAS,UAAUxC,IAAUA,GAAW,IAAM,CAAC,QAAU,WAAW,QAAU,WAAW,uCAAuC,WAAW,MAAQ,WAAW,SAAW,WAAW,QAAU,WAAW,KAAO,WAAW,SAAW,WAAW,iBAAiB,WAAW,IAAM,WAAW,OAAS,YAAYA,GAAW,OACvjByC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,WAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,yHCvQwC,K,wBCAjD,yBACK+F,QADL,SAC4BC,GACpB,OAAOA,EAAMC,eAFrB,iBAKKF,QALL,SAKyBC,GACjB,OAAOA,EAAME,eANrB,iBASKH,QATL,SASwBC,GAChB,OAAOA,EAAMG,WAVrB,iBAaKJ,QAbL,SAayBC,GACjB,OAAOA,EAAMI,eAdrB,GCAA,yBACKL,QADL,SAC4BC,EAAOK,GAC3BL,EAAMC,YAAcI,KAF5B,iBAKKN,QALL,SAKyBC,EAAOK,GACxBL,EAAME,YAAcG,KAN5B,iBASKN,QATL,SASwBC,EAAOM,GACvBN,EAAMG,QAAUG,KAVxB,iBAaKP,QAbL,SAayBC,EAAOK,GACxBL,EAAMI,YAAcC,KAd5B,G,sJCSA,yBAOSN,QAPT,SAOgCQ,EAAQF,GAAmC,oKAC/DG,EAAsBH,EAAtBG,QAASC,EAAaJ,EAAbI,SACjBF,EAAOG,OAAOX,QAA6B,GAF4B,SAGnCY,OAAIC,GAAGC,gBAAgB,CAAEJ,WAAUD,YAHA,gBAG/DM,EAH+D,EAG/DA,MAAOC,EAHwD,EAGxDA,WACTC,EAAUF,EAAMG,KAAwB,SAACC,GAC7C,MAAO,CACLC,GAAID,EAAEE,WACNrD,KAAMmD,EAAEG,YACRC,OAAQJ,EAAEK,gBAAkB,GAC5BC,QAASN,EAAEO,gBAAkB,GAC7BhB,SAAUS,EAAET,SACZiB,SAAUR,EAAEQ,SACZC,WAAYT,EAAES,YAAc,GAC5BC,MAAOV,EAAEW,UACTC,UAAWZ,EAAEY,UACbC,MAAOb,EAAEc,WAAa,GACtBC,QAASf,EAAEgB,aAAe,GAC1BC,aAAcjB,EAAEiB,aAChBC,aAAclB,EAAEkB,aAChBC,eAAgBnB,EAAEmB,eAClBC,SAAUpB,EAAEoB,SACZC,SAAUrB,EAAEqB,SACZC,WAAYtB,EAAEsB,WACdC,MAAOvB,EAAEuB,MACTC,OAAQxB,EAAEyB,WAAa,GACvBC,KAAwB,MAAlB1B,EAAE2B,aAAuB3B,EAAE4B,UAAY5B,EAAE2B,eAAiB,GAChEE,UAAW7B,EAAE6B,WAAa,GAC1BC,QAAS9B,EAAE+B,aAAe,GAC1BC,UAAWhC,EAAEiC,gBAAkB,GAC/B/B,WAAYF,EAAEE,WACdgC,UAAU,EACVC,eAAgBnC,EAAEmC,gBAAkB,GACpCC,YAAapC,EAAEoC,aAAe,OAGlC/C,EAAOG,OAAOX,OAAuB,CACnCe,MAAOE,EACPD,aACAwC,aAAa,IAtCwD,gDAP3E,iBAiDSxD,QAjDT,SAkDIQ,EACAF,GAA0D,yKAEtBM,OAAIC,GAAG4C,UAAUnD,EAAQoD,OAAQpD,EAAQG,SAFnB,gBAElDM,EAFkD,EAElDA,MAAOC,EAF2C,EAE3CA,WACTC,EAAUF,EAAMG,KAAwB,SAACC,GAC7C,MAAO,CACLC,GAAID,EAAEC,GACNpD,KAAMmD,EAAEG,YACRC,OAAQJ,EAAEK,eACVC,QAASN,EAAEO,gBAAkB,GAC7BhB,SAAUS,EAAET,SACZiB,SAAUR,EAAEQ,SACZC,WAAYT,EAAES,YAAc,GAC5BC,MAAOV,EAAEW,UACTC,UAAWZ,EAAEY,UACbC,MAAOb,EAAEc,WAAa,GACtBC,QAASf,EAAEgB,aAAe,GAC1BC,aAAcjB,EAAEiB,aAChBC,aAAclB,EAAEkB,aAChBC,eAAgBnB,EAAEmB,eAClBC,SAAUpB,EAAEoB,SACZC,SAAUrB,EAAEqB,SACZC,WAAYtB,EAAEsB,WACdC,MAAOvB,EAAEuB,MACTC,OAAQxB,EAAEyB,WAAa,GACvBC,KAAwB,MAAlB1B,EAAE2B,aAAuB3B,EAAE4B,UAAY5B,EAAE2B,eAAiB,GAChEE,UAAW7B,EAAE6B,WAAa,GAC1BC,QAAS9B,EAAE+B,aAAe,GAC1BC,UAAWhC,EAAEiC,gBAAkB,GAC/B/B,WAAYF,EAAEC,GACdkC,eAAgBnC,EAAEmC,gBAAkB,GACpCD,UAAU,MAGd7C,EAAOG,OAAOX,OAAuB,CACnCe,MAAOE,EACPD,aACAwC,aAAa,IApC2C,gDAnD9D,iBAiGSxD,QAjGT,SAiGuCQ,EAAQF,GAAgC,6JAC9DM,OAAI+C,QAAQC,sBAAsBtD,GAASrD,MAAK,SAAC4G,GAAD,OAASA,KADK,wFAjG/E,iBAqGS7D,QArGT,SAqGuCQ,EAAQF,GAAgC,gKAC3EE,EAAOG,OAAOX,QAA6B,GADgC,SAEvCY,OAAI+C,QAAQG,6BAA6BxD,GAFF,gBAEnES,EAFmE,EAEnEA,MAAOC,EAF4D,EAE5DA,WACTC,EAAUF,EAAMG,KAAwB,SAACC,GAC7C,MAAO,CACLC,GAAID,EAAEC,GACNpD,KAAMmD,EAAEG,YACRC,OAAQJ,EAAEK,eACVd,SAAUS,EAAET,SACZiB,SAAUR,EAAEQ,SACZC,WAAYT,EAAES,YAAc,GAC5BC,MAAOV,EAAEW,UACTE,MAAOb,EAAEc,UACTC,QAASf,EAAEgB,aAAe,GAC1BO,MAAOvB,EAAEuB,MACTC,OAAQxB,EAAEyB,WAAa,GACvBC,KAAwB,MAAlB1B,EAAE2B,aAAuB3B,EAAE4B,UAAY5B,EAAE2B,eAAiB,GAChEG,QAAS9B,EAAE+B,aAAe,GAC1B7B,WAAYF,EAAE4C,SACdV,UAAU,MAId7C,EAAOG,OAAOX,OAAuB,CACnCe,MAAOE,EACPD,aACAwC,aAAa,IA1B4D,gDArG/E,iBAyISxD,QAzIT,SAyIyCQ,GAAM,0JACvCwD,EAAU,CACZpD,OAAIqD,SAASC,wBACbtD,OAAIqD,SAASE,iBACbvD,OAAIwD,MAAMD,kBAJ+B,SAM9B/I,QAAQ+C,IAAI6F,GAAS/G,MAAK,SAAC4G,GACtC,OAAOA,EAAIQ,UAP8B,wFAzI/C,iBAoJSrE,QApJT,SAqJIQ,EACAF,GAAyE,oKAEjEzH,EAAeyH,EAAfzH,KAAMsD,EAASmE,EAATnE,KACdqE,EAAOG,OAAOX,QAA6B,GAH8B,SAIrCY,OAAIqD,SAASK,gBAAgBzL,EAAMsD,GAJE,gBAIjE4E,EAJiE,EAIjEA,MAAOC,EAJ0D,EAI1DA,WACTC,EAAUF,EAAMG,KAAwB,SAACC,GAC7C,MAAO,CACLC,GAAID,EAAEC,GACNpD,KAAMmD,EAAEG,YACRC,OAAQJ,EAAEK,eACVd,SAAUS,EAAEoD,WACZ5C,SAAUR,EAAEoD,WACZ3C,WAAYT,EAAEoD,WACd1C,MAAOV,EAAEW,UACTE,MAAOb,EAAEqD,SACTtC,QAASf,EAAEqD,SACX9B,MAAOvB,EAAEuB,MACTC,OAAQxB,EAAEyB,WAAa,GACvBC,KAAwB,MAAlB1B,EAAE2B,aAAuB3B,EAAE4B,UAAY5B,EAAE2B,eAAiB,GAChEG,QAAS9B,EAAE+B,aAAe,GAC1B7B,WAAY,GACZgC,UAAU,EACVlH,KAAMgF,EAAEsD,WAAatD,EAAEhF,SAI3BqE,EAAOG,OAAOX,OAAuB,CACnCe,MAAOE,EACPD,aACAwC,aAAa,IAGfvC,EAAQyD,SAAQ,SAACvD,GACX,CAAC,eAAgB,KAAKwD,SAASxD,EAAEhF,MAAQ,KAC3CqE,EAAOoE,SAAS5E,OAAqC,CAAE6E,KAAM1D,EAAGhF,KAAMA,OAlCD,iDAtJ7E,iBA6LS6D,QA7LT,SA8LIQ,EACAF,GAA+D,oKAEvDuE,EAAevE,EAAfuE,KAAM1I,EAASmE,EAATnE,KAFiD,SAG3ByE,OAAIkE,MAAMC,gBAAgBF,EAAKzD,GAAIjF,GAHR,gBAGvD4E,EAHuD,EAGvDA,MAHuD,EAGhDC,WACTgE,EAAWjE,EAAMG,KAAwB,SAACC,GAC9C,MAAO,CACLC,GAAID,EAAEC,GACNpD,KAAMmD,EAAEG,YACRC,OAAQJ,EAAEK,eACVd,SAAUS,EAAEoD,WACZ5C,SAAUR,EAAEoD,WACZ3C,WAAYT,EAAEoD,WACd1C,MAAOV,EAAEW,UACTE,MAAOb,EAAEqD,SACTtC,QAASf,EAAEqD,SACX9B,MAAOvB,EAAEuB,MACTC,OAAQxB,EAAEyB,WAAa,GACvBC,KAAwB,MAAlB1B,EAAE2B,aAAuB3B,EAAE4B,UAAY5B,EAAE2B,eAAiB,GAChEG,QAAS9B,EAAE+B,aAAe,GAC1B7B,WAAYF,EAAE8D,kBAAoB,GAClC5B,UAAU,EACVlH,KAAMgF,EAAEhF,SAIN+I,EAAQ1E,EAAOP,MAAMgB,QAAQF,MAAMoE,MAAK,SAAChE,GAAD,OAAOA,EAAEC,KAAOyD,EAAKzD,MAC/D8D,IACFA,EAAMF,SAAWA,GA3B4C,gDA/LnE,GCTA,yBACGhF,QADH,SACiBC,GACb,OAAOA,EAAMmF,QAFjB,iBAWGpF,QAXH,SAWyBC,GACrB,OAAOA,EAAMoF,WAZjB,iBAeGrF,QAfH,SAe0BC,GACtB,OAAOA,EAAMgB,WAhBjB,iBAyBGjB,QAzBH,SAyBiCC,GAC7B,OAAOA,EAAMqF,QA1BjB,iBAmCGtF,QAnCH,SAmC0BC,GACtB,OAAOA,EAAMsF,WAAWC,SApC5B,G,kGC+BA,yBAKKxF,QALL,SAKmBC,EAAOmF,GAClBnF,EAAMmF,KAAOA,KANrB,iBAeKpF,QAfL,SAe2BC,EAAOK,GAC1BL,EAAMoF,QAAU/E,KAhBxB,iBAyBKN,QAzBL,SAyB4BC,EAAOK,GAC3BL,EAAMgB,QAAUX,KA1BxB,iBA6BKN,QA7BL,SA6B8BC,EAAOK,GAC7B,IAAQmF,EAAkBnF,EAAlBmF,OAAQ1E,EAAUT,EAAVS,MACZd,EAAMoF,QAAQK,QACdzF,EAAMgB,QAAQF,MAAM2D,SAAQ,SAACvD,GAAD,OAAOA,EAAEkC,UAAW,KAEpDtC,EAAM2D,SAAQ,SAACG,GACX,IAG8B,EAHxBK,EAAQjF,EAAMgB,QAAQF,MAAMoE,MAAK,SAAChE,GAAD,OAAOA,EAAEC,KAAOyD,EAAKzD,IAAMD,EAAET,WAAamE,EAAKnE,UAAYS,EAAEoB,WAAasC,EAAKtC,YACtH,GAAI2C,IACAA,EAAM7B,SAAWoC,EACbxF,EAAMoF,QAAQK,QACd,UAAIzF,EAAMqF,YAAV,OAAI,EAAYjM,QAAQ,CACpB,IAAIsM,EAAY1F,EAAMqF,KAAK,GAC3B,GAAIK,EAAW,CACX,IAAMC,EAAW3F,EAAMgB,QAAQF,MAC1B8E,QAAO,SAAC1E,GACL,OAEIA,EAFJ,YAMF2E,EAAU,SAAUC,GACtB,IAAMC,EAAQ,eAAID,GACZlC,EAAiC,GAFc,aAIjD,IAEyD,EAFnDoC,EAAOD,EAAME,MACfD,IACI,CAAC,eAAgB,KAAKtB,SAASsB,EAAK9J,MAAQ,IAC5C,UAAA8J,EAAKjB,gBAAL,SAAeN,SAAQ,SAAAvD,GACf0C,EAAIsC,WAAU,SAAAC,GAAC,OAAIA,EAAE1D,QAAUvB,EAAEuB,SAAS,GAAKmB,EAAIlK,KAAKwH,MAI5D0C,EAAIsC,WAAU,SAAAC,GAAC,OAAIA,EAAE1D,QAAUuD,EAAKvD,SAAS,GAAKmB,EAAIlK,KAAKsM,KAT3E,MAAOD,EAAM3M,OAAQ,IAarB,OAAOwK,EAAIwC,WAGTC,EAAYR,EAAQF,GACpBW,EAAW,eACVD,EACET,QAAO,SAACO,GACL,OAEIT,EAAU5E,MAAMoF,WAAU,SAACK,GAAD,OAAQA,EAAEzH,QAAUqH,EAAE1D,OAAS8D,EAAEpF,KAAOgF,EAAEhF,MAAO,KAGlFF,KAA+B,SAACC,GAAD,sBAAC,kBAC1BA,GADyB,IAE5BsF,KAAMtF,EAAEnD,KACRe,MAAOoC,EAAEuB,MACTW,UAAU,QAGtBsC,EAAU5E,MAAQwF,EAClBG,EAAuBf,QAO3CgB,EAAqB1G,EAAMgB,YA7FnC,iBAgGKjB,QAhGL,SAgGkCC,EAAOK,GACjCL,EAAMgB,QAAQF,MAAQd,EAAMgB,QAAQF,MAAMG,KAAI,SAACC,GAAD,sBAAC,kBAAYA,GAAb,IAAgBkC,SAAU/C,OACxEL,EAAMgB,QAAQuC,YAAclD,KAlGpC,iBA2GKN,QA3GL,SA2GmCC,EAAOK,GAIlC,GAAIL,EAAMqF,KAAKa,WAAU,SAAChF,GAAD,OAAOA,EAAEC,KAAOd,EAAQc,MAAM,EAAG,SAEhDwF,EAAa,UAAItG,EAAQS,aAAZ,aAAI,EAAe8E,QAAQ,SAAChB,GAC3C,OAAyB,MAAlBA,EAAKgC,aAGVC,EAAY,iCACXxG,GADW,IAEdkD,aAAa,EACbzC,OAAoB,OAAb6F,QAAa,IAAbA,OAAA,EAAAA,EAAe1F,KAAI,SAAAC,GAAC,wCAAUA,GAAV,IAAakC,SAAUlC,EAAEkC,gBAAgB,GACpE0D,UAA0B,IAAfzG,EAAQc,KAIjB4F,EAAgB,UAAI1G,EAAQS,aAAZ,aAAI,EAAe8E,QAAQ,SAAChB,GAC9C,OAAyB,MAAlBA,EAAKgC,aAGhB,GAAGG,GAAqBA,EAAiB3N,OAAQ,EAAE,CAC/C,IAAI4N,EAAS,GAEbD,EAAiBtC,SAAQ,SAAAG,GAIlBA,EAAKgC,WAAaK,OAAwBxE,OAGpCmC,EAAKgC,WAAaK,OAAwB7F,aAG3CwD,EAAKgC,UAAYK,OAAwBxG,UAOjDuG,EAAOtN,KAAKiH,OAAIC,GAAG4C,UAAU,CACzB0D,gBAAiB,EACjBC,MAAQvC,EAAK9F,MACbsI,aAAc,GAChB,UAINjM,QAAQ+C,IAAI8I,GAAQhK,MAAK,SAAA/C,GAErBA,EAAOwK,SAAQ,SAAA9F,GACX,IAAI0I,EAAQpN,EAAOqN,QAAQ3I,GAExBA,EAAEmC,MAAM1H,OAAS,GAAGyN,EAAa/F,MAAMpH,KAAnB,iCAChBiF,EAAEmC,MAAM,IADQ,IAEnB0F,KAAM7H,EAAEmC,MAAM,GAAGO,YACjB+B,SAAW2D,EAAiBM,GAAOjE,SACnChC,WAAkD,GAArC2F,EAAiBM,GAAOT,UAAiB,GAAKjI,EAAEmC,MAAM,GAAGK,GACtErC,MAAQH,EAAEmC,MAAM,GAAG2B,MACnBV,MAAQpD,EAAEmC,MAAM,GAAGkB,mBAQnChC,EAAMqF,KAAN,yBAAiBrF,EAAMqF,MAAvB,CAA6BwB,QAhLzC,iBAsLK9G,QAtLL,SAsLiCC,EAAOK,GAChC,GAAIL,EAAMqF,KAAKa,WAAU,SAAChF,GAAD,OAAOA,EAAEC,KAAOd,EAAQc,OAAO,EAAG,CACvD,IAAIuE,EAAY1F,EAAMqF,KAAKH,MAAK,SAAChE,GAAD,OAAOA,EAAEC,KAAOd,EAAQc,MACxD,GAAIuE,EAAW,OAELmB,EAAY,iCACXnB,GADW,IAEd5E,OAAO,UAAAT,EAAQS,aAAR,eAAeG,KAAI,SAAAC,GAAC,wCAAUA,GAAV,IAAakC,UAAU,SAAa,KAGnEpD,EAAMqF,KAAOrF,EAAMqF,KAAKpE,KAAI,SAAAkF,GACxB,OAAIA,EAAEhF,KAAO0F,EAAa1F,GACf0F,EAEGV,UApMlC,iBA0MKpG,QA1ML,SA0MsCC,EAAOK,GACrC,IAAQc,EAAad,EAAbc,GAAIyD,EAASvE,EAATuE,KACNc,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAOA,EAAE+C,KAAOA,KAC9CuE,IACAA,EAAU5E,MAAQ4E,EAAU5E,MAAMG,KAAI,SAACC,GACnC,OAAIA,EAAEC,KAAOyD,EAAKzD,GACd,iCACOD,GADP,IAEIkC,UAAWlC,EAAEkC,WAEPlC,KAElBuF,EAAuBf,OAtNnC,iBA2NK3F,QA3NL,SA2N0CC,EAAOK,GACzC,IAAQc,EAAed,EAAfc,GAAIqE,EAAWnF,EAAXmF,OACNE,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAOA,EAAE+C,KAAOA,KAC9CuE,IACAA,EAAU5E,MAAQ4E,EAAU5E,MAAMG,KAAI,SAAC7C,GAAD,sBAAC,kBAAYA,GAAb,IAAgBgF,SAAUoC,OAChEiB,EAAuBf,OAhOnC,iBAoOK3F,QApOL,SAoOgCC,GACxBA,EAAMqF,KAAO,MArOrB,iBAwOKtF,QAxOL,SAwOuCC,EAAOmB,GACtC,IAAMuE,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAWA,EAAE+C,KAAOA,KACtD,GAAIuE,EAAW,CACX,IAAI6B,EAAgB7B,EAAU5E,MAAM8E,QAAO,SAAC1E,GAAD,OAAYA,EAAEkC,YACzD,GAA4B,GAAxBmE,EAAcnO,OACd,IAAK,IAAIF,EAAE,EAAGA,EAAEwM,EAAU5E,MAAM1H,OAAQF,IAAK,CACzC,IAAI0L,EAAOc,EAAU5E,MAAM5H,GAC3B,GAAI0L,EAAKxB,UACAlK,EAAI,GAAM,EAAG,CACd,IAAIsO,EAAOC,KAAKC,MAAMD,KAAKE,UAAUjC,EAAU5E,MAAM5H,EAAI,KACrD0O,EAAQH,KAAKC,MAAMD,KAAKE,UAAU/C,IACtCc,EAAU5E,MAAM5H,GAAKsO,EACrB9B,EAAU5E,MAAM5H,EAAI,GAAK0O,QApPrD,iBA4PK7H,QA5PL,SA4PyCC,EAAOmB,GACxC,IAAMuE,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAWA,EAAE+C,KAAOA,KACtD,GAAIuE,EAAW,CACX,IAAI6B,EAAgB7B,EAAU5E,MAAM8E,QAAO,SAAC1E,GAAD,OAAYA,EAAEkC,YACzD,GAA4B,GAAxBmE,EAAcnO,OACd,IAAK,IAAIF,EAAE,EAAGA,EAAEwM,EAAU5E,MAAM1H,OAAQF,IAAK,CACzC,IAAI0L,EAAOc,EAAU5E,MAAM5H,GAC3B,GAAI0L,EAAKxB,UACAlK,EAAI,EAAKwM,EAAU5E,MAAM1H,OAAQ,CAClC,IAAIoO,EAAOC,KAAKC,MAAMD,KAAKE,UAAUjC,EAAU5E,MAAM5H,EAAI,KACrD0O,EAAQH,KAAKC,MAAMD,KAAKE,UAAU/C,IACtCc,EAAU5E,MAAM5H,GAAKsO,EACrB9B,EAAU5E,MAAM5H,EAAI,GAAK0O,EACzB1O,UAzQ5B,iBAgTK6G,QAhTL,SAgTwCC,EAAOK,GACvC,IAAMqF,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAuB,IAAhBA,EAAE0I,aAE3C,GAAIpB,GACIA,EAAU5E,MAAMoF,WAAU,SAAAhF,GAAC,OAAIA,EAAEC,KAAOd,EAAQc,MAAM,EAAG,CACzD,IAAMmF,EAAW,GAAH,sBACPZ,EAAU5E,OADH,CAEVT,IAEJqF,EAAU5E,MAAQwF,EAClBG,EAAuBf,OA1TvC,iBAgUK3F,QAhUL,SAgUmCC,EAhUnC,GAgU8F,IAAlD6H,EAAkD,EAAlDA,YAC9BnC,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAOA,EAAE+C,KAAO0G,KAClD,GAAInC,EAAW,CACX,IAAMC,EAAW3F,EAAMgB,QAAQF,MAC1B8E,QAAO,SAAC1E,GACL,OAEIA,EAAEkC,UAEFsC,EAAU5E,MAAMoF,WAAU,SAACK,GAAD,OAAQA,EAAEzH,QAAUoC,EAAEuB,OAAS8D,EAAEpF,KAAOD,EAAEC,MAAO,KAIjF0E,EAAU,SAAUC,GACtB,IAAMC,EAAQ,eAAID,GACZlC,EAAiC,GAFc,aAIjD,IAEyD,EAFnDoC,EAAOD,EAAME,MACfD,IACI,CAAC,eAAgB,KAAKtB,SAASsB,EAAK9J,MAAQ,IAC5C,UAAA8J,EAAKjB,gBAAL,SAAeN,SAAQ,SAAAvD,GACf0C,EAAIsC,WAAU,SAAAC,GAAC,OAAIA,EAAE1D,QAAUvB,EAAEuB,SAAS,GAAKmB,EAAIlK,KAAKwH,MAI5D0C,EAAIsC,WAAU,SAAAC,GAAC,OAAIA,EAAE1D,QAAUuD,EAAKvD,SAAS,GAAKmB,EAAIlK,KAAKsM,KAT3E,MAAOD,EAAM3M,OAAQ,IAarB,OAAOwK,EAAIwC,WAGTC,EAAYR,EAAQF,GACpBW,EAAW,GAAH,sBACPZ,EAAU5E,OADH,eAEPuF,EACET,QAAO,SAACO,GACL,OAEIT,EAAU5E,MAAMoF,WAAU,SAACK,GAAD,OAAQA,EAAEzH,QAAUqH,EAAE1D,OAAS8D,EAAEpF,KAAOgF,EAAEhF,MAAO,KAGlFF,KAA+B,SAACC,GAAD,sBAAC,kBAC1BA,GADyB,IAE5BsF,KAAMtF,EAAEnD,KACRe,MAAOoC,EAAEuB,MACTW,UAAU,SAGtBsC,EAAU5E,MAAQwF,EAClBG,EAAuBf,GACvB1F,EAAMgB,QAAQF,MAAQd,EAAMgB,QAAQF,MAAMG,KAAI,SAACC,GAAD,sBAAC,kBAAYA,GAAb,IAAgBkC,UAAU,OACxEsD,EAAqB1G,EAAMgB,aApXvC,iBAwXKjB,QAxXL,SAwXmCC,EAxXnC,GAwX8F,IAAlD6H,EAAkD,EAAlDA,YAC9BnC,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAOA,EAAE+C,KAAO0G,KAC9CnC,IACAA,EAAU5E,MAAQ4E,EAAU5E,MAAM8E,QAAO,SAAC1E,GAAD,OAAQA,EAAEkC,YACnDqD,EAAuBf,OA5XnC,iBAgYK3F,QAhYL,SAgYmCC,EAhYnC,GAgY+F,IAAnD6H,EAAmD,EAAnDA,YAC9BnC,EAAY1F,EAAMqF,KAAKH,MAAK,SAAC9G,GAAD,OAAOA,EAAE+C,KAAO0G,KAC9CnC,IACA1F,EAAMqF,KAAOrF,EAAMqF,KAAKpE,KAAI,SAAAC,GACxB,OAAIA,IAAMwE,EACN,iCACOxE,GADP,IAEI4F,WAAW,IAIf,iCACO5F,GADP,IAEI4F,WAAW,WA7YnC,iBA0ZK/G,QA1ZL,SA0Z4BC,EAAOK,GAC3B,IAAIyH,EAAWzH,EAAQyH,SACnBC,EAAQ/H,EAAMsF,WAAWC,MAAMW,WAAU,SAAAf,GAAI,OAAIA,EAAK2C,UAAYA,KAClEC,GAAS,EACT/H,EAAMsF,WAAWC,MAAMjL,OAAOyN,EAAO,GAErC/H,EAAMsF,WAAWC,MAAM7L,KAAK2G,MAhaxC,iBAmaKN,QAnaL,SAmakCC,GAC1BA,EAAMsF,WAAWC,MAAQ,MApajC,GAwaMmB,EAAuB,SAAC1F,GAC1B,IAAMgH,EAAahH,EAAQF,MAC3BE,EAAQuC,YACJyE,EAAW5O,OAAS,GAAK4O,EAAWpC,QAAO,SAAC1E,GAAD,OAAOA,EAAEkC,YAAUhK,SAAW4O,EAAW5O,QAGtFqN,EAAyB,SAACf,GAC5BA,EAAUnC,YACNmC,EAAU5E,MAAM1H,OAAS,GACzBsM,EAAU5E,MAAM8E,QAAO,SAAC1E,GAAD,OAAOA,EAAEkC,YAAUhK,SAAWsM,EAAU5E,MAAM1H,QC9cvE4G,EAAkC,CACtCmF,KAAM9L,OAAO8F,OAAO,MACpBkG,KAAM,GACNrE,QAAS,CACPF,MAAO,GACPyC,aAAa,EACbxC,WAAY,GAEduE,WAAY,CACV2C,KAAM,KACN1C,MAAO,IAET2C,YAAa,GACb9C,QAAS,CACP+C,aAAa,EACb1C,QAAQ,EACR2C,MAAM,EACNpE,UAAU,EACVqE,mBAAqB,GACrBC,QAAQ,EACRC,WAAY,KAID,GACbvI,QACAwI,UACAC,UACAC,a,gDC3BF,yBACK3I,QADL,SAC0BQ,EAAQoI,GAAkC,MAC7B,UAA3B,UAAAA,EAAUlG,aAAV,eAAiBmG,SACjBjI,OAAIkI,KAAKC,gBAAgBH,EAAUxH,IAAI,GAE3CZ,EAAOG,OAAOX,OAAqB4I,MAL3C,iBAQK5I,QARL,SAQyBQ,EAAQY,GACzB,IAAKA,GAAoB,kBAAPA,EACd,MAAMzE,MAAM,+CAEhB,OAAOiE,OAAIkI,KAAKE,UAAU5H,GAAInE,MAAK,SAACyF,GAahC,OANIlC,EAAOoE,SAAS5E,OAAqB,CACjCoB,GAAIA,EACJ6H,OAAQ,OACRvG,MAAOA,IAGRA,QAzBnB,iBA6BK1C,QA7BL,SA6BwBQ,EAAQ0I,GACxB,OAAOtI,OAAIuI,OAAOC,cAAcF,GAAUjM,MAAK,SAACoM,GAC5C7I,EAAOG,OAAOX,OAAmB,CAC7BkJ,SAAUA,EACVI,SAAUD,UAjC1B,GCHA,yBACKrJ,QADL,SAC0BC,GAClB,OAAOA,EAAMsJ,gBAFrB,iBAKKvJ,QALL,SAKyBC,GACjB,OAAOA,EAAMsF,cANrB,iBASKvF,QATL,SASwBC,GAChB,OAAOA,EAAMoJ,QAAQtI,SAV7B,GCAMyI,G,oBAAe,SACjBzI,EACAK,GAEA,OAAOL,EAAQA,EAAMoE,MAAK,SAACzC,GAAD,OAAWA,EAAMtB,KAAOA,UAAMnD,IAGtDwL,EAAU,SAASC,GAA+C,IAArB1L,EAAqB,uDAAN,OAC9D,OAAO0L,EAAUC,MAAK,SAACvD,EAAQwD,GAC3B,OAAIxD,EAAEpI,GAAQ4L,EAAE5L,IACJ,EAERoI,EAAEpI,GAAQ4L,EAAE5L,GACL,EAEJ,MAIT6L,EAAgB,SAAhBA,EACFR,EACAjI,GAEA,GAAIA,EACA,IAAK,IAAIjI,EAAI,EAAGA,EAAIkQ,EAAQhQ,OAAQF,IAAK,CACrC,IAAMgQ,EAASE,EAAQlQ,GACvB,GAAIgQ,EAAO/H,KAAOA,EACd,OAAO+H,EACJ,GAAIA,EAAOW,YAAa,CAC3B,IAAMC,EAAMF,EAAcV,EAAOnE,UAAY,GAAI5D,GACjD,GAAI2I,EACA,OAAOA,KAQ3B,yBACK/J,QADL,SACyBC,EAAOmB,GACxB,IAAM4I,EAAM/J,EAAMsF,WAAWgC,QAAQnG,GACjC4I,EAAM,EACN/J,EAAMsF,WAAW5L,KAAKyH,GAEtBnB,EAAMsF,WAAWhL,OAAOyP,EAAK,MANzC,iBAUKhK,QAVL,SAU6BC,EAAOgK,GACxBA,EAAI5Q,SAAW4G,EAAMsF,WAAWlM,OAChC4G,EAAMsF,WAAa,GAEnBtF,EAAMsF,WAAa0E,KAd/B,iBAkBKjK,QAlBL,SAkB+BC,GACvBA,EAAMsF,WAAa,MAnB3B,iBAsBKvF,QAtBL,SAsB0BC,EAAO2I,GACzB,IAAQxH,EAAsBwH,EAAtBxH,GAAI6H,EAAkBL,EAAlBK,OAAQvG,EAAUkG,EAAVlG,MAChBwC,EAAQxC,EAKZ,IAJKwC,GAASjF,EAAMiK,SAChBhF,EAAQsE,EAAavJ,EAAMiK,OAAOnJ,MAAOK,IAGzC8D,EAMA,OAJIjF,EAAMsF,WAAWZ,SAASO,EAAM9D,MAChCnB,EAAMkK,WAAY,GAGdlB,GACJ,IAAK,OACDhJ,EAAMsJ,aAAerE,EAErBjF,EAAMmK,cAAgBlF,EAAM9D,GAE5BnB,EAAMkK,WAAY,EAClB,MAEJ,IAAK,OACD,IAAME,EAAUpK,EAAMsF,WAAWgC,QAAQrC,EAAM9D,IAC3CiJ,EAAU,GACVpK,EAAMsF,WAAW5L,KAAKuL,EAAM9D,IAC5BnB,EAAMmK,cAAgBlF,EAAM9D,IAGxBnB,EAAMsF,WAAWlM,OAAS,GAC1B4G,EAAMsF,WAAWhL,OAAO8P,EAAS,GAGzC,MAEJ,IAAK,QACD,GAAIpK,EAAMmK,cAAe,OACfrJ,GAAQ,UAAAd,EAAMiK,cAAN,eAAcnJ,QAAS,GAC/BuJ,EAAUvJ,EAAMoF,WAClB,SAAC/H,GAAD,OAAOA,EAAEgD,KAAOnB,EAAMmK,iBAEpBG,EAAQxJ,EAAMoF,WAChB,SAAC/H,GAAD,OAAOA,EAAEgD,KAAOwH,EAAUxH,MAExBoJ,EAA0B,GAChC,GAAIF,EAAUC,EACV,IAAK,IAAIpR,EAAImR,EAASnR,GAAKoR,EAAOpR,IAC9BqR,EAAc7Q,KAAKoH,EAAM5H,GAAGiI,SAGhC,IAASjI,EAAImR,EAASnR,GAAKoR,EAAOpR,IAC9BqR,EAAc7Q,KAAKoH,EAAM5H,GAAGiI,IAGpCnB,EAAMsF,WAAaiF,EAEvB,MAEJ,IAAK,SACD,IAAMR,EAAM/J,EAAMsF,WAAWgC,QAAQrC,EAAM9D,IACvC4I,EAAM,EACN/J,EAAMsF,WAAW5L,KAAKuL,EAAM9D,IAE5BnB,EAAMsF,WAAWhL,OAAOyP,EAAK,GAEjC,UAvFpB,iBA4FKhK,QA5FL,SA6FQC,EACApH,GAEA,IAAQqQ,EAAuBrQ,EAAvBqQ,SAAUI,EAAazQ,EAAbyQ,SACZH,EAASU,EAAc5J,EAAMoJ,QAAQtI,MAAOmI,GAAY,IACxDuB,EAAsB,SAAtBA,EACFpB,GAEA,OAAOI,EACHJ,EAAQnI,KAAI,SAACiI,GAKT,OAJAA,EAAOuB,WAAa,KAChBvB,EAAOnE,WACPmE,EAAOnE,SAAWyF,EAAoBtB,EAAOnE,WAE1CmE,OAInBG,EAASvI,MAAQ0J,EAAoBnB,EAASvI,OAC1CoI,EACAA,EAAOnE,SAAWsE,EAASvI,MAE3Bd,EAAMoJ,QAAUC,KAnH5B,GCrCMrJ,EAA8B,CAClCoJ,QAAS,CACPtI,MAAO,GACPC,WAAY,EACZ2J,eAAe,EACfC,eAAgB,GAElBlB,UAAW,GACXQ,OAAQ,KACR3E,WAAY,GACZ6E,cAAe,KAIfD,WAAW,EACXZ,aAAc,KACdsB,OAAQ,CACJC,OAAO,EACPC,UAAU,EACV3D,MAAO,GACP4D,YAAY,EACZC,WAAOhN,EACPiN,QAAS,MAEbC,QAAS,CACLC,YAAa,YAEjBC,MAAO,CACHC,SAAU,CACNC,QAAQ,EACRC,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,SAAS,KAKJ,GACb3L,QACAwI,UACAC,UACAC,a,wGCjCIkD,EAAqB,CACvB,CACI7N,KAAM,QACNoD,GAAI,GACJ0K,KAAM,QACNrG,QAAQ,EACRsG,QAAQ,EACRC,MAAO,GACPC,KAAM,gBACN9P,KAAM,eAEV,CACI6B,KAAM,OACNoD,GAAI,IACJ0K,KAAM,MACNrG,QAAQ,EACRsG,QAAQ,EACRC,MAAO,GACP7P,KAAM,IAEV,CACI6B,KAAM,QACNoD,GAAI,IACJ0K,KAAM,MACNrG,QAAQ,EACRsG,QAAQ,EACRC,MAAO,GACP7P,KAAM,IAEV,CACI6B,KAAM,QACNoD,GAAI,IACJ0K,KAAM,MACNrG,QAAQ,EACRsG,QAAQ,EACRC,MAAO,GACP7P,KAAM,KAIR+P,EAAa,CACf,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGWL,IAETM,EAAkB,iBAChBC,EAAQ,UAAGP,EAAO1G,MAAK,SAAAhE,GAAC,MAAc,QAAVA,EAAEnD,eAAtB,aAAG,EAAoCgO,MACnDpL,OAAIyL,WAAWC,iBAAiB,IAAIrP,MAAK,SAACoM,GACtCA,EAAQnI,KAAI,SAACiI,EAAyBnB,GAClCrI,QAAQ4M,IAAIvE,GACZ,IAAIwE,EAAuB,CACvBxO,KAAM,GACNoD,GAAI,GACJqE,QAAQ,EACRsG,QAAQ,EACR5P,KAAM,GACNsQ,MAAO,GACPtD,OAAQ,MAEZqD,EAAWxO,KAAOmL,EAAO7H,YACzBkL,EAAWpL,GAAK+H,EAAO/H,GACvBoL,EAAWC,MAAStD,EAAOuD,WAAiC,QAApBvD,EAAOuD,UAA0CvD,EAAOuD,UAA3BR,EAAWlE,GAChFwE,EAAWrD,OAASA,EAEZ,OAARiD,QAAQ,IAARA,KAAUzS,KAAK6S,UAKrBG,EAAiB,iBACfP,EAAQ,UAAGP,EAAO1G,MAAK,SAAAhE,GAAC,MAAc,SAAVA,EAAEnD,eAAtB,aAAG,EAAqCgO,MACpDpL,OAAIgM,QAAQC,qBAAqB,IAAI5P,MAAK,SAACoM,GACvC1J,QAAQ4M,IAAI,UAAWlD,GACvBA,EAAQnI,KAAI,SAACiI,EAAyBnB,GAClC,IAAIwE,EAAuB,CACvBxO,KAAM,GACNoD,GAAI,GACJqE,QAAQ,EACRsG,QAAQ,EACR5P,KAAM,GACNsQ,MAAO,GACPtD,OAAQ,MAEZqD,EAAWxO,KAAOmL,EAAO7H,YACzBkL,EAAWpL,GAAK+H,EAAO/H,GACvBoL,EAAWrD,OAASA,EAEZ,OAARiD,QAAQ,IAARA,KAAUzS,KAAK6S,UAKrBM,GAAoB,iBAClBV,EAAQ,UAAGP,EAAO1G,MAAK,SAAAhE,GAAC,MAAc,SAAVA,EAAEnD,eAAtB,aAAG,EAAqCgO,MACpDpL,OAAIgM,QAAQE,kBAAkB,IAAI7P,MAAK,SAACoM,GACpCA,EAAQnI,KAAI,SAACiI,GACT,IAAIqD,EAAuB,CACvBxO,KAAM,GACNoD,GAAI,GACJqE,QAAQ,EACRsG,QAAQ,EACR5P,KAAM,GACNsQ,MAAO,GACPtD,OAAQ,MAEZqD,EAAWxO,KAAOmL,EAAO7H,YACzBkL,EAAWpL,GAAK+H,EAAO/H,GACvBoL,EAAWrD,OAASA,EAEZ,OAARiD,QAAQ,IAARA,KAAUzS,KAAK6S,UAK3BL,IACAQ,IACAG,K,gCCjIMC,GAA2B,CAAC,EAAG,EAAG,GAKlCC,GAA+B,SAAU/M,EAAqCgN,GAChF,IAAIC,GAAgB,EAEdC,EAAiBlN,EAAMmN,WAAWC,KAClCC,EAAgBrN,EAAMsN,YAAYF,KAClCG,EAA8BP,GAAahN,EAAMwN,aAEvD,OAAQD,GACJ,KAAKE,OAAqBC,MACtB,IAAIC,EAASC,OAA4BV,GACrCW,EAAOD,OAA0BV,GACrCD,EAAOW,OAAsBP,EAASM,EAAQE,GAC9C,MACJ,KAAKJ,OAAqBK,KACtB,IAAIC,EAASH,OAA2BV,GACpCc,EAAOJ,OAAyBV,GACpCD,EAAOW,OAAsBP,EAASU,EAAQC,GAC9C,MACJ,KAAKP,OAAqBQ,MACtBhB,EAAOW,OAAsBP,EAASH,EAAUA,GAChD,MAGR,OAAOD,GAMLiB,GAAa,SAAUtJ,GACzB,IAAIuJ,EAAqB,GAwCzB,OAtCI,OAACvJ,QAAD,IAACA,KAAMwJ,QAGF,OAACxJ,QAAD,IAACA,KAAMyJ,MAGP,OAACzJ,QAAD,IAACA,KAAM0J,UAGP,OAAC1J,QAAD,IAACA,KAAM2J,IAGP,OAAC3J,QAAD,IAACA,KAAM4J,SAGgB,IAAvB5J,EAAK6J,eACN7J,EAAKyJ,OAASzJ,EAAK2J,KAAO3J,EAAK0J,WAAa1J,EAAK4J,UACjDL,EAAa,wBAGbP,OAAgBhJ,EAAKyJ,MAAQ,IAAMzJ,EAAK0J,WAAaV,OAAgBhJ,EAAK2J,IAAM,IAAM3J,EAAK4J,WAC3FL,EAAa,wBAGXvJ,EAAK8J,mBAAsB9J,EAAK8J,oBACtCP,EAAa,kBAZbA,EAAa,eAHbA,EAAa,eAHbA,EAAa,eAHbA,EAAa,eAHbA,EAAa,aA2Bb,OAACvJ,QAAD,IAACA,KAAM+J,YAGF/J,EAAK8J,kBAAkBtV,QAAUwL,EAAKgK,kBAAkBxV,SACzD,yBAAIwL,EAAK8J,mBAAT,eAA+B9J,EAAKgK,oBAAmBhJ,QAAO,SAAC1E,GAAD,OAAQA,EAAE2N,UAAsC,GAA3B3N,EAAE2N,QAAQvH,QAAQ,QAAYlO,SACjH+U,EAAa,uBAJjBA,EAAa,eASVA,GAqCX,4BAYKpO,QAZL,SAY2BQ,GACnBA,EAAOoE,SAAS5E,SAChBQ,EAAOoE,SAAS5E,WAdxB,kBAqBKA,SArBL,SAqB6BQ,GACrB,OAAOI,OAAImO,aAAaC,WAAW/R,MAAK,SAAC4G,GACrCrD,EAAOG,OAAOX,QAAwB6D,GACtCrD,EAAOG,OAAOX,OAAkB,YACjCiP,OAAM,SAACvS,UAzBlB,kBAmCKsD,QAnCL,SAmC+BQ,EAAQqE,GAa/B,OAZAlF,QAAQ4M,IAAI,WAAY1H,GACxBrE,EAAOG,OAAOX,OAA0B6E,GACxCrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAC7DL,GAA6BxM,EAAOP,OAMrCO,EAAOG,OAAOX,QALdQ,EAAOoE,SAAS5E,QAQbQ,EAAOoE,SAAS5E,WAhD/B,kBAoDKA,QApDL,SAoD+BQ,EAAQqE,GAC/BrE,EAAOG,OAAOX,OAA0B6E,MArDhD,kBA6DK7E,QA7DL,SA6DqCQ,GAK7B,OAJAA,EAAOP,MAAMsN,YAAYF,KAAO,IAAI8B,KACpC3O,EAAOP,MAAMmP,oBAAoB/B,KAAO,IAAI8B,KAC5C3O,EAAOP,MAAMiP,UAAY,IAAIC,KAC7B3O,EAAOoE,SAAS5E,QACT5E,QAAQ+C,IAAI,CACfqC,EAAOoE,SAAS5E,QAChBQ,EAAOoE,SAAS5E,aApE5B,kBAwEKA,QAxEL,SAwE8BQ,GACtBA,EAAOP,MAAMsN,YAAYF,KAAO,IAAI8B,KACpC3O,EAAOP,MAAMmP,oBAAoB/B,KAAO,IAAI8B,KAC5C3O,EAAOP,MAAMiP,UAAY,IAAIC,KAC7B3O,EAAOoE,SAAS5E,WA5ExB,kBAoFKA,QApFL,SAoFmCQ,EAAQqE,GAInC,OAHArE,EAAOG,OAAOX,OAA8B6E,GAC5CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,QAIrCO,EAAOG,OAAOX,QAGPQ,EAAOoE,SAAS5E,SANhBQ,EAAOoE,SAAS5E,WAzFnC,kBAuGKA,QAvGL,SAuGmCQ,EAAQqE,GAInC,OAHArE,EAAOG,OAAOX,OAA8B6E,GAC5CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,QAIrCO,EAAOG,OAAOX,QAGPQ,EAAOoE,SAAS5E,SANhBQ,EAAOoE,SAAS5E,WA5GnC,kBA2HOA,QA3HP,SA2HmCQ,EAAQqE,GACnC,IAAM5F,EAAOuB,EAAOP,MAAMwN,aAW1B,OAVIxO,IAASyO,OAAqBC,MAC9BnN,EAAOG,OAAOX,OAA8B6E,GACrC5F,IAASyO,OAAqBK,KACrCvN,EAAOG,OAAOX,OAA6B6E,GACpC5F,IAASyO,OAAqBQ,OACrC1N,EAAOG,OAAOX,OAA6B6E,GAG/CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,QAIrCO,EAAOG,OAAOX,QACPQ,EAAOoE,SAAS5E,SAJhBQ,EAAOoE,SAAS5E,WAxInC,kBAqJMA,QArJN,SAqJkCQ,EAAQqE,GAClC,IAAM5F,EAAOuB,EAAOP,MAAMwN,aAW1B,OAVIxO,IAASyO,OAAqBC,MAC9BnN,EAAOG,OAAOX,OAA8B6E,GACrC5F,IAASyO,OAAqBK,KACrCvN,EAAOG,OAAOX,OAA6B6E,GACpC5F,IAASyO,OAAqBQ,OACrC1N,EAAOG,OAAOX,OAA6B6E,GAG/CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,QAIrCO,EAAOG,OAAOX,QACPQ,EAAOoE,SAAS5E,SAJhBQ,EAAOoE,SAAS5E,WAlKnC,kBA+KKA,QA/KL,SA+KqCQ,EAAQqE,GAIrC,OAHArE,EAAOG,OAAOX,OAAgC6E,GAC9CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,OAI9BO,EAAOG,OAAOX,QAHdQ,EAAOoE,SAAS5E,WApLnC,kBAgMKA,QAhML,SAgMkCQ,EAAQqE,GAClCrE,EAAOG,OAAOX,OAA6B6E,GAC3CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,OAKrCO,EAAOG,OAAOX,QAJdQ,EAAOoE,SAAS5E,WArM5B,kBAiNKA,QAjNL,SAiNkCQ,EAAQqE,GAClCrE,EAAOG,OAAOX,OAA6B6E,GAC3CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,OAKrCO,EAAOG,OAAOX,QAJdQ,EAAOoE,SAAS5E,WAtN5B,kBAkOKA,QAlOL,SAkOkCQ,EAAQqE,GAIlC,OAHArE,EAAOG,OAAOX,OAA6B6E,GAC3CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,QAMrCO,EAAOG,OAAOX,QACPQ,EAAOoE,SAAS5E,SANhBQ,EAAOoE,SAAS5E,WAvOnC,kBAqPKA,QArPL,SAqPkCQ,EAAQqE,GAKlC,OAHArE,EAAOG,OAAOX,OAA6B6E,GAC3CrE,EAAOP,MAAMiP,UAAYrB,OAAgBrN,EAAOP,MAAMsN,YAAYF,MAE7DL,GAA6BxM,EAAOP,QAMrCO,EAAOG,OAAOX,QACPQ,EAAOoE,SAAS5E,SANhBQ,EAAOoE,SAAS5E,WA3PnC,kBA+QKA,SA/QL,SA+Q0BQ,EAAQqE,GAC1BrE,EAAOG,OAAOX,QAAqB6E,GACnCrE,EAAOoE,SAAS5E,QAChBQ,EAAOoE,SAAS5E,WAlRxB,kBA0RKA,SA1RL,SA0R6BQ,EAAQ0I,GAAiB,QAC1C7H,EAAiD,OAApC,iBAAapB,MAAMoP,eAAnB,eAA4BjK,MAAe,GAAKkK,OAAarP,MAAMoP,QAAQjK,KAAK/D,WAC7FZ,EAA8C,OAApC,iBAAaR,MAAMoP,eAAnB,eAA4BjK,MAAe,GAAKkK,OAAarP,MAAMoP,QAAQjK,KAAK3E,QAE1FuD,EAAU,CACVpD,OAAIyL,WAAWC,iBAAiBpD,GAChCtI,OAAIyL,WAAWkD,mBACf3O,OAAIgM,QAAQC,qBAAqB,CAAExL,WAAYA,EAAYZ,QAASA,IACpEG,OAAIgM,QAAQE,kBAAkB,CAAEzL,WAAYA,KAGhD,OAAOjG,QAAQ+C,IAAI6F,GAAS/G,MAAK,SAACuS,GAG9B,IAFA,IAAIC,EAAW,GACXC,EAAU,EACLvW,EAAI,EAAGA,EAAIqW,EAAYnW,OAAQF,IAGpC,IAFA,IAAM4H,EAAQyO,EAAYrW,GAEjBkB,EAAI,EAAGA,EAAI0G,EAAM1H,OAAQgB,IAAK,CACnC,IAAMwK,EAAO9D,EAAM1G,GACnBwK,EAAK8K,WAAaD,EAClBD,EAAS9V,KAAKkL,GACd6K,IAIR,IAAI7W,EAAO,CACPkI,MAAO0O,EACPvG,SAAUA,GAGd1I,EAAOG,OAAOX,QAAwBnH,GACtC2H,EAAOG,OAAOX,OAAkB,cACjCiP,OAAM,SAAChU,GACN0E,QAAQ4M,IAAItR,SA3TxB,kBA2UK+E,QA3UL,SA2UqCQ,EAAQoP,GACrCpP,EAAOG,OAAOX,OAAgC4P,GAC9CpP,EAAOG,OAAOX,QACdQ,EAAOoE,SAAS5E,QAChBQ,EAAOoE,SAAS5E,WA/UxB,kBAkVKA,QAlVL,SAkViCQ,EAAQqE,GACjCrE,EAAOG,OAAOX,OAA4B6E,GAC1CrE,EAAOoE,SAAS5E,QAChBQ,EAAOG,OAAOX,QACdQ,EAAOoE,SAAS5E,QAChBQ,EAAOoE,SAAS5E,WAvVxB,kBA8VKA,QA9VL,SA8VuCQ,GAE/B,OADAA,EAAOG,OAAOX,QACPQ,EAAOP,MAAM4P,uBAhW5B,kBAsWK7P,QAtWL,SAsWsCQ,GAI9B,OAHIA,EAAOP,MAAMwN,cAAgBC,OAAqBK,MAClDvN,EAAOG,OAAOX,QAEXQ,EAAOP,MAAM6P,sBA1W5B,kBAgXK9P,QAhXL,SAgXsCQ,GAI9B,OAHIA,EAAOP,MAAMwN,cAAgBC,OAAqBQ,OAClD1N,EAAOG,OAAOX,QAEXQ,EAAOP,MAAM8P,sBApX5B,kBA2XK/P,QA3XL,SA2XqCQ,EAAQwP,GAMrC,OALIA,GAAYtC,OAAqBC,OACjCrU,OAAO2W,OAAOzP,EAAOP,MAAMsN,YAAa/M,EAAOP,MAAMmP,qBAGzD5O,EAAOG,OAAOX,OAAgCgQ,GACvCxP,EAAOoE,SAAS5E,SAClB/C,MAAK,SAAA4G,GACF,IAAIqM,EAAa,CACb1P,EAAOoE,SAAS5E,SAOpB,OAJGgQ,IAAatC,OAAqBQ,OACjCgC,EAAWvW,KAAK6G,EAAOoE,SAAS5E,SAG7B5E,QAAQ+C,IAAI+R,SA3YnC,kBAkZKlQ,QAlZL,SAkZ+BQ,GAEvB,GAAKA,EAAOP,MAAMkQ,YAAlB,CAIA,IAAMA,EAAc3P,EAAOP,MAAMkQ,YACzBtL,EAASsL,EAATtL,KACJuJ,EAAqBD,GAAWtJ,GAEpC,GAAIA,IAASuJ,EAAY,CAGrB,GAFA5N,EAAOG,OAAOX,QAEV6E,EAAKuL,MAAO,CACZ,IAAMC,EAAiC,CACnC,CAAEhR,IAAK,aAAcN,MAAO8F,EAAK+J,YACjC,CAAEvP,IAAK,UAAWN,MAAO8F,EAAKwJ,SAC9B,CAAEhP,IAAK,WAAYN,MAAO8F,EAAKyL,UAC/B,CAAEjR,IAAK,QAASN,MAAO8F,EAAKyJ,MAAQ,IAAMzJ,EAAK0J,WAC/C,CAAElP,IAAK,MAAON,MAAO8F,EAAK2J,IAAM,IAAM3J,EAAK4J,SAC3C,CAAEpP,IAAK,gBAAiBN,MAAO8F,EAAK6J,eACpC,CAAErP,IAAK,OAAQN,MAAO8F,EAAK0L,MAC3B,CAAElR,IAAK,oBAAqBN,MAAO8F,EAAK8J,mBACxC,CAAEtP,IAAK,oBAAqBN,MAAO8F,EAAKgK,mBACxC,CAAExP,IAAK,aAAcN,MAAO8F,EAAK2L,YACjC,CAAEnR,IAAK,YAAaN,MAAO8F,EAAK4L,WAChC,CAAEpR,IAAK,cAAeN,MAAO8F,EAAK6L,aAClC,CAAErR,IAAK,gBAAiBN,MAAO8F,EAAKjI,MACpC,CAAEyC,IAAK,6BAA8BN,MAAO8F,EAAK8L,6BAE/C9X,EAAmC,CACrCwX,OAAQA,EACRnH,SAAUrE,EAAKqE,SACf/M,KAAM,YAGV,OAAOyE,OAAIgQ,aAAaC,YAAYhY,GAC/BoE,KADE,yDACG,WAAO4G,GAAP,qFAEEA,EAFF,uBAGEiN,gBAAiBjR,OAAQ,sBAAuBgE,GAChDrD,EAAOoE,SAAS5E,SAChBQ,EAAOoE,SAAS5E,QALlB,mBAMS,GANT,gCAQK6D,GARL,2CADH,uDAUAoL,OAAM,SAACvS,GAEN,OAAO,KAEZ,QAGH,OAFCmI,EAAakM,WAAb,UAA0BvQ,EAAOwQ,UAAUC,gBAA3C,iBAA0B,EAA2B5B,eAArD,aAA0B,EAAoCjK,KAAK/D,WAE7DT,OAAIsQ,YAAYC,oBAAoBtM,GACtC5H,KADE,yDACG,WAAO4G,GAAP,qFAEEA,EAFF,uBAGErD,EAAOoE,SAAS5E,SAChBQ,EAAOoE,SAAS5E,QAJlB,mBAKS,GALT,2CADH,uDAQAiP,OAAM,SAACvS,GAEN,OAAO,KAMnB,OAFA8D,EAAOG,OAAOX,OAA4BoO,IAEnC,MAvdnB,kBA8dKpO,QA9dL,SA8dgCQ,EAAQqE,GAChC,IAAIuJ,EAAqBD,GAAWtJ,GAEpC,GADAlF,QAAQ4M,IAAI,aAAc6B,GACrBA,EAyDD,OAAO5N,EAAOG,OAAOX,OAA4BoO,GAvDjD,GADA5N,EAAOG,OAAOX,QACV6E,EAAKuL,MAAO,CACZ,IAAMC,EAAiC,CAEnC,CAAEhR,IAAK,aAAcN,MAAO8F,EAAK+J,YACjC,CAAEvP,IAAK,UAAWN,MAAO8F,EAAKwJ,SAC9B,CAAEhP,IAAK,WAAYN,MAAO8F,EAAKyL,UAC/B,CAAEjR,IAAK,QAASN,MAAO8F,EAAKyJ,MAAQ,IAAMzJ,EAAK0J,WAC/C,CAAElP,IAAK,MAAON,MAAO8F,EAAK2J,IAAM,IAAM3J,EAAK4J,SAC3C,CAAEpP,IAAK,gBAAiBN,MAAO8F,EAAK6J,eACpC,CAAErP,IAAK,OAAQN,MAAO8F,EAAK0L,MAC3B,CAAElR,IAAK,oBAAqBN,MAAO8F,EAAK8J,mBACxC,CAAEtP,IAAK,oBAAqBN,MAAO8F,EAAKgK,mBACxC,CAAExP,IAAK,aAAcN,MAAO8F,EAAK2L,YACjC,CAAEnR,IAAK,cAAeN,MAAO8F,EAAK6L,aAClC,CAAErR,IAAK,YAAaN,MAAO8F,EAAK4L,WAChC,CAAEpR,IAAK,gBAAiBN,MAAO8F,EAAKjI,MACpC,CAAEyC,IAAK,6BAA8BN,MAAO8F,EAAK8L,6BAG/C9X,EAAmC,CACrCwX,OAAQA,EACRjP,GAAIyD,EAAKzD,GACTjF,KAAM,YAGV,OAAOyE,OAAIgQ,aAAaQ,UAAUvY,GAC7BoE,KADE,yDACG,WAAO4G,GAAP,qFAEEA,EAFF,uBAGErD,EAAOoE,SAAS5E,SAChBQ,EAAOoE,SAAS5E,QAJlB,mBAKS,GALT,gCAOK6D,GAPL,2CADH,uDASAoL,OAAM,SAACvS,OAMd,OADCmI,EAAakM,WAAavQ,EAAOP,MAAMoR,YAAYjQ,IACpB,aAAxByD,EAAKyM,gBAAiC1Q,OAAIsQ,YAAYK,qBAAqB1M,GAAQjE,OAAIsQ,YAAYM,oBAAoB3M,IAC1H5H,KADE,yDACG,WAAO4G,GAAP,wFAGEA,IACArD,EAAOoE,SAAS5E,SAChBQ,EAAOoE,SAAS5E,SALlB,kBAQK6D,GARL,2CADH,uDAUAoL,OAAM,SAACvS,UArhB9B,kBAkiBKsD,QAliBL,SAkiB2CQ,GACnC,GAAqC,GAAjCA,EAAOP,MAAMwR,iBAA0B,CACnCjR,EAAOP,MAAMyR,eAAeC,+BAC5BnR,EAAOP,MAAMyR,eAAeC,+BAAiC,EAC7DnR,EAAOP,MAAM2R,oBAAsB,GACnC,IAAMrE,EAAc/M,EAAOP,MAAMmP,oBACzB/B,EAASE,EAATF,KAEJrJ,EAAU,GAQV6N,EAAgB,IAAI1C,KAAK9B,GAC7BwE,EAAQC,QAAQD,EAAQE,UAAY,GAEpC/N,EAAQrK,KAAKiH,OAAIgQ,aAAaoB,mCAAmC,CAC7DC,iBAAkBzR,EAAOP,MAAMoJ,QAAQ6I,OAAOnR,MAAM8E,QAAO,SAAC1E,GAAD,OAAOA,EAAEgR,WAASjR,KAAI,SAACC,GAAD,OAAOA,EAAEC,MAC1FgR,UAAWvE,OAAwB,sBAAuBR,GAC1DgF,QAASxE,OAAwB,sBAAuBgE,MAG5D,IAAIS,EAAQ,IAAInD,KAAK9B,GACrBiF,EAAMR,QAAQQ,EAAMP,UAAY,GAEhC,IAAK,IAAI5Y,EAAI,EAAGA,EAAIqH,EAAOP,MAAMoJ,QAAQkJ,YAAYxR,MAAM1H,OAAQF,IAAK,CACpE,IAAMgQ,EAAS3I,EAAOP,MAAMoJ,QAAQkJ,YAAYxR,MAAM5H,GAClDgQ,EAAOgJ,UACJpF,GAAexF,QAAQiL,OAAOrJ,EAAO/H,MAAQ,GAO5C4C,EAAQrK,KAAKiH,OAAIgM,QAAQ6F,0BAA0B,CAC/CC,SAAUvJ,EAAO/H,GACjBgR,UAAWvE,OAAsBR,GACjCgF,QAASxE,OAAsBgE,OAO/C,IAAK,IAAI1Y,EAAI,EAAGA,EAAIqH,EAAOP,MAAMoJ,QAAQsJ,SAAS5R,MAAM1H,OAAQF,IAAK,CACjE,IAAMgQ,EAAS3I,EAAOP,MAAMoJ,QAAQsJ,SAAS5R,MAAM5H,GAC/CgQ,EAAOgJ,SACPnO,EAAQrK,KAAKiH,OAAIgM,QAAQ6F,0BAA0B,CAC/CC,SAAUvJ,EAAO/H,GACjBgR,UAAWvE,OAAsBR,GACjCgF,QAASxE,OAAsBgE,MAK3C,IAAIe,EAAS,GACb,OAAOxX,QAAQ+C,IAAI6F,GAAS/G,MAAK,SAACuS,GAC9B,OAAO5O,OAAIgQ,aAAaoB,mCAAmC,CACvDC,iBAAkBzR,EAAOP,MAAMoJ,QAAQwJ,WAAW9R,MAAM8E,QAAO,SAAC1E,GAAD,OAAOA,EAAEgR,WAASjR,KAAI,SAACC,GAAD,OAAOA,EAAEC,MAC9FgR,UAAWvE,OAAwB,sBAAuBR,GAC1DgF,QAASxE,OAAwB,sBAAuBgE,KAC/B5U,MAAK,SAAC4G,GAAO,uBACrB2L,GADqB,IACtC,2BAA8B,OAArB3W,EAAqB,yBACLA,GADK,yBACjBia,EADiB,QAEhBC,EAAUH,EAAOzN,MAAK,SAAClK,GAAD,OAAuB,MAAf6X,EAAS1R,IAAc0R,EAAS1R,IAAMnG,EAAEmG,IAAoC,cAA5B0R,EAASxB,iBAA+D,aAA5BwB,EAASxB,mBACrI0B,EAA4C,yBACzCxS,EAAOP,MAAMoJ,QAAQ6I,OAAOnR,OADa,eAEzCP,EAAOP,MAAMoJ,QAAQkJ,YAAYxR,OAFQ,eAGzCP,EAAOP,MAAMoJ,QAAQsJ,SAAS5R,QACnCoE,MAAK,SAAClK,GAAD,OAAO6X,EAASG,gBAAkBhY,EAAEmG,MAK3C,GAAI2R,IAAYC,EACZ,iBAGJ,IAAI1W,EAAQwW,EACZxW,EAAME,OAASwW,EAAaxW,OAC5BF,EAAM4W,WAAaF,EAAa1R,YAChChF,EAAM8T,MAAQ4C,EAAa5C,MAC3B9T,EAAMmQ,MAASuG,EAAatG,WAAuC,QAA1BsG,EAAatG,UAA4DsG,EAAatG,UAAnDR,EAAW8G,EAAarD,YACpGiD,EAAOjZ,KAAK2C,IApBhB,2BAA2B,IADD,gCADQ,qDA0BjBuH,GA1BiB,yBA0B7BiP,EA1B6B,QA2B5BC,EAAUH,EAAOzN,MAAK,SAAClK,GAAD,OAAO6X,EAAS1R,IAAMnG,EAAEmG,IAAmC,cAA5B0R,EAASxB,iBAA+D,aAA5BwB,EAASxB,mBAC5G0B,EAAe,eACZxS,EAAOP,MAAMoJ,QAAQwJ,WAAW9R,OACrCoE,MAAK,SAAClK,GAAD,OAAO6X,EAASG,gBAAkBhY,EAAEmG,MAC3C,IAAI2R,IAAYC,MACRA,IAAgBA,EAAaG,UAG7B,iBAIR,GAAItF,OAAwB,oBAAqBA,OAAgBiF,EAAStE,OAASX,OAAwB,sBAAuBgE,GAC9H,iBAEJ,IAAIvV,EAAQwW,EACZxW,EAAME,OAASwW,EAAaxW,OAC5BF,EAAM8T,MAAQ4C,EAAa5C,MAC3B9T,EAAMmQ,MAASuG,EAAatG,WAAuC,QAA1BsG,EAAatG,UAA4DsG,EAAatG,UAAnDR,EAAW8G,EAAarD,YACpGiD,EAAOjZ,KAAK2C,IApBhB,2BAA0B,IA1BY,8BAiDtC,IAAM8W,EAAS,SAAUhN,EAAQwD,GAC7B,OAAOxD,GAAKwD,EAAI,EAAIxD,EAAIwD,GAAK,EAAI,GAUrC,OAPAgJ,EAAOjJ,MAAK,SAACvD,EAAGwD,GAAJ,OACRwJ,EAAOZ,OAAO3E,OAAgBzH,EAAEkI,QAASkE,OAAO3E,OAAgBjE,EAAE0E,UAClE8E,EAAOZ,OAAOpM,EAAEiN,iBAAkBb,OAAO5I,EAAEyJ,qBAG/C7S,EAAOG,OAAOX,OAAsC4S,GACpDpS,EAAOG,OAAOX,OAAkB,eACzB4S,YA/pB/B,kBA0qBK5S,QA1qBL,SA0qBqCQ,EAAQ8S,GACjC9S,EAAOP,MAAMyR,eAAe6B,yBAC5B/S,EAAOP,MAAMyR,eAAe6B,yBAA2B,EACvD/S,EAAOP,MAAMuT,eAAiB,GAC9B,IAAMjG,EAAc/M,EAAOP,MAAMsN,YACzBF,EAASE,EAATF,KAEFoG,EAAuB,SAAUpG,EAAYqG,EAAa1D,GAC5D,OAAQA,GACJ,KAAKtC,OAAqBQ,MACtB,OAAOL,OAA2BR,GAEtC,KAAKK,OAAqBK,KACtB,OAAOF,OAA2BR,GACtC,KAAKK,OAAqBC,MAEtB,OAAOE,OAA4B6F,GAE3C,OAAOrG,GAGLsG,EAAqB,SAAUtG,EAAYqG,EAAa1D,GAC1D,OAAQA,GACJ,KAAKtC,OAAqBQ,MACtB,OAAOL,OAAyBR,GAEpC,KAAKK,OAAqBK,KACtB,IAAIuE,EAAQzE,OAAgBR,GAE5B,OADAiF,EAAMR,QAAQQ,EAAMP,UAAY,GACzBO,EACX,KAAK5E,OAAqBC,MACtB,IAAIkE,EAAUhE,OAA0B6F,GACxC,OAAO7B,EAEf,OAAOxE,GAEPrJ,EAAU,GAERsK,EAAQT,OAAgB4F,EAAqBpG,EAAM7M,EAAOP,MAAMiP,UAAWoE,GAAiB9S,EAAOP,MAAMwN,eACzGe,EAAMX,OAAgB8F,EAAmBtG,EAAM7M,EAAOP,MAAMiP,UAAWoE,GAAiB9S,EAAOP,MAAMwN,eAC3Ge,EAAIsD,QAAQtD,EAAIuD,UAAY,GAE5B/N,EAAQrK,KAAKiH,OAAIgQ,aAAaoB,mCAAmC,CAC7DC,iBAAkBzR,EAAOP,MAAMoJ,QAAQ6I,OAAOnR,MAAM8E,QAAO,SAAC1E,GAAD,OAAOA,EAAEgR,WAASjR,KAAI,SAACC,GAAD,OAAOA,EAAEC,MAC1FgR,UAAWvE,OAAwB,sBAAuBS,GAC1D+D,QAASxE,OAAwB,sBAAuBW,MAG5D,IAAK,IAAIrV,EAAI,EAAGA,EAAIqH,EAAOP,MAAMoJ,QAAQkJ,YAAYxR,MAAM1H,OAAQF,IAAK,CACpE,IAAMgQ,EAAS3I,EAAOP,MAAMoJ,QAAQkJ,YAAYxR,MAAM5H,GAClDgQ,EAAOgJ,UACJpF,GAAexF,QAAQiL,OAAOrJ,EAAO/H,KACpC4C,EAAQrK,KACJiH,OAAIgM,QAAQgH,qBAAqB,CAE/BlB,SAAUvJ,EAAO/H,GACjBgR,UAAW9D,EACX+D,QAAS7D,MAa3B,IAAK,IAAIrV,EAAI,EAAGA,EAAIqH,EAAOP,MAAMoJ,QAAQsJ,SAAS5R,MAAM1H,OAAQF,IAAK,CACjE,IAAMgQ,EAAS3I,EAAOP,MAAMoJ,QAAQsJ,SAAS5R,MAAM5H,GAC/CgQ,EAAOgJ,SACPnO,EAAQrK,KAAKiH,OAAIgM,QAAQgH,qBAAqB,CAC1ClB,SAAUvJ,EAAO/H,GACjBgR,UAAW9D,EACX+D,QAAS7D,KAKrB,IAAIoE,EAAS,GACb,OAAOxX,QAAQ+C,IAAI6F,GAAS/G,MAAK,SAACuS,GAC9B5O,OAAIgQ,aAAaoB,mCAAmC,CAChDC,iBAAkBzR,EAAOP,MAAMoJ,QAAQwJ,WAAW9R,MAAM8E,QAAO,SAAC1E,GAAD,OAAOA,EAAEgR,WAASjR,KAAI,SAACC,GAAD,OAAOA,EAAEC,MAC9FgR,UAAWvE,OAAwB,sBAAuBS,GAC1D+D,QAASxE,OAAwB,sBAAuBW,KAC/BvR,MAAK,SAAC4G,GAAO,uBACrB2L,GADqB,IACtC,2BAA8B,OAArB3W,EAAqB,yBACLA,GADK,yBACjBia,EADiB,QAEhBC,EAAUH,EAAOzN,MAAK,SAAClK,GAAD,OAAS6X,EAAS1R,IAAMnG,EAAEmG,IAAuB,MAAf0R,EAAS1R,IAA6C,cAA5B0R,EAASxB,iBAA+D,aAA5BwB,EAASxB,mBACzI0B,EAA4C,yBACzCxS,EAAOP,MAAMoJ,QAAQ6I,OAAOnR,OADa,eAEvCP,EAAOP,MAAMoJ,QAAQkJ,YAAYxR,OAFM,eAGvCP,EAAOP,MAAMoJ,QAAQsJ,SAAS5R,QACrCoE,MAAK,SAAClK,GAAD,OAAO6X,EAASG,iBAAmBhY,EAAEmG,MAK5C,GAAI2R,IAAYC,EACZ,iBAGJ,IAAI1W,EAAQwW,EACZxW,EAAME,OAASwW,EAAaxW,OAC5BF,EAAM8T,MAAQ4C,EAAa5C,MAC3B9T,EAAMmQ,MAASuG,EAAatG,WAAuC,QAA1BsG,EAAatG,UAA8EsG,EAAatG,UAArE1M,OAA6BgT,EAAarD,YACtHiD,EAAOjZ,KAAK2C,IAnBhB,2BAA2B,IADD,gCADQ,qDAyBjBuH,GAzBiB,yBAyB7BiP,EAzB6B,QA0B5BC,EAAUH,EAAOzN,MAAK,SAAClK,GAAD,OAAO6X,EAAS1R,IAAMnG,EAAEmG,IAAkC,cAA5B0R,EAASxB,mBAC/D0B,EAAe,eACZxS,EAAOP,MAAMoJ,QAAQwJ,WAAW9R,OACrCoE,MAAK,SAAClK,GAAD,OAAO6X,EAASG,gBAAkBhY,EAAEmG,MAC3C,IAAI2R,IAAYC,MACRA,IAAgBA,EAAaG,UAG7B,iBAGR,IAAI7W,EAAQwW,EACZxW,EAAME,OAASwW,EAAaxW,OAC5BF,EAAM8T,MAAQ4C,EAAa5C,MAC3B9T,EAAMmQ,MAASuG,EAAatG,WAAuC,QAA1BsG,EAAatG,UAA8EsG,EAAatG,UAArE1M,OAA6BgT,EAAarD,YACtHiD,EAAOjZ,KAAK2C,IAhBhB,2BAA0B,IAzBY,8BA2CtC,IAAM8W,EAAS,SAAUhN,EAAQwD,GAC7B,OAAOxD,GAAKwD,EAAI,EAAIxD,EAAIwD,GAAK,EAAI,GAgBrC,OAbAgJ,EAAOjJ,MAAK,SAACvD,EAAGwD,GAAJ,OACRwJ,EAAOZ,OAAO3E,OAAgBzH,EAAEkI,QAASkE,OAAO3E,OAAgBjE,EAAE0E,UAClE8E,EAAOZ,OAAOpM,EAAEiN,iBAAkBb,OAAO5I,EAAEyJ,qBAG/C7S,EAAOG,OAAOX,OAAgC4S,GAC9CpS,EAAOG,OAAOX,OAAkB,UAChCQ,EAAOoE,SAAS5E,QACZQ,EAAOP,MAAMwN,cAAgBC,OAAqBK,KAClDvN,EAAOoE,SAAS5E,QACTQ,EAAOP,MAAMwN,cAAgBC,OAAqBQ,OACzD1N,EAAOoE,SAAS5E,QAEb4S,WA7zB3B,kBAw0BK5S,QAx0BL,SAw0BiCQ,EAAQqT,GAEjC,IAAI7P,EAAU,GACV8P,EAAe,iCACZtT,EAAOP,MAAMkL,QAAQN,QADZ,IAEZkJ,QAASF,IAGT,eAAOC,EAAaE,kBAApB,eAA8C,IAC9ChQ,EAAQrK,KAAKiH,OAAIgQ,aAAaqD,wBAAwBH,KAEjD,eAAOA,EAAaE,kBAApB,eAA8C,KAInDF,EAAaE,eAAiB,KAC9BhQ,EAAQrK,KAAKiH,OAAIgQ,aAAaqD,wBAAwBH,KAJtD9P,EAAQrK,KAAKiH,OAAIgM,QAAQqH,wBAAwBH,KAQrD,IAAIlB,EAAS,GACTsB,EAAoB,GAAH,sBACd1T,EAAOP,MAAMoJ,QAAQ6I,OAAOnR,OADd,eAEZP,EAAOP,MAAMoJ,QAAQkJ,YAAYxR,OAFrB,eAGZP,EAAOP,MAAMoJ,QAAQsJ,SAAS5R,QAGvC,OAAO3F,QAAQ+C,IAAI6F,GAAS/G,MAAK,SAACuS,GAAe,uBAC5BA,GAD4B,IAC7C,2BAA8B,OAArB3W,EAAqB,yBACLA,GADK,yBACjBia,EADiB,QAEhBC,EAAUH,EAAOzN,MAAK,SAAClK,GAAD,OAAO6X,EAAS1R,KAAOnG,EAAEmG,MACjD4R,EAAekB,EAAkB/O,MAAK,SAAClK,GAAD,OAAO6X,EAASG,iBAAmBhY,EAAEmG,MAC/E,GAAI2R,IAAYC,EACZ,iBAEJ,IAAI1W,EAAQwW,EACZxW,EAAM4W,WAAaF,EAAa1R,YAChChF,EAAME,OAASwW,EAAaxW,OAC5BF,EAAM8T,MAAQ4C,EAAa5C,MAC3B9T,EAAMmQ,MAASuG,EAAatG,WAAuC,QAA1BsG,EAAatG,UAA8EsG,EAAatG,UAArE1M,OAA6BgT,EAAarD,YACtHiD,EAAOjZ,KAAK2C,IAXhB,2BAAkC,IADR,gCADe,8BAiB7C,IAAM8W,EAAS,SAAUhN,EAAQwD,GAC7B,OAAOxD,GAAKwD,EAAI,EAAIxD,EAAIwD,GAAK,EAAI,GAGrCgJ,EAAOjJ,MAAK,SAACvD,EAAGwD,GAAJ,OACRwJ,EAAOZ,OAAO3E,OAAgBzH,EAAEkI,QAASkE,OAAO3E,OAAgBjE,EAAE0E,UAClE8E,EAAOZ,OAAOpM,EAAEiN,iBAAkBb,OAAO5I,EAAEyJ,qBAI/C7S,EAAOG,OAAOX,OAA4B4S,GAC1CpS,EAAOG,OAAOX,OAAkB,mBACjCiP,OAAM,SAAChU,UAh4BlB,kBA04BK+E,QA14BL,SA04BoCQ,EAAQ0M,GACpC1M,EAAOG,OAAOX,OAA+BkN,MA34BrD,kBA84BKlN,SA94BL,SA84BsCQ,EAAQ0M,GACtC1M,EAAOG,OAAOX,QAAiCkN,MA/4BvD,ICzHA,4BAQKlN,SARL,SAQoCC,GAC5B,OAAOA,EAAMkU,mBATrB,kBAYKnU,SAZL,SAY4BC,GACpB,OAAOA,EAAMoJ,QAAQ+K,iBAb7B,kBAgBKpU,QAhBL,SAgB6BC,GACrB,OAAOA,EAAMoU,WAjBrB,kBAoBKrU,SApBL,SAoBkCC,GAC1B,OAAOA,EAAMqU,uBArBrB,kBAwBKtU,QAxBL,SAwBgCC,GACxB,OAAOA,EAAMsN,eAzBrB,kBA4BKvN,QA5BL,SA4BiCC,GACzB,OAAOA,EAAMsU,gBA7BrB,kBAgCKvU,QAhCL,SAgC+BC,GACvB,OAAOA,EAAMoR,eAjCrB,kBA0CKrR,SA1CL,SA0C6BC,GACrB,OAAOA,EAAMoJ,WA3CrB,kBA8CKrJ,SA9CL,SA8CwBC,GAChB,OAAOA,EAAMoJ,QAAQ6I,OAAOnR,MAAM,MA/C1C,kBAuDKf,QAvDL,SAuDyCC,GACjC,OAAOA,EAAMuU,kBAxDrB,kBA2DKxU,QA3DL,SA2D+BC,GACvB,OAAOA,EAAM8P,sBA5DrB,kBA+DK/P,SA/DL,SA+DmCC,GAC3B,OAAOA,EAAMwU,uBAhErB,kBAmEKzU,QAnEL,SAmEiCC,GACzB,OAAOA,EAAMyU,uBApErB,kBAuEK1U,QAvEL,SAuEgCC,GACxB,OAAOA,EAAMwR,oBAxErB,kBA2EKzR,QA3EL,SA2EkCC,GAC1B,OAAOA,EAAMmP,uBA5ErB,kBA+EKpP,QA/EL,SA+EsCC,GAC9B,OAAOA,EAAM0U,uBAhFrB,kBAmFK3U,QAnFL,SAmFqCC,GAC7B,OAAOA,EAAM2U,2BApFrB,kBAuFK5U,QAvFL,SAuFsCC,GAC9B,OAAOA,EAAM2R,uBAxFrB,kBA2FK5R,QA3FL,SA2FuCC,GAC/B,OAAOA,EAAM4P,uBA5FrB,kBA+FK7P,QA/FL,SA+F0BC,GAClB,OAAOA,EAAM4U,2BAhGrB,kBAmGK7U,QAnGL,SAmGsCC,GAC9B,OAAOA,EAAM6P,sBApGrB,kBAuGK9P,QAvGL,SAuGsCC,GAC9B,OAAOA,EAAM8P,sBAxGrB,kBA2GK/P,QA3GL,SA2G8BC,GACtB,OAAOA,EAAMwN,gBA5GrB,kBA+GKzN,QA/GL,SA+G+BC,GACvB,OAAOA,EAAMkQ,eAhHrB,kBAmHKnQ,QAnHL,SAmHgCC,GACxB,OAAOA,EAAM6U,gBApHrB,kBAuHK9U,QAvHL,SAuHmCC,GAC3B,OAAOA,EAAMkL,QAAQN,UAxH7B,kBA2HK7K,QA3HL,SA2HiCC,GACzB,OAAOA,EAAMkL,QAAQ4J,yBA5H7B,kBA+HK/U,QA/HL,SA+HiCC,GACzB,OAAOA,EAAMkL,QAAQ6J,0BAhI7B,kBAmIKhV,QAnIL,SAmIoCC,GAC5B,OAAOA,EAAMgV,uBApIrB,kBAuIKjV,QAvIL,SAuIiCC,GACzB,OAAOA,EAAMiV,gBAxIrB,kBA2IKlV,SA3IL,SA2IuBC,GACf,OAAOA,EAAMkV,iBA5IrB,kBA+IKnV,QA/IL,SA+IuCC,GAC/B,OAAOA,EAAMmV,wBAhJrB,kBAmJKpV,QAnJL,SAmJgCC,GACxB,OAAOA,EAAMoV,aApJrB,I,oECSMC,GAAa,SAAbA,EAAuBjM,EAA4BjI,GACrD,GAAIA,EAAI,wBACeiI,GADf,IACJ,2BAA4B,KAAnBF,EAAmB,QACxB,GAAIA,EAAO/H,KAAOA,EACd,OAAO+H,EACJ,GAAIA,EAAOoM,kBAAoBpM,EAAOoM,iBAAmB,EAAG,CAC/D,IAAIC,EAAcF,EAAWnM,EAAOpI,OAAS,GAAIK,GACjD,GAAIoU,EACA,OAAOA,IAPf,iCAcNC,GAAgB,SAAUpM,EAAcjI,GAC1C,IAAI+H,EAaJ,OAZAA,EAASmM,GAAWjM,EAAQ6I,OAAOnR,MAA4BK,GAC1D+H,IACDA,EAASmM,GAAWjM,EAAQkJ,YAAYxR,MAA4BK,IAGnE+H,IACDA,EAASmM,GAAWjM,EAAQsJ,SAAS5R,MAA4BK,IAGhE+H,IACDA,EAASmM,GAAWjM,EAAQwJ,WAAW9R,MAA4BK,IAEhE+H,GAILuM,GAAgB,SAAU3U,EAA0B4U,GACtD,GAAI5U,EAAO,CACP,IAAK,IAAI5H,EAAI,EAAGA,EAAI4H,EAAM1H,OAAQF,KACY,GAAtCwc,EAAUpO,QAAQxG,EAAM5H,GAAG6O,SAC3BjH,EAAM5H,GAAGgZ,SAAU,GAI3B,GAAwB,GAApBwD,EAAUtc,OAAa,CACvB,IADuB,mBAEN0H,GAFM,IAEvB,2BAAwB,KAAf8D,EAAe,QACpB,GAAIA,EAAKsN,QAAS,EACP,EACP,QALe,kCAa7ByD,GAAmB,SAAUvM,GAC/B,GAAIA,EAAS,CACT,IADS,EACL6D,GAAO,EACP2I,EAAQ,GAAH,sBACFxM,EAAQ6I,OAAOnR,OADb,eAEFsI,EAAQkJ,YAAYxR,OAFlB,eAGFsI,EAAQsJ,SAAS5R,OAHf,eAIFsI,EAAQwJ,WAAW9R,QANjB,iBAQS8U,GART,IAQT,2BAAyB,KAAjB1M,EAAiB,QACrBA,EAAO9F,UAAW,GATb,qDAYUwS,GAZV,IAYT,2BAA0B,KAAjB1M,EAAiB,QACtB,GAAIA,EAAOgJ,QAAS,CAChBjF,GAAO,EACP,QAfC,+BAmBJA,GAAQ2I,EAAMxc,OAAS,IACxBwc,EAAM,GAAG1D,SAAU,KAKzB2D,GAAyB,SAAU9L,EAAaqD,EAAYuF,GAG9D,IAFA,IAAImD,EAAe,GAEV5c,EAAI,EAAGA,EAAIyZ,EAAOvZ,OAAQF,IAAK,CACpC,IAAMmD,EAAQsW,EAAOzZ,GAEjB6c,EAAQnI,OAAgBvR,EAAM2Z,gBAAkB3Z,EAAMgS,OACtD4H,EAAQrI,OAAgBvR,EAAM6Z,cAAgB7Z,EAAMkS,KAExD,GAAIX,OAAsBR,EAAM2I,EAAOE,MAC9B5Z,EAAM8Z,oBAAsBvI,OAAsBR,IAAS/Q,EAAM8Z,oBAAoB,CACtF,GAAG9Z,EAAMoS,eACFb,OAAwB,mBAAoBR,KAAU/Q,EAAMkS,IAC3D,SAGR,IAAI6H,EAAkC/c,OAAO8F,OAAO,MACpD9F,OAAO2W,OAAOoG,EAAU/Z,GACxB+Z,EAASrO,MAAQ7O,EACjB4c,EAAapc,KAAK0c,IAI9B,OAAON,GAGLO,GAAwB,SAAUtM,EAAaqD,EAAYuF,GAG7D,IAFA,IAAImD,EAAe,GAEV5c,EAAI,EAAGA,EAAIyZ,EAAOvZ,OAAQF,IAAK,CACpC,IAAMmD,EAAQsW,EAAOzZ,GAEjBod,GAAWja,EAAMka,eAAiBla,EAAMgS,OAAS,GAEjDmI,EAAO5I,OAA4B0I,GAAS,GAC5CG,EAAOD,EAAKE,MAAM,KAElBC,EAAOF,EAAKA,EAAKrd,OAAS,GAE9B,GAAc,MAARud,GAAwB,MAARA,EAAe,CACjC,IAAIC,EAAMrE,OAAOoE,GAEbL,EADAM,EAAM,GACIN,EAAQO,QAAQL,EAAhB,UAAyBC,EAAK,GAA9B,WAEAH,EAAQO,QAAQL,EAAhB,UAAyBC,EAAK,GAA9B,WAIlB,IAAIV,EAAQnI,OAAgB0I,EAAQI,MAAM,KAAK,IAE/C,GAAIX,EAAMe,eAAiB1J,EAAK0J,eAC5Bf,EAAMgB,YAAc3J,EAAK2J,YACzBhB,EAAMjE,WAAa1E,EAAK0E,WACxBiE,EAAMiB,YAAc5J,EAAK4J,YACzBjB,EAAMkB,cAAgB7J,EAAK6J,aAAc,CACzC,IAAIb,EAAkC/c,OAAO8F,OAAO,MACpD9F,OAAO2W,OAAOoG,EAAU/Z,GACxB+Z,EAASrO,MAAQ7O,EACjB4c,EAAapc,KAAK0c,IAG1B,OAAON,GAGLoB,GAA4B,SAAU9J,EAAYuF,GAGpD,IAFA,IAAImD,EAAe,GAEV5c,EAAI,EAAGA,EAAIyZ,EAAOvZ,OAAQF,IAAK,CACpC,IAAMmD,EAAQsW,EAAOzZ,GAEjB6c,EAAQnI,OAAgBvR,EAAMka,eAAiBla,EAAMgS,OAErD0H,EAAMe,eAAiB1J,EAAK0J,eAC5Bf,EAAMgB,YAAc3J,EAAK2J,YACzBhB,EAAMjE,WAAa1E,EAAK0E,WAGxBgE,EAAapc,KAAK2C,GAG1B,OAAOyZ,GAcLqB,GAAgB,SAASnX,EAAqC4E,GAChE,GAAIA,GAAQA,EAAKzD,KACRnB,EAAMyU,sBACPzU,EAAMyU,oBAAsB,KAG3BzU,EAAMyU,oBAAoB7O,QAAO,SAAC1E,GAAD,OAAOA,EAAEC,IAAMyD,EAAKzD,MAAI/H,QAAQ,CAClE,IAAIge,EAA+B/d,OAAO8F,OAAO,MACjD9F,OAAO2W,OAAOoH,EAAQxS,GACtB5E,EAAMyU,oBAAoB/a,KAAK0d,KA4C3C,4BAQKrX,QARL,SAQuBC,EAAOlB,IACqB,GAAvCkB,EAAMkV,cAAc5N,QAAQxI,IAC5BkB,EAAMkV,cAAcxb,KAAKoF,MAVrC,kBAmBKiB,SAnBL,SAmB6BC,EAAO4D,GAC5B,OAAOjD,OAAImO,aAAaC,WAAW/R,MAAK,SAAC4G,GACrC5D,EAAMoU,QAAUxQ,KACjBoL,OAAM,SAACvS,UAtBlB,kBA2BKsD,QA3BL,SA2B+BC,EAAO4E,GAC9BvL,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtCtN,EAAMsN,YAAc1I,EACpBvL,OAAO2W,OAAOhQ,EAAMmP,oBAAqBvK,MA9BjD,kBAiCK7E,QAjCL,SAiC+BC,EAAO4E,GAC9BvL,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtCtN,EAAMsN,YAAc1I,EACpBvL,OAAO2W,OAAOhQ,EAAMmP,oBAAqBvK,MApCjD,kBAwCK7E,QAxCL,SAwCqCC,EAAOsN,GACpCjU,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtC,IAAM+J,EAAc/J,EAChBgK,EAAU1J,OAAgByJ,EAAYjK,MACtCmK,EAAWD,EAAQP,WACvBO,EAAQE,SAASD,GACjBF,EAAYjK,KAAOkK,EAEnBtX,EAAMsN,YAAc+J,EACpBhe,OAAO2W,OAAOhQ,EAAMmP,oBAAqBkI,MAjDjD,kBAoDKtX,QApDL,SAoDmCC,EAAOsN,GAClCjU,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtC,IAAM+J,EAAc/J,EAChBgK,EAAU1J,OAAgByJ,EAAYjK,MACtCmK,EAAWD,EAAQP,WACvBO,EAAQE,SAASD,EAAW,GAExBD,EAAQP,YAAcQ,GAEtBD,EAAQzF,QAAQ,GAGpBwF,EAAYjK,KAAOkK,EAEnBtX,EAAMsN,YAAc+J,EACpBhe,OAAO2W,OAAOhQ,EAAMmP,oBAAqBkI,MAnEjD,kBAsEKtX,QAtEL,SAsEmCC,EAAOsN,GAClCjU,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtC,IAAM+J,EAAc/J,EAChBgK,EAAU1J,OAAgByJ,EAAYjK,MACtCmK,EAAWD,EAAQP,WACvBO,EAAQE,SAASD,EAAW,GAEmB,GAA3CE,KAAKC,IAAIH,EAAWD,EAAQP,aAE5BO,EAAQzF,QAAQ,GAGpBwF,EAAYjK,KAAOkK,EAEnBtX,EAAMsN,YAAc+J,EACpBhe,OAAO2W,OAAOhQ,EAAMmP,oBAAqBkI,MArFjD,kBAwFKtX,QAxFL,SAwFkCC,EAAOsN,GACjCjU,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtC,IAAM+J,EAAc/J,EAChBgK,EAAU1J,OAAgByJ,EAAYjK,MAEpC2I,EAAQnI,OAA2B0J,GACzCvB,EAAMlE,QAAQkE,EAAMjE,UAAY,GAEhCuF,EAAYjK,KAAO2I,EACnB/V,EAAMsN,YAAc+J,EACpBhe,OAAO2W,OAAOhQ,EAAMmP,oBAAqBkI,MAlGjD,kBAqGKtX,QArGL,SAqGkCC,EAAOsN,GACjCjU,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtC,IAAM+J,EAAc/J,EAChBgK,EAAU1J,OAAgByJ,EAAYjK,MACpC6I,EAAQrI,OAAyB0J,GAEvCrB,EAAMpE,QAAQoE,EAAMnE,UAAY,GAChCuF,EAAYjK,KAAO6I,EAEnBoB,EAAYjK,KAAO6I,EACnBjW,EAAMsN,YAAc+J,EACpBhe,OAAO2W,OAAOhQ,EAAMmP,oBAAqBkI,MAhHjD,kBAmHKtX,QAnHL,SAmHkCC,EAAOsN,GACjCjU,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtC,IAAM+J,EAAc/J,EAChBgK,EAAU1J,OAAgByJ,EAAYjK,MAC1CkK,EAAQzF,QAAQyF,EAAQxF,UAAY,GAEpCuF,EAAYjK,KAAOkK,EACnBtX,EAAMsN,YAAc+J,EACpBhe,OAAO2W,OAAOhQ,EAAMmP,oBAAqBkI,MA3HjD,kBA8HKtX,QA9HL,SA8HkCC,EAAOsN,GACjCjU,OAAO2W,OAAOhQ,EAAMmN,WAAYnN,EAAMsN,aACtC,IAAM+J,EAAc/J,EAChBgK,EAAU1J,OAAgByJ,EAAYjK,MAC1CkK,EAAQzF,QAAQyF,EAAQxF,UAAY,GAEpCuF,EAAYjK,KAAOkK,EACnBtX,EAAMsN,YAAc+J,EACpBhe,OAAO2W,OAAOhQ,EAAMmP,oBAAqBkI,MAtIjD,kBA0IKtX,QA1IL,SA0I+BC,EAAOmF,GAE9B,MAAO,MA5If,kBAqJKpF,SArJL,SAqJ0BC,EAAO4E,GAAqB,MAC9CA,EAAKsN,SAAWtN,EAAKsN,QAErB,IAAIyF,EAAgE,SAEjD,MAAf/S,EAAKgT,SACLD,EAAU,eAGK,MAAf/S,EAAKgT,SACLD,EAAU,YAGK,SAAf/S,EAAKrI,SACLob,EAAU,cAGd,IAAIE,EAAS7X,EAAMoJ,QAAQuO,GAASG,gBAAgBxQ,QAAQ1C,EAAKmD,OAC7DnD,EAAKsN,SACU,GAAX2F,GACA7X,EAAMoJ,QAAQuO,GAASG,gBAAgBpe,KAAKkL,EAAKmD,QAGtC,GAAX8P,GACA7X,EAAMoJ,QAAQuO,GAASG,gBAAgBxd,OAAOud,EAAQ,GAI9DpC,GAAczV,EAAMoJ,QAAQuO,GAAS7W,MAAOd,EAAMoJ,QAAQuO,GAASG,iBACnEnC,GAAiB3V,EAAMoJ,SACvBxE,EAAKxB,UAAW,EAChBpD,EAAMoJ,QAAQ+K,cAAgBvP,EAC3B5E,EAAMoJ,QAAQ+K,cAAchE,QAC3BnQ,EAAMkL,QAAQ6M,YAAYtF,SAAW7N,EAAKzD,GAC1CnB,EAAMkL,QAAQ6M,YAAYC,WAAapT,EAAKvD,aAEhDrB,EAAMkL,QAAQ6M,YAAYE,WAAa,GAEvC,IAAIC,EAAW,CAAClY,EAAMoJ,QAAQ6I,OAAO6F,gBACjC9X,EAAMoJ,QAAQkJ,YAAYwF,gBAC1B9X,EAAMoJ,QAAQsJ,SAASoF,gBACvB9X,EAAMoJ,QAAQwJ,WAAWkF,iBAEU,OAApC,iBAAa9X,MAAMoP,eAAnB,eAA4BjK,OAC3BgT,QAAIC,IAAIrY,QAAsBsP,OAAarP,MAAMoP,QAAQjK,KAAK/D,WAAY8W,MAjMtF,kBAqMKnY,SArML,SAqM6BC,EAAOpH,GAC5B,IAAQuI,EAAoBvI,EAApBuI,GAAIE,EAAgBzI,EAAhByI,YACN6H,EAASsM,GAAcxV,EAAMoJ,QAASjI,GACxC+H,IACAA,EAAO7H,YAAcA,MAzMjC,kBA6MKtB,SA7ML,SA6M8BC,EAAOpH,GAC7B,IAAQuI,EAAkBvI,EAAlBuI,GAAIsL,EAAc7T,EAAd6T,UACNvD,EAASsM,GAAcxV,EAAMoJ,QAASjI,GACxC+H,IACAA,EAAOuD,UAAYA,MAjN/B,kBAqNK1M,SArNL,SAqN6BC,EAAYpH,GAAqD,MACtF8G,QAAQ4M,IAAI,kBAMZ,IALA,IAAI2F,EAA4B,GAC5BK,EAAiC,GACjCI,EAA8B,GAC9BE,EAAgC,GAE3B1Z,EAAI,EAAGA,EAAIN,EAAKkI,MAAM1H,OAAQF,IAAK,CACxC,IAAM0L,EAAOhM,EAAKkI,MAAM5H,GACpB0L,EAAKuL,MACDvL,EAAKsO,UACLtO,EAAKrI,OAAS,QACdqW,EAAWlZ,KAAKkL,KAEhBA,EAAKrI,OAAS,KACd0V,EAAOvY,KAAKkL,KAGG,MAAfA,EAAKgT,SACLhT,EAAKrI,OAAS,KACd+V,EAAY5Y,KAAKkL,IAGF,MAAfA,EAAKgT,QACLlF,EAAShZ,KAAKkL,IAK1B,IAAIxD,EAAiD,OAApC,iBAAapB,MAAMoP,eAAnB,eAA4BjK,MAAe,GAAKkK,OAAarP,MAAMoP,QAAQjK,KAAK/D,WAC7F8W,EAAWC,QAAIzZ,IAAIqB,QAAsBqB,GAEvCD,EAAKvI,EAAKqQ,UAAY,GACtBoP,EAAWhD,GAAWrV,EAAMoJ,QAAQ6I,OAAOnR,MAAOK,GACpDkX,EACAA,EAASvX,MAAQmR,EAEjBjS,EAAMoJ,QAAQ6I,OAAOnR,MAAQmR,EAG7BiG,GAAYA,EAAS9e,SACrB4G,EAAMoJ,QAAQ6I,OAAO6F,gBAAkBI,EAAS,IAGpDzC,GAAczV,EAAMoJ,QAAQ6I,OAAOnR,MAAOd,EAAMoJ,QAAQ6I,OAAO6F,iBAG/D9X,EAAMoJ,QAAQwJ,WAAW9R,MAAQ8R,EAC7BsF,GAAYA,EAAS9e,SACrB4G,EAAMoJ,QAAQwJ,WAAWkF,gBAAkBI,EAAS,IAExDzC,GAAczV,EAAMoJ,QAAQwJ,WAAW9R,MAAOd,EAAMoJ,QAAQwJ,WAAWkF,kBAElE9X,EAAMkL,QAAQN,OAAOmJ,gBAAkB9B,EAAO7Y,SAC/C4G,EAAMkL,QAAQN,OAAOmJ,eAAiB9B,EAAO,GAAG9Q,IAGhDnB,EAAMoJ,QAAQ6I,OAAOnR,MAAM1H,SAC3B4G,EAAMoJ,QAAQ+K,cAAgBnU,EAAMoJ,QAAQ6I,OAAOnR,MAAM,IAG7D,IAAMwX,EAAgBjD,GAAWrV,EAAMoJ,QAAQkJ,YAAYxR,MAAOK,GAC9DmX,EACAA,EAAcxX,MAAQwR,EAEtBtS,EAAMoJ,QAAQkJ,YAAYxR,MAAQwR,EAElC4F,GAAYA,EAAS9e,SACrB4G,EAAMoJ,QAAQkJ,YAAYwF,gBAAkBI,EAAS,IAEzDzC,GAAczV,EAAMoJ,QAAQkJ,YAAYxR,MAAOd,EAAMoJ,QAAQkJ,YAAYwF,iBAEzE,IAAMS,EAAalD,GAAWrV,EAAMoJ,QAAQsJ,SAAS5R,MAAOK,GACxDoX,EACAA,EAAWzX,MAAQ4R,EAEnB1S,EAAMoJ,QAAQsJ,SAAS5R,MAAQ4R,EAE/BwF,GAAYA,EAAS9e,SACrB4G,EAAMoJ,QAAQsJ,SAASoF,gBAAkBI,EAAS,IAEtDzC,GAAczV,EAAMoJ,QAAQsJ,SAAS5R,MAAOd,EAAMoJ,QAAQsJ,SAASoF,iBAEnEnC,GAAiB3V,EAAMoJ,SACvByH,gBAAiBjR,OAAQ,yBAA0B,SAzS3D,kBAiTKG,QAjTL,SAiTyCC,EAAO4E,GACxC5E,EAAMuU,eAAiB3P,KAlT/B,kBAqTK7E,SArTL,SAqTkCC,EAAO4E,GACjC5E,EAAMwU,oBAAsB5P,KAtTpC,kBA6TK7E,QA7TL,SA6T+BC,GACvBA,EAAMwR,kBAAoBxR,EAAMwR,oBA9TxC,kBAiUKzR,QAjUL,SAiUiCC,EAAO4E,GAEhC5E,EAAMmP,oBAAsBvK,KAnUpC,kBAsUK7E,QAtUL,SAsUqCC,EAAO4E,GAEpC5E,EAAM0U,oBAAsB9P,KAxUpC,kBA2UK7E,QA3UL,SA2UqCC,EAAO2P,GACpC3P,EAAM2U,wBAA0BhF,KA5UxC,kBAgVK5P,QAhVL,SAgVuCC,GAC/BA,EAAM4P,oBAAsB,GAE5B,IAAI4I,EAAa,GACbC,EAAY,GACVC,EAAa,EAEfC,EAAsB,GAC1Btf,OAAO2W,OAAOwI,EAAYxY,EAAMuT,gBAEhC,IAAMJ,EAAS,SAAUhN,EAAQwD,GAC7B,OAAOxD,GAAKwD,EAAI,EAAIxD,EAAIwD,GAAK,EAAI,GAerC,GAXA6O,EAAW9O,MAAK,SAACvD,EAAGwD,GAAJ,OACZwJ,EACIZ,OAAO3E,OAAgBjE,EAAEuM,cAAgBvM,EAAE4E,MAAQgE,OAAO3E,OAAgBjE,EAAEqM,gBAAkBrM,EAAE0E,QAChGkE,OAAO3E,OAAgBzH,EAAE+P,cAAgB/P,EAAEoI,MAAQgE,OAAO3E,OAAgBzH,EAAE6P,gBAAkB7P,EAAEkI,UACjG8E,EAAOZ,OAAO3E,OAAgBzH,EAAE6P,gBAAkB7P,EAAEkI,QAASkE,OAAO3E,OAAgBjE,EAAEqM,gBAAkBrM,EAAE0E,UAC1G8E,EAAOZ,OAAOpM,EAAEiN,iBAAkBb,OAAO5I,EAAEyJ,qBAKlD/Z,OAAO2W,OAAOyI,EAAWzY,EAAMuT,gBAC3BvT,EAAMwN,cAAgBC,OAAqBC,MAC3C,IAAK,IAAIxU,EAAI,EAAGA,EAAIsf,EAAWpf,OAAQF,IAAK,CACxC,IAAMmD,EAAQmc,EAAWtf,GACrB0f,GAAa,EACbC,GAAmB,EACvB,GAAIxc,EAAMyc,iBAAkB,CACxB,IAAIC,EAAWxG,OAAOlW,EAAMyc,iBAAiBpC,MAAM,KAAK,IACxC,GAAZqC,GAAiBC,MAAMD,GACvBH,GAAa,EAEbC,GAAmB,EAGtBA,GACmC,SAA/Bxc,EAAMoS,eAA2D,GAAvBpS,EAAMoS,gBACjDmK,GAAa,GAWjBA,IACAJ,EAAWle,OAAOpB,EAAG,GACrBA,KAKZ,IAAI+f,EAAS,GACTC,EAAO,GACPC,EAAQ,IAAIjK,KACZkK,EAAW,GAGf,GAAIpZ,EAAMwN,cAAgBC,OAAqBC,MAC3C0L,EAAWxL,OAAyB5N,EAAMiP,WAAW,EAAM,QAE1D,GAAIjP,EAAMwN,cAAgBC,OAAqBK,KAEhDsL,EAAWxL,OAAwB5N,EAAMsN,YAAYF,KAAM,QACxD,GAAIpN,EAAMwN,cAAgBC,OAAqBQ,MAClD,IAAK,IAAIoL,EAAK,EAAGA,EAAK,EAAGA,IACrBD,EAAS1f,KAAKkU,OAAsB5N,EAAMsN,YAAYF,OAK9D,IAAK,IAAIlU,EAAI,EAAGA,EAAIsf,EAAWpf,OAAQF,IAAK,CACxC,IAAMmD,EAAQmc,EAAWtf,GACrB0U,OAAgBvR,EAAMgS,OAAS+K,EAAS,KACxC/c,EAAM2Z,eAAiBpI,OAAwB,aAAcwL,EAAS,IAAM,IAAMxL,OAAwB,QAASA,OAAgBvR,EAAMgS,SAGzIT,OAAgBvR,EAAMkS,KAAO6K,EAASA,EAAShgB,OAAS,KACxDiD,EAAM6Z,aAAetI,OAAwB,aAAcwL,EAASA,EAAShgB,OAAS,IAAM,IAAMwU,OAAwB,QAASA,OAAgBvR,EAAMkS,OAKjK,IAAK,IAAIrV,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACtC,IAAIkU,EAAOgM,EAASlgB,GAChBogB,EAAc1L,OAA2BR,EAAW,GAAG0E,WAAa1E,EAAK0E,UAE7E,GAAIwH,EACA,IAAK,IAAIC,EAAI,EAAGA,EAAIb,EAAYa,IAC5BZ,EAAoBY,GAAK3L,OAAgB,GAIjD,IAAI4L,EACApM,EAAK0J,eAAiBqC,EAAMrC,eAC5B1J,EAAK2J,YAAcoC,EAAMpC,YACzB3J,EAAK0E,WAAaqH,EAAMrH,UAExB2H,EACArM,EAAK0J,eAAiB9W,EAAMmP,oBAAoB/B,KAAK0J,eACrD1J,EAAK2J,YAAc/W,EAAMmP,oBAAoB/B,KAAK2J,YAClD3J,EAAK0E,WAAa9R,EAAMmP,oBAAoB/B,KAAK0E,UAEjD4H,GAAgB,EAOpB,GANI1Z,EAAMwN,cAAgBC,OAAqBC,OACvC1N,EAAMmP,oBAAoB/B,KAAK2J,YAAc3J,EAAK2J,aAClD2C,GAAgB,GAIpB1Z,EAAMwN,cAAgBC,OAAqBK,KAAM,CACjD,IAAI6L,EAAgB/L,OAA2B5N,EAAMmP,oBAAoB/B,KAAM,GAC3EwM,EAAchM,OAAyB5N,EAAMmP,oBAAoB/B,KAAM,GAEvEmF,OAAOoH,IAAkBpH,OAAOnF,IAASmF,OAAOqH,IAAgBrH,OAAOnF,KACvEsM,GAAgB,GAIpB1Z,EAAMwN,cAAgBC,OAAqBQ,OACvCwL,IACAC,GAAgB,GAaxB,IATA,IAAIG,EAAYhE,GAAuB3c,EAAGkU,EAAMoL,GAC5CsB,EAAe9Z,EAAMwN,cAAgBC,OAAqBC,MAAQmI,GAAuB3c,EAAGkU,EAAMqL,GAAa,GAE/GsB,EAAgBF,EAAU5Y,KAAI,SAAC2D,EAAMmD,GACrC,GAAIA,EAAQ2Q,EACR,OAAO9T,KAIN7J,EAAI,EAAGA,EAAIgf,EAAc3gB,OAAQ2B,IAAK,CAC3C,IAAMif,EAAQD,EAAchf,GAE5B,QAAaiD,GAATgc,GASJ,GAHAA,EAAMC,gBAAkBlf,GAGnBif,EAAME,UAAW,CAElB,IAAIC,EAAQvM,OAAsBA,OAAgBoM,EAAMhE,gBAAkBgE,EAAM3L,QAC5E+L,EAAkBxM,OAAgBoM,EAAMzL,KACxC8L,EAAkBzM,OAAsBwM,GACxC/H,EAAQzE,OAAsBA,OAAgBoM,EAAM9D,cAAgB8D,EAAMzL,MAE1E+L,EAA0C,GAA9BF,EAAgBpD,YAAmD,GAAhCoD,EAAgBnD,aAE/DqD,GACA1M,OAAsBwL,EAAS,KAAOiB,GACtCzM,OAAsBwL,EAASA,EAAShgB,OAAS,KAAOihB,GACxDhI,EAAMR,QAAQQ,EAAMP,UAAY,GAGpC,IAAIyI,EAAYhI,OAAOF,GAASE,OAAO4H,GACnCK,EAAY/C,KAAKgD,MAAMF,EAAW,OAAyB,EAC/DP,EAAMU,qBAAuBF,EAC7B,IAAIG,EAAS,EAETC,GAAWxN,EAAKyN,SAAWF,GAAU,EACrCG,EAAYrD,KAAKsD,OAAOH,EAAUJ,EAAY,GAAK,GAEnDM,EAAY,IACZd,EAAMU,qBAAuB,EAAIE,GAIrC,IAFA,IAAII,EAAYhB,EAAMU,qBAEbtc,EAAI,EAAGA,EAAI0c,EAAW1c,IAAK,CAChC,IAAI6c,EAAkC5hB,OAAO8F,OAAO,MACpD9F,OAAO2W,OAAOiL,EAAUjB,GACxB,IAAIkB,EAAQtN,OAAgBR,GAC5B8N,EAAMrJ,QAAQqJ,EAAMpJ,UAAY,GAAK1T,EAAI,IACzC6c,EAAS9E,mBAAqBvI,OAAsBA,OAA2BsN,EAAO,IAC7E,GAAL9c,GACA6c,EAASP,qBAAoC,GAAbI,EAAkBN,EAAYR,EAAMU,qBAAwB,EAC5FM,GAAaC,EAASP,sBAEjBtc,EAAI0c,EAAY,GACrBG,EAASP,qBAAuB,EAChCM,GAAaC,EAASP,sBAGtBO,EAASP,qBAAwBF,EAAYQ,EAAa,EAAI,EAAKR,EAAYQ,EAEnFC,EAASf,WAAY,EACjBla,EAAMwN,cAAgBC,OAAqBC,QAC3CuN,EAASE,kBAAmB,GAEhC3C,EAAW9e,KAAKuhB,UAzDpBlB,EAAczf,OAAOS,EAAG,GACxBA,IA6DRgf,EAAcrQ,MAAK,SAACvD,EAAGwD,GAAJ,OACfwJ,EACIZ,OAAO3E,OAAgBjE,EAAEuM,cAAgBvM,EAAE4E,MAAQgE,OAAO3E,OAAgBjE,EAAEqM,gBAAkBrM,EAAE0E,QAChGkE,OAAO3E,OAAgBzH,EAAE+P,cAAgB/P,EAAEoI,MAAQgE,OAAO3E,OAAgBzH,EAAE6P,gBAAkB7P,EAAEkI,UACjG8E,EAAOZ,OAAO3E,OAAgBzH,EAAE6P,gBAAkB7P,EAAEkI,QAASkE,OAAO3E,OAAgBjE,EAAEqM,gBAAkBrM,EAAE0E,UAC1G8E,EAAOZ,OAAOpM,EAAEiN,iBAAkBb,OAAO5I,EAAEyJ,qBAOlD,IAJA,IAAI7D,EAAc,GACd6L,EAAU,EACVC,EAAa,EAERtgB,EAAI,EAAGqgB,EAAU1C,EAAY3d,IAAK,CACvC,IAAMif,EAAQD,EAAchf,GAE5B,GAAI4d,EAAoByC,IAAYxN,OAAsBR,KAAU4M,EAChEzK,EAAY7V,KAAK,CACbyH,GAAI,OACJqL,MAAO,OACP6B,MAAO,GACP4L,gBAAiBmB,EACjBV,qBAAsB,IAE1B3f,IACAsgB,QACG,CACH,GAAIrB,IACAA,EAAMC,gBAAkBmB,EACxBjE,GAAcnX,EAAOga,GACrBzK,EAAY7V,KAAKsgB,GAEbA,EAAMU,qBAAuB,GAAG,CAChC,IAAIY,EAAU1N,OAAsBA,OAAgBoM,EAAM9D,cAAgB8D,EAAMzL,MAChF,GAAIoK,EAAoByC,GAAWE,EAAS,CACxC,IAAIC,GAAW3N,OAAgBoM,EAAM9D,cAAgB8D,EAAMzL,KAChC,GAAvBgN,GAASvE,YAA4C,GAAzBuE,GAAStE,cAA8C,GAAzBsE,GAASC,cACnEF,EAAQG,WAAWH,EAAQE,aAAe,GAE9C7C,EAAoByC,GAAWE,GAK5B,GAAXF,GAAgBxN,OAAsBR,GAAQuL,EAAoByC,KAClEzC,EAAoByC,GAAWxN,OAAgB,IAIvDwN,IAGJ,IAAIM,GAAY7B,EAAUzgB,OAASiiB,EAE/Brb,EAAMwN,cAAgBC,OAAqBC,QAC3CgO,GAAY5B,EAAa1gB,QAG7B,IAAK,IAAI4B,GAAI,EAAGA,GAAI6e,EAAUzgB,OAAQ4B,KAAK,CACvC,IAAMqB,GAAQwd,EAAU7e,IACxBwd,EAAWle,OAAO+B,GAAM0L,MAAQ/M,GAAG,GAGvC,IAAI2gB,GAAW,CACXvO,KAAMA,EACNoM,QAASA,EACTC,WAAYA,EACZmC,MAAwB,GAAjBxO,EAAKyN,SACZgB,MAAwB,GAAjBzO,EAAKyN,SACZnB,cAAeA,EACfoC,gBAAiBJ,GAAYhD,EAAagD,GAAYhD,EAAa,EACnE/F,OAAQpD,GAKZ,GAFA2J,EAAKxf,KAAKiiB,KAELziB,EAAI,GAAK,GAAK,EAAG,CAClB,IAAI6iB,GAAU,IAAIC,MAClBD,GAAU1iB,OAAO2W,OAAO+L,GAAS7C,GACjCD,EAAOvf,KAAKqiB,IACZ7C,EAAO,IAGflZ,EAAM4P,oBAAsBqJ,KAjnBpC,kBAonBKlZ,QApnBL,SAonBsCC,GAC9BA,EAAM6P,mBAAqB,GAE3B,IAAI2I,EAAa,GAIjB,GAFAnf,OAAO2W,OAAOwI,EAAYxY,EAAMuT,gBAE5BvT,EAAMwN,cAAgBC,OAAqBK,KAC3C,IAAK,IAAI5U,EAAI,EAAGA,EAAIsf,EAAWpf,OAAQF,IAAK,CACxC,IAAMmD,EAAQmc,EAAWtf,GACrB0f,GAAa,EACjB,GAAIvc,EAAMyc,iBAAkB,CACxB,IAAIC,EAAWxG,OAAOlW,EAAMyc,iBAAiBpC,MAAM,KAAK,IACpDqC,EAAW,IAAMC,MAAMD,KACvBH,GAAa,GAIe,QAA/Bvc,EAAMoS,eAA0D,GAAvBpS,EAAMoS,gBAChDmK,GAAa,GAcbA,IACAJ,EAAWle,OAAOpB,EAAG,GACrBA,KAKZ,IAAK,IAAIkF,EAAI,EAAGA,EAAIoa,EAAWpf,OAAQgF,IAAK,CACxC,IAAM/B,EAAQmc,EAAWpa,GACzB,IAAK/B,EAAM6d,UAAW,CAClB,IAAI+B,EAASrO,OAAsBA,OAAgBvR,EAAMgS,QACrD6N,EAAOtO,OAAsBA,OAAgBvR,EAAMkS,MAEtD,GAAI0N,EAAOE,YAAcD,EAAKC,WAAY,CACvC,IAAIlB,EAAkC5hB,OAAO8F,OAAO,MACpD9C,EAAMka,cAAgB3I,OAAwB,oBAAqBA,OAAgBvR,EAAMgS,QACzFhS,EAAM+f,YAAcxO,OAAwB,sBAAuBsO,GACnE7iB,OAAO2W,OAAOiL,EAAU5e,GAExB4e,EAAS1E,cAAgB3I,OAAwB,sBAAuBsO,GACxEjB,EAASmB,YAAcxO,OAAwB,oBAAqBA,OAAgBvR,EAAMkS,MAC1F0M,EAASf,WAAY,EAErB1B,EAAW9e,KAAKuhB,KAK5B,IAAM9H,EAAS,SAAUhN,EAAQwD,GAC7B,OAAOxD,GAAKwD,EAAI,EAAIxD,EAAIwD,GAAK,EAAI,GAGjCsP,EAAS,GACTE,EAAQ,IAAIjK,KACZkK,EAAWxL,OAAwB5N,EAAMsN,YAAYF,MAErDiP,EAAgB,GAChBC,EAAW1O,SACX2O,EAAYD,EAASrb,KAAI,SAACC,GAAD,OAAOA,EAAEpC,SACtCyd,EAAU7iB,KAAK,YACf,IAAK,IAAIR,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACtC,IAAMsjB,EAAQpD,EAASlgB,GACnBkU,EAAO,IAAI8B,KAAKsN,GAChBC,EAAavF,GAA0B9J,EAAMoL,GAEjDiE,EAAW/S,MAAK,SAACvD,EAAGwD,GAAJ,OACZwJ,EAAOZ,OAAO3E,OAAgBzH,EAAEoQ,eAAiBpQ,EAAEkI,QAASkE,OAAO3E,OAAgBjE,EAAE4M,eAAiB5M,EAAE0E,UACxG8E,EAAOZ,OAAOpM,EAAEiN,iBAAkBb,OAAO5I,EAAEyJ,qBAE/CiJ,EAAcnjB,GAAKujB,EAGvB,IArFmC,EAqF/BC,EAAY,EACZC,EAAO,EACPC,EAA4C,GAvFb,iBAwFZN,GAxFY,IAwFnC,2BAAiC,CAC7B,IAD6B,IAAtBO,EAAsB,QACpB3jB,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACtC,IAAMsjB,EAAQpD,EAASlgB,GACnB4jB,EAAWT,EAAcnjB,GACzBkU,EAAO,IAAI8B,KAAKsN,GACpBpP,EAAO,IAAI8B,KAAKtB,OAAwB,aAAcR,GAAQ,IAAMyP,EAAS/d,OACxE8d,EAAoB1jB,KACrB0jB,EAAoB1jB,GAAK,IAGxB0jB,EAAoB1jB,GAAGyjB,KACxBC,EAAoB1jB,GAAGyjB,GAAQ,GAGnC,IAAK,IAAIte,EAAI,EAAGA,EAAIye,EAAS1jB,OAAQiF,IAAK,CACtC,IAAMhC,EAAQygB,EAASze,GAEnB0e,EAAUnP,OAAgBR,GAC9B2P,EAAQC,WAAWD,EAAQ9F,aAAe,IACtCrJ,OAA4BR,EAAM2P,EAClCnP,OAAgBvR,EAAMka,eAAiBla,EAAMgS,OAC7CT,OAAgBvR,EAAM+f,aAAe/f,EAAMkS,OAC3CqO,EAAoB1jB,GAAGyjB,MAKnCA,KAnH+B,gCAsHnC,IAAK,IAAIzjB,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACxBkgB,EAASlgB,GACvB,IADA,IACS6F,EAAI,EAAGA,EAAIsd,EAAcnjB,GAAGE,OAAQ2F,IAAK,CAC9C,IAAM1C,EAAQggB,EAAcnjB,GAAG6F,GAC3BgX,EAAQnI,OAAgBvR,EAAMka,eAAiBla,EAAMgS,OACrD4H,EAAQrI,OAAgBvR,EAAM+f,aAAe/f,EAAMkS,KAEnD0O,EAAYrP,OAA8BmI,EAAOE,GACrD5Z,EAAM6gB,qBAAuBzF,KAAKgD,MAAMwC,EAAY,IAEhD5gB,EAAM6gB,sBAAwB,IAC9B7gB,EAAM6gB,qBAAuB,GAGjC,IAAIC,EAASvP,OAA6BvR,EAAMka,eAAiBla,EAAMgS,OAAQ,GAC3E+O,EAASxP,OAA6BvR,EAAM+f,aAAe/f,EAAMkS,KAAM,GAErE8O,EAAc,SAAC7G,GACjB,IAAIC,EAAOD,EAAKE,MAAM,KAClBC,EAAOF,EAAKA,EAAKrd,OAAS,GAC9B,GAAc,MAARud,GAAwB,MAARA,EAAe,CACjC,IAAIC,EAAMrE,OAAOoE,GACjB,MACI,UAAUF,EAAK,GADfG,EAAM,GACN,SAEA,UAGR,OAAOJ,GAGP8G,EAAUD,EAAYF,GACtBI,EAAUF,EAAYD,GAEtBI,EAAOjB,EAAUjV,QAAQgW,GACzBG,EAAOlB,EAAUjV,QAAQiW,GAEzBxH,EAAMjE,WAAamE,EAAMnE,WAAuB,YAAVsL,IACtCK,EAAOlB,EAAUjV,QAAQ,aAI7B,IADA,IAAIoW,EAAM,EACDC,EAAKH,EAAMG,GAAMF,EAAME,IAAM,CAClC,IAAIC,EAAMhB,EAAoB1jB,GAAGykB,GAC7BD,EAAME,IACNF,EAAME,GAGdvhB,EAAMwhB,iBAAmBH,EAG7B,IAAK,IAAIxc,GAAI,EAAGA,GAAImb,EAAcnjB,GAAGE,OAAQ8H,KAGzC,IAFA,IAAM4c,GAASzB,EAAcnjB,GAAGgI,IAC5B6c,GAAOD,GAAOD,iBACTtX,GAAI,EAAGA,GAAI8V,EAAcnjB,GAAGE,OAAQmN,KAAK,CAC9C,IAAMhK,GAAS8f,EAAcnjB,GAAGqN,IAC5BrF,IAAKqF,IACDqH,OACAA,OAAgBkQ,GAAOvH,eAAiBuH,GAAOzP,OAC/CT,OAAgBkQ,GAAO1B,aAAe0B,GAAOvP,KAC7CX,OAAgBrR,GAAOga,eAAiBha,GAAO8R,OAC/CT,OAAgBrR,GAAO6f,aAAe7f,GAAOgS,OACzCwP,GAAOxhB,GAAOshB,mBACdC,GAAOD,iBAAmBthB,GAAOshB,kBASrD,IAFA,IAAIG,GAAqD,GAEhD9c,GAAI,EAAGA,GAAImb,EAAcnjB,GAAGE,OAAQ8H,KAAK,CAG9C,IAFA,IAAM4c,GAASzB,EAAcnjB,GAAGgI,IAC5B+c,GAAU,EACL1X,GAAI,EAAGA,GAAIrF,GAAGqF,KAAK,CACxB,IAAI2X,GAAY3L,OAAO3E,OAAgBkQ,GAAOvH,eAAiBuH,GAAOzP,QACtE,GAAI2P,GAAezX,IAAI,CACnB,IAAK,IAAI/L,GAAI,EAAGA,GAAIwjB,GAAezX,IAAGnN,OAAQoB,KAAK,CAC/C,IAAM2jB,GAASH,GAAezX,IAAG/L,IAC7B4jB,GAAY7L,OAAO3E,OAAgBuQ,GAAO5H,eAAiB4H,GAAO9P,QAClEgQ,GAAU9L,OAAO3E,OAAgBuQ,GAAO/B,aAAe+B,GAAO5P,MAC9D2P,IAAaE,IAAaF,GAAYG,IACtCJ,KAIR,GAAIA,IAAW1X,GACX,OAIPyX,GAAeC,MAEhBD,GAAeC,IAAW,IAG9BH,GAAOQ,iBAAmBL,GAE1BD,GAAeC,IAASvkB,KAAKokB,KAKrC,IADA,IAAIpF,GAAa,EACRxX,GAAI,EAAGA,GAAIsX,EAAWpf,OAAQ8H,KAAK,CACxC,IAAM7E,GAAQmc,EAAWtX,IACrB7E,GAAMwhB,iBAAmBnF,KACzBrc,GAAMwhB,iBAAmBnF,IAGzBrc,GAAMiiB,kBAAoB5F,KAC1BF,EAAWle,OAAO4G,GAAG,GACrBA,MAIRyb,EAAO,EA1O4B,yBA4OZL,GA5OY,IA4OnC,8BAAiC,KAAtBO,GAAsB,SAC7B,GAAIF,EAAO,GAAI,MACf,IAAIzD,GAAO,GACPqF,GAAmCllB,OAAO8F,OAAO,MACrDof,GAAcC,uBAAyB5Q,OAAkB8O,GACzDxD,GAAKxf,KAAK6kB,IACV,IAAK,IAAIrlB,GAAI,EAAGA,GAAIkgB,EAAShgB,OAAQF,KAAK,CACtC,IAAIsjB,GAAQpD,EAASlgB,IACjBkU,GAAO,IAAI8B,KAAKsN,IACpBpP,GAAO,IAAI8B,KAAKtB,OAAwB,aAAcR,IAAQ,IAAMyP,GAAS/d,OAE7E,IAAI0a,GACApM,GAAK0J,eAAiBqC,EAAMrC,eAC5B1J,GAAK2J,YAAcoC,EAAMpC,YACzB3J,GAAK0E,WAAaqH,EAAMrH,UAExB2H,GACArM,GAAK0J,eAAiB9W,EAAM0U,oBAAoBtH,KAAK0J,eACrD1J,GAAK2J,YAAc/W,EAAM0U,oBAAoBtH,KAAK2J,YAClD3J,GAAK0E,WAAa9R,EAAM0U,oBAAoBtH,KAAK0E,WACjD1E,GAAK4J,YAAchX,EAAM0U,oBAAoBtH,KAAK4J,YAClD5J,GAAK6J,cAAgBjX,EAAM0U,oBAAoBtH,KAAK6J,aAEpDyC,IAAgB,EAOpB,GANI1Z,EAAMwN,cAAgBC,OAAqBC,OACvC1N,EAAMmP,oBAAoB/B,KAAK2J,YAAc3J,GAAK2J,aAClD2C,IAAgB,GAIpB1Z,EAAMwN,cAAgBC,OAAqBK,KAAM,CACjD,IAAI6L,GAAgB/L,OAA2B5N,EAAMmP,oBAAoB/B,MACrEwM,GAAchM,OAAyB5N,EAAMmP,oBAAoB/B,MAEjEmF,OAAOoH,KAAkBpH,OAAOnF,KAASmF,OAAOqH,KAAgBrH,OAAOnF,MACvEsM,IAAgB,GAIpB1Z,EAAMwN,cAAgBC,OAAqBQ,OACvCwL,KACAC,IAAgB,GAMxB,IAFA,IAAIG,GAAYxD,GAAsBnd,GAAGkU,GAAMoL,GAEtCxd,GAAI,EAAGA,GAAI6e,GAAUzgB,OAAQ4B,KAAK,CACvC,IAAMqB,GAAQwd,GAAU7e,IACxBwd,EAAWle,OAAO+B,GAAM0L,MAAQ/M,GAAG,GAIvC,IADA,IAAI0iB,GAAM,EACD3e,GAAI,EAAGA,GAAI8a,GAAUzgB,OAAQ2F,KAAK,CACvC,IAAM1C,GAAQwd,GAAU9a,IACxB2e,GAAMrhB,GAAMwhB,iBAKhB,IAFA,IAAI/H,GAAe,GAEV1X,GAAI,EAAGA,GAAIsf,GAAKtf,KAAK,CAE1B,IADA,IAAIqgB,IAAc,EACTlF,GAAI,EAAGA,GAAIM,GAAUzgB,OAAQmgB,KAAK,CACvC,IAAMmF,GAAS7E,GAAUN,IACzB,GAAImF,GAAOJ,kBAAoBlgB,GAAG,CAC9B,IAAIugB,GAAmCtlB,OAAO8F,OAAO,MACrD9F,OAAO2W,OAAO2O,GAAWD,IACzBvH,GAAcnX,EAAO2e,IACrB7I,GAAapc,KAAKilB,IAClBF,IAAc,EACd,OAIHA,IACD3I,GAAapc,KAAK,CACdyH,GAAI,OACJqL,MAAO,OACPoS,UAAW,CACP7gB,KAAM,QAMtB,IAAI4d,GAAW,CACXvO,KAAMA,GACNoM,QAASA,GACTC,WAAYA,GACZmC,MAAwB,GAAjBxO,GAAKyN,SACZgB,MAAwB,GAAjBzO,GAAKyN,SACZnB,cAAeA,GACf/G,OAAQmD,IAGZoD,GAAKxf,KAAKiiB,IAEd,IAAII,GAAU,IAAIC,MAClBD,GAAU1iB,OAAO2W,OAAO+L,GAAS7C,IAEjCD,EAAOvf,KAAKqiB,IAEZW,GAAa,GACbC,KAnV+B,kCA0VnC,IADA,IAAIkC,GAAS,GACL3lB,GAAE,EAAGA,GAAE,GAAIA,KACf,IAAI,IAAIkB,GAAE,EAAGA,GAAE,EAAGA,KACTykB,GAAOzkB,MACRykB,GAAOzkB,IAAK,IAEhBykB,GAAOzkB,IAAGlB,IAAK+f,EAAO/f,IAAGkB,IAGjCykB,GAASA,GAAO/e,MAAM,EAAE,GAexBE,EAAM6P,mBAAqBgP,MAr+BnC,kBAw+BK9e,QAx+BL,SAw+BsCC,GAG9BA,EAAM8P,mBAAqB,GAE3B,IAAI0I,EAAa,GAIjB,GAFAnf,OAAO2W,OAAOwI,EAAYxY,EAAMuT,gBAE5BvT,EAAMwN,cAAgBC,OAAqBQ,MAC3C,IAAK,IAAI/U,EAAI,EAAGA,EAAIsf,EAAWpf,OAAQF,IAAK,CACxC,IAAMmD,EAAQmc,EAAWtf,GACrB0f,GAAa,EACjB,GAAIvc,EAAMyc,iBAAkB,CACxB,IAAIC,EAAWxG,OAAOlW,EAAMyc,iBAAiBpC,MAAM,KAAK,IACpDqC,EAAW,IAAMC,MAAMD,KACvBH,GAAa,GAIe,QAA/Bvc,EAAMoS,eAA0D,GAAvBpS,EAAMoS,gBAChDmK,GAAa,GAcbA,IACAJ,EAAWle,OAAOpB,EAAG,GACrBA,KAKZ,IAAK,IAAIkF,EAAI,EAAGA,EAAIoa,EAAWpf,OAAQgF,IAAK,CACxC,IAAM/B,EAAQmc,EAAWpa,GACzB,IAAK/B,EAAM6d,UAAW,CAClB,IAAI+B,EAASrO,OAAsBA,OAAgBvR,EAAMgS,QACrD6N,EAAOtO,OAAsBA,OAAgBvR,EAAMkS,MAEvD,GAAI0N,EAAOE,YAAcD,EAAKC,WAAY,CACtC,IAAIlB,EAAkC5hB,OAAO8F,OAAO,MACpD9C,EAAMka,cAAgB3I,OAAwB,oBAAqBA,OAAgBvR,EAAMgS,QACzFhS,EAAM+f,YAAcxO,OAAwB,sBAAuBsO,GACnE7iB,OAAO2W,OAAOiL,EAAU5e,GAExB4e,EAAS1E,cAAgB3I,OAAwB,sBAAuBsO,GACxEjB,EAASmB,YAAcxO,OAAwB,oBAAqBA,OAAgBvR,EAAMkS,MAC1F0M,EAASf,WAAY,EAErB1B,EAAW9e,KAAKuhB,KAK5B,IAAM9H,EAAS,SAAUhN,EAAQwD,GAC7B,OAAOxD,GAAKwD,EAAI,EAAIxD,EAAIwD,GAAK,EAAI,GAGjCsP,EAAS,GACTE,EAAQ,IAAIjK,KACZkK,EAAW,CAACxL,OAAsB5N,EAAMsN,YAAYF,OACpDiP,EAAgB,GAChBC,EAAW1O,SACX2O,EAAYD,EAASrb,KAAI,SAACC,GAAD,OAAOA,EAAEpC,SACtCyd,EAAU7iB,KAAK,YACf,IAAK,IAAIR,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACtC,IAAMsjB,EAAQpD,EAASlgB,GACnBkU,EAAO,IAAI8B,KAAKsN,GAChBC,EAAavF,GAA0B9J,EAAMoL,GAEjDiE,EAAW/S,MAAK,SAACvD,EAAGwD,GAAJ,OACZwJ,EAAOZ,OAAO3E,OAAgBzH,EAAEoQ,eAAiBpQ,EAAEkI,QAASkE,OAAO3E,OAAgBjE,EAAE4M,eAAiB5M,EAAE0E,UACxG8E,EAAOZ,OAAOpM,EAAEiN,iBAAkBb,OAAO5I,EAAEyJ,qBAE/CiJ,EAAcnjB,GAAKujB,EAGvB,IAtFmC,EAsF/BC,EAAY,EACZC,EAAO,EACPC,EAA4C,GAxFb,iBAyFZN,GAzFY,IAyFnC,2BAAiC,CAC7B,IAD6B,IAAtBO,EAAsB,QACpB3jB,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACtC,IAAMsjB,EAAQpD,EAASlgB,GACnB4jB,EAAWT,EAAcnjB,GACzBkU,EAAO,IAAI8B,KAAKsN,GACpBpP,EAAO,IAAI8B,KAAKtB,OAAwB,aAAcR,GAAQ,IAAMyP,EAAS/d,OACxE8d,EAAoB1jB,KACrB0jB,EAAoB1jB,GAAK,IAGxB0jB,EAAoB1jB,GAAGyjB,KACxBC,EAAoB1jB,GAAGyjB,GAAQ,GAGnC,IAAK,IAAIte,EAAI,EAAGA,EAAIye,EAAS1jB,OAAQiF,IAAK,CACtC,IAAMhC,EAAQygB,EAASze,GAEnB0e,EAAUnP,OAAgBR,GAC9B2P,EAAQC,WAAWD,EAAQ9F,aAAe,IACtCrJ,OAA4BR,EAAM2P,EAClCnP,OAAgBvR,EAAMka,eAAiBla,EAAMgS,OAC7CT,OAAgBvR,EAAM+f,aAAe/f,EAAMkS,OAC3CqO,EAAoB1jB,GAAGyjB,MAKnCA,KApH+B,gCAuHnC,IAAK,IAAIzjB,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACxBkgB,EAASlgB,GACvB,IADA,IACS6F,EAAI,EAAGA,EAAIsd,EAAcnjB,GAAGE,OAAQ2F,IAAK,CAC9C,IAAM1C,EAAQggB,EAAcnjB,GAAG6F,GAC3BgX,EAAQnI,OAAgBvR,EAAMka,eAAiBla,EAAMgS,OACrD4H,EAAQrI,OAAgBvR,EAAM+f,aAAe/f,EAAMkS,KAEnD0O,EAAYrP,OAA8BmI,EAAOE,GACrD5Z,EAAM6gB,qBAAuBzF,KAAKgD,MAAMwC,EAAY,IAEhD5gB,EAAM6gB,sBAAwB,IAC9B7gB,EAAM6gB,qBAAuB,GAGjC,IAAIC,EAASvP,OAA6BvR,EAAMka,eAAiBla,EAAMgS,OAAQ,GAC3E+O,EAASxP,OAA6BvR,EAAM+f,aAAe/f,EAAMkS,KAAM,GAErE8O,EAAc,SAAC7G,GACjB,IAAIC,EAAOD,EAAKE,MAAM,KAClBC,EAAOF,EAAKA,EAAKrd,OAAS,GAC9B,GAAc,MAARud,GAAwB,MAARA,EAAe,CACjC,IAAIC,EAAMrE,OAAOoE,GACjB,MACI,UAAUF,EAAK,GADfG,EAAM,GACN,SAEA,UAGR,OAAOJ,GAGP8G,EAAUD,EAAYF,GACtBI,EAAUF,EAAYD,GAEtBI,EAAOjB,EAAUjV,QAAQgW,GACzBG,EAAOlB,EAAUjV,QAAQiW,GAEzBxH,EAAMjE,WAAamE,EAAMnE,WAAuB,YAAVsL,IACtCK,EAAOlB,EAAUjV,QAAQ,aAI7B,IADA,IAAIoW,EAAM,EACDC,EAAKH,EAAMG,GAAMF,EAAME,IAAM,CAClC,IAAIC,EAAMhB,EAAoB1jB,GAAGykB,GAC7BD,EAAME,IACNF,EAAME,GAGdvhB,EAAMwhB,iBAAmBH,EAG7B,IAAK,IAAIxc,GAAI,EAAGA,GAAImb,EAAcnjB,GAAGE,OAAQ8H,KAGzC,IAFA,IAAM4c,GAASzB,EAAcnjB,GAAGgI,IAC5B6c,GAAOD,GAAOD,iBACTtX,GAAI,EAAGA,GAAI8V,EAAcnjB,GAAGE,OAAQmN,KAAK,CAC9C,IAAMhK,GAAS8f,EAAcnjB,GAAGqN,IAC5BrF,IAAKqF,IACDqH,OACAA,OAAgBkQ,GAAOvH,eAAiBuH,GAAOzP,OAC/CT,OAAgBkQ,GAAO1B,aAAe0B,GAAOvP,KAC7CX,OAAgBrR,GAAOga,eAAiBha,GAAO8R,OAC/CT,OAAgBrR,GAAO6f,aAAe7f,GAAOgS,OACzCwP,GAAOxhB,GAAOshB,mBACdC,GAAOD,iBAAmBthB,GAAOshB,kBAOrD,IADA,IAAIG,GAAqD,GAChD9c,GAAI,EAAGA,GAAImb,EAAcnjB,GAAGE,OAAQ8H,KAAK,CAI9C,IAHA,IAAM4c,GAASzB,EAAcnjB,GAAGgI,IAC5B+c,GAAU,EAEL1X,GAAI,EAAGA,GAAIrF,GAAGqF,KAAK,CACxB,IAAI2X,GAAY3L,OAAO3E,OAAgBkQ,GAAOvH,eAAiBuH,GAAOzP,QACtE,GAAI2P,GAAezX,IAAI,CACnB,IAAK,IAAI/L,GAAI,EAAGA,GAAIwjB,GAAezX,IAAGnN,OAAQoB,KAAK,CAC/C,IAAM2jB,GAASH,GAAezX,IAAG/L,IAC7B4jB,GAAY7L,OAAO3E,OAAgBuQ,GAAO5H,eAAiB4H,GAAO9P,QAClEgQ,GAAU9L,OAAO3E,OAAgBuQ,GAAO/B,aAAe+B,GAAO5P,MAC9D2P,IAAaE,IAAaF,GAAYG,IACtCJ,KAIR,GAAIA,IAAW1X,GACX,OAIPyX,GAAeC,MAEhBD,GAAeC,IAAW,IAG9BH,GAAOQ,iBAAmBL,GAE1BD,GAAeC,IAASvkB,KAAKokB,KAKrCnB,EAAO,EA9N4B,yBAgOZL,GAhOY,IAgOnC,8BAAiC,KAAtBO,GAAsB,SAC7B,GAAIF,EAAO,GAAI,MACf,IAAIzD,GAAO,GACPqF,GAAmCllB,OAAO8F,OAAO,MACrDof,GAAcC,uBAAyB5Q,OAAkB8O,GACzDxD,GAAKxf,KAAK6kB,IACV,IAAK,IAAIrlB,GAAI,EAAGA,GAAIkgB,EAAShgB,OAAQF,KAAK,CACtC,IAAIsjB,GAAQpD,EAASlgB,IACjBkU,GAAO,IAAI8B,KAAKsN,IACpBpP,GAAO,IAAI8B,KAAKtB,OAAwB,aAAcR,IAAQ,IAAMyP,GAAS/d,OAE7E,IAAI0a,GACApM,GAAK0J,eAAiBqC,EAAMrC,eAC5B1J,GAAK2J,YAAcoC,EAAMpC,YACzB3J,GAAK0E,WAAaqH,EAAMrH,UAExB2H,GACArM,GAAK0J,eAAiB9W,EAAM0U,oBAAoBtH,KAAK0J,eACrD1J,GAAK2J,YAAc/W,EAAM0U,oBAAoBtH,KAAK2J,YAClD3J,GAAK0E,WAAa9R,EAAM0U,oBAAoBtH,KAAK0E,WACjD1E,GAAK4J,YAAchX,EAAM0U,oBAAoBtH,KAAK4J,YAClD5J,GAAK6J,cAAgBjX,EAAM0U,oBAAoBtH,KAAK6J,aAEpDyC,IAAgB,EAOpB,GANI1Z,EAAMwN,cAAgBC,OAAqBC,OACvC1N,EAAMmP,oBAAoB/B,KAAK2J,YAAc3J,GAAK2J,aAClD2C,IAAgB,GAIpB1Z,EAAMwN,cAAgBC,OAAqBK,KAAM,CACjD,IAAI6L,GAAgB/L,OAA2B5N,EAAMmP,oBAAoB/B,MACrEwM,GAAchM,OAAyB5N,EAAMmP,oBAAoB/B,MAEjEmF,OAAOoH,KAAkBpH,OAAOnF,KAASmF,OAAOqH,KAAgBrH,OAAOnF,MACvEsM,IAAgB,GAIpB1Z,EAAMwN,cAAgBC,OAAqBQ,OACvCwL,KACAC,IAAgB,GAMxB,IAFA,IAAIG,GAAYxD,GAAsBnd,GAAGkU,GAAMoL,GAEtCxd,GAAI,EAAGA,GAAI6e,GAAUzgB,OAAQ4B,KAAK,CACvC,IAAMqB,GAAQwd,GAAU7e,IACxBwd,EAAWle,OAAO+B,GAAM0L,MAAQ/M,GAAG,GAIvC,IADA,IAAI0iB,GAAM,EACD3e,GAAI,EAAGA,GAAI8a,GAAUzgB,OAAQ2F,KAAK,CACvC,IAAM1C,GAAQwd,GAAU9a,IACxB2e,GAAMrhB,GAAMwhB,iBAKhB,IAFA,IAAI/H,GAAe,GAEV1X,GAAI,EAAGA,GAAIsf,GAAKtf,KAAK,CAE1B,IADA,IAAIqgB,IAAc,EACTlF,GAAI,EAAGA,GAAIM,GAAUzgB,OAAQmgB,KAAK,CACvC,IAAMmF,GAAS7E,GAAUN,IACzB,GAAImF,GAAOJ,kBAAoBlgB,GAAG,CAC9B,IAAIugB,GAAmCtlB,OAAO8F,OAAO,MACrD9F,OAAO2W,OAAO2O,GAAWD,IACzBvH,GAAcnX,EAAO2e,IACrB7I,GAAapc,KAAKilB,IAClBF,IAAc,EACd,OAIHA,IACD3I,GAAapc,KAAK,CACdyH,GAAI,OACJqL,MAAO,OACPoS,UAAW,CACP7gB,KAAM,QAMtB,IAAI4d,GAAW,CACXvO,KAAMA,GACNoM,QAASA,GACTC,WAAYA,GACZmC,MAAwB,GAAjBxO,GAAKyN,SACZgB,MAAwB,GAAjBzO,GAAKyN,SACZnB,cAAeA,GACf/G,OAAQmD,IAGZoD,GAAKxf,KAAKiiB,IAEd,IAAII,GAAU,IAAIC,MAClBD,GAAU1iB,OAAO2W,OAAO+L,GAAS7C,IACjCD,EAAOvf,KAAKqiB,IACZW,GAAa,GACbC,KArU+B,kCAuUnC3c,EAAM8P,mBAAqBmJ,KA/yCnC,kBAkzCKlZ,QAlzCL,SAkzCqCC,EAAO+P,GACpC/P,EAAMwN,aAAeuC,KAnzC7B,kBAszCKhQ,QAtzCL,SAszC+BC,EAAOpH,GAC9B,IAAQgM,EAAShM,EAATgM,KACR5E,EAAMkQ,YAAYtL,KAAOA,KAxzCjC,kBA2zCK7E,QA3zCL,SA2zCgCC,EAAOpH,GAC/B,IAAQgM,EAAShM,EAATgM,KACR5E,EAAM6U,aAAajQ,KAAOA,KA7zClC,kBAg0CK7E,QAh0CL,SAg0C2CC,EAAO8e,GAC1C9e,EAAM2R,oBAAsBmN,EAC5B9e,EAAMyR,eAAeC,+BAAiC,KAl0C9D,kBAq0CK3R,QAr0CL,SAq0CqCC,EAAO8e,GACpC9e,EAAMuT,eAAiBuL,EACvB9e,EAAMyU,oBAAsB,GAC5BzU,EAAMyR,eAAe6B,yBAA2B,KAx0CxD,kBA20CKvT,QA30CL,SA20CiCC,EAAOpH,GAChCoH,EAAMiV,aAAerc,EACrBS,OAAO2W,OAAOhQ,EAAMyU,oBAAqB7b,MA70CjD,kBAg1CKmH,QAh1CL,SAg1CmCC,EAAOpH,GAClCoH,EAAMkL,QAAQN,OAAOkJ,QAAUlb,KAj1CvC,kBAo1CKmH,QAp1CL,SAo1CiCC,EAAO+e,GAChC/e,EAAMsU,aAAeyK,KAr1C7B,kBAw1CKhf,QAx1CL,SAw1C+BC,GACvBA,EAAMsU,aAAe,MAz1C7B,kBA41CKvU,QA51CL,SA41CiCC,EAAOiN,GAChCjN,EAAMkL,QAAQ4J,sBAAwB7H,KA71C9C,kBAg2CKlN,QAh2CL,SAg2CiCC,EAAOiN,GAChCjN,EAAMkL,QAAQ6J,uBAAyB9H,KAj2C/C,kBAo2CKlN,QAp2CL,SAo2CoCC,EAAOiN,GACnCjN,EAAMgV,oBAAsB/H,KAr2CpC,kBAw2CKlN,QAx2CL,SAw2CuCC,EAAOpH,GACtCoH,EAAMmV,qBAAuBvc,KAz2CrC,kBA42CKmH,QA52CL,SA42CgCC,EAAOpH,GAC/BoH,EAAMoV,UAAYxc,EAClB8G,QAAQ4M,IAAI,aA92CpB,kBAi3CKvM,SAj3CL,SAi3CsCC,EAAOiN,GACrCjN,EAAMkU,gBAAkBjH,KAl3ChC,ICzOMjN,GAAsC,CACxCkU,iBAAiB,EACjBkB,UAAW,KACX4J,mBAAmB,EACnB7J,qBAAsB,KACtBX,oBAAsB,CAClBvL,SAAU,GACVwH,YAAa,GACbwO,gBAAgB,EAChB3O,KAAM,GACND,SAAU,GACVjC,QAAS,GACT8Q,OAAQ,KACR7N,gBAAiB,SACjB8N,qBAAsB,EACtBC,iBAAkB,GAClBC,WAAY,KACZ7O,UAAW,GACXD,WAAY,CACR+O,UAAW1R,OAAwB,aAAc,IAAIsB,MACrD0C,QAAShE,OAAwB,aAAcA,OAAkB,KACjE2R,uBAAuB,EACvBC,mBAAmB,EACnBC,wBAAwB,EACxBC,iBAAiB,EACjBC,iBAAkB,EAClBC,YAAa,IAAI1Q,MAAO6H,WAAa,EACrC8I,oBAAqB,EACrBC,mBAAoB,GACpBC,WAAY,IACZC,SAAU,EACVC,oBAAqB,GAEzBtjB,KAAM,GACNujB,WAAY,GACZvR,WAAY,SACZwR,aAAa,EACbC,aAAa,EACb3R,eAAe,EACf4R,eAAe,EACfhS,MAAOT,OAAwB,oBAAqB,IAAIsB,MACxDZ,UAAW,GACXE,QAAS,GACTD,IAAKX,OAAwB,oBAAqB,IAAIsB,MACtDR,kBAAmB,GACnBE,kBAAmB,GACnB0R,aAAa,EACb5P,2BAA4B,IAGhC6P,WAAW,EACXnP,YAAa,KACboP,uBAAwB,GACxBlM,aAAc,GACdmM,mBAAoB,GACpB9L,wBAAyB,GACzB/E,oBAAqB,GACrBgF,wBAAyB,GACzB/E,mBAAoB,GACpBC,mBAAoB,GACpBtC,aAAc,QACd+F,eAAgB,GAChBkB,oBAAqB,GACrB9C,oBAAqB,GACrBH,kBAAkB,EAClByD,aAAc,GACdD,qBAAqB,EAErB7H,WAAY,CACRC,KAAM,IAAI8B,KACVsK,SAAS,EACTC,YAAY,EACZiH,eAAe,EACf9E,OAAO,EACPC,OAAO,EACPlJ,OAAQ,IAEZrF,YAAa,CACTF,KAAM,IAAI8B,KACVsK,SAAS,EACTC,YAAY,EACZiH,eAAe,EACf9E,OAAO,EACPC,OAAO,EACPlJ,OAAQ,IAEZxD,oBAAqB,CACjB/B,KAAM,IAAI8B,KACVsK,SAAS,EACTC,YAAY,EACZiH,eAAe,EACf9E,OAAO,EACPC,OAAO,EACPlJ,OAAQ,IAEZ+B,oBAAqB,CACjBtH,KAAM,IAAI8B,KACVsK,SAAS,EACTC,YAAY,EACZiH,eAAe,EACf9E,OAAO,EACPC,OAAO,EACPlJ,OAAQ,IAEZ1D,UAAW,IAAIC,KACf9F,QAAS,CACL6I,OAAQ,CACJ0O,OAAQ,GACR7f,MAAO,GACPgX,gBAAiB,IAErBxF,YAAa,CACTqO,OAAQ,GACR7f,MAAO,GACPgX,gBAAiB,IAErBpF,SAAU,CACNiO,OAAQ,GACR7f,MAAO,GACPgX,gBAAiB,IAErBlF,WAAY,CACR+N,OAAQ,GACR7f,MAAO,GACPgX,gBAAiB,IAErB3D,cAAe,KACf+K,OAAQ,MAEZ7K,oBAAqB,SACrBuM,gBAAiB,KACjB1Q,YAAa,CACTtL,KAAM,MAEViQ,aAAc,CACVjQ,KAAM,MAEVsG,QAAS,CACLN,OAAQ,CACJmJ,eAAgB,KAChB8M,QAAS,KACTC,SAAU,KACVC,cAAe,KACfC,iBAAkB,KAClBC,kBAAmB,GACnBC,kBAAmB,GACnB/O,UAAWvE,OAAwB,sBAAuBA,QAAmB,KAC7EwE,QAASxE,OAAwB,sBAAuB,IAAIsB,MAC5D4B,WAAY,KACZqQ,cAAe,EACfC,eAAgB,KAGpBpW,MAAO,GACPqW,eAAgB,KAChBtJ,YAAa,CACTtF,SAAU,GACVuF,WAAY,GACZC,WAAY,IAGhBnD,uBAAuB,EACvBC,wBAAwB,GAE5BtD,eAAgB,CACZ6B,yBAA0B,EAC1B5B,+BAAgC,GAEpC4P,aAAc,GACdpM,cAAe,IAGJ,IACXlV,SACAwI,WACAC,WACAC,cCpL8D,M,aCClE,4BAOK3I,SAPL,SAOiCC,GACzB,OAAOA,EAAMuhB,sBARrB,kBAWKxhB,SAXL,SAW8BC,GACtB,OAAOA,EAAMwhB,SAASlc,cAZ9B,ICAA,4BACKvF,SADL,SACiCC,EAAO4E,GAChC5E,EAAMuhB,mBAAN,iCACOvhB,EAAMuhB,oBACN3c,MAJf,kBAQK7E,SARL,SAQ8BC,EAAO4E,GAC7B,IAAMmF,EAAM/J,EAAMwhB,SAASlc,WAAWgC,QAAQ1C,EAAKzD,IAC/C4I,EAAM,EACN/J,EAAMwhB,SAASlc,WAAW5L,KAAKkL,EAAKzD,IAEpCnB,EAAMwhB,SAASlc,WAAWhL,OAAOyP,EAAK,MAblD,kBAiBKhK,SAjBL,SAiB+BC,EAAOc,GAC1Bd,EAAMwhB,SAASlc,WAAWlM,QAAU0H,EAAM1H,OAC1C4G,EAAMwhB,SAASlc,WAAa,IAE5BtF,EAAMwhB,SAASlc,WAAa,GAC5BxE,EAAMG,KAAI,SAAA2D,GACN5E,EAAMwhB,SAASlc,WAAW5L,KAAKkL,EAAKzD,WAvBpD,kBA4BKpB,SA5BL,SA4BiCC,GACzBA,EAAMwhB,SAASlc,WAAa,MA7BpC,I,aCKImc,GAAiBpoB,OAAO8F,OAAO,MACnCsiB,GAAetgB,GAAK,WACpBsgB,GAAe1jB,KAAO,MACtB0jB,GAAepgB,YAAc,MAC7BogB,GAAeC,YAAa,EAE5BD,GAAere,UAAW,EAC1Bqe,GAAehX,WAAa,KAE5B,IAAIkX,GAAetoB,OAAO8F,OAAO,MACjCwiB,GAAaxgB,GAAK,SAClBwgB,GAAa5jB,KAAO,WACpB4jB,GAAatgB,YAAc,WAC3BsgB,GAAaD,YAAa,EAC1BC,GAAazO,UAAW,EAExByO,GAAave,UAAW,EACxBue,GAAalX,WAAa,KAG1B,I,kBAAMzK,GAAoC,CACxCuhB,mBAAoB,CAClBlgB,YAAa,GACbugB,QAAS,GACTC,UAAW,GACXpf,MAAO,GACPQ,YAAa,GACbqB,WAAY,GACZC,SAAU,GACVud,eAAgB,GAChBC,YAAY,EACZrf,OAAQ,GACRsf,cAAe,GACfC,YAAa,GACbC,iBAAkB,GAClBC,gBAAiB,CACfC,KAAM,GACNC,gBAAiB,GACjBC,WAAY,GACZtiB,MAAO,GACPuiB,OAAQ,IAEVjf,YAAa,CACX8e,KAAM,GACNC,gBAAiB,GACjBC,WAAY,GACZtiB,MAAO,GACPuiB,OAAQ,IAEVC,YAAa,GACb/R,YAAa,GACb5O,UAAW,GACXmD,iBAAkB,GAClBgO,eAAgB,GAChBxO,UAAW,KACXie,WAAYC,QAAmBC,GAC/BzmB,KAAM,KACNgjB,OAAQ,KACR0D,WAAW,EACX1P,UAAU,GAGZ2P,SAAU,CACRC,cAAc,EACdC,iBAAiB,EACjBC,gBAAiB,GACjBC,YAAY,GAEd7Z,QAAS,CACP8Z,SAAU,CAACzB,IAEXzd,SAAU,GAEVG,MAAO,GACPgf,aAAc,GACdC,OAAQ,CAACzB,IACTrZ,OAAQjP,OAAO8F,OAAO,MACtBkkB,MAAOhqB,OAAO8F,OAAO,MACrBiQ,QAAS/V,OAAO8F,OAAO,OAEzBqiB,SAAU,CACR8B,MAAO,CACLxiB,MAAO,IAETyiB,aAAa,EACbnU,QAAS,KACToU,IAAK,CACHta,OAAQ7P,OAAO8F,OAAO,MACtByF,KAAMvL,OAAO8F,OAAO,MACpB6B,QAAS3H,OAAO8F,OAAO,MACvB1B,MAAO,CACLokB,UAAW,GACXpf,MAAO,GACPC,OAAQ,GACR4f,WAAY,GACZN,cAAe,GACfC,YAAa,KAGjBjhB,QAAS,CACP9E,KAAM,KACN4E,MAAO,IAETwE,WAAY,GACZ6E,cAAe,IAEjBe,QAAS,CACPN,OAAQvR,OAAO8F,OAAO,MACtB6L,MAAO,GACP9B,OAAQ,KACRtD,OAAQ,IAEV6d,MAAO,CACLva,OAAQ7P,OAAO8F,OAAO,MACtByF,KAAMvL,OAAO8F,OAAO,MACpB6B,QAAS3H,OAAO8F,OAAO,MACvB1B,MAAOpE,OAAO8F,OAAO,OAEvBgB,SAAS,GAGI,IACbH,SACAwI,WACAC,WACAC,c,0BC/HF,4BAOK3I,SAPL,SAOqCQ,EAAQF,GACrC,OAAOM,QAAI+iB,OAAOC,yBAAyBtjB,GACtCrD,MAAK,SAAC4G,GACH,IAAIkC,EAAOlC,EAAIggB,WAAW3iB,KAAI,SAAAC,GAC1B,wCACOA,GADP,IAEI2iB,aAAc3iB,EAAE2iB,aAAa5iB,KAAI,SAAAsF,GAC7B,wCACOA,GADP,IAEIud,cAA8B9lB,IAApBuI,EAAEwd,eAAmD,OAApBxd,EAAEwd,wBAY7D,OANAngB,EAAIggB,WAAa9d,EAGdzF,EAAQ2jB,OAAS,GAChBzjB,EAAOG,OAAOX,QAAgC6D,GAE3CA,QA5BvB,kBAgCS7D,SAhCT,SAgCqCQ,EAAQkD,GACjC,IAAMxI,EAAW,CAACsF,EAAOoE,SAAS5E,QAA+B,CAACikB,OAAQ,KAC1E,OAAO7oB,QAAQ+C,IAAIjD,GAAU+B,MAAK,SAACinB,GAC/B,IAAM7e,EAAU6e,EAAQ,GAClBC,EAAa,CAACN,WAAYxe,EAAQwe,WAAWhe,QAAO,SAAC1E,GAAD,OAA+B,IAAxBA,EAAEijB,WAAWH,WAExEI,EAAgB,CAClBR,WAAYxe,EAAQwe,WAAWhe,QAAO,SAAC1E,GAAD,OAA+B,IAAxBA,EAAEijB,WAAWH,WAExDK,EAAe,GACrBD,EAAcR,WAAWnf,SAAQ,SAACvD,GAC3BA,EAAEijB,WAAWG,eACZD,EAAanjB,EAAEijB,WAAWG,cACW,OAArCpjB,EAAE2iB,aAAa,GAAGU,eAChBrjB,EAAE2iB,aAAa,GAAGU,eAClBrjB,EAAE2iB,aAAa,GAAGW,kBAG5B,IAAIC,EAAoB,GACxBP,EAAWN,WAAWnf,SAAQ,SAACvD,GACzBA,EAAEijB,WAAWG,eACfG,EAAkBvjB,EAAEijB,WAAWG,cAAgBpjB,EAAE2iB,aAAa5iB,KAAI,SAACsF,GACjE,OAAyB,OAArBA,EAAEge,eACG,CACLR,cAAexd,EAAEwd,cACjBjlB,MAAOyH,EAAEge,gBAGJ,CACLR,cAAexd,EAAEwd,cACjBjlB,MAAOyH,EAAEie,sBAMnB,IAAI5rB,EAAO,CAAE8rB,OAAQL,EAAcM,YAAaF,GAEhDlkB,EAAOG,OAAOX,QAA4BnH,SAtE1D,kBA4ESmH,SA5ET,SA4EiCQ,EAAQ3H,GAC/B,OAAO+H,QAAIikB,KAAKC,QAAQjsB,GAAMoE,MAAK,SAAA4G,GAEjC,OADArD,EAAOG,OAAOX,QAAuB6D,GAC9BA,QA/EnB,ICHA,4BACK7D,SADL,SAC6BC,GACrB,OAAOA,EAAM8kB,UAAU1V,WAF/B,kBAKKrP,SALL,SAKiCC,GACzB,OAAOA,EAAMoF,WANrB,ICAA,4BACKrF,SADL,SAC6BC,EAAO4E,GAC5B5E,EAAM8kB,UAAU1V,QAAUxK,KAFlC,kBAKK7E,SALL,SAKiCC,EAAOK,GAChCL,EAAMoF,QAAU/E,KANxB,ICEML,GAAsC,CAC1C8kB,UAAW,CACTxB,MAAO,KACPC,aAAa,EACbnU,QAAS,KACT2V,YAAa,KACbC,iBAAkB,KAClBC,eAAgB,KAChBC,cAAe,IAEjB9f,QAAS,CACPsf,OAAQ,GACRC,YAAa,KAIF,IACb3kB,SACAwI,WACAC,WACAC,cCvB4D,M,aCC/C,qBACV3I,SADL,SACkCC,GAC1B,OAAOA,EAAMmlB,kBCFN,qBACVplB,SADL,SACkCC,EAA+BK,GACzDL,EAAMmlB,eAAiB9kB,KCAzBL,GAAgC,CACpCmlB,eAAgB,KAChBC,YAAa,MAGA,IACbplB,SACAwI,WACAC,WACAC,c,uCCTF,4BAYM3I,SAZN,SAY6BQ,EAAQ0M,GAC7B1M,EAAOG,OAAOX,QAAuBkN,MAb7C,kBAsBKlN,SAtBL,SAsBoCQ,GAC5B,OAAOI,QAAI0kB,eACNroB,MAAK,SAAC4G,GAEH,OADArD,EAAOG,OAAOX,QAA+B6D,GACtCA,QA1BvB,kBA8BK7D,SA9BL,SA8BoCQ,EAAQF,GACpC,IAAQzH,EAAkByH,EAAlBzH,KAAM0sB,EAAYjlB,EAAZilB,QAEd,OAAGA,EACQ3kB,QAAI4kB,gBAAgB3sB,GACtBoE,MAAK,SAAC4G,GAEH,OADArD,EAAOoE,SAAS5E,SACT6D,KAKRjD,QAAI6kB,aAAa5sB,GACnBoE,MAAK,SAAC4G,GAEH,OADArD,EAAOoE,SAAS5E,SACT6D,QA7C3B,kBAkDK7D,SAlDL,SAkDkCQ,EAAQF,GAClC,IAAQG,EAAwBH,EAAxBG,QAASY,EAAef,EAAfe,WACbqkB,EAA2B,MAAfC,QAAKC,OAAiB,EAAI,EAC1ChlB,QAAIilB,mBAAmBplB,EAASY,EAAYqkB,GACvCzoB,MAAK,SAAC4G,GACHlE,QAAQ4M,IAAI,wBAAyB1I,GACrCrD,EAAOG,OAAOX,QAA6B6D,SAxD3D,kBA4DK7D,SA5DL,SA4DyCQ,EAAQa,GACzC,OAAOT,QAAIklB,kBAAkBzkB,GACxBpE,MAAK,SAAC4G,GAEH,OADArD,EAAOG,OAAOX,QAAoC6D,GAC3CA,QAhEvB,kBAqEK7D,SArEL,SAqEmCQ,EAAQF,GACnC,IAAQylB,EAAezlB,EAAfylB,WACR,OAAOnlB,QAAIolB,aAAaD,GACnB9oB,MAAK,SAAC4G,GAIH,OAHGA,GACCrD,EAAOoE,SAAS5E,QAAoC+lB,EAAW1kB,YAE5DwC,QA5EvB,kBAgFK7D,SAhFL,SAgFsCQ,EAAQF,GACtC,IAAQylB,EAAezlB,EAAfylB,WACAE,EAAoBF,EAApBE,IAAK5kB,EAAe0kB,EAAf1kB,WAEb,OAAOT,QAAIslB,gBAAgB,CAAEC,IAAKF,EAAKG,YAAY,IAC9CnpB,MAAK,SAAC4G,GAIH,OAHGA,GACCrD,EAAOoE,SAAS5E,QAAoCqB,GAEjDwC,QAzFvB,kBAkGK7D,SAlGL,SAkG0BQ,GAClBA,EAAOG,OAAOX,YAnGtB,kBAsGKA,SAtGL,SAsGsBQ,GACdA,EAAOG,OAAOX,YAvGtB,kBA0GKA,SA1GL,SA0GiCQ,EAAQqE,GAClC,OAAOjE,QAAIylB,cAAcxhB,MA3GhC,kBAoHK7E,SApHL,SAoH0BQ,GAClB,OAAOI,QAAI0lB,+BAA+BrpB,MAAK,SAAC4G,GAC5C,GAAGA,EAEC,OADArD,EAAOG,OAAOX,QAAqB6D,GAC5BA,QAxHvB,kBA6HK7D,SA7HL,SA6HqBQ,EAAQa,GACrB,OAAOT,QAAI2lB,wBAAwBllB,GAAYpE,MAAK,SAAC4G,GACjD,GAAGA,EAEC,OADArD,EAAOG,OAAOX,QAAgB6D,GACvBA,QAjIvB,kBAsIK7D,SAtIL,SAsIwBQ,EAAQqE,GACxB,OAAOjE,QAAI4lB,wBAAwB3hB,GAAM5H,MAAK,SAAC4G,GAC3C,GAAGA,EAEC,OADArD,EAAOoE,SAAS5E,QAAe6E,EAAKxD,YAC7BwC,QA1IvB,kBA+IK7D,SA/IL,SA+IwBQ,EAAQqE,GACxB,OAAOjE,QAAI6lB,iBAAiB5hB,GAAM5H,KAA3B,yDAAgC,WAAMypB,GAAN,qGAC/BA,EAAYC,QADmB,yCAExB/lB,QACFgmB,WAAW/hB,GACX5H,MAAK,WACF,OAAOypB,KAEVzX,MALE,yDAKI,WAAOvS,GAAP,iGACGmD,OAAegnB,WAAWlB,QAAK3mB,EAAE,qBADpC,gCAEI0nB,GAFJ,2CALJ,wDAFwB,OAaqCA,EAA5DC,QAASG,EAAmDJ,EAAnDI,WAAmDJ,EAAvCK,UAAWC,EAA4BN,EAA5BM,QAASC,EAAmBP,EAAnBO,eAC3CC,EAAkB,SAACC,GACrB,IAAI1sB,EAAI,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,MACtCQ,EAAIyc,KAAKsD,MAAMtD,KAAKnL,IAAI4a,GAASzP,KAAKnL,IAAI,OAC9C,OAAQ4a,EAAQzP,KAAK0P,IAAI,KAAMnsB,GAAM,IAAMR,EAAEQ,IAE3CosB,EAAWH,EAAgBF,GAC3BM,EAAkBJ,EAAgBD,GApBT,KAqBvBH,EArBuB,OAsBtB,wBAtBsB,QA0BtB,wBA1BsB,0CAuBjBjnB,OAAegnB,WAAWlB,QAAK3mB,EAAE,yCAA0C,CAAEuoB,KAAMF,IAAYjL,YAvB9E,6DA2BjBvc,OAAegnB,WAAWlB,QAAK3mB,EAAE,yCAA0C,CAAEuoB,KAAMD,IAAmBlL,YA3BrF,qEA8BxBsK,GA9BwB,4CAAhC,0DAhJf,ICFA,4BAEK1mB,SAFL,SAE0BC,GAClB,OAAOA,EAAMunB,kBAHrB,kBAMKxnB,SANL,SAMsBC,GACd,OAAOA,EAAMwnB,cAPrB,kBAUKznB,SAVL,SAU0BC,GAClB,OAAOA,EAAMynB,aAXrB,kBAcK1nB,SAdL,SAcqBC,GACb,OAAOA,EAAM0nB,YAfrB,kBAkBK3nB,SAlBL,SAkBoCC,GAC5B,OAAOA,EAAM2nB,SAASC,aAnB9B,kBAuBK7nB,SAvBL,SAuBkCC,GAC1B,OAAOA,EAAM2nB,SAASE,mBAxB9B,kBA2BK9nB,SA3BL,SA2ByCC,GACjC,OAAOA,EAAM2nB,SAASG,YA5B9B,kBA+BK/nB,SA/BL,SA+B4BC,GACpB,OAAOA,EAAMugB,aAhCrB,I,aCCA,4BAYKxgB,SAZL,SAY4BC,EAAOiN,GAC3BjN,EAAMugB,UAAYtT,KAb1B,kBAqBKlN,SArBL,SAqBoCC,EAAOK,GACnCL,EAAM2nB,SAASC,UAAYvnB,KAtBnC,kBAwBKN,SAxBL,SAwBkCC,EAAOK,GACjCL,EAAM2nB,SAASE,gBAAkBxnB,KAzBzC,kBA2BKN,SA3BL,SA2ByCC,EAAOK,GACxCL,EAAM2nB,SAASG,SAAWznB,KA5BlC,kBAoCKN,SApCL,SAoC0BC,GAClBA,EAAMunB,eAAiB,CACnBA,eAAgB,CACZ,CACInoB,IAAK,QACLrB,KAAM2nB,QAAK3mB,EAAE,qBAAqBod,WAClC/Y,UAAU,GAEd,CACIhE,IAAK,QACLrB,KAAM2nB,QAAK3mB,EAAE,sBAAsBod,WACnC/Y,UAAU,GAOd,CACIhE,IAAK,QACLrB,KAAM2nB,QAAK3mB,EAAE,sBAAsBod,WACnC/Y,UAAU,QAzD9B,kBA+DKrD,SA/DL,SA+DsBC,GACdA,EAAMwnB,WAAa,CACfA,WAAY,CACR,CACIpoB,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,SACLrB,KAAM2nB,QAAK3mB,EAAE,eAAeod,WAC5B/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,SACLrB,KAAM2nB,QAAK3mB,EAAE,eAAeod,WAC5B/Y,UAAU,GAEd,CACIhE,IAAK,iCACLrB,KAAM2nB,QACD3mB,EAAE,oCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,SACLrB,KAAM2nB,QAAK3mB,EAAE,eAAeod,WAC5B/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,kCACLrB,KAAM2nB,QACD3mB,EAAE,qCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,iCACLrB,KAAM2nB,QACD3mB,EAAE,oCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,+BACLrB,KAAM2nB,QACD3mB,EAAE,kCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,8BACLrB,KAAM2nB,QACD3mB,EAAE,iCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,gCACLrB,KAAM2nB,QACD3mB,EAAE,mCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,iCACLrB,KAAM2nB,QACD3mB,EAAE,oCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,qBACLrB,KAAM2nB,QAAK3mB,EAAE,yBAAyBod,WACtC/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,kCACLrB,KAAM2nB,QACD3mB,EAAE,qCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,iCACLrB,KAAM2nB,QACD3mB,EAAE,mCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,iCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,iCACLrB,KAAM2nB,QACD3mB,EAAE,mCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,iCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,SACLrB,KAAM2nB,QAAK3mB,EAAE,eAAeod,WAC5B/Y,UAAU,GAEd,CACIhE,IAAK,uBACLrB,KAAM2nB,QAAK3mB,EAAE,2BAA2Bod,WACxC/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,MACLrB,KAAM2nB,QAAK3mB,EAAE,YAAYod,WACzB/Y,UAAU,GAEd,CACIhE,IAAK,oBACLrB,KAAM2nB,QAAK3mB,EAAE,wBAAwBod,WACrC/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,+BACLrB,KAAM2nB,QACD3mB,EAAE,kCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,iCACLrB,KAAM2nB,QACD3mB,EAAE,oCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,kCACLrB,KAAM2nB,QACD3mB,EAAE,oCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,oBACLrB,KAAM2nB,QAAK3mB,EAAE,wBAAwBod,WACrC/Y,UAAU,GAEd,CACIhE,IAAK,uBACLrB,KAAM2nB,QAAK3mB,EAAE,2BAA2Bod,WACxC/Y,UAAU,GAEd,CACIhE,IAAK,uBACLrB,KAAM2nB,QAAK3mB,EAAE,2BAA2Bod,WACxC/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,oBACLrB,KAAM2nB,QAAK3mB,EAAE,wBAAwBod,WACrC/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,uBACLrB,KAAM2nB,QAAK3mB,EAAE,2BAA2Bod,WACxC/Y,UAAU,GAEd,CACIhE,IAAK,uBACLrB,KAAM2nB,QAAK3mB,EAAE,2BAA2Bod,WACxC/Y,UAAU,GAEd,CACIhE,IAAK,qBACLrB,KAAM2nB,QAAK3mB,EAAE,yBAAyBod,WACtC/Y,UAAU,GAEd,CACIhE,IAAK,qBACLrB,KAAM2nB,QAAK3mB,EAAE,yBAAyBod,WACtC/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,qBACLrB,KAAM2nB,QAAK3mB,EAAE,wBAAwBod,WACrC/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,iCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,qBACLrB,KAAM2nB,QAAK3mB,EAAE,yBAAyBod,WACtC/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,gCACLrB,KAAM2nB,QACD3mB,EAAE,kCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,2BAA2Bod,WACxC/Y,UAAU,GAEd,CACIhE,IAAK,2BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,gCACLrB,KAAM2nB,QACD3mB,EAAE,kCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,8BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,uBACLrB,KAAM2nB,QAAK3mB,EAAE,2BAA2Bod,WACxC/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,+BACLrB,KAAM2nB,QACD3mB,EAAE,iCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,+BACLrB,KAAM2nB,QACD3mB,EAAE,kCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,0BACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,wBACLrB,KAAM2nB,QAAK3mB,EAAE,4BAA4Bod,WACzC/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,iCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,yBACLrB,KAAM2nB,QACD3mB,EAAE,6BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,gCACLrB,KAAM2nB,QACD3mB,EAAE,mCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,yBAAyBod,WACtC/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,yBAAyBod,WACtC/Y,UAAU,GAEd,CACIhE,IAAK,4BACLrB,KAAM2nB,QACD3mB,EAAE,+BACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,qBACLrB,KAAM2nB,QAAK3mB,EAAE,yBAAyBod,WACtC/Y,UAAU,GAEd,CACIhE,IAAK,SACLrB,KAAM2nB,QAAK3mB,EAAE,eAAeod,WAC5B/Y,UAAU,GAEd,CACIhE,IAAK,gCACLrB,KAAM2nB,QACD3mB,EAAE,mCACFod,WACL/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,sBACLrB,KAAM2nB,QAAK3mB,EAAE,0BAA0Bod,WACvC/Y,UAAU,GAEd,CACIhE,IAAK,SACLrB,KAAM2nB,QAAK3mB,EAAE,eAAeod,WAC5B/Y,UAAU,GAEd,CACIhE,IAAK,6BACLrB,KAAM2nB,QACD3mB,EAAE,gCACFod,WACL/Y,UAAU,QA93B9B,kBA24BKrD,SA34BL,SA24B0BC,EAAO4E,GACzB5E,EAAMynB,UAAY7iB,KA54B1B,kBA+4BK7E,SA/4BL,SA+4BqBC,EAAO4E,GACpB5E,EAAM0nB,SAAW9iB,KAh5BzB,ICCM5E,GAA4B,CAC9BunB,oBAAgBvpB,EAChBwpB,gBAAYxpB,EACZypB,eAAWzpB,EACX0pB,cAAU1pB,EACV2pB,SAAU,CACNC,UAAW,CACPA,UAAW,CACPxmB,WAAY,GACZ2mB,SAAU,QACVC,SAAU,KACVC,sBAAsB,EACtBC,mBAAmB,EACnBC,qBAAqB,EACrBC,oBAAoB,EACpBC,kBAAkB,EAClBC,uBAAuB,EACvBC,8BAA8B,EAC9BC,0BAA0B,EAC1BC,wBAAwB,EACxBC,qBAAqB,EACrBC,uBAAuB,EACvBC,sBAAsB,EACtBC,oBAAoB,EACpBC,yBAAyB,EACzBC,gCAAgC,EAChCC,4BAA4B,EAC5BC,gBAAiB,GACjBC,UAAW,GACXC,YAAa,IAAIja,KACjBtG,QAAQ,EACRwgB,WAAW,EACXC,UAAU,EACVC,UAAU,EACVC,WAAY,SAGpBzB,SAAU,CACN0B,eAAgB,IAEpB3B,gBAAiB,CACb4B,qBAAsB,KAG9BlJ,WAAW,GAKA,IACXvgB,SACAwI,WACAC,WACAC,cCzDEghB,GAAc,mCACdC,GAAgB,mCAEhB,SAAUC,GAAiBC,GAuB/B,OAtBAA,EAAMC,iBAAgB,SAACvpB,EAAQP,GAC7B,IAAMK,EAAUE,EAAOF,QAAUoH,KAAKC,MAAMD,KAAKE,UAAUpH,EAAOF,UAAYE,EAAOF,QAC/E0pB,EAAYtiB,KAAKC,MAAMD,KAAKE,UAAU3H,IACtCpH,EAAO,CACXyH,QAASA,EACTL,MAAO+pB,GAETrqB,QAAQ4M,IAAR,qBAA0B/L,EAAOrE,MAAQwtB,GAAa9wB,MAGxDixB,EAAMG,WAAU,SAACC,EAAUjqB,GACzB,IAAMK,EAAU4pB,EAAS5pB,QACrBoH,KAAKC,MAAMD,KAAKE,UAAUsiB,EAAS5pB,UACnC4pB,EAAS5pB,QACP0pB,EAAYtiB,KAAKC,MAAMD,KAAKE,UAAU3H,IACtCpH,EAAO,CACXyH,QAASA,EACTL,MAAO+pB,GAETrqB,QAAQ4M,IAAR,uBAA4B2d,EAAS/tB,MAAQytB,GAAe/wB,MAGvDixB,ECTTK,OAAIC,IAAIC,QAGR,IAAMpqB,GAAmB,CACrBC,aAAa,EACbC,YAAa,IACbC,SAAS,EACTkqB,KAAM,CACFjb,QAAS/V,OAAO8F,OAAO,OAE3BiB,YAAa/G,OAAO8F,OAAO,OAGhByqB,UACX,IAAIQ,OAAKE,MAAiB,CACtBtqB,SACAwI,UACAC,UACAC,YACA/O,QAAS,CACLqX,SAAUuZ,OACVC,QAASC,EACTC,SAAUC,OACVC,MAAOC,EACPC,UAAWC,GACXC,SAAUC,GACVC,UAAWC,GACXC,OAAQC,GACRC,KAAMC,Q,0GC9ClB,IAAIC,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAMN,EAAIO,WAAWC,MAAM,CAAC,GAAK,mBAAmB,CAACJ,EAAG,kBAAkBA,EAAG,mBAAmBA,EAAG,eAAeA,EAAG,SAAS,CAACK,YAAY,CAAC,QAAU,QAAQD,MAAM,CAAC,GAAK,gBAAgB,IAAM,IAAIE,GAAG,CAAC,KAAOV,EAAIW,eAAe,IACxUC,EAAkB,G,gGCDlB,EAAS,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAS,MAAEI,EAAGJ,EAAIa,MAAMC,UAAU,CAAC5wB,IAAI,YAAYswB,MAAM,CAAC,MAAQR,EAAIa,MAAMxtB,SAAS2sB,EAAIe,MACtL,EAAkB,G,oCCWDC,EAAU,qJAASvC,QAAnBuC,EAAU,gBAP9BC,eAAU,CACTC,SAAU,kBACLC,eAAW,CACZN,MAAOvsB,aAIQ0sB,WCZkS,I,YCOnTF,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAId,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAIa,OAASb,EAAIa,MAAMO,KAAMhB,EAAG,MAAM,CAAqB,oBAAnBJ,EAAIa,MAAMpwB,KAA4B2vB,EAAG,uBAAuB,CAACI,MAAM,CAAC,MAAQR,EAAIa,MAAM1nB,QAAQ6mB,EAAIe,MAAM,GAAGf,EAAIe,MACxP,EAAkB,GCDlB,EAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,QAAQ,MAAO,EAAK,KAAOR,EAAItrB,SAASgsB,GAAG,CAAC,MAAQV,EAAIsB,OAAOC,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,OAAO8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,MAAM,CAACiB,YAAY,UAAUrB,EAAI0B,GAAI1B,EAAkB,gBAAE,SAAS2B,EAAKrlB,GAAO,OAAO8jB,EAAG,OAAO,CAACzsB,IAAI2I,GAAO,CAAEA,EAAQ,EAAG8jB,EAAG,OAAO,CAACJ,EAAI4B,GAAG,SAAS5B,EAAIe,KAAKX,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI8B,eAAeH,EAAMrlB,MAAU,CAAC0jB,EAAI4B,GAAG5B,EAAI+B,GAAGJ,EAAKrvB,MAAM,YAAW,GAAG8tB,EAAG,YAAY,CAACI,MAAM,CAAC,WAAaR,EAAIgC,WAAW,YAAchC,EAAIiC,YAAY,KAAOjC,EAAI3qB,OAAOqrB,GAAG,CAAC,YAAc,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgB,WAAalC,EAAImC,WAAW,OAASnC,EAAIjmB,OAAO,UAAYimB,EAAIoC,gBAAgBC,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,gBAAgB,CAACI,MAAM,CAAC,SAAU,EAAK,KAAOR,EAAIsC,GAAG,mBAAmB5B,GAAG,CAAC,MAAQV,EAAIuC,MAAMnC,EAAG,gBAAgB,CAACI,MAAM,CAAC,KAAOR,EAAIsC,GAAG,kBAAkB5B,GAAG,CAAC,MAAQV,EAAIwC,YAAYH,OAAM,QAAW,IAChiC,EAAkB,GCDlB,G,4DAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACiB,YAAY,aAAa,CAACrB,EAAIyC,GAAG,YAAY,KACpJ,EAAkB,GCGDC,EAAW,qJAASjE,QAApBiE,EAAW,gBAD/BzB,QACoByB,WCJ+R,ICOhT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MCdE,GDkBW,E,QClBF,WAAa,IAAI1C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,IAAI,CAACiB,YAAY,SAASf,MAAM,CAAEqC,QAAS3C,EAAI2C,QAAShrB,SAAUqoB,EAAIroB,UAAW+oB,GAAG,CAAC,MAAQ,SAASmB,GAAgC,OAAxBA,EAAOe,iBAAwB5C,EAAIkC,MAAM,QAASL,MAAW,CAAC7B,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIjlB,MAAM,KAAKilB,EAAIyC,GAAG,YAAY,KAC/T,EAAkB,GCEDI,EAAa,qJAASpE,QAUFqE,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,2BAKIH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,8BAKAH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,+BApBxBJ,EAAa,gBADjC5B,QACoB4B,WCHiS,ICOlT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAI7C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,SAAS,CAAER,EAAQ,KAAEI,EAAG,MAAM,CAACiB,YAAY,aAAaf,MAAM,CAAE,GAAMN,EAAImD,OAAQ,CAACnD,EAAIyC,GAAG,YAAY,GAAGzC,EAAIe,QACxO,EAAkB,GCEDqC,EAAS,qJAAS3E,QACMqE,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,2BADxBG,EAAS,gBAD7BnC,QACoBmC,WCH6R,ICO9S,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIpD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAQ,KAAEI,EAAG,MAAM,CAACiB,YAAY,uBAAuB,CAACrB,EAAIyC,GAAG,YAAY,GAAGzC,EAAIe,MAC/K,EAAkB,GCEDsC,EAAK,qJAAS5E,QACUqE,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,2BADxBI,EAAK,gBADzBpC,QACoBoC,WCHyR,ICO1S,GAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAIyC,GAAG,YAAY,IACjJ,GAAkB,GCEDa,GAAS,qJAAS7E,QAAlB6E,GAAS,gBAD7BrC,QACoBqC,cCH6R,MCO9S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAItD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,UAAU,CAACrB,EAAIyC,GAAG,YAAY,IAChJ,GAAkB,GCEDc,GAAW,qJAAS9E,QAApB8E,GAAW,gBAD/BtC,QACoBsC,cCH+R,MCOhT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIvD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,SAASf,MAAM,CAAE,YAAeN,EAAIwD,aAAa9C,GAAG,CAAC,UAAYV,EAAIyD,YAAY,CAACrD,EAAG,KAAK,CAACJ,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI0D,QAAQ,KAAM1D,EAAe,YAAEI,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI2D,gBAAgB3D,EAAIe,OAAOX,EAAG,IAAI,CAACiB,YAAY,SAASX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAY,CAAC9B,EAAG,OAAO,CAACiB,YAAY,uBACza,GAAkB,GCEDuC,GAAW,2KAU5B,SAAU/B,GACNA,EAAOe,iBACP3C,KAAKiC,MAAM,YAAaL,OAZA,GAASpD,QACAqE,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,8BACbH,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,mCACCF,gBAAxBC,eAAK,CAAEtyB,KAAMyyB,WAAW,mCAHRU,GAAW,gBAD/B3C,QACoB2C,cCH+R,MCOhT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI5D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,kCAAkCwC,MAAM,CAAGC,WAAY,UAAYtD,MAAM,CAAC,GAAK,mBAAmB,CAACJ,EAAG,IAAI,CAACI,MAAM,CAAC,GAAK,aACzO,GAAkB,GCKDuD,GAAO,YAAE,wBAAF,oBAAE,SAAF,0DAAE,OAAF,mBAAUtF,QAAjBsF,GAAO,gBAH3B9C,eAAU,KAGU8C,cCN2R,MCO5S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MCdE,IDkBW,G,QClBF,WAAa,IAAI/D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAQ,KAAEkE,WAAW,SAAS7C,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,OAAOA,EAAG,OAAOA,EAAG,OAAOA,EAAG,OAAOA,EAAG,OAAOA,EAAG,OAAOA,EAAG,OAAOA,EAAG,eACrW,GAAkB,GCuBD+D,GAAY,yKA6C7B,cA7C6B,qBAiD7B,gBAjD6B,GAAS1F,QAOEqE,gBAAvCC,eAAK,CAACtyB,KAAMyyB,QAASD,SAAS,KAAS,4BAPvBkB,GAAY,gBAjBhClD,eAAU,CACPmD,WAAY,GAEZlD,SAAQ,kBACDC,eAAW,KAIlBkD,QAAS,iCACFC,eAAW,KAGXC,eAAa,QAKHJ,cCxBgS,MCQjT,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAInE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,yBAAyBf,MAAM,CAAEI,GAAIV,EAAIoB,OAAQ,CAAChB,EAAG,IAAI,CAACiB,YAAY,SAASX,GAAG,CAAC,MAAQ,SAASmB,GAAQ7B,EAAIoB,MAAQpB,EAAIoB,QAAQ,CAACpB,EAAIyC,GAAG,QAASzC,EAAS,MAAEI,EAAG,OAAO,CAACiB,YAAY,6BAA6BrB,EAAIe,MAAM,GAAGX,EAAG,MAAM,CAACiB,YAAY,mBAAmBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIwE,SAAS3C,MAAW,CAAC7B,EAAIyC,GAAG,aAAa,MAC7c,GAAkB,GCKDgC,GAAQ,wDAA7B,iD,0BAeI,EAAArD,MAAgB,EAfpB,EAA6B,+CAiBzB,SAASxwB,GACDA,EAAM8zB,QACNzE,KAAKmB,MAAO,EAEZnB,KAAKmB,MAAQnB,KAAKmB,SArBD,GAAS3C,QAOMqE,gBAAvCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAQ,6BAPvBwB,GAAQ,gBAH5BxD,eAAU,CACP3uB,KAAM,cAEWmyB,cCN4R,MCO7S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MCdE,IDkBW,G,QClBF,WAAa,IAAIzE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,IAAI,CAACiB,YAAY,UAAU,CAACjB,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI2E,UAAW3E,EAAU,OAAEI,EAAG,OAAO,CAACiB,YAAY,aAAa,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI4E,WAAW5E,EAAIe,KAAKX,EAAG,OAAO,CAACiB,YAAY,+BAA+BjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACrB,EAAIyC,GAAG,YAAY,OAC/a,GAAkB,GCKDoC,GAAc,YAAE,wBAAF,oBAAE,SAAF,0DAAE,OAAF,mBAAUpG,QAQjBqE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,6BACAF,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,8BATP6B,GAAc,gBAHlC5D,eAAU,KAGU4D,cCNkS,MCOnT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MCdE,IDkBW,G,QClBF,WAAa,IAAI7E,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,iCAAiC,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,IAAI,CAACE,MAAM,CAAC,OAAQ,QAAS,CAAE,QAAWN,EAAI8E,cAAepE,GAAG,CAAC,MAAQV,EAAI+E,aAAa,CAAC3E,EAAG,IAAI,CAACiB,YAAY,2BAA2BjB,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAI3sB,MAAM,UAAY,sBAAsB,UAAY,sBAAsB,UAAY2sB,EAAIgF,eAAe,aAAahF,EAAIiF,MAAM,cAAgB,aAAavE,GAAG,CAAC,MAAQ,SAAUrtB,GAAS,OAAO2sB,EAAIkC,MAAM,QAAS7uB,OAAa+sB,EAAG,IAAI,CAACE,MAAM,CAAC,OAAQ,QAAS,CAAE,QAAWN,EAAIkF,aAAcxE,GAAG,CAAC,MAAQV,EAAImF,aAAa,CAAC/E,EAAG,IAAI,CAACiB,YAAY,4BAA4B,OACxtB,GAAkB,GCDlB,I,UAAS,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAASF,EAAIoF,aAAusFhF,EAAG,MAAM,CAACE,MAAMN,EAAIqF,YAAY,CAAErF,EAAmB,gBAAEI,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIsF,cAAetF,EAAIuF,oBAAsBvF,EAAIwF,cAAgB,IAAIhF,MAAM,CAAC,SAAW,KAAKiF,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAI0F,kBAAkBhF,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI2F,mBAAmB,MAAQ,SAAS9D,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAI2F,sBAAsB3F,EAAIe,KAAQf,EAAIuF,qBAAuBvF,EAAI8F,aAAkX9F,EAAIe,KAAvWX,EAAG,IAAI,CAACE,MAAM,CAACN,EAAI+F,cAAe/F,EAAIuF,oBAAsBvF,EAAIwF,cAAgB,IAAIhF,MAAM,CAAC,SAAW,KAAKiF,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAIgG,WAAWtF,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIiG,YAAY,MAAQ,SAASpE,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAIiG,eAAwBjG,EAAI0B,GAAI1B,EAAS,OAAE,SAASpB,GAAM,MAAO,CAAEA,EAAc,UAAEwB,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIsF,cAAetF,EAAIkG,mBAAoBtH,EAAKuH,SAAWnG,EAAIwF,cAAgB,IAAIhF,MAAM,CAAC,SAAW,MAAM,CAACR,EAAIyC,GAAG,oBAAmB,WAAW,MAAO,CAACzC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIoG,qBAAoB,GAAIxH,EAAa,SAAEwB,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIsF,cAAe1G,EAAKjnB,SAAWqoB,EAAIqG,YAAc,GAAIrG,EAAIwF,eAAehF,MAAM,CAAC,SAAW,MAAM,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAGnD,EAAK0H,YAAYlG,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIsF,cAAe1G,EAAKjnB,SAAWqoB,EAAIqG,YAAc,IAAI7F,MAAM,CAAC,SAAW,KAAKE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIuG,mBAAmB3H,EAAKtiB,MAAQ,IAAI,MAAQ,SAASulB,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAIuG,mBAAmB3H,EAAKtiB,MAAQ,MAAM,CAAC0jB,EAAI4B,GAAG5B,EAAI+B,GAAGnD,EAAK0H,gBAAkBtG,EAAIwG,oBAAsBxG,EAAI8F,aAAiX9F,EAAIe,KAAtWX,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIyG,cAAezG,EAAIwG,mBAAqBxG,EAAIwF,cAAgB,IAAIhF,MAAM,CAAC,SAAW,KAAKiF,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAI0G,WAAWhG,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI2G,YAAY,MAAQ,SAAS9E,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAI2G,eAAyB3G,EAAmB,gBAAEI,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIsF,cAAetF,EAAIwG,mBAAqBxG,EAAIwF,cAAgB,IAAIhF,MAAM,CAAC,SAAW,KAAKiF,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAI4G,iBAAiBlG,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI6G,kBAAkB,MAAQ,SAAShF,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAI6G,qBAAqB7G,EAAIe,MAAM,GAAzmKX,EAAG,KAAK,CAACE,MAAMN,EAAI8G,gBAAgB,CAAE9G,EAAmB,gBAAEI,EAAG,KAAK,CAACE,MAAM,CAACN,EAAI+G,UAAW/G,EAAIuF,oBAAsBvF,EAAIwF,cAAgB,KAAK,CAACpF,EAAG,IAAI,CAACE,MAAMN,EAAIsF,cAAc9E,MAAM,CAAC,SAAWR,EAAIuF,qBAAuB,EAAI,GAAGE,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAI0F,kBAAkBhF,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI2F,mBAAmB,MAAQ,SAAS9D,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAI2F,wBAAwB3F,EAAIe,KAAQf,EAAIuF,qBAAuBvF,EAAI8F,aAAgb9F,EAAIe,KAAraX,EAAG,KAAK,CAACE,MAAM,CAACN,EAAIgH,UAAWhH,EAAIuF,oBAAsBvF,EAAIwF,cAAgB,KAAK,CAACpF,EAAG,IAAI,CAACE,MAAMN,EAAI+F,cAAcvF,MAAM,CAAC,SAAWR,EAAIuF,qBAAuB,EAAI,GAAGE,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAIgG,WAAWtF,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIiG,YAAY,MAAQ,SAASpE,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAIiG,iBAA0BjG,EAAI0B,GAAI1B,EAAS,OAAE,SAASpB,GAAM,OAAOwB,EAAG,KAAK,CAACE,MAAM,CAACN,EAAI+G,UAAWnI,EAAKjnB,SAAWqoB,EAAIqG,YAAc,GAAIzH,EAAKuH,SAAWnG,EAAIwF,cAAgB,GAAI5G,EAAKqI,UAAYjH,EAAIkH,eAAgB,KAAK,CAAEtI,EAAc,UAAEwB,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIsF,cAAetF,EAAIkG,oBAAoB1F,MAAM,CAAC,SAAW,MAAM,CAACR,EAAIyC,GAAG,oBAAmB,WAAW,MAAO,CAACzC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIoG,qBAAoB,GAAIxH,EAAa,SAAEwB,EAAG,IAAI,CAACE,MAAMN,EAAIsF,cAAc9E,MAAM,CAAC,SAAW,MAAM,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAGnD,EAAK0H,YAAYlG,EAAG,IAAI,CAACE,MAAMN,EAAIsF,cAAc9E,MAAM,CAAC,SAAW,KAAKE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIuG,mBAAmB3H,EAAKtiB,MAAQ,IAAI,MAAQ,SAASulB,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAIuG,mBAAmB3H,EAAKtiB,MAAQ,MAAM,CAAC0jB,EAAI4B,GAAG5B,EAAI+B,GAAGnD,EAAK0H,iBAAmBtG,EAAIwG,oBAAsBxG,EAAI8F,aAA8a9F,EAAIe,KAAnaX,EAAG,KAAK,CAACE,MAAM,CAACN,EAAImH,UAAWnH,EAAIwG,mBAAqBxG,EAAIwF,cAAgB,KAAK,CAACpF,EAAG,IAAI,CAACE,MAAMN,EAAIyG,cAAcjG,MAAM,CAAC,SAAWR,EAAIwG,oBAAsB,EAAI,GAAGf,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAI0G,WAAWhG,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI2G,YAAY,MAAQ,SAAS9E,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAI2G,iBAA2B3G,EAAmB,gBAAEI,EAAG,KAAK,CAACE,MAAM,CAACN,EAAI+G,UAAW/G,EAAIwG,mBAAqBxG,EAAIwF,cAAgB,KAAK,CAACpF,EAAG,IAAI,CAACE,MAAMN,EAAIsF,cAAc9E,MAAM,CAAC,SAAWR,EAAIwG,oBAAsB,EAAI,GAAGf,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAI4G,iBAAiBlG,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI6G,kBAAkB,MAAQ,SAAShF,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAI6G,uBAAuB7G,EAAIe,MAAM,KACtyF,GAAkB,GCsCP,IACbqG,MAAOA,CACL/zB,MAAOA,CACL5C,KAAMA,QAER42B,UAAWA,CACT52B,KAAMA,OACN62B,UAAUA,GAEZC,UAAWA,CACT92B,KAAMA,QAER+2B,aAAcA,CACZ/2B,KAAMA,SACNwyB,QAASA,cAEXwE,UAAWA,CACTh3B,KAAMA,OACNwyB,QAASA,GAEXyE,YAAaA,CACXj3B,KAAMA,OACNwyB,QAASA,GAEX+C,SAAUA,CACRv1B,KAAMA,OACNwyB,QAASA,QAEXyD,SAAUA,CACRj2B,KAAMA,OACNwyB,QAASA,QAEXmD,cAAeA,CACb31B,KAAMA,OACNwyB,QAASA,KAEX6D,eAAgBA,CACdr2B,KAAMA,QAERs2B,UAAWA,CACTt2B,KAAMA,QAER60B,cAAeA,CACb70B,KAAMA,QAERu2B,UAAWA,CACTv2B,KAAMA,QAERs1B,cAAeA,CACbt1B,KAAMA,QAER02B,UAAWA,CACT12B,KAAMA,QAERg2B,cAAeA,CACbh2B,KAAMA,QAERy2B,eAAgBA,CACdz2B,KAAMA,QAERy1B,mBAAoBA,CAClBz1B,KAAMA,QAER41B,YAAaA,CACX51B,KAAMA,OACNwyB,QAASA,UAEXuC,cAAeA,CACb/0B,KAAMA,OACNwyB,QAASA,YAEXmC,aAAcA,CACZ30B,KAAMA,QACNwyB,SAASA,GAEX0E,gBAAiBA,CACfl3B,KAAMA,QACNwyB,SAASA,GAEXyC,gBAAiBA,CACfj1B,KAAMA,OACNwyB,QAASA,SAEX2D,eAAgBA,CACdn2B,KAAMA,OACNwyB,QAASA,QAEX6C,aAAcA,CACZr1B,KAAMA,QACNwyB,SAASA,IAGb2E,aA5FF,gBA6F2Br1B,IAAnB0tB,KAAKsH,WACLtH,KAAKsH,YAActH,KAAKtoB,WAC1BsoB,KAAKtoB,SAAWsoB,KAAKsH,YAGzBrG,SAAUA,CACRvpB,SAAUA,CACR1E,IAAKA,WACH,OAAOgtB,KAAK5sB,OAAS4sB,KAAK4H,YAE5Blb,IAAKA,SAAXA,GACQsT,KAAK4H,WAAaC,IAGtBC,MAAOA,WAAX,WACA,KACM,GAAI9H,KAAKoH,WAAapH,KAAKwH,UACzB,IAAK,IAAb,0BACU,IAAV,GACYnrB,MAAOA,EACPgqB,QAASA,EAAQA,EACjB3uB,SAAUA,IAAUA,KAAhCA,YAEUtC,EAAMA,GAASA,MAEzB,CAuBQ,IAtBA,IAAR,+BAEA,cACU,IAAV,GACYiH,MAAOA,EACPgqB,QAASA,EAAQA,EACjB3uB,SAAUA,IAAUA,EAAhCA,YAGUtC,EAAMA,GAASA,GAGzB,cACU,IAAV,GACY8wB,UAAUA,EACVc,WAAWA,GAGb5xB,EAAMA,GAASA,GAIzB,2BACU2yB,EAAYA,GAId,IAAR,IACY/H,KAAKtoB,SAAWswB,EAAgB,IAClCC,EAAmBA,KAAKA,SAAWA,EAAIA,GAGzC,IAAR,qBACYC,GAAqBlI,KAAKoH,YAC5Bc,EAAoBA,KAAKA,UAAYA,EACrCD,EAAmBA,EAAoBA,KAAKA,UAAYA,GAG1D,IAAK,IAAb,kCACUF,EAAYA,GAIVE,EAAmBjI,KAAKyH,aAC1BU,EAAaA,EAAmBA,GAI9BD,EAAoB,EAAIlI,KAAKoH,UAAYpH,KAAKyH,aAChDU,EAAaA,EAAoBA,GAInC,IAAK,IAAb,0DACUJ,EAAYA,GAGhB,OAAO3yB,IAGXlI,KAnLF,WAoLI,MAAO,CACL06B,WAAYA,IAGhBxD,QAASA,CACPkC,mBADJ,SACA5uB,GACUsoB,KAAKtoB,WAAaA,IAEtBsoB,KAAK4H,WAAalwB,EAClBsoB,KAAKiC,MAAM,QAASvqB,GACpBsoB,KAAKuH,aAAa7vB,KAEpBsuB,SARJ,WASUhG,KAAKtoB,UAAY,GAErBsoB,KAAKsG,mBAAmBtG,KAAKtoB,SAAW,IAE1CgvB,SAbJ,WAcU1G,KAAKtoB,UAAYsoB,KAAKoH,WAE1BpH,KAAKsG,mBAAmBtG,KAAKtoB,SAAW,IAE1C4tB,kBAlBJ,WAmBM,OAAyB,IAAlBtF,KAAKtoB,UAEd6uB,iBArBJ,WAsBM,OAAO,KAAb,+CAEIb,gBAxBJ,WAyBU1F,KAAKtoB,UAAY,GAErBsoB,KAAKsG,mBAAmB,IAE1BM,eA7BJ,WA8BU5G,KAAKtoB,UAAYsoB,KAAKoH,WAE1BpH,KAAKsG,mBAAmBtG,KAAKoH,cC/P4V,MCQ3X,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCZMgB,GAAiB,2KAkBlC,WACI,OAAOpI,KAAK5sB,QAnBkB,oBAsBlC,WACI,OAAO4sB,KAAK+E,iBAvBkB,0BA0BlC,WACI,OAAOhZ,KAAKsc,KAAKrI,KAAKsI,MAAQtI,KAAKpE,QA3BL,uBA8BlC,WACI,OAA2B,GAApBoE,KAAKtrB,cA/BkB,sBAkClC,WACI,OAAOsrB,KAAKtrB,aAAesrB,KAAK+E,iBAnCF,0BA0ClC,SAAanmB,GACTohB,KAAKiC,MAAM,QAASrjB,KA3CU,yBA8ClC,WACIohB,KAAKuI,aAAa,KA/CY,wBAkDlC,WACIvI,KAAKuI,aAAavI,KAAKwI,YAnDO,wBAsDlC,WACIxI,KAAKuI,aAAavI,KAAKyI,mBAAmB,MAvDZ,wBA0DlC,WACIzI,KAAKuI,aAAavI,KAAK0I,mBAAmB,MA3DZ,6BA8DlC,WACI1I,KAAKuI,aAAavI,KAAKyI,mBAAmBzI,KAAKgF,UA/DjB,6BAkElC,WACIhF,KAAKuI,aAAavI,KAAK0I,mBAAmB1I,KAAKgF,UAnEjB,gCAsElC,SAAmBA,GACf,IAAIpmB,EAAQohB,KAAK5sB,MAAQ4xB,EAAQhF,KAAKwI,SAAWxI,KAAK5sB,MAAQ4sB,KAAK5sB,MAAQ4xB,EAC3E,OAAOpmB,IAxEuB,gCA2ElC,SAAmBomB,GACf,IAAIpmB,EAAQohB,KAAK5sB,MAAQ4xB,EAAQ,EAAIhF,KAAK5sB,MAAQ4sB,KAAK5sB,MAAQ4xB,EAC/D,OAAOpmB,MA7EuB,GAAS4f,QAMPqE,gBAAnCC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,KAAK,6BAEAH,gBAAnCC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,KAAK,6BAECH,gBAApCC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,MAAM,4BAEDH,gBAAnCC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,KAAK,6BAZnBoF,GAAiB,gBAHrCpH,eAAU,CACPmD,WAAY,CAAEwE,gBAEGP,cCPqS,MCOtT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MCdE,IDkBW,G,QClBF,WAAa,IAAIrI,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACqF,SAAS,CAAC,MAAQzF,EAAI3sB,OAAOqtB,GAAG,CAAC,MAAQ,SAAUmB,GAAU,OAAO7B,EAAIkC,MAAM,QAASL,EAAO/wB,OAAOuC,UAAY2sB,EAAI0B,GAAI1B,EAAS,OAAE,SAAShoB,GAAQ,OAAOooB,EAAG,SAAS,CAACzsB,IAAIqE,EAAOgoB,EAAI6I,YAAYpD,SAAS,CAAC,MAAQztB,EAAOgoB,EAAI6I,cAAc,CAAC7I,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/pB,EAAOgoB,EAAI8I,YAAY,UAAS,KAC3Y,GAAkB,GCKDC,GAAQ,qJAAStK,QAOOqE,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,iCACCH,gBAAzCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,WAAW,kCAClBH,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,4BACAF,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,6BACDF,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BAXNwY,GAAQ,gBAH5B9H,eAAU,CACPmD,WAAY,MAEK2E,cCN4R,MCO7S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MCdE,IDkBW,G,QClBF,WAAa,IAAI/I,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,gBAAgBf,MAAM,CAAE3oB,SAAUqoB,EAAIhS,aAAc,CAAEgS,EAAI5hB,cAAegiB,EAAG,OAAO,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAQ7B,EAAIgJ,UAAYhJ,EAAIgJ,YAAY,CAAC5I,EAAG,IAAI,CAACE,MAAM,CACrQN,EAAIgJ,SACE,yBACA,gCAAiChJ,EAAIe,KAAMf,EAAI7mB,KAAK6mB,EAAIiJ,aAAc7I,EAAG,MAAM,CAACiB,YAAY,SAASX,GAAG,CAAC,MAAQ,SAASmB,GAAgC,OAAxBA,EAAOe,iBAAwB5C,EAAIjmB,OAAOzL,MAAM,KAAM46B,cAAc,CAAClJ,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAK6mB,EAAIiJ,cAAc,OAAOjJ,EAAIe,KAAMf,EAAY,SAAEI,EAAG,KAAK,CAACiB,YAAY,iBAAiBrB,EAAI0B,GAAI1B,EAAI7mB,KAAa,UAAE,SAASmH,GAAO,OAAO8f,EAAG,eAAe,CAACzsB,IAAI2M,EAAM3M,IAAI6sB,MAAM,CAAC,KAAOlgB,EAAM,YAAc0f,EAAIiJ,YAAY,cAAgBjJ,EAAImJ,cAAc,iBAAmBnJ,EAAIoJ,kBAAkB1I,GAAG,CAAC,OAAS,SAAU2I,GAAc,OAAOrJ,EAAIkC,MAAM,SAAUmH,IAAe,OAAS,SAAUA,GAAc,OAAOrJ,EAAIkC,MAAM,SAAUmH,UAAoB,GAAGrJ,EAAIe,SACjsB,GAAkB,GCEDuI,GAAY,wDAAjC,iD,0BAoBI,EAAAN,UAAoB,EApBxB,EAAiC,+CA4B7B,WACI,IAAMrxB,EAAWsoB,KAAK9mB,KAAKxB,SAC3B,MAAwB,mBAAbA,EACAA,EACoB,oBAAbA,GACPA,EAASsoB,KAAK9mB,QAjCA,uBA8C7B,SAAU2uB,QACUv1B,GAAZu1B,IAAsC,IAAbA,GACzB7H,KAAKiC,MAAM,SAAUjC,KAAK9mB,QAhDL,oBA0D7B,WACI8mB,KAAKiC,MAAM,SAAUjC,KAAK9mB,QA3DD,yBA8D7B,WACI,MAAqC,kBAA1B8mB,KAAKmJ,iBACJnJ,KAAK9mB,KAAa8mB,KAAKmJ,kBAExBnJ,KAAKmJ,iBAAiBnJ,KAAK9mB,UAlEb,GAASslB,QAOdqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACiBk1B,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,mCACIH,gBAA5CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,cAAc,qCACTH,gBAAnCC,eAAK,CAAEtyB,KAAM,CAACuyB,OAAQuG,aAAa,wCAoCpCzG,gBADC0G,eAAM,aACP,+BA9CiBF,GAAY,gBAHhCrI,eAAU,CACP3uB,KAAM,kBAEWg3B,cCNgS,MCOjT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAItJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,YAAY,CAACI,MAAM,CAAC,KAAOR,EAAImD,OAAO,CAAC/C,EAAG,QAAQ,CAACqJ,IAAI,qBAAqB5F,MAAM,CAAE6F,MAAO1J,EAAI2J,OAAQC,OAAQ5J,EAAI6J,QAASrJ,MAAM,CAAC,MAAO,IAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,KAAOR,EAAInrB,QAAQurB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,OAAO,YAAc1D,EAAI2D,YAAY,aAAc,GAAMjD,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,UAAU,UAAYlC,EAAI8J,iBAAiB1J,EAAG,YAAY,CAACJ,EAAIyC,GAAG,SAAS,GAAGrC,EAAG,cAAc,CAACJ,EAAIyC,GAAG,WAAW,IAAI,IAAI,IACriB,GAAkB,GC4BDsH,GAAU,wDAA/B,iD,0BAqBI,EAAAC,UAA8B,CAC1BC,QAAS,EACTC,QAAS,EACTC,UAAW,EACXC,UAAW,GAGf,EAAAC,cAAqB,GA5BzB,EAA+B,oDAoC3B,SAAcz5B,GACVA,EAAMgyB,iBAEN3C,KAAK+J,UAAUC,QAAUr5B,EAAMq5B,QAC/BhK,KAAK+J,UAAUE,QAAUt5B,EAAMs5B,QAC/Bl6B,SAASs6B,YAAcrK,KAAKsK,YAC5Bv6B,SAASw6B,UAAYvK,KAAKwK,mBA1CH,yBA6C3B,SAAY75B,GACRA,EAAMgyB,iBACN3C,KAAK+J,UAAUG,UAAYlK,KAAK+J,UAAUC,QAAUr5B,EAAMq5B,QAC1DhK,KAAK+J,UAAUI,UAAYnK,KAAK+J,UAAUE,QAAUt5B,EAAMs5B,QAC1DjK,KAAK+J,UAAUC,QAAUr5B,EAAMq5B,QAC/BhK,KAAK+J,UAAUE,QAAUt5B,EAAMs5B,UAlDR,8BA8D3B,WACIl6B,SAASw6B,UAAY,KACrBx6B,SAASs6B,YAAc,SAhEA,GAAS7L,QAOKqE,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,4BACAH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,4BACJH,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,8BACbH,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,mCACiBF,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,8BACAH,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,8BAZxB8G,GAAU,gBAV9B9I,eAAU,CACPmD,WAAY,CACRhB,YACAC,SACAO,eACAN,aACAC,eACAY,oBAGa4F,cC7B8R,MCO/S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/J,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,YAAY,CAAErB,EAAI3qB,MAAM1H,OAAS,EAAGyyB,EAAG,KAAK,CAACiB,YAAY,iBAAiBrB,EAAI0B,GAAI1B,EAAS,OAAE,SAAS7mB,GAAM,OAAOinB,EAAG,eAAe,CAACzsB,IAAIwF,EAAKzD,GAAG8qB,MAAM,CAAC,KAAOrnB,EAAK,YAAc6mB,EAAIiJ,YAAY,cAAgBjJ,EAAImJ,cAAc,iBAAmBnJ,EAAIoJ,kBAAkB1I,GAAG,CAAC,OAAS,SAAUpgB,GAAS,OAAO0f,EAAIkC,MAAM,SAAU5hB,IAAU,OAAS,SAAUnH,GAAQ,OAAO6mB,EAAIkC,MAAM,SAAU/oB,UAAc,GAAG6mB,EAAIe,QAChhB,GAAkB,GCOD2J,GAAQ,qJAASjM,QAOXqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BACkBuS,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,mCACIH,gBAA5CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,cAAc,qCACTH,gBAAnCC,eAAK,CAAEtyB,KAAM,CAACuyB,OAAQuG,aAAa,wCAVnBmB,GAAQ,gBAH5BzJ,eAAU,CACPmD,WAAY,CAAEkF,oBAEGoB,cCR4R,MCO7S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MCdE,IDkBW,G,QClBF,WAAa,IAAI1K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,2BAA2B,CAACjB,EAAG,KAAK,CAACiB,YAAY,iBAAiB,CAACrB,EAAI0B,GAAI1B,EAAQ,MAAE,SAAS7mB,EAAKmF,GAAK,OAAO8hB,EAAG,KAAK,CAACzsB,IAAI2K,EAAI+iB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACE,MAAM,CAAC,SAAU,CAAE,WAAmD,IAAtCN,EAAIiC,YAAYpmB,QAAQ1C,EAAKzD,MAAcgrB,GAAG,CAAC,MAAQ,SAASmB,GAAgC,OAAxBA,EAAOe,iBAAwB5C,EAAIkC,MAAM,SAAU/oB,MAAS,CAACinB,EAAG,MAAM,CAACiB,YAAY,SAASb,MAAM,CAAC,IAAMR,EAAI2K,OAAOxxB,MAAS6mB,EAAI4B,GAAG5B,EAAI+B,GAAG5oB,EAAK7G,KAAO6G,EAAK7G,KAAO6G,EAAKyxB,MAAM,YAAWxK,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAA0B,GAAnB2sB,EAAI3lB,KAAK1M,OAAau2B,WAAW,qBAAqB7C,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQb,MAAM,CAAC,IAAM,sCAAsCJ,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0B,OACv2B,GAAkB,G,gDCqBDuI,GAAS,wDAA9B,iD,0BAyBI,EAAA1xB,KAA6B,CACzB2xB,SAAU,GACVC,QAAS,GACTC,UAAW,GACXC,QAAQ,GACRC,OAAQ,GACRC,QAAS,GACTC,MAAO,GAIX,EAAAhrB,KAAe,GACf,EAAA4oB,UAAoB,EACpB,EAAA3uB,KAAY,GAGZ,EAAAya,WAAqB,EAzCzB,EAA8B,0DAiD1B,WAAmB,WAGf,OAAOmL,KAAKxvB,MACR,IAAK,QAOD,OAAOwvB,KAAK+B,WAAWoJ,OACnB,KAAK,EACDnL,KAAK9mB,KAAKiyB,MAAQ,EAClBl2B,QAAIm2B,WAAWC,cAAcrL,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAE1C,EAAKkC,KAAO2B,KAAKC,MAAM9D,EAAIozB,WAAW,cAAc,SACpD,EAAKlxB,KAAKrB,SAAQ,SAACvL,GACf,EAAK+9B,KAAK/9B,EAAG,QAAS,EAAK0L,KAAKiyB,UAEpC,EAAKlJ,MAAM,aAAa,MAE5B,MACJ,KAAK,EACDjC,KAAK9mB,KAAKiyB,MAAQ,EAClBnL,KAAK9mB,KAAK4xB,QAAU9K,KAAK+B,WAAWtsB,GACpCR,QAAIm2B,WAAWI,qBAAqBxL,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAEjD,EAAKkC,KAAOlC,EACZ,EAAKkC,KAAKrB,SAAQ,SAACvL,GACf,EAAK+9B,KAAK/9B,EAAG,QAAS,EAAK0L,KAAKiyB,UAEpC,EAAKlJ,MAAM,aAAa,MAE5B,MACJ,KAAK,EACDjC,KAAK9mB,KAAKiyB,MAAQ,EAClBnL,KAAK9mB,KAAK4xB,QAAU9K,KAAK+B,WAAW+I,QACpC9K,KAAK9mB,KAAK6xB,UAAY/K,KAAK+B,WAAWtsB,GACtCR,QAAIm2B,WAAWK,kBAAkBzL,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAC9C,IAAIwzB,EAAQ3vB,KAAKC,MAAM9D,GACX,IAATwzB,IACC,EAAKxyB,KAAK8xB,QAAUU,EAAMC,gBAAgBX,QAC1C,EAAK9xB,KAAK+xB,OAASS,EAAMj2B,GACzBR,QAAIm2B,WAAWQ,yBAAyB,EAAK1yB,MAAM5H,MAAK,SAACu6B,GACrD,EAAKzxB,KAAO2B,KAAKC,MAAM6vB,GACvB,EAAKzxB,KAAKrB,SAAQ,SAACvL,GACf,EAAK+9B,KAAK/9B,EAAG,QAAS,EAAK0L,KAAKiyB,UAEpC,EAAKlJ,MAAM,aAAa,UAYpC,MACJ,QACIjC,KAAK9mB,KAAK8xB,QAAUhL,KAAK+B,WAAW4J,gBAAgBX,QACpDhL,KAAK9mB,KAAK+xB,OAASjL,KAAK+B,WAAWtsB,GACnCR,QAAIm2B,WAAWQ,yBAAyB5L,KAAK9mB,MAAM5H,MAAK,SAAC4G,GACrD,EAAKkC,KAAO2B,KAAKC,MAAM9D,GACvB,EAAK+pB,MAAM,aAAa,MAE5B,MAEZ,MACA,IAAK,WACwB,IAAtBjC,KAAK+B,WAAWtsB,GACfR,QAAIm2B,WAAWU,gBAAgB9L,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAC5C,EAAKkC,KAAO2B,KAAKC,MAAM9D,GACvB,EAAK+pB,MAAM,aAAa,OAG5BjC,KAAK9mB,KAAK8xB,QAAUhL,KAAK+B,WAAWtsB,GACpCR,QAAIm2B,WAAWW,wBAAwB/L,KAAK9mB,MAAM5H,MAAK,SAAC4G,GACpD,EAAKkC,KAAO2B,KAAKC,MAAM9D,GACvB,EAAK+pB,MAAM,aAAa,OAGpC,SAtIkB,iCA2I1B,WAAmB,WAgBf,OAAOjC,KAAKxvB,MACR,IAAK,QAED,OADAwvB,KAAK9mB,KAAK4xB,QAAU9K,KAAKgM,WAClBhM,KAAK9mB,KAAKiyB,OACb,KAAK,EACDnL,KAAK9mB,KAAKiyB,MAAQ,EAClBl2B,QAAIm2B,WAAWC,cAAcrL,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAE1C,EAAKkC,KAAO2B,KAAKC,MAAM9D,EAAIozB,WAAW,cAAc,YAExD,MACJ,KAAK,EACDtL,KAAK9mB,KAAKiyB,MAAQ,EAClBl2B,QAAIm2B,WAAWI,qBAAqBxL,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAEjD,EAAKkC,KAAOlC,EACZ,EAAKkC,KAAKrB,SAAQ,SAACvL,GACf,EAAK+9B,KAAK/9B,EAAG,QAAS,EAAK0L,KAAKiyB,aAGxC,MACJ,KAAK,EACDnL,KAAK9mB,KAAKiyB,MAAQ,EAClBl2B,QAAIm2B,WAAWK,kBAAkBzL,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAEpC,IAAPA,GACCjD,QAAIm2B,WAAWQ,yBAAyB,EAAK1yB,MAAM5H,MAAK,SAAC4G,GACrD,EAAKkC,KAAO2B,KAAKC,MAAM9D,EAAIozB,WAAW,cAAc,SACpD,EAAKlxB,KAAKrB,SAAQ,SAACvL,GACf,EAAK+9B,KAAK/9B,EAAG,QAAS,EAAK0L,KAAKiyB,gBAYhD,MACJ,QACIl2B,QAAIm2B,WAAWQ,yBAAyB5L,KAAK9mB,MAAM5H,MAAK,SAAC4G,GACrD,EAAKkC,KAAO2B,KAAKC,MAAM9D,MAE3B,MAEZ,MACA,IAAK,WACsB,KAApB8nB,KAAKgM,WACJ/2B,QAAIm2B,WAAWU,gBAAgB9L,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAC5C,EAAKkC,KAAO2B,KAAKC,MAAM9D,OAG3B8nB,KAAK9mB,KAAK8xB,QAAUhL,KAAKgM,WACzB/2B,QAAIm2B,WAAWW,wBAAwB/L,KAAK9mB,MAAM5H,MAAK,SAAC4G,GACpD,EAAKkC,KAAO2B,KAAKC,MAAM9D,OAGnC,SAvNkB,oBA0P1B,SAAOgB,GACH,GAAgB,SAAb8mB,KAAKxvB,KAEJ,OAAOwvB,KAAK9mB,KAAKiyB,OACb,KAAK,EACD,MAAO,iCACX,KAAK,EACD,MAAO,sDAInB,GAAGjyB,EAAKsE,OAAOtE,EAAKsE,OAAOtE,EAAK+yB,OAC7B,MAAO,sDACJ,GAAG/yB,EAAK8G,KAAK9G,EAAK8G,KAAK9G,EAAKgzB,KAAK,CAEnC,IAAIC,EAAYjzB,EAAK7G,KAAK+5B,UAAUlzB,EAAK7G,KAAKg6B,YAAY,MAAMrhB,MAAM,KAAK,GAAGshB,cAC9E,OAAOH,GACH,IAAK,MACL,IAAK,OACD,MAAO,6CACX,IAAK,MACL,IAAK,OACD,MAAO,6CACX,IAAK,MACL,IAAK,OACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,QACD,MAAO,+CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,IAAK,MACD,MAAO,6CACX,QACI,MAAO,mDAvTG,qBA4T3B,WAAO,WAuBF,OADAnM,KAAK9mB,KAAK2xB,SAAW7K,KAAKvmB,KAAK8yB,SACxBvM,KAAKxvB,MACR,IAAK,QACDwvB,KAAK9mB,KAAKiyB,MAAQ,EAClBl2B,QAAIm2B,WAAWC,cAAcrL,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAC1C,EAAKkC,KAAO2B,KAAKC,MAAM9D,EAAIozB,WAAW,cAAc,SACpD,EAAKlxB,KAAKrB,SAAQ,SAACvL,GACf,EAAK+9B,KAAK/9B,EAAG,QAAS,EAAK0L,KAAKiyB,UAEpC,EAAKlJ,MAAM,aAAa,MAEhC,MACA,IAAK,WACDhtB,QAAIm2B,WAAWU,gBAAgB9L,KAAK9mB,MAAM5H,MAAK,SAAC4G,GAC5C,EAAKkC,KAAO2B,KAAKC,MAAM9D,GACvB,EAAK+pB,MAAM,aAAa,MAEhC,WAnWkB,GAASzD,QAOXqE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,kCACAF,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,kCACDk1B,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,mCACCuS,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,4BAuCxBF,gBADC0G,eAAM,eACP,yCA0FA1G,gBADC0G,eAAM,eACP,yCA3IiBqB,GAAS,gBAd7B5J,eAAU,CACP3uB,KAAM,YACN8xB,WAAY,GACZC,QAAS,kBACFE,eAAa,CACZkI,mBAAoBn4B,UAG5B4sB,SAAU,kBACHC,eAAW,CACVznB,KAAMgzB,cAIG7B,cCtB6R,MCQ9S,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCQM8B,GAAoB,wDAAzC,iD,0BAyCI,EAAA/W,eAAgD,KAEhD,EAAAqW,WAAqB,GACrB,EAAAjK,WAAkB,GAClB,EAAAC,YAAmB,GACnB,EAAAvtB,SAAmB,EA+BnB,EAAAyE,KAA6B,CACzB2xB,SAAU,GACVC,QAAS,GACTC,UAAW,GACXC,QAAQ,GACRC,OAAQ,GACRC,QAAS,IAGb,EAAAyB,aAAoB,GACpB,EAAAC,aAAmB,GACnB,EAAAC,UAAgB,GAKhB,EAAAC,eAAsB,GA7F1B,EAAyC,8CAqGrC,WACI9M,KAAKmC,YAAW,GAGhBnC,KAAKkC,WAAW,CAACzsB,GAAG,GAAIpD,KAAK2tB,KAAK5qB,UAzGD,4BAiHrC,SAAe8D,EAAUmF,GAAU,WAC/B2hB,KAAKmC,YAAW,GAChBnC,KAAK2M,aAAe,GACpB3M,KAAKgC,YAAc,GAEnBhC,KAAK8M,eAAe/zB,SAAQ,SAACvL,EAAO6O,GAC7BA,EAAQgC,GACP,EAAKyuB,eAAel+B,OAAOyN,MAGlB,SAAd2jB,KAAK5qB,QACJ8D,EAAKiyB,MAAQ9sB,EAAM,GAEvB2hB,KAAK+B,WAAa7oB,IA9He,wBAiIrC,SAAWA,GACP8mB,KAAKmC,YAAW,GAChBnC,KAAK2M,aAAe,GACpB3M,KAAKgC,YAAc,GACnBhC,KAAK8M,eAAe9+B,KAAKkL,KArIQ,oBA2IrC,SAAOA,GAQH,IAAI6zB,GAAiB,EA4BrB,GA3BiB,SAAd/M,KAAK5qB,OACa,GAAd8D,EAAKiyB,OAA4B,GAAdjyB,EAAKiyB,OACvBnL,KAAKuL,KAAKryB,EAAM,UAAW8mB,KAAK8M,eAAeE,SAAS9zB,EAAKiyB,OAAS,GAAG11B,IACzEuqB,KAAKkC,WAAWhpB,GAChB6zB,GAAiB,EACjB/M,KAAK+B,WAAa7oB,GAIfA,EAAKsE,SACJwiB,KAAKkC,WAAWhpB,GAChB6zB,GAAiB,EACjB/M,KAAK+B,WAAa7oB,GAG1BA,EAAKiyB,MAAQ6B,SAAS9zB,EAAKiyB,OAAS,GAGjCjyB,EAAKsE,SACJwiB,KAAKkC,WAAWhpB,GAGhB6zB,GAAiB,EACjB/M,KAAK+B,WAAa7oB,GAIvB6zB,EAAe,CACd,IAAI1uB,EAAM2hB,KAAKgC,YAAYpmB,QAAQ1C,EAAKzD,KAE3B,IAAT4I,GACA2hB,KAAKgC,YAAYpzB,OAAOyP,EAAK,GAC7B2hB,KAAK2M,aAAa/9B,OAAOyP,EAAK,KAE9B2hB,KAAKgC,YAAYh0B,KAAKkL,EAAKzD,IAC3BuqB,KAAK2M,aAAa3+B,KAAKkL,OAvLE,gBA8LrC,WAAE,WAUE8mB,KAAK2M,aAAa5zB,SAAQ,SAACvL,GAEvBy/B,MAAMz/B,EAAE,iCACP8D,MAAK,SAAA4G,GAAG,OAAIA,EAAIg1B,UAChB57B,MAAK,SAAA47B,GACF,IAAMC,EAAW,IAAIjB,KAAK,CAACgB,GAAO1/B,EAAE6E,KAAM,CACtC7B,KAAM08B,EAAK18B,OAEf,EAAKg8B,mBAAmBW,SAIhCnN,KAAKqB,UApN4B,oBAuNrC,WACIrB,KAAKqB,UAxN4B,mBA2NrC,WACIrB,KAAKoN,YAAY,QA5NgB,6BA+NrC,SAAgBC,GAAgB,MACxBlB,EAAS,UAAGkB,EAASriB,MAAM,KAAKzQ,aAAvB,aAAG,EAA2B+xB,cACvCl5B,GAAQ,EAIZ,MAHiB,QAAb+4B,GAAoC,QAAbA,GAAoC,QAAbA,IAC9C/4B,GAAQ,GAELA,IArO0B,wBAwOrC,SAAWA,GACP4sB,KAAKvrB,QAAUrB,MAzOkB,GAASorB,QAOrBqE,gBAAxBC,eAAK,CAAEtyB,KAAMyyB,WAAW,4BACDJ,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,6BARP2J,GAAoB,gBAjBxC1L,eAAU,CACPmD,WAAY,CAAE2F,cAAYlH,gBAAegI,aAAW1G,iBAEpDjD,SAAU,kBACHC,eAAW,KAIlBkD,QAAS,iCACFC,eAAW,CACV+I,YAAa/4B,UAEdiwB,eAAa,CACZkI,mBAAoBn4B,aAIXq4B,cC3BoT,MCQrU,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCAMY,GAAe,yKAShC,gBATgC,GAAS9O,QAAxB8O,GAAe,gBAXnCtM,eAAU,CACPmD,WAAY,CACRuI,yBAGJzL,SAAU,kBACHC,eAAW,CACVN,MAAOvsB,aAIEi5B,cCnB+S,MCOhU,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,MAIa,M,QCRMvM,GAAU,4KAS7B,WACE,IAAIwM,EAASx9B,SAASy9B,eAAe,iBACjCD,EAAOz8B,IAAI8K,QAAQ,SAAW,GAChCokB,KAAKyN,QAAQz/B,KAAK,CAAEqE,KAAM,cAZD,GAASmsB,QAOdqE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,kCAPLhC,GAAU,gBAH9BC,eAAU,CACTmD,WAAY,CAAEuJ,iBAAgBJ,uBAEXvM,cCV8R,MCQ/S,I,UAAY,eACd,GACAjB,EACAa,GACA,EACA,KACA,KACA,OCfE,IDmBW,G,QCnBF,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACjB,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,gBAAgB,CAACJ,EAAG,MAAM,CAACiB,YAAY,aAAab,MAAM,CAAC,GAAK,mBAAmB,CAACR,EAAI4B,GAAG,aAAaxB,EAAG,MAAM,CAACiB,YAAY,uBAAuB,CAACrB,EAAIyC,GAAG,YAAY,GAAGrC,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACrB,EAAIyC,GAAG,WAAW,SACzX,GAAkB,GCGDmL,GAAW,qJAASnP,QAApBmP,GAAW,gBAD/B3M,QACoB2M,cCJ+R,MCQhT,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OCfE,IDmBW,G,QCnBF,WAAa,IAAI5N,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,YAAY,CAAER,EAAa,UAAEI,EAAG,eAAeJ,EAAIe,KAAKf,EAAIyC,GAAG,YAAY,KAC7L,GAAkB,GCDlB,GAAS,WAAa,IAAIzC,EAAIC,KAASC,EAAGF,EAAIG,eAAsBH,EAAIK,MAAMD,GAAO,OAAOJ,EAAI6N,GAAG,IACnG,GAAkB,CAAC,WAAa,IAAI7N,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,QAAQZ,YAAY,CAAC,QAAU,QAAQD,MAAM,CAAC,GAAK,iBAAiB,CAACJ,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACiB,YAAY,QAAQb,MAAM,CAAC,GAAK,oBAAoBJ,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,IAAI,CAACiB,YAAY,oBAAoBb,MAAM,CAAC,GAAK,gBAAgB,QAAU,kBAAkB,CAACJ,EAAG,IAAI,CAACiB,YAAY,2BAA2BjB,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,kFAAkF,CAACjB,EAAG,SAAS,CAACI,MAAM,CAAC,GAAK,kBAAkBJ,EAAG,MAAM,CAACiB,YAAY,yBCmB5yByM,I,8BAAW,yKAoD5B,cApD4B,qBAwD5B,WAEK35B,OAAe45B,QAAU9N,KAAK8N,QAC9B55B,OAAe,oBAAsB,SAAC65B,EAAgB13B,EAAgButB,GAChEA,EAAM6F,QACLuE,EAAE,6BAA6BC,IAAI,QAASrK,EAAM6F,OAClDuE,EAAE,wCAAwCE,YAAY,0BAGzDh6B,OAAei6B,cAAe,EAC/BH,EAAE,wBAAwBI,KAAK,MAAOL,GAKtC,IAAIM,EAASL,EAAE,iBACf,GAAIK,EAAO3gC,OAAQ,CACf,IAAI4gC,EAAQD,EAAO70B,KAAK,UACpB80B,EAAM5gC,QAGN4gC,EAAM7N,GAAG,QAAQ,SAACnxB,GACd,IAAIi+B,EAASj+B,EAAEuB,OACX09B,EAAQP,EAAGT,EAAeiB,iBAAiBh1B,KAAK,QACpD,GAAI+0B,EAAM7gC,OACN,IAAI+gC,EAAgB,IAChBltB,GAAO,EACPmtB,EAAUC,aAAY,WACtB,IAAIC,EAAUZ,EAAGT,EAAeiB,iBAAiBh1B,KAAK,mBAEtD,GAAIo1B,EAAQlhC,SAAW6T,EAAM,CACzBA,GAAO,EACPqtB,EAAQC,SAAS,eAEjB,IAAIC,EAAeP,EAAM/0B,KAAK,iCAE1Bu1B,EAAUR,EAAM/0B,KAAK,0BAErBw1B,EAAWX,EAAO70B,KAAK,iBACvBy1B,EAAWZ,EAAO70B,KAAK,iBAI3B,GAAIs1B,EAAaphC,OAAQ,CACrB,IAAIoN,EAAOg0B,EAAah0B,OAExBk0B,EAASx1B,KAAK,UAAUsB,KAAKA,GAI7Bi0B,EAAQrhC,SAEJuhC,EAASz1B,KAAK,YAAY9L,QAC1BqhC,EAAQG,SAASD,IAKzBE,cAAcT,GAElBD,IAEIA,EAAgB,IAAMltB,GACtB4tB,cAAcT,KAEnB,IAMP,IACI,IAAIU,EAAIpB,EAAGT,EAAe8B,eAAer8B,IAAI,GACvB,MAAlBo8B,EAAEE,cAC6B,WAA5BF,EAAEE,aAAaC,UACdH,EAAEI,OAAeC,SACrBL,EAAEM,OAASN,EAAEI,OAAOt7B,OACpBk7B,EAAE/N,MAAQ,WACL2M,EAAEoB,EAAEI,OAAOz/B,UAAUyJ,KAAK,mBAA2BxG,IAAI,GAAG28B,UAGvE,MAAOC,QAMjBvB,EAAOJ,IAAI,CACP4B,QAAS,EACT31B,OAAQ,qBAGZm0B,EAAOnL,OACPmL,EAAOyB,QAAQ,CACXD,QAAS,EACT31B,OAAQ,sBACT,CACC61B,SAAU,IACVC,SAAU,WACN3B,EAAO4B,WAAW,SAClB5B,EAAOnL,YAMtBhvB,OAAe,cAAgB,SAASg8B,GACrC,IAAIjB,EAAWjB,EAAE,iBAAiBx0B,KAAK,iBACvCy1B,EAASkB,QAETnC,EAAE,wBAAwBI,KAAK,MAAO,IACtCJ,EAAE,iBAAiBoC,OAElBl8B,OAAei6B,cAAe,OAzKX,GAAS3P,SAApBqP,GAAW,gBAd/B7M,eAAU,CACP3uB,KAAM,cACN8xB,WAAY,GACZlD,SAAU,kBACHC,eAAW,KAGlBkD,QAAS,iCACFC,eAAW,KAEXC,eAAa,QAIHuJ,cCpB+R,MCOhT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCXMwC,GAAU,qJAAS7R,QAQIqE,gBAAvCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAQ,iCARvBqN,GAAU,gBAH9BrP,eAAU,CACPmD,WAAY,CAAE0J,mBAEGwC,cCP8R,MCQ/S,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItQ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACiB,YAAY,SAAS,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI1pB,YAAY8pB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAAErB,EAAU,OAAEI,EAAG,IAAI,CAACiB,YAAY,oBAAoBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAC9B,EAAG,IAAI,CAACiB,YAAY,qBAAqBjB,EAAG,IAAI,CAACiB,YAAY,oBAAoBX,GAAG,CAAC,MAAQV,EAAIuQ,cAAc,CAACnQ,EAAG,IAAI,CAACiB,YAAY,2BAA4BrB,EAAW,QAAE,CAACI,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,oCAAoCwC,MAAO7D,EAAU,QAAG,CAACI,EAAG,aAAa,CAACI,MAAM,CAAC,QAAUR,EAAIwQ,mBAAmB,MAAOxQ,EAAQ,KAAE,CAACI,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,mCAAmCwC,MAAO7D,EAAU,QAAG,CAACA,EAAIyC,GAAG,YAAY,KAAOzC,EAAIyQ,SAA0GzQ,EAAIe,KAApGX,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAIyC,GAAG,WAAW,MAAe,CAACrC,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,oCAAoCwC,MAAO7D,EAAU,QAAG,CAACA,EAAIyC,GAAG,YAAY,KAAKrC,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAIyC,GAAG,WAAW,OAAO,QACj3C,GAAkB,G,0BCyFhBiO,GAAgB,+BAKDC,GAAW,6KAS9B,WACI1Q,KAAKiC,MAAM,SACX0O,QAAYtP,YAXc,GAAS7C,QACFqE,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,6BACIH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,+BACAH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,4BACjBH,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,sCACwBF,gBAA/CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAASyN,MAAiB,8BACP5N,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,8BACAH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,gCAPtB0N,GAAW,gBAH/B1P,eAAU,CACTmD,WAAY,CAAEyM,uBAEKF,cC/Fua,MCOxb,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI3Q,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAIyC,GAAG,eAAe,GAAGrC,EAAG,MAAM,CAACiB,YAAY,uBAAuB,CAACrB,EAAIyC,GAAG,gBAAgB,KAAKrC,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACrB,EAAIyC,GAAG,SAAS,MACzV,GAAkB,GCGDqO,GAAY,qJAASrS,QAArBqS,GAAY,gBADhC7P,QACoB6P,cCJgS,MCQjT,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OCfE,IDmBW,G,QCnBF,WACb,IAAIC,EACA/Q,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,cAAcb,MAAM,CAAC,GAAK,eAAe,CAAGR,EAAIpB,KAAKta,UAAqjC0b,EAAIpB,KAAKta,SAAe0b,EAAIyC,GAAG,SAA1kCrC,EAAG,MAAM,CAACiB,YAAY,sBAAsBf,OAAQyQ,EAAO,GAAIA,EAAK,uBAA0C,IAAlB/Q,EAAIpB,KAAKoS,KAAeD,IAAQ,CAAC3Q,EAAG,MAAM,CAACiB,YAAY,0BAA0B,CAAErB,EAAQ,KAAEI,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIpB,KAAKtoB,UAAU0pB,EAAIe,KAAMf,EAAIiR,SAAWjR,EAAIkR,QAAS9Q,EAAG,IAAI,CAACiB,YAAY,sBAAsBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAImR,YAAW,MAAS,CAAC/Q,EAAG,IAAI,CAACiB,YAAY,yBAAyBrB,EAAIe,KAAMf,EAAIiR,UAAYjR,EAAIkR,QAAS9Q,EAAG,IAAI,CAACiB,YAAY,uBAAuBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAImR,YAAW,MAAU,CAAC/Q,EAAG,IAAI,CAACiB,YAAY,oBAAoBrB,EAAIe,KAAMf,EAAc,WAAEI,EAAG,IAAI,CAACiB,YAAY,4BAA4BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIoR,eAAc,MAAS,CAAChR,EAAG,IAAI,CAACiB,YAAY,yBAAyBrB,EAAIe,KAAOf,EAAIqR,WAAsKrR,EAAIe,KAA9JX,EAAG,IAAI,CAACiB,YAAY,6BAA6BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIoR,eAAc,MAAU,CAAChR,EAAG,IAAI,CAACiB,YAAY,sBAA+BjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACrB,EAAIyC,GAAG,SAAS,MAA6D,KACzvC,GAAkB,G,yBC2BP,IACb2E,MAAOA,CAAT6J,SAAAxgC,aAAAwyB,aACE/B,SAAUA,kBACZC,gBACIvC,KAAJA,OACI0S,YAAJA,WAGEnkC,KARF,WASI,MAAJ,CACMokC,SAAUA,KAAhBA,8DACMF,YAAYA,EACZH,SAASA,EACTM,WAAYA,EACZC,OAAQA,KAAKA,OAAOA,MAAMA,OAC1BC,MAAOA,KAAbA,6CACMC,aAAcA,SAASA,SAASA,SAChCC,eAAgBA,SAASA,SAASA,SAGtCC,MAAFA,CACIC,OADJ,SACAhyB,EAAAiyB,GACUjyB,EAAGpE,MAAMs2B,QAAUD,EAAKr2B,MAAMs2B,SAChC/R,KAAKsR,SAAWtR,KAAKqR,YAAY53B,KACjCumB,KAAKoR,YAAa,EAClBpR,KAAKiR,SAAU,EACfjR,KAAKuR,WAAa,EAClBvR,KAAKwR,OAASxR,KAAK6R,OAAOp2B,MAAMs2B,OAChC/R,KAAKyR,MAAQ,KAArB,6CACQzR,KAAK0R,aAAe3hC,SAAS4U,SAASqtB,SACtChS,KAAK2R,eAAiB5hC,SAAS4U,SAASzF,OAExC8gB,KAAKiS,qBAIX7N,QAAFA,CAEI6N,gBAFJ,WAEA,WAEMh9B,QAAIA,WAAWA,iBAAiBA,KAAKA,SAASA,WAAYA,KAAKA,SAASA,QAASA,KAAKA,aAAcA,KAAKA,eAAgBA,KAAKA,QAAQA,MAAKA,SAAxIA,GACGiD,EAAM,GACR,EAAV,aACU,EAAV,gBAIU,EAAV,aACU,EAAV,mBAKIi5B,cAjBJ,SAiBA5vB,GAAA,IAeA,EAfA,OACUA,EAEFtM,QAAIA,WAAWA,eAAeA,KAAKA,SAASA,WAAYA,KAAKA,SAASA,QAASA,KAAKA,YAAYA,MAAKA,SAAlGA,GACGiD,GAAO,GACT,EAAZ,aACY,EAAZ,eAGYlE,QAAQA,IAAIA,yBAQG,GAAfgsB,KAAKwR,SACPU,EAAWA,QAAWA,QAAQA,OAAOA,KAAKA,UAG5Cj9B,QAAIA,WAAWA,eAAeA,KAAKA,SAASA,WAAYA,KAAKA,SAASA,QAASA,KAAKA,OAC5Fi9B,kCAAA,wBAAA5gC,MAAA,YACA,MACY,EAAZ,cACY,EAAZ,mBAMI6gC,aAhDJ,aAmDIjB,WAnDJ,SAmDA3vB,MAQE6wB,QA/FF,WAiGIpS,KAAKsR,SAAWtR,KAAKqR,YAAY53B,KACjCumB,KAAKoR,YAAa,EAClBpR,KAAKiR,SAAU,EACfjR,KAAKuR,WAAa,EAClBvR,KAAKwR,OAASxR,KAAK6R,OAAOp2B,MAAMs2B,OAChC/R,KAAKyR,MAAQ,KAAjB,6CACIzR,KAAK0R,aAAe3hC,SAAS4U,SAASqtB,SACtChS,KAAK2R,eAAiB5hC,SAAS4U,SAASzF,OAGxC8gB,KAAKiS,kBAGDjS,KAAKgR,SAAyB,GAAdhR,KAAKyR,OACvBzR,KAAKmS,iBC7I+W,MCOtX,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIpS,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACA,EAAG,eAAeA,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,eAAe,CAACJ,EAAG,YAAYA,EAAG,qBAAqB,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,OAAO8tB,GAAG,WAAW,MAAO,CAACzB,EAAIyC,GAAG,aAAaJ,OAAM,IAAO,MAAK,MAAS,IAAI,IACtT,GAAkB,G,aCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,WAAWwF,IAAI,WAAWjJ,MAAM,CAAC,GAAK,YAAYE,GAAG,CAAC,UAAY,SAASmB,GAAQ7B,EAAIsS,QAAS,GAAM,QAAU,SAASzQ,GAAQ7B,EAAIsS,QAAS,GAAO,UAAY,SAASzQ,GAAQ7B,EAAIsS,QAAS,GAAO,KAAO,SAASzQ,GAAQ7B,EAAIsS,QAAS,KAAS,CAAEtS,EAAI3sB,OAAS2sB,EAAI3sB,MAAM1F,OAAS,EAAGyyB,EAAG,WAAW,CAACI,MAAM,CAAC,MAAQR,EAAI3sB,MAAM,QAAU2sB,EAAIuS,QAAQ,eAAiBvS,EAAIwS,gBAAgB9R,GAAG,CAAC,OAASV,EAAIyS,cAAcrS,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACrB,EAAIyC,GAAG,aAAa,IAAI,IAC7lB,GAAkB,G,yBCDlB,GAAS,WAAa,IAAIzC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,2CAA2Cb,MAAM,CAAC,MAAQ,SAAS,CAACJ,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,MAAMJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAWR,EAAW,QAAEI,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUR,EAAIe,KAAKX,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,YAAYJ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUzF,EAAIloB,YAAc,UAAY,IAAI4oB,GAAG,CAAC,MAAQV,EAAI0S,qBAAqBtS,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAYtC,EAAW,QAAEI,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUtC,EAAIe,KAAMf,EAAI2S,OAAS,EAAGvS,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUtC,EAAIe,KAAKX,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAWlC,EAAG,cAAcA,EAAG,MAAM,CAACiB,YAAY,cAAcZ,YAAY,CAAC,aAAa,UAAU,CAACL,EAAG,QAAQ,CAACiB,YAAY,2CAA2Cb,MAAM,CAAC,MAAQ,SAAS,CAACJ,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,MAAMJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAWR,EAAW,QAAEI,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUR,EAAIe,KAAKX,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,YAAYJ,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAS,OAAE,SAAS/f,EAAK3D,GAAO,OAAO8jB,EAAG,iBAAiB,CAACzsB,IAAI2I,EAAMpM,IAAI,KAAKowB,MAAM,aAAergB,EAAK2yB,iBAAiBpS,MAAM,CAAC,KAAOvgB,EAAK,QAAU+f,EAAIuS,QAAQ,SAAWvS,EAAI6S,UAAU7S,EAAI8S,MAAOx2B,EAAQ,GAAG,UAAY0jB,EAAI6S,UAAU7S,EAAI8S,MAAOx2B,GAAO,QAAU0jB,EAAI6S,UAAU7S,EAAI8S,MAAOx2B,EAAQ,IAAIokB,GAAG,CAAC,OAAS,SAAUzgB,GAAQ,OAAO+f,EAAIkC,MAAM,SAAUjiB,IAAS,OAAS,SAAUA,GAAQ,OAAO+f,EAAIkC,MAAM,SAAUjiB,UAAc,OAA2U+f,EAAIe,KAA2Lf,EAAIe,QACpwE,GAAkB,G,aCDlB,I,oBAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACI,MAAM,CAAC,IAAMR,EAAI/f,KAAKvK,KAAK,CAAC0qB,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI/f,KAAa,SAAEikB,WAAW,kBAAkB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI/f,KAAKtI,UAAUqoB,EAAIgT,GAAGhT,EAAI/f,KAAKtI,SAAS,OAAO,EAAGqoB,EAAI/f,KAAa,UAAGygB,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI/f,KAAKtI,SAASu7B,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,GAAIrT,EAAIwL,KAAKxL,EAAI/f,KAAM,WAAYgzB,EAAIK,OAAO,CAACF,KAAaC,GAAK,GAAIrT,EAAIwL,KAAKxL,EAAI/f,KAAM,WAAYgzB,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAYrT,EAAIwL,KAAKxL,EAAI/f,KAAM,WAAYkzB,SAAY/S,EAAG,KAAK,CAACiB,YAAY,WAAWb,MAAM,CAAC,MAAQR,EAAI/f,KAAK3N,OAAO,CAAC8tB,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIuT,SAASvT,EAAI/f,SAAS,CAAC+f,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI/f,KAAK3N,WAAY0tB,EAAW,QAAEI,EAAG,KAAK,CAACA,EAAG,SAAS,CAACiB,YAAY,8BAA8BwC,MAAM,CAAEC,WAAY,CAAkB,IAAjB7D,KAAKuT,UAAoC,IAAlBvT,KAAKwT,UAAkB,UAAY,WAAY/S,GAAG,CAAC,MAAQV,EAAI0T,UAAU,CAACtT,EAAG,IAAI,CAACiB,YAAY,kBAAkBjB,EAAG,SAAS,CAACiB,YAAY,8BAA8BwC,MAAM,CAAEC,WAAY,CAAiB,IAAhB7D,KAAK0T,SAAmC,IAAlB1T,KAAKwT,UAAkB,UAAY,WAAY/S,GAAG,CAAC,MAAQV,EAAI4T,YAAY,CAACxT,EAAG,IAAI,CAACiB,YAAY,sBAAsBrB,EAAIe,KAAMf,EAAI/f,KAAS,KAAEmgB,EAAG,KAAK,CAACiB,YAAY,eAAe,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAInE,SAASmE,EAAIe,KAAKX,EAAG,KAAK,CAACA,EAAG,OAAO,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI/f,KAAK4zB,SAAW,KAAK,SAASzT,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,IAAI,CAACiB,YAAY,mBAAmBX,GAAG,CAAC,MAAQ,WAAc,OAAOV,EAAIkC,MAAM,SAASlC,EAAI/f,SAAW,CAACmgB,EAAG,IAAI,CAACiB,YAAY,2BAC9uD,GAAkB,G,uDCMDyS,GAAY,oKAmB/B,WACE,OAAOC,QAAWvY,gBAAgByE,KAAKhgB,KAAK4b,KAAM,KApBrB,sBAuB/B,SAAS5b,GACP,GAAIA,EAAKktB,MAAQltB,EAAKA,KACpB,GAAI9L,OAAO6/B,WAAc7/B,OAAO6/B,UAAkBC,iBAC/C9/B,OAAO6/B,UAAkBC,iBAAiBh0B,EAAKktB,MAAQltB,EAAKA,KAAMA,EAAK3N,UACnE,CACL,IAAI4hC,EAAOlkC,SAASQ,cAAc,KAClC0jC,EAAKrkC,KAAOsE,OAAOggC,IAAIC,gBAAgBn0B,EAAKktB,MAAQltB,EAAKA,MACzDi0B,EAAKX,SAAL,UAAmBtzB,EAAK3N,MACxB4hC,EAAKtE,YAEF,CACL,IAAIsE,EAAOlkC,SAASQ,cAAc,KAClC0jC,EAAKrkC,KAAOoQ,EAAKo0B,YACjBH,EAAKpjC,OAAS,SACdojC,EAAKX,SAAL,UAAmBtzB,EAAK3N,MACxB4hC,EAAKtE,WAtCsB,qBA0C/B,WACuB,IAAjB3P,KAAKuT,UAAoC,IAAlBvT,KAAKwT,YACzBt/B,OAAemgC,mBACjBngC,OAAemgC,oBAGlBp/B,QAAI+K,KAAKs0B,aAAa,CACpBC,SAAUvU,KAAKwT,UACfgB,SAAUxU,KAAKuT,WACdjiC,MAAK,SAAC4G,GACFhE,OAAeugC,uBACjBvgC,OAAeugC,sBAAsBv8B,MAEvCoL,OAAM,SAACvS,GACHmD,OAAewgC,mBACjBxgC,OAAewgC,kBAAkB3jC,SAzDX,uBA+D/B,WACsB,IAAhBivB,KAAK0T,SAAmC,IAAlB1T,KAAKwT,YACxBt/B,OAAemgC,mBACjBngC,OAAemgC,oBAGlBp/B,QAAI+K,KAAKs0B,aAAa,CACpBC,SAAUvU,KAAKwT,UACfgB,SAAUxU,KAAK0T,UACdpiC,MAAK,SAAC4G,GACFhE,OAAeugC,uBACjBvgC,OAAeugC,sBAAsBv8B,MAEvCoL,OAAM,SAACvS,GACHmD,OAAewgC,mBACjBxgC,OAAewgC,kBAAkB3jC,WA9EX,GAASytB,QAOAqE,gBAAvCC,eAAK,CAAEtyB,KAAM7C,OAAQ05B,UAAU,KAAQ,4BACHxE,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,gCACAH,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,iCACAH,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,+BACIH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,+BAXtB6Q,GAAY,gBADhC7S,QACoB6S,cCPwT,MCQzU,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCVMc,GAAQ,wDAA7B,iD,0BAKE,EAAAjC,OAAiB,EALnB,EAA6B,gDAO3B,WACE,IAAMpK,EAAQtI,KAAK6S,MAAMnlC,OACzB,OAAI46B,EAAQ,GACHtI,KAAK6S,MAAM34B,QAAO,SAAC1E,GAAD,OAAOA,EAAEkC,YAAUhK,SAAW46B,IAVhC,qBAgB3B,WAEE,OAAOwL,QAAWvY,gBAAgByE,KAAK0S,UAlBd,sBAqB3B,WACE,OAAO1S,KAAK6S,MAAMnlC,SAtBO,mBAyB3B,WACE,OAAOomC,QAAWvY,gBAAgByE,KAAKuS,kBA1Bd,wBA6B3B,WACE,IAAMqC,EAAY5U,KAAK6S,MAAMgC,QAAO,SAACC,EAAKt/B,GAAN,OAAYs/B,EAAMt/B,EAAEomB,OAAM,GACxDmZ,EAAe/U,KAAK6S,MAAMgC,QAAO,SAACC,EAAKt/B,GAC3C,MAA8B,oBAAnBA,EAAEw/B,aACJF,EAAMt/B,EAAEw/B,eAERF,EAAMt/B,EAAEomB,OAEhB,GACH,OAAO7P,KAAKsD,MAAsB,IAAf0lB,EAAsBH,KAtChB,6BA+C3B,WACE,IADa,EACP/0B,GAAMmgB,KAAKnoB,YADJ,kBAEImoB,KAAK6S,OAFT,IAEb,2BAA6B,KAApB7yB,EAAoB,QAC3BA,EAAKtI,SAAWmI,GAHL,iCA/CY,uBAsD3B,SAAUgzB,EAAmBx0B,GAC3B,OAAIw0B,GAASA,EAAMnlC,QACb2Q,GAAO,GAAKA,EAAMw0B,EAAMnlC,QAClBmlC,EAAMx0B,GAAKs0B,iBAAmB,IAAIliB,WAGvC,KA5DkB,qBA+D3B,WACEuP,KAAK0S,OAAS1S,KAAK6S,MAAMgC,QAAO,SAACC,EAAKt/B,GAAN,OAAYs/B,EAAMt/B,EAAEomB,OAAM,OAhEjC,GAAS4C,QACGqE,gBAAtCC,eAAK,CAAEtyB,KAAM8f,MAAO+W,UAAU,KAAQ,6BACfxE,gBAAvBC,eAAK,CAAEtyB,KAAMqW,UAAU,sCACiBgc,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,+BAHtB2R,GAAQ,gBAH5B3T,eAAU,CACTmD,WAAY,CAAE0P,oBAEKc,cCToT,MCQrU,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,qBCnBTM,I,2HACJ,WACE,OAAO,I,oBAGT,SACE7iC,GAEgF,IADhFiE,EACgF,uDADhE,GAChB7F,EAAgF,uDAAT,UAEvE,IAAIwvB,KAAKkV,UAIP,OAAOlhC,QAAQ4M,IAAIxO,EAASiE,EAAO7F,GAHnCwD,QAAQ4M,IAAIvK,EAAOjE,EAAS5B,O,MAQnB,OAAIykC,GCZNE,GAAb,WAyME,WAAYC,GACV,GADoC,wBAC/BA,EAAU,MAAM,IAAIpkC,MAAM,8BAC/BgvB,KAAKqV,QAAUD,EA3MnB,kDAqBE,SAAYp1B,EAAgB5N,EAAiBH,GAC3C+B,QAAQ4M,IAAI,kBAAmB,cAAeqoB,aAtBlD,0BA4BE,SAAajpB,EAAgB/N,GAG3B,IAAM2hC,EAAU5zB,EAAKjO,MAAQ,EAAIga,KAAKsD,MAAwB,IAAlBrP,EAAKs1B,YACjDt1B,EAAK4zB,QAAUA,IAhCnB,uBAyCE,SAAU5zB,EAAgBrP,GAExB,OADAqD,QAAQ4M,IAAI,kBAAmB,YAAaqoB,YACrC,IA3CX,yBAkDE,SAAY4J,EAAmBliC,GAC7BqD,QAAQ4M,IAAI,kBAAmB,cAAeiyB,GAC9C,MAMI7S,KAAKqV,QALP9C,EADF,EACEA,eACAgD,EAFF,EAEEA,4BACAC,EAHF,EAGEA,iBACAC,EAJF,EAIEA,uBACAC,EALF,EAKEA,uBAEIC,EAAO3V,KAAKqV,QAAQM,KAEtBC,EAAW,gBAAI/C,GAAO34B,QAAO,SAAC2T,GAAD,OAAkB,IAAXA,EAAE+N,QAC1C,GAAIga,EAASloC,OAAS,EAKpB,MAJsC,kBAA3BgoC,IACTG,MAAMH,GACNI,GAAaC,OAAOH,EAAS,GAAGvjC,KAAMqjC,EAAwB,WAEzD,EAET,GAA8B,kBAAnBnD,GAA+BA,EAAiB,GAEvD,0BAAIoD,EAAK9C,OAAT,gBAAmBA,IAAOt9B,KAAI,SAACsY,GAAD,OAAOA,EAAE+N,QAAMiZ,QAAO,SAACp6B,EAAGwD,GAAJ,OAAUxD,EAAIwD,IAAG,GAAKs0B,EAU1E,MAR2C,kBAAhCgD,IACTM,MAAMN,GACNO,GAAaC,OAAb,uBACkBjC,QAAWvY,gBAAgBgX,EAAgB,IAC3DgD,EACA,WAGG,EAIX,QAAwBjjC,GAApBkjC,GAAqD,MAApBA,EAA0B,CAC7D,IAAII,EAAW,gBAAI/C,GAAO34B,QAAO,SAAC2T,GAChC,IAAImoB,EAAQnoB,EAAExb,KAAK2jC,MAAM,UACrB7J,EAAqB,MAAT6J,EAAgB,GAAKA,EAAM,GAE3C,OAAIR,EAAiB55B,QAAQuwB,IAAc,KAI7C,GAAIyJ,EAASloC,OAAS,EAGpB,OAFAmoC,MAAMJ,GACNK,GAAaC,OAAOH,EAAS,GAAGvjC,KAAMojC,EAAwB,UACvD,EAGX,OAAO,IApGX,wBA0GE,SAAWvrB,EAAmBvZ,GAE5B,OADAqD,QAAQ4M,IAAI,kBAAmB,aAAcqoB,YACtC,IA5GX,4BAkHE,SAAe/e,EAAmBvZ,GAChCqD,QAAQ4M,IAAI,kBAAmB,iBAAkBqoB,WAEjDjJ,KAAKqV,QAAQM,KAAKM,WArHtB,yBA2HE,SAAYj2B,GACVhM,QAAQ4M,IAAI,kBAAmB,cAAeqoB,WAC9C,MAEIjJ,KAAKqV,QADPa,KAAQjlC,EADV,EACUA,KAAMujB,EADhB,EACgBA,WAEV2hB,EAAgBn2B,EAAK3N,KAAK2Y,MAAM,KAChCorB,EAAgBD,EAAcA,EAAczoC,OAAS,GACvD2oC,EAAcr2B,EAAas2B,WAC1Bt2B,EAAas2B,WACdt2B,EAAK2yB,iBAAL,WAA4ByD,GAChCnhC,QAAI+K,KAAKu2B,YAAYtlC,EAAMujB,EAAY,CAACxU,EAAK3N,MAAO,CAACgkC,MArIzD,uBA2IE,SAAUr2B,EAAgB/N,GACxB+B,QAAQ4M,IAAI,kBAAmB,YAAaqoB,aA5IhD,uBAkJE,SAAUjpB,EAAgB5N,EAAiBH,GACzC+B,QAAQ4M,IAAI,kBAAmB,YAAaqoB,aAnJhD,yBAyJE,WACEj1B,QAAQ4M,IAAI,kBAAmB,cAAeqoB,WACzC/0B,OAAesiC,qBACjBtiC,OAAesiC,oBAAoBvN,aA5J1C,sBAmKE,WACEj1B,QAAQ4M,IAAI,kBAAmB,WAAYqoB,WACtC/0B,OAAeuiC,yBACjBviC,OAAeuiC,wBAAwBxN,aAtK9C,sBA6KE,cA7KF,mBAoLE,SAAM72B,EAAiB4N,EAAgB/N,GACrC+B,QAAQ4M,IAAI,kBAAmB,QAASqoB,WACnC/0B,OAAewiC,eACjBxiC,OAAewiC,cAAczN,UAAWjpB,EAAM5N,KAvLrD,sBA8LE,SAASzB,QA9LX,KCAMgmC,GAAqB,YACrBC,GAAkC,CACtCC,SAAU,SAACC,EAAIC,EAASC,GACtB,MAMIA,EAAM3B,QALRM,EADF,EACEA,KACAsB,EAFF,EAEEA,aACAC,EAHF,EAGEA,mBACAC,EAJF,EAIEA,0BACAC,EALF,EAKEA,2BAEFpjC,QAAQ4M,IAAI,SAAU,WAAY,CAAC+0B,EAAMsB,EAAcC,IAEvD,IAAMz7B,EAAQ,SAACA,GAAD,OAAmBvH,OAAOnE,SAAS6U,KAAKyyB,cAAc57B,IAEpE,IAAIk6B,EAuCF,MAAM,IAAI3kC,MAAM,6CAtChB,IAAIuI,EAAQkC,EAAMk7B,IAMlB,GALIp9B,GACFo8B,EAAK2B,WAAW/9B,GAId09B,EAAc,CAChB,IAAI19B,EAAQkC,EAAMw7B,GACd19B,GACFo8B,EAAK4B,aAAah+B,GAKtB,GAAI29B,EAAoB,CACtB,IAAI39B,EAAQkC,EAAMy7B,GACd39B,GACFo8B,EAAK4B,aAAah+B,GAAO,GAM7B,GAAI49B,EAA2B,CAC7B,IAAI59B,EAAQkC,EAAM07B,GACd59B,GACFo8B,EAAK6B,0BAA0Bj+B,EAAO69B,MAqB3BK,GAAgB,wDAArC,iD,0BAwHE,EAAA9B,KAAahoC,OAAO8F,OAAO,MAK3B,EAAAikC,gBAA0B,EAK1B,EAAArF,QAAkB,EAlIpB,EAAqC,8CA0InC,WACE,IAAM34B,EAAO,iCACR/L,OAAO8F,OAAO,OACd,CACD5C,OAAQmvB,KAAK2X,UACbC,YAAY,EACZC,UAAW7X,KAAK6X,UAChBC,YAAY,EACZr8B,MAAO,CACLxK,KAAM+uB,KAAKkW,KAAKjlC,KAChBujB,WAAYwL,KAAKkW,KAAK1hB,WACtBhkB,KAAMwvB,KAAKkW,KAAK1lC,MAElBiwB,GAAI,IAAI0U,GAAgBnV,QAG5BA,KAAK2V,KAAO,IAAIoC,QAAKr+B,EAASsmB,KAAK5sB,OAE9B4sB,KAAK2V,KAAKqC,UACbhY,KAAK0X,gBAAiB,KA7JS,2BAkKnC,WACE1X,KAAK2V,KAAK9C,MAAQ7S,KAAK5sB,QAnKU,wCAwKnC,SAA2B6kC,GACvBjY,KAAK2V,KAAKuC,SAASD,EAAK,QAzKO,wBA4KnC,SAAWj4B,GACTggB,KAAK2V,KAAKwC,WAAWn4B,OA7KY,GAASwe,QAWJqE,gBAAvCC,eAAK,CAAEtyB,KAAMuyB,OAAQsE,UAAU,KAAQ,iCAMAxE,gBAAvCC,eAAK,CAAEtyB,KAAMuyB,OAAQsE,UAAU,KAAQ,iCAKGxE,gBAA1CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,YAAY,oCAKHH,gBAAvCC,eAAK,CAAEtyB,KAAM7C,OAAQ05B,UAAU,KAAQ,4BAMGxE,gBAA1CC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,OAAY,iCAKPH,gBAAnCC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,KAAK,2CAKGH,gBAAtCC,eAAK,CAAEtyB,KAAM8f,MAAO+W,UAAU,KAAQ,6BAMfxE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,oCAMAF,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,0CAKAF,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,iDAKEF,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,oCAKHzG,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,yCAMsBuS,gBAA5CC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,cAAc,sCAM7CH,gBADCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,oBAC/B,mDAMAH,gBADCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,0BAC/B,8CAGAH,gBADCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,sBAC/B,kDAM0CH,gBAAzCC,eAAK,CAAEtyB,KAAM8f,MAAO0S,QAAS,iBAAM,OAAM,wCAM1CH,gBADCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,4BAC/B,8CAMAH,gBADCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAChC,+BAqDAH,gBADC0G,eAAM,UACP,mCAMA1G,gBADC0G,eAAM,sBACP,gDAxKmBkO,GAAgB,gBAJpCzW,eAAU,CACTmD,WAAY,CAAEwQ,aACd5Q,WAAY,CAAE4R,KAAMiB,OAEDa,cCrEgT,MCQjU,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OCfE,IDmBW,G,QCnBF,WAAa,IAAI1X,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,iBAAiB,CAACJ,EAAG,MAAM,CAACiB,YAAY,iBAAiBjB,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,qBAAqB,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,KAAK,CAACiB,YAAY,YAAY,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAmB,SAAhB/B,EAAIqY,SAAsBrY,EAAImS,SAASmG,SAAWtY,EAAImS,SAASoG,mBAAmBvY,EAAIyC,GAAG,aAAa,GAAIzC,EAAgB,aAAEI,EAAG,MAAM,CAACiB,YAAY,kBAAkBrB,EAAI0B,GAAI1B,EAAImS,SAAiB,UAAE,SAASh5B,GAAM,OAAOinB,EAAG,eAAe,CAACzsB,IAAIwF,EAAKs4B,OAAOjR,MAAM,CAAC,KAAOrnB,EAAK,aAAe6mB,EAAIwY,aAAa,eAAiBxY,EAAIyY,eAAe,SAAWzY,EAAIqY,SAAS,aAAerY,EAAI0Y,iBAAiBhY,GAAG,CAAC,OAAS,SAAUvnB,GAAQ,OAAO6mB,EAAI2Y,aAAax/B,IAAS,UAAY,SAAUA,GAAQ,OAAO6mB,EAAI4Y,YAAYz/B,KAAUooB,YAAYvB,EAAIwB,GAAG,EAAsD,IAAnDroB,EAAK0/B,YAAc,IAAIh9B,QAAQ,gBAAuB,CAAClI,IAAI,uBAAuB8tB,GAAG,WAAW,MAAO,CAACzB,EAAIyC,GAAGtpB,EAAK0/B,eAAexW,OAAM,GAAM,MAAM,MAAK,QAAU,GAAGrC,EAAIe,WACplC,GAAkB,GCDlB,GAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,UAAWN,EAAI6Y,cAAc,CAAE7Y,EAAgB,aAAEI,EAAG,MAAM,CAACE,MAAM,CAAC,SAAUN,EAAIroB,SAAW,WAAa,KAAK,EAA0D,IAAvDqoB,EAAI7mB,KAAK0/B,YAAc,IAAIh9B,QAAQ,gBAAuBukB,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACjB,EAAG,IAAI,CAACE,MAAMN,EAAI8Y,iBAAmB,wBAA0B,sBAAsBtY,MAAM,CAAC,GAAK,cAAgBR,EAAI7mB,KAAKs4B,QAAQ/Q,GAAG,CAAC,MAAQ,SAASmB,GAAQA,EAAOkX,kBAAkB/Y,EAAI8Y,kBAAoB9Y,EAAI8Y,uBAAwB9Y,EAAI7mB,KAAgB,YAAEinB,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACjB,EAAG,IAAI,CAACE,OAAMN,EAAIgZ,WACjmBhZ,EAAIiZ,iBACA,wBACA,uBAGkBzY,MAAM,CAAC,GAAK,cAAgBR,EAAI7mB,KAAKs4B,QAAQ/Q,GAAG,CAAC,MAAQ,SAASmB,GAAQA,EAAOkX,kBAAkB/Y,EAAIkC,MAAM,SAAUlC,EAAI7mB,MAAQ6mB,EAAIiZ,kBAAoBjZ,EAAIiZ,uBAAwB7Y,EAAG,OAAO,CAACiB,YAAY,YAAY,CAACjB,EAAG,IAAI,CAACiB,YAAY,iBAAiBjB,EAAG,OAAO,CAACiB,YAAY,YAAYX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIkC,MAAM,YAAalC,EAAI7mB,SAAS,CAACinB,EAAG,IAAI,CAACiB,YAAY,QAAQ,CAAErB,EAAI7mB,KAAc,UAAEinB,EAAG,OAAO,CAACiB,YAAY,OAAO,CAACrB,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG5B,EAAI+B,GAAmB,SAAhB/B,EAAIqY,SAAsBrY,EAAI7mB,KAAKm/B,SAAWtY,EAAI7mB,KAAKo/B,aAAanY,EAAG,IAAI,CAACiB,YAAY,gBAAgBrB,EAAIe,MAA8D,IAAvDf,EAAI7mB,KAAK0/B,YAAc,IAAIh9B,QAAQ,gBAAuBukB,EAAG,MAAM,CAACiB,YAAY,SAASwC,MAAO7D,EAAI8Y,iBAAmB,GAAK,eAAgBtY,MAAM,CAAC,GAAK,oBAAsBR,EAAI7mB,KAAKs4B,SAAS,CAACzR,EAAIyC,GAAG,yBAAyB,GAAIzC,EAAI7mB,KAAgB,YAAEinB,EAAG,MAAM,CAACiB,YAAY,SAASwC,MAAO7D,EAAIiZ,iBAAmB,GAAK,eAAgBzY,MAAM,CAAC,GAAK,oBAAsBR,EAAI7mB,KAAKs4B,SAASzR,EAAI0B,GAAI1B,EAAI7mB,KAAa,UAAE,SAASmH,GAAO,OAAO8f,EAAG,gBAAgB,CAACzsB,IAAI2M,EAAMmxB,OAAOjR,MAAM,CAAC,KAAOlgB,EAAM,aAAe0f,EAAIwY,aAAa,eAAiBxY,EAAIyY,eAAe,SAAWzY,EAAIqY,UAAU3X,GAAG,CAAC,OAAS,SAAUvnB,GAAQ,OAAO6mB,EAAIkC,MAAM,SAAU/oB,IAAS,UAAY,SAAUA,GAAQ,OAAO6mB,EAAIkC,MAAM,YAAa/oB,UAAc,GAAG6mB,EAAIe,QACv3C,GAAkB,GCCDmY,I,oBAAY,wDAAjC,iD,0BAK4B,EAAA/G,SAA2C,KAGnE,EAAA2G,kBAA4B,EAC5B,EAAAG,kBAA4B,EAC5B,EAAAE,oBAA8B,EAVlC,EAAiC,6CAW7B,WACI,IAAI1H,EAAS3qB,OAAOmZ,KAAK6R,OAAOp2B,MAAMs2B,QACtC,OAAOP,IAAWxR,KAAK9mB,KAAKs4B,SAbH,sBAgB7B,WACI,OAAIxR,KAAKuY,aAAav/B,SAASgnB,KAAK9mB,KAAKs4B,SAI9BxR,KAAKuY,aAAa,IAAMvY,KAAK9mB,KAAKigC,cAIT,GAAzBnZ,KAAK9mB,KAAKiF,aAIV6hB,KAAKuY,aAAa,IAAMa,QAAWC,aAAarZ,KAAK9mB,KAAKs4B,SAXjExR,KAAKgZ,kBAAmB,EACxBhZ,KAAKkZ,oBAAqB,GACnB,IAcPlZ,KAAKgZ,kBAAmB,EACxBhZ,KAAKkZ,oBAAqB,GACnB,KApCc,wBAwC7B,WAAgB,WACRI,GAAwB,EAE5B,OADItZ,KAAKwY,gBAAkBxY,KAAKwY,eAAeh/B,MAAK,SAAChE,GAAD,OAAOA,EAAEC,IAAM,EAAKyD,KAAKs4B,YAAS8H,GAAe,GAC9FA,IA3CkB,uBA8C7B,WACI,OAAItZ,KAAK9mB,KAAK0/B,YACH5Y,KAAK9mB,KAAK0/B,YAEd,KAlDkB,2BAuD7B,WACQ5Y,KAAK9mB,MAAQ8mB,KAAKuZ,aAAa7rC,OAAS,IAA6C,GAAxCiX,SAAS/U,KAAKgM,QAAQ,eACnEokB,KAAKwZ,gBAAgBxZ,KAAK9mB,QAzDL,6BA6D7B,SAAgBA,GAAS,WACjBA,EAAKugC,UAAYzZ,KAAKuZ,aAAavgC,SAASE,EAAKugC,UACjDzZ,KAAKuL,KAAKryB,EAAM,aAAa,GAE7B8mB,KAAKuL,KAAKryB,EAAM,aAAa,GAI7BA,EAAKG,UAAYH,EAAKG,SAAS3L,OAAS,GACxCwL,EAAKG,SAASN,SAAQ,SAACsH,GAAD,OAAgB,EAAKm5B,gBAAgBn5B,QAtEtC,qBA0E7B,WACI,IAAImxB,EAAS3qB,OAAOmZ,KAAK6R,OAAOp2B,MAAMs2B,QAClCP,GAAUxR,KAAK9mB,KAAKs4B,QAEpBxR,KAAK0Z,IAAIC,qBA9EY,GAASnb,SACdqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACDk1B,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,sCACAuS,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,oCACCuS,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,gCACAF,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,gCACkBk1B,gBAAzCC,eAAK,CAAEtyB,KAAM8f,MAAO0S,QAAS,iBAAM,OAAM,oCAiD1CH,gBADC0G,eAAM,eAAgB,CAAEqQ,WAAW,KACpC,mCAvDiBX,GAAY,gBAHhCjY,eAAU,CACP3uB,KAAM,mBAEW4mC,cCR+W,MCOhY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCDMY,GAAQ,wDAA7B,iD,0BAEI,EAAArB,eAA4C,GAC5C,EAAAtG,SAA2C,KAC3C,EAAAqG,aAAyB,GACzB,EAAAH,SAAmB,GACnB,EAAAK,gBAA4B,GAE5B,EAAAa,cAAwB,EACxB,EAAAQ,UAAoB,EAAKjI,OAAOp2B,MAAMs2B,OAASlrB,OAAO,EAAKgrB,OAAOp2B,MAAMs2B,QAAU,EATtF,EAA6B,mDAWzB,SAAa74B,GACT,IAAI6gC,EAAOhqC,SAASy9B,eAAe,cAAgBt0B,EAAKs4B,QACpDwI,EAASjqC,SAASy9B,eAAe,oBAAsBt0B,EAAKs4B,QAE5DuI,IACIA,EAAKE,UAAUC,SAAS,0BACxBH,EAAKE,UAAUE,OAAO,yBACtBJ,EAAKE,UAAUG,IAAI,uBACb,OAANJ,QAAM,IAANA,KAAQloC,aAAa,QAAS,kBAE9BioC,EAAKE,UAAUE,OAAO,uBACtBJ,EAAKE,UAAUG,IAAI,yBACb,OAANJ,QAAM,IAANA,KAAQK,gBAAgB,aAvBX,yBA4BzB,SAAYnhC,GACJA,IAEIA,EAAKohC,UACLlB,QAAW9+B,KAAKpB,GACS,IAAlBA,EAAKohC,WAAmBphC,EAAKiF,aAAejF,EAAKG,SAAS3L,OAAS,IACtEwL,EAAKG,SAAS,GAAGihC,UACjBlB,QAAW9+B,KAAKpB,EAAKG,SAAS,IAE9B2mB,KAAK0Y,aAAax/B,OArCT,4BA4CzB,WACI,IAAQ64B,EAAW/R,KAAK6R,OAAOp2B,MAAvBs2B,OACR,GAAIA,EAAQ,CACR,IAAIwI,EAAWnB,QAAWoB,gBAAgB3zB,OAAOkrB,IAC7C0I,EAAWrB,QAAWsB,kBAAkB7zB,OAAOkrB,IACnD,GAAIwI,EAAU,CACVva,KAAKkS,SAAWqI,EACZva,KAAKkS,UAAYlS,KAAKkS,SAAS/zB,aAAe6hB,KAAKkS,SAAS74B,SAAS3L,OAAS,IAC9EsyB,KAAKkS,SAAS74B,SAAW+/B,QAAWuB,aAAa3a,KAAKkS,SAAS74B,SAAU2mB,KAAKqR,YAAY53B,OAE9FumB,KAAKuY,aAAekC,EACpB,IAAIjJ,EAASxR,KAAKkS,SAAWlS,KAAKkS,SAASV,OAAS,EAChDxR,KAAKwY,eAAeh/B,MAAK,SAAChE,GAAD,OAAOA,EAAEC,IAAM+7B,OACxCxR,KAAKsZ,cAAe,OAzDX,qBA+DzB,WACItZ,KAAKwY,eAAiBxY,KAAKqR,YAAYuJ,YAAY16B,OACnD8f,KAAKoY,SAAWpY,KAAKqR,YAAYwJ,WAAWve,SAASgQ,cACrDtM,KAAK8a,iBACL9a,KAAK+a,uBAnEgB,gCAuEzB,WAAkB,WACd9lC,QAAI+lC,WAAWC,yBAAyB3pC,MAAK,SAAC4G,GAC1C,GAAIA,EAEA,OADA,EAAKugC,gBAAkB9qC,OAAOuK,GACvB,EAAKugC,gBAEZzkC,QAAQ4M,IAAI,UAAY1I,UA7EX,GAASsmB,QA4ClCqE,gBADC0G,eAAM,wBACP,oCA5CiBsQ,GAAQ,gBAR5B7Y,eAAU,CACPmD,WAAY,CAAE8U,iBACdhY,SAAU,kBACHC,eAAW,CACVmQ,YAAa6J,cAIJrB,cCjB2W,MCO5X,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,qBCMA,IACb1V,WAAYA,CAAdkM,cAAA8K,kCAAAtB,YAAAuB,sBAAAC,2BACElU,MAAOA,CAATmU,SAAA9qC,aAAAwyB,cC1BsX,MCOlX,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MCdE,IDkBW,G,QClBF,WAAa,IAAIjD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACA,EAAG,eAAeA,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,eAAe,CAACR,EAAIyC,GAAG,YAAY,IAAI,KAC5L,GAAkB,GCgBP,IACb2B,WAAYA,CAAdkM,cAAAgL,2BAEElU,MAAOA,CAATmU,SAAA9qC,aAAAwyB,cCpB0X,MCOtX,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,G,6CClBf,W,oDCEe,GACbuY,MADa,SACPC,EAAkBC,GACtB,OAAOC,OAAOC,KAAK,CACjBC,IAAK,gCACL1uC,KAAM,CAAEsuC,WAAUC,eAItBI,QARa,SAQLL,GACN,OAAOE,OAAOC,KAAK,CACjBC,IAAK,kCACL1uC,KAAM,CAAEsuC,eAIZM,UAfa,SAeHA,GACR,OAAOJ,OAAOC,KAAK,CACfC,IAAK,oCACL1uC,KAAM,CAAEsuC,SAAUM,MAIxBC,OAtBa,WAwBX,OAAOL,OAAO1oC,IAAI,CAAE4oC,IAAK,qCCxBd,GACbI,eADa,WAEX,OAAO/mC,OAAIjC,IAAsB,CAAE4oC,IAAK,qCAG1CK,YALa,SAKD94B,GACV,OAAOlO,OAAIjC,IAAI,CACb4oC,IAAK,sBAAF,OAAwBz4B,MAI/B+4B,mBAXa,SAWMC,GACf,OAAOlnC,OAAI0mC,KAAK,CACZC,IAAK,6BACL1uC,KAAMivC,MCdD,G,oBAAA,CACbC,MADa,WAEX,MAA6BloC,OAAOyQ,SAA5BqtB,EAAR,EAAQA,SAAU9yB,EAAlB,EAAkBA,OACZ08B,EAAM5J,EAAW9yB,EACvB,OAAOm9B,OAAOrpC,IAAa,CACzB4oC,IAAK,4BACLU,OAAQ,CACNC,GAAIX,QCLNY,EAAa,CACfC,OACAC,UACAC,MAEWH,U,oCCTf,W,oCCAO,IAAKz6B,E,kCAAZ,SAAYA,GAIRA,iBAKAA,iBAKAA,mBAdJ,CAAYA,MAAoB,M,84BCkBnB66B,G,0KAAW,SAACxpC,GAAD,OAAwD,IAA5BA,EAAMqd,WAAW/iB,OAAjB,WAAoC0F,GAAUA,IAKrFypC,EAAS,SAAUzpC,GAC5B,OAAI,eAAOA,IAAP,eAAuB,MAEI,GAAvBA,EAAMwI,QAAQ,OACS,GAAvBxI,EAAMwI,QAAQ,OACS,GAAvBxI,EAAMwI,QAAQ,OACS,GAAvBxI,EAAMwI,QAAQ,OACS,GAAvBxI,EAAMwI,QAAQ,KAEP,IAAI4H,KAAKpQ,EAAM+X,QAAQ,IAAK,MAGpC,IAAI3H,KAAKpQ,IAQP0pC,EAAiB,SAAUC,GAAuC,IAAvBr7B,EAAuB,uDAAV,IAAI8B,KAC/Dw5B,EAAQH,EAAOn7B,EAAKu7B,WAE1B,OAAOF,EAAO5xB,QAAQ,6BAA6B,SAAC9X,GAChD,OAAQA,GACJ,IAAK,OACD,OAAO2pC,EAAM5xB,cACjB,IAAK,KACD,OAAOwxB,EAASI,EAAM3xB,WAAa,GACvC,IAAK,KACD,OAAOuxB,EAASI,EAAM52B,WAC1B,IAAK,KACD,OAAOw2B,EAASI,EAAM3xB,WAAa,GACvC,IAAK,KACD,OAAOuxB,EAASI,EAAM52B,WAC1B,IAAK,IACD,OAAOw2B,EAASI,EAAM1xB,YAC1B,IAAK,IACD,OAAOsxB,EAASI,EAAMzxB,cAC1B,IAAK,IACD,OAAOqxB,EAASI,EAAMltB,cAC1B,QACI,MAAO,QAOVotB,EAAgB,WAGzB,IAH4F,IAAzDC,EAAyD,uDAAnC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACpF/iC,EAAO,GAEF5M,EAAI,EAAGA,EAAI2vC,EAAUzvC,OAAQF,IAAK,CACvC,IAAM4vC,EAAOD,EAAU3vC,GACvB4M,EAAKpM,KAAK,CAAE8M,KAAMsiC,EAAMhqC,MAAO5F,IAGnC,OAAO4M,GAOEijC,EAAe,WAAiC,IAAvB37B,EAAuB,uDAAV,IAAI8B,KAC/C85B,EAAQT,EAAOn7B,GACnB,OAAOm7B,EAAYS,EAAMlyB,cAAgB,IAAMwxB,EAASU,EAAMjyB,WAAa,GAAK,IAAMuxB,EAASU,EAAMl3B,WAAa,cAQzGm3B,EAAoB,WAAuD,IAA7C77B,EAA6C,uDAAhC,IAAI8B,KAEpDg6B,EAAQC,EAAkB/7B,GAG9B,OADA87B,EAAMr3B,QAAQq3B,EAAMp3B,UAAY,GACzBo3B,GASEC,EAAoB,WAAuD,IAA7C/7B,EAA6C,uDAAhC,IAAI8B,KAAQk6B,EAAoB,uDAAD,EAC/EF,EAAQX,EAAOn7B,GACnB,MAAO87B,EAAMruB,UAAYuuB,EACrBF,EAAMr3B,QAAQq3B,EAAMp3B,UAAY,GAEpC,OAAOo3B,GAQEG,EAAkB,WAAuD,IAA7Cj8B,EAA6C,uDAAhC,IAAI8B,KAAQk6B,EAAoB,uDAAD,EAC7EF,EAAQX,EAAOn7B,GACnB,MAAO87B,EAAMruB,UAAYuuB,EACrBF,EAAMr3B,QAAQq3B,EAAMp3B,UAAY,GAIpC,OADAo3B,EAAMr3B,QAAQq3B,EAAMp3B,UAAY,GACzBo3B,GASEI,EAAkB,WAAuD,IAA7Cl8B,EAA6C,uDAAhC,IAAI8B,KAClDg6B,EAAQG,EAAgBj8B,GAG5B,OADA87B,EAAMr3B,QAAQq3B,EAAMp3B,UAAY,GACzBo3B,GASEK,EAAqB,WAAoF,IAA1En8B,EAA0E,uDAA7D,IAAI8B,KACrDg6B,EAAQX,EAAOn7B,GAGnB,OAFA87B,EAAM1xB,SAAS0xB,EAAMnyB,WAAa,GAClCmyB,EAAMr3B,QAAQ,GACPq3B,GAOEM,EAAqB,WAAoF,IAA1Ep8B,EAA0E,uDAA7D,IAAI8B,KACrDg6B,EAAQX,EAAOn7B,GAEnB,OADA87B,EAAMr3B,QAAQ,GACPq3B,GAOEO,EAAmB,WAAoF,IAA1Er8B,EAA0E,uDAA7D,IAAI8B,KACnDg6B,EAAQX,EAAOn7B,GAInB,OAHA87B,EAAMr3B,QAAQ,GACdq3B,EAAM1xB,SAAS0xB,EAAMnyB,WAAa,GAClCmyB,EAAMr3B,QAAQ,GACPq3B,GAQEQ,EAAmB,WAAoF,IAA1Et8B,EAA0E,uDAA7D,IAAI8B,KACnDg6B,EAAQX,EAAOn7B,GAGnB,OAFA87B,EAAM1xB,SAAS0xB,EAAMnyB,WAAa,GAClCmyB,EAAMr3B,QAAQ,GACPq3B,GAyBES,EAAkB,SAAlBA,IAA6H,IAAjGv8B,EAAiG,uDAApF,IAAI8B,KAAQ06B,IAAwE,yDAA1CR,EAA0C,uDAAvB,EAE3GS,EAAmB,GAGnB13B,EAAYq3B,EAAmBp8B,EAAMw8B,EAAcR,GAEnDU,EAAgB33B,EAAU0I,SAE1BzI,EAAUq3B,EAAiBr8B,EAAMw8B,EAAcR,GAE/CW,EAAa33B,EAAQN,UACrBk4B,EAAiB,EAAI53B,EAAQyI,SAAW,EAG5C,GAAI+uB,EACA,IAAK,IAAI1wC,EAAI,EAAGA,EAAI4wC,EAAe5wC,IAAK,CACpC,IAAI+wC,EAAU1B,EAAOp2B,GACrB83B,EAAQp4B,QAAQo4B,EAAQn4B,UAAYg4B,EAAgB5wC,GACpD2wC,EAAUnwC,KAAKuwC,GAOvB,IAAK,IAAI/wC,EAAI,EAAGA,EAAI6wC,EAAY7wC,IAAK,CACjC,IAAImU,EAAUk7B,EAAOp2B,GACrB9E,EAAQwE,QAAQxE,EAAQyE,UAAY5Y,GACpC2wC,EAAUnwC,KAAK2T,GAOnB,GAAIu8B,EACA,IAAK,IAAI1wC,EAAI,EAAGA,EAAI8wC,EAAe9wC,IAAK,CACpC,IAAIgxC,EAAU3B,EAAOn2B,GACrB83B,EAAQr4B,QAAQq4B,EAAQp4B,UAAY5Y,EAAI,GACxC2wC,EAAUnwC,KAAKwwC,GAMvB,GAAGd,EAAS,EAAE,CACmBh3B,EAAQyI,SAArC,IAII3N,EAAWq7B,EAAOsB,EAAU,IAChC38B,EAAS2E,QAAQ3E,EAAS4E,UAAY,GACtC,IAAIq4B,EAAiBR,EAAgBz8B,GAAU,EAAM,GACjDk9B,EAAWD,EAAerqC,MAAMqqC,EAAe/wC,OAAS,GAExDgxC,EAASxkC,QAAO,SAAC1E,GAAD,OAAOA,EAAE4Q,WAAc+3B,EAAUA,EAAUzwC,OAAS,GAAY0Y,eAG5Es4B,EAFAj4B,EAAUgK,YAAc0tB,EAAU,GAAG1tB,WAE1BguB,EAAerqC,MAAMqqC,EAAe/wC,OAAS,GAG7C+wC,EAAerqC,MAAOqqC,EAAe/wC,OAAS,GAAK+wC,EAAe/wC,OAAS,IAI9FywC,EAAY,GAAH,sBACFO,GADE,eAEFP,KAEQ,EAEfA,EAAUvvC,OAAO,EAAE8uC,GACnB,IAAIiB,GAAqBR,EAAUjkC,QAAO,SAAC1E,EAAG6G,GAC1C,OAAOA,EAAQ,GAAoB,GAAf7G,EAAE4Q,aACvB1Y,OAECixC,IACAR,EAAYA,EAAU/pC,MAAM,IAIhC,MAAOyS,OAAOs3B,EAAUA,EAAUzwC,OAAS,IAAMmZ,OAAOH,IAAYy3B,EAAUzwC,OAAS,GAAK,EAAG,CAC3F,IAAIkxC,EAAU/B,EAAOsB,EAAUA,EAAUzwC,OAAS,IAClDkxC,EAAQz4B,QAAQy4B,EAAQx4B,UAAY,GACpC+3B,EAAUnwC,KAAK4wC,GAGf/3B,OAAOs3B,EAAUA,EAAUzwC,OAAS,IAAMmZ,OAAOH,IACjDy3B,EAAUvvC,OAAOuvC,EAAUzwC,OAAS,GAG5C,OAAOywC,GAsDEU,EAAiB,WAM1B,IANgF,IAA5Cn9B,EAA4C,uDAA/B,IAAI8B,KAAQk6B,EAAmB,uDAAD,EAC3ES,EAAY,GAEZ13B,EAAYg3B,EAAkB/7B,EAAMg8B,GACpCh3B,EAAUi3B,EAAgBj8B,EAAMg8B,GAE3BlwC,EAAI,EAAG6vC,EAAa52B,IAAc42B,EAAa32B,GAAUlZ,IAC9D2wC,EAAUnwC,KAAKqvC,EAAa52B,IAC5BA,EAAUN,QAAQM,EAAUL,UAAY,GAG5C,OAAO+3B,GASEW,EAAe,SAAUp9B,EAAYiB,EAAaE,GAC3DnB,EAAKq9B,SAAS,GACdr9B,EAAK4P,WAAW,GAChB5P,EAAKqO,WAAW,GAEhB,IAAI1F,EAAQwyB,EAAOl6B,GACf4H,EAAQsyB,EAAOh6B,GAUnB,OARAwH,EAAM00B,SAAS,GACf10B,EAAMiH,WAAW,GACjBjH,EAAM0F,WAAW,GAEjBxF,EAAMw0B,SAAS,IACfx0B,EAAM+G,WAAW,IACjB/G,EAAMwF,WAAW,IAEVlJ,OAAOnF,IAASmF,OAAOwD,IAAUxD,OAAOnF,IAASmF,OAAO0D,IA0CtDy0B,EAAgB,WAEzB,IAFoE,IAAjCC,EAAiC,uDAAX,CAAC,KAAK,MAC3D7kC,EAAmB,GACd5M,EAAI,EAAGA,EAAI,GAAIA,GAAK,GAAK,CAC9B,IAAM0xC,EAAetC,EAAS7wB,KAAKsD,MAAM7hB,IAAIijB,WACvC0uB,EAAgB3xC,EAAIue,KAAKsD,MAAM7hB,IAAM,GAAM,KAAO,KACpD4xC,EAAO,GAEPA,EADA5xC,EAAI,GACGyxC,EAAW,GAEXA,EAAW,GAEtB,IAAM1wC,EAAS6wC,EAAO,IAAMF,EAAO,IAAMC,EACzC/kC,EAAKpM,KAAK,CAAE8M,KAAMvM,EAAQ6E,MAAO8rC,EAAO,IAAMC,EAAQ,MAAOjtB,IAAK1kB,IAGtE,OAAO4M,GAKEilC,EAAiB,WAG1B,IAH4D,IAAxBJ,EAAwB,uDAAF,GACtD7kC,EAAmB,GAEd5M,EAAI,EAAGA,GAAK,GAAIA,IAAK,CAC1B,IAAIsN,EAAOtN,EAAI,IACXyxC,EAAWvxC,OAASF,IACpBsN,EAAOmkC,EAAWzxC,IAEtB4M,EAAKpM,KAAK,CAAE8M,KAAMA,EAAM1H,MAAO5F,IAEnC,OAAO4M,GASEklC,EAAuB,SAAU38B,EAAaE,GACvD,IAAI08B,EAAS14B,OAAOhE,GAAOgE,OAAOlE,GAI9B68B,EAAYzzB,KAAKsD,MAAOkwB,EAAS,IAAQ,IAC7C,OAAOC,GAUEC,EAAqB,SAAUC,EAAmBC,EAAiBC,EAAmBC,GAC/F,IAAIC,EAAKj5B,OAAO64B,GACZK,EAAKl5B,OAAO84B,GACZK,EAAKn5B,OAAO+4B,GACZK,EAAKp5B,OAAOg5B,GAEZK,EAAmBJ,EAAKE,GAAMD,EAAKC,GAAQF,EAAKG,GAAMF,EAAKE,EAC3DE,EAAmBH,EAAKF,GAAMG,EAAKH,GAAQE,EAAKD,GAAME,EAAKF,EAC3DK,EAASN,GAAME,GAAMD,GAAME,EAE/B,OAAOC,GAAmBC,GAAmBC,GASpCC,EAAW,SACbC,GASqB,IARrBC,EAQqB,uDARL,IAAI/8B,KACpBg9B,EAOqB,uDAAN,OAEf,OAAQA,GACJ,IAAK,OACDD,EAAQE,QAAQF,EAAQtD,UAAYqD,GACpC,MACJ,IAAK,MACDC,EAAQxwB,WAAWwwB,EAAQzwB,aAAewwB,GAC1C,MACJ,IAAK,MACDC,EAAQjvB,WAAWivB,EAAQh1B,aAAe+0B,GAC1C,MACJ,IAAK,OACDC,EAAQxB,SAASwB,EAAQj1B,WAAag1B,GACtC,MACJ,IAAK,OACDC,EAAQp6B,QAAQo6B,EAAQn6B,UAAYk6B,GACpC,MACJ,IAAK,QACDC,EAAQz0B,SAASy0B,EAAQl1B,WAAai1B,GACtC,MACJ,IAAK,OACDC,EAAQG,YAAYH,EAAQn1B,cAAgBk1B,GAC5C,MACJ,QACI,MAER,OAAOC,GAwTLI,EAAqB,SAASC,GACvC,IAAI3I,EAAe,GAcnB,OAbI2I,GAAc,eAAOA,IAAP,eAA4B,OACV,GAA5BA,EAAWhlC,QAAQ,KACnBq8B,EAAM2I,EAAW51B,MAAM,MACY,GAA5B41B,EAAWhlC,QAAQ,OAC1Bq8B,EAAM2I,EAAW51B,MAAM,MAGvBitB,EAAIvqC,OAAS,IACe,GAAxBuqC,EAAI,GAAGr8B,QAAQ,OACfq8B,EAAM,CAACA,EAAI,GAAIA,EAAI,GAAGjtB,MAAM,KAAK,MAIzCitB,EAAIvqC,OACGuqC,EAEA,CAAC2I,K,uEC92BD,GAIXv9B,SAJW,WAKP,OAAOpO,OAAI0mC,KAAK,CACZC,IAAK,8CACNtqC,MAAK,SAAC4G,GACL,OAAOA,O,YCTJ,G,UAAA,CAKXyI,iBALW,SAKMpD,GACb,OAAOtI,OACF0mC,KAAK,CACFC,IAAK,kDACL1uC,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,MACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,eACP,CAAEA,IAAK,uBACP,CAAEA,IAAK,eACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,qBACP,CAAEA,IAAK,eAEXmtC,QAAS,CACL,CACIC,SAAU,KACVD,QAAS,CACL,CACIntC,IAAK,cACLN,MAAO,kBACP2tC,UAAW,aAEf,CACIrtC,IAAK,cACLN,MAAO,2BACP2tC,UAAW,eAIvB,CACIrtC,IAAK,iBACLN,MAAO,QACP2tC,UAAW,cAGnBxjC,SAAUA,EACVyjC,oBAAqB,gBACrBxwC,KAAM,SACNywC,UAAW,UAGlB3vC,MAAK,SAAC4G,GACH,OAAOA,EAAI9C,MAAMG,KAAI,SAAC2D,EAAuBmF,GACzC,IAAI6iC,EAAM,iCACHhoC,GADA,IAEHxB,UAAU,EACV2E,MAAOgC,EACP2F,WAAY,EACZwC,SAAS,EACTS,OAAQ,GACRxC,OAAO,IAEX,OAAOy8B,SAQvBt9B,iBApEW,WAsEP,OAAO3O,OACN0mC,KAAK,CACFC,IAAK,iEACNtqC,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAAC2D,EAAuBmF,GACnC,IAAI6iC,EAAM,iCACHhoC,GADA,IAEHxB,UAAU,EACV2E,MAAOgC,EACP2F,WAAY,EACZwC,SAAS,EACTS,OAAQ,GACRxC,OAAO,EACP+C,UAAU,IAEd,OAAO05B,SAKnBC,oBA1FW,SA0FSjoC,GAChB,OAAOjE,OACN0mC,KAAK,CACFC,IAAK,qEACL1uC,KAAM,CACFk0C,YAAaloC,EAAKkoC,aAAe,KACjCC,cAAenoC,EAAKmoC,eAAiB,KACrCC,wBAAyBpoC,EAAKooC,yBAA2B,SAQrEC,eAzGW,SAyGIC,GAEX,OAAOvsC,OACN0mC,KAAK,CACFC,IAAK,2DACL1uC,KAAM,CACFuI,GAAI+rC,MAKhBC,UApHW,SAoHDhsC,GACN,OAAOR,OACF0mC,KAAU,CACPC,IAAK,0CACL1uC,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,MACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,eACP,CAAEA,IAAK,uBACP,CAAEA,IAAK,eACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,qBACP,CAAEA,IAAK,eAEXguC,OAAQjsC,EACRjF,KAAM,YAGbc,MAAK,SAAC4G,GAEH,OADAA,EAAIgB,KAAKuL,OAAQ,EACVvM,EAAIgB,SAQvByoC,eAjJW,SAiJInkC,GACX,OAAOvI,OAAI0mC,KAAK,CACZC,IAAK,+CACL1uC,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,cAAeN,MAAOoK,EAAO7H,cAExCF,GAAI+H,EAAO/H,GACXjF,KAAM,aASlBoxC,gBAlKW,SAkKKpkC,GACZ,OAAOvI,OAAI0mC,KAAK,CACZC,IAAK,gDACL1uC,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,aAAcN,MAAOoK,EAAOuD,WAAa,SAEpDtL,GAAI+H,EAAO/H,GACXjF,KAAM,aAUlBqxC,UApLW,SAoLDtkC,EAAkBlL,GACxB,OAAO4C,OACF0mC,KAAK,CACFC,IAAK,mCACL1uC,KAAM,CACFuI,GAAI8H,EACJlL,KAAMA,KAGbf,MAAK,SAAC/C,GAAD,OAAiBA,EAAO2K,KAAKzD,OAO3CqsC,aApMW,SAoMErsC,GACT,OAAOR,OAAI8sC,OAAO,CACdnG,IAAK,wCACL1uC,KAAMuI,O,wDCtMZusC,EAAwB,SAAU9oC,GACpC,IAAIsE,EAAM,iCACHtE,GADG,IAENzD,GAAIyD,EAAKzD,GACT6R,eAAgBpO,EAAK+oC,SACrBlhC,UAAW7H,EAAK4H,OAAS,OACzBnL,YAAauD,EAAKvD,YAClBsR,OAAQ/N,EAAKgpC,kBACbh2B,OAAQhT,EAAK1I,KACbuE,SAAUmE,EAAKnE,WAEnB,OAAOyI,GAGL2kC,EAAwB,SAAUjpC,GACpC,IAAIsE,EAAM,iCACHtE,GADG,IAENkpC,GAAIlpC,EAAKzD,GACT4sC,YAAanpC,EAAKvD,YAClB2sC,kBAAmBppC,EAAK+N,OACxBs7B,KAAMrpC,EAAKgT,OACXs2B,MAAOtpC,EAAK6H,WAAa,OACzB0hC,QAASvpC,EAAKpE,QACd4tC,SAAUxpC,EAAKnE,SACfqQ,WAAYlM,EAAKxD,aAErB,OAAO8H,GAGLmlC,EAAiC,SAASvvC,GAC/C,OAAQA,GACP,KAAK,EAAG,MAAO,SACf,KAAK,EAAG,MAAO,kBACf,KAAK,EAAG,MAAO,aACf,KAAK,EAAG,MAAO,YAEhB,MAAO,UAaFwvC,EAAuB,SAAS1pC,GAAS,QACvCvI,EAAK,iCACFuI,GADE,IAEXzD,GAAIyD,EAAKzD,IAAMyD,EAAKkpC,GACdS,SAAU3pC,EAAK4pC,OAAS5pC,EAAK6pC,OAAS7pC,EAAK8pC,MACjDr9B,gBAAiBg9B,EAA+BzpC,EAAKyM,iBAAmBzM,EAAK+pC,iBAC7EvgC,QAASxJ,EAAKwJ,SAAWxJ,EAAKic,QAC9BxQ,SAAUzL,EAAKyL,UAAYzL,EAAKkc,SAChC7X,SAAUrE,EAAKgqC,gBAAkBhqC,EAAKmP,eACtCf,eAAgBpO,EAAKgqC,gBAAkBhqC,EAAKmP,eAC5C1F,QAASzJ,EAAK0a,WAAa1a,EAAKuN,WAAa,IAAI0E,QAAQ,IAAK,KAC9DtI,MAAO3J,EAAKgN,SAAWhN,EAAKwN,SAAW,IAAIyE,QAAQ,IAAK,KACxD+H,UAAW,CACV7gB,KAAM6G,EAAKiqC,eAAiBjqC,EAAKmc,cACjClS,QAASjK,EAAKkqC,kBAAoBlqC,EAAKoc,kBAExCrS,WAAY/J,EAAK+J,YAAc/J,EAAKmqC,WACpCtgC,cAAiB7J,EAAK6J,eAAiB7J,EAAKoqC,cAAiB,OAAS,QAChE7uB,YAAcvb,EAAKub,aAAevb,EAAKqqC,YACvCC,wBAAyBtqC,EAAKuqC,iBAAmBvqC,EAAKwqC,gBAC5D9+B,MAAM,UAAA1L,EAAKyqC,yBAAL,eAAwB/+B,QAAxB,UAAgC1L,EAAK0qC,yBAArC,aAAgC,EAAwBh/B,MAC9Di/B,sBAAuB3qC,EAAK8J,mBAAqB9J,EAAK8J,kBAAkBtV,OAASwL,EAAK8J,kBAAkBzN,KAAI,SAACC,GAAY,MAAO,CAACnD,KAAMmD,EAAEm1B,KAAMxnB,QAAS3N,EAAEsuC,YAAc,GAClKC,sBAAuB7qC,EAAKgK,mBAAqBhK,EAAKgK,kBAAkBxV,OAASwL,EAAK8J,kBAAkBzN,KAAI,SAACC,GAAY,MAAO,CAACnD,KAAMmD,EAAEm1B,KAAMxnB,QAAS3N,EAAEsuC,YAAc,GACxK/+B,YAAa7L,EAAK6L,aAAe7L,EAAK8qC,YACtC/yC,KAAMiI,EAAK+qC,oBAAsB/qC,EAAKgrC,mBACtCvwB,WAAYza,EAAKirC,YAAcjrC,EAAKkrC,WACpCC,YAAanrC,EAAKorC,UAAYprC,EAAKqrC,SACnCC,YAAatrC,EAAKurC,YAAcvrC,EAAKwrC,aAEzC,OAAO/zC,GA8BI,GAKXqrC,eALW,WAMP,OAAO/mC,OAAIjC,IAAkB,CAAE4oC,IAAK,+BAGxCz6B,kBATW,SASOjI,GAEd,OADAA,EAAOipC,EAAsBjpC,GACtBjE,OAAI0mC,KAAiB,CACxBC,IAAK,sEACL1uC,KAAM,CACFkY,WAAYlM,EAAKkM,cAEtB9T,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,EAAMmR,GAClB,IAAI9P,EAAS,iCACNyzC,EAAsB90C,IADnB,IAENwK,UAAU,EACV2E,MAAOgC,EACPmI,SAAS,EACT/B,OAAO,IAEX,OAAOlW,SAKnB2S,qBA9BW,SA8BUhI,GAEjB,OADAA,EAAOipC,EAAsBjpC,GACtBjE,OAAI0mC,KAAiB,CACxBC,IAAK,4EACL1uC,KAAM,CACFkY,WAAYlM,EAAKkM,WACjBq9B,QAASvpC,EAAKupC,WAEnBnxC,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,EAAMmR,GAClB,IAAI9P,EAAS,iCACNyzC,EAAsB90C,IADnB,IAENwK,UAAU,EACV2E,MAAOgC,EACPmI,SAAS,EACT/B,OAAO,IAEX,OAAOlW,SAKnBo2C,eApDW,SAoDIzrC,GAEX,OADAA,EAAOipC,EAAsBjpC,GACtBjE,OAAI0mC,KAAU,CACjBC,IAAK,yDACL1uC,KAAM,CACFk1C,GAAIlpC,EAAKkpC,GACTh9B,WAAYlM,EAAKkM,WACjBo9B,MAAOtpC,EAAKspC,UAKxBv6B,qBAhEW,SAgEU/O,GACjB,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,iEACL1uC,KAAM,CACF6Z,SAAU7N,EAAK6N,SACfN,UAAWvE,OAAwB,sBAAuBhJ,EAAKuN,WAC/DC,QAASxE,OAAwB,sBAAuBhJ,EAAKwN,YAElEpV,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACZ,IAAI03C,EAAUhC,EAAqB11C,GAC/BqB,EAAS,kBACNq2C,GAEP,OAAOr2C,SAKnBuY,0BAnFW,SAmFe5N,GACtB,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,2EACL1uC,KAAM,CACF6Z,SAAU7N,EAAK6N,SACfN,UAAWvE,OAAwB,sBAAuBhJ,EAAKuN,WAC/DC,QAASxE,OAAwB,sBAAuBhJ,EAAKwN,YAElEpV,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACZ,IAAI03C,EAAUhC,EAAqB11C,GAC/BqB,EAAS,kBACNq2C,GAEP,OAAOr2C,SAKnBs2C,yBAtGW,SAsGc3rC,GACrB,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,2CACL1uC,KAAM,CACF6Z,SAAU7N,EAAK6N,SACfN,UAAWvE,OAAwB,sBAAuBhJ,EAAKuN,WAC/DC,QAASxE,OAAwB,sBAAuBhJ,EAAKwN,YAElEpV,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACZ,IAAI03C,EAAUhC,EAAqB11C,GAC/BqB,EAAS,kBACNq2C,GAEP,OAAOr2C,SAKnB+Z,wBAzHW,SAyHapP,GACpB,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,uEACL1uC,KAAM,CACFoZ,iBAAkBpN,EAAKoN,kBAAoB,KAC3CS,SAAU7N,EAAKmP,gBAAkB,KACjC5B,UAAWvN,EAAKuN,WAAa,KAC7BC,QAASxN,EAAKwN,SAAW,KACzB0B,QAASlP,EAAKkP,SAAW,KACzB+M,QAASjc,EAAKic,SAAW,KACzBC,SAAUlc,EAAKkc,UAAY,KAC3BE,iBAAkBpc,EAAKoc,kBAAoB,KAC3ClQ,WAAYlM,EAAKkM,WACjBmQ,kBAAmB,KACnBC,kBAAmB,KACnBsvB,gBAAgB,EAChBrvB,cAAevc,EAAKuc,eAAiB,EACrCC,eAAgBxc,EAAKwc,gBAAkB,QAE5CpkB,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACZ,IAAI03C,EAAUhC,EAAqB11C,GAC/BqB,EAAS,iCACNq2C,GADG,IAENngC,OAAO,IAEX,OAAOlW,SASnBw2C,qBA5JW,SA4JUtvC,GACjB,OAAOR,OAAI0mC,KAAa,CACpBC,IAAK,mEACL1uC,KAAM,CACFuI,GAAIA,OC5QL,GAEXuvC,oBAFW,SAES9rC,GAChB,OAAOjE,OAAI0mC,KAAU,CACjBC,IAAK,kEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACT6C,sBAAuB/rC,EAAK+rC,wBAAyB,EACrDC,qBAAsBhsC,EAAKgsC,uBAAwB,KAG5C5zC,MAAK,SAAC4G,GACN,OAAOA,MAIditC,uBAhBW,WAiBP,OAAOlwC,OAAI0mC,KAAiB,CACxBC,IAAK,uEACNtqC,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACZ,IAAIqB,EAAS,kBACNrB,GAEP,OAAOqB,SAKnB62C,wBA7BW,SA6BalsC,GACpB,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,uEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,IAAM,KACfC,YAAanpC,EAAKmpC,aAAe,KACjCE,KAAMrpC,EAAKqpC,MAAQ,KACnB8C,UAAWnsC,EAAKmsC,WAAa,KAC7BC,OAAQpsC,EAAKosC,QAAU,KACvBC,OAAQrsC,EAAKqsC,QAAU,KACvBC,OAAQtsC,EAAKssC,QAAU,KACvBC,OAAQvsC,EAAKusC,QAAU,KACvBC,OAAQxsC,EAAKwsC,QAAU,KACvBC,OAAQzsC,EAAKysC,QAAU,KACvBC,OAAQ1sC,EAAK0sC,QAAU,KACvBC,OAAQ3sC,EAAK2sC,QAAU,KACvBC,OAAQ5sC,EAAK4sC,QAAU,KACvBC,QAAS7sC,EAAK6sC,SAAW,KACzBtwB,cAAevc,EAAKuc,eAAiB,KACrCC,eAAgBxc,EAAKwc,gBAAkB,KACvCswB,kBAAmB9sC,EAAK8sC,mBAAqB,KAC7CC,aAAc/sC,EAAK+sC,cAAgB,KACnCnB,eAAgB5rC,EAAK4rC,gBAAkB,KACvCG,sBAAuB/rC,EAAK+rC,wBAAyB,EACrDC,qBAAsBhsC,EAAKgsC,uBAAwB,KAG5C5zC,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACZ,IAAIqB,EAAS,kBACNrB,GAEP,OAAOqB,SAKnB23C,uBAlEW,SAkEYhtC,GACnB,OAAOjE,OAAI0mC,KAAU,CACjBC,IAAK,wEACL1uC,KAAM,CACdm1C,YAAanpC,EAAKmpC,YAClBE,KAAMrpC,EAAKqpC,KACX8C,UAAWnsC,EAAKmsC,UAChBC,OAAQpsC,EAAKosC,OACbC,OAAQrsC,EAAKqsC,OACbC,OAAQtsC,EAAKssC,OACbC,OAAQvsC,EAAKusC,OACbC,OAAQxsC,EAAKwsC,OACbC,OAAQzsC,EAAKysC,OACbC,OAAQ1sC,EAAK0sC,OACbC,OAAQ3sC,EAAK2sC,OACbC,OAAQ5sC,EAAK4sC,OACbC,QAAS7sC,EAAK6sC,QACdI,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClBhE,kBAAmBppC,EAAKopC,mBAAqB,GAC7CiE,aAAcrtC,EAAKqtC,aACnBtB,sBAAuB/rC,EAAK+rC,wBAAyB,EACrDC,qBAAsBhsC,EAAKgsC,uBAAwB,MAMnDsB,uBAhGW,SAgGYttC,GACnB,OAAOjE,OAAI0mC,KAAU,CACjBC,IAAK,wEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACTC,YAAanpC,EAAKmpC,YAClBE,KAAMrpC,EAAKqpC,KACX8C,UAAWnsC,EAAKmsC,UAChBC,OAAQpsC,EAAKosC,OACbC,OAAQrsC,EAAKqsC,OACbC,OAAQtsC,EAAKssC,OACbC,OAAQvsC,EAAKusC,OACbC,OAAQxsC,EAAKwsC,OACbC,OAAQzsC,EAAKysC,OACbC,OAAQ1sC,EAAK0sC,OACbC,OAAQ3sC,EAAK2sC,OACbC,OAAQ5sC,EAAK4sC,OACbC,QAAS7sC,EAAK6sC,QACdI,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClBhE,kBAAmBppC,EAAKopC,mBAAqB,GAC7CiE,aAAcrtC,EAAKqtC,aACnBtB,sBAAuB/rC,EAAK+rC,wBAAyB,EACrDC,qBAAsBhsC,EAAKgsC,uBAAwB,MAMnDuB,uBA/HW,SA+HYvtC,GACnB,OAAOjE,OAAI0mC,KAAU,CACjBC,IAAK,wEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACT6C,sBAAuB/rC,EAAK+rC,wBAAyB,EACrDC,qBAAsBhsC,EAAKgsC,uBAAwB,OCrIjDlD,EAAwB,SAAS9oC,GACnC,IAAIsE,EAAM,iCACHtE,GADG,IAENzD,GAAIyD,EAAKzD,GACTsL,UAAW7H,EAAK4H,OAAS,OACzBnL,YAAauD,EAAKvD,YAClBsR,OAAQ/N,EAAKgpC,kBACbh2B,OAAQhT,EAAK1I,OAEjB,OAAOgN,GAGL2kC,EAAwB,SAASjpC,GACnC,IAAIsE,EAAc,CACd4kC,GAAIlpC,EAAKzD,GACT4sC,YAAanpC,EAAKvD,YAClB2sC,kBAAmBppC,EAAK+N,OACxBs7B,KAAMrpC,EAAKgT,OACXs2B,MAAOtpC,EAAK6H,WAAa,OACzB2hC,SAAUxpC,EAAKnE,SACf0tC,QAASvpC,EAAKpE,QACdsQ,WAAYlM,EAAKxD,YAErB,OAAO8H,GAGI,GAEXkpC,kBAFW,SAEOxtC,GACd,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,8DACL1uC,KAAM,CACFk1C,GAAIlpC,EAAKkpC,GACTE,kBACA,GAMZ2C,sBAAuB/rC,EAAK+rC,wBAAyB,EACrD0B,oBAAqBztC,EAAKytC,sBAAuB,EACjDC,mBAAoB1tC,EAAK0tC,qBAAsB,KAGxCt1C,MAAK,SAAC4G,GAEN,OADEA,EAAYuM,OAAQ,EACfvM,MAId2uC,qBAzBW,WA0BP,OAAO5xC,OAAI0mC,KAAiB,CACxBC,IAAK,mEACNtqC,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,EAAMmR,GAClB,IAAI9P,EAAS,iCACNyzC,EAAsB90C,IADnB,IAENwK,UAAU,EACV2E,MAAOgC,EACPmI,SAAS,EACT/B,OAAO,IAEX,OAAOlW,SAKnBu4C,sBA1CW,SA0CW5tC,GAClB,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,mEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,IAAM,KACf2E,SAAU7tC,EAAK6tC,UAAY,KAC3BC,YAAa9tC,EAAK8tC,aAAe,KACjCC,YAAa/tC,EAAK+tC,aAAe,KACjC1E,KAAMrpC,EAAKqpC,MAAQ,KACnBE,QAASvpC,EAAKupC,SAAW,KACzBC,SAAUxpC,EAAKwpC,UAAY,KAC3Bt9B,WAAYlM,EAAKkM,YAAc,KAC/Bo9B,MAAOtpC,EAAKspC,OAAS,KACrBH,YAAanpC,EAAKmpC,aAAe,KACjCgD,UAAWnsC,EAAKmsC,WAAa,KAC7B5vB,cAAevc,EAAKuc,eAAiB,KACrCC,eAAgBxc,EAAKwc,gBAAkB,KACvCswB,kBAAmB9sC,EAAK8sC,mBAAqB,KAC7CC,aAAc/sC,EAAK+sC,cAAgB,KACnCnB,eAAgB5rC,EAAK4rC,gBAAkB,KACvCG,sBAAuB/rC,EAAK+rC,wBAAyB,EACrD2B,mBAAoB1tC,EAAK0tC,qBAAsB,KAGxCt1C,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,EAAMmR,GAClB,IAAI9P,EAAS,iCACNyzC,EAAsB90C,IADnB,IAENwK,UAAU,EACV2E,MAAOgC,EACP2F,WAAY,EACZwC,SAAS,EACT/B,OAAO,IAEX,OAAOlW,SAKnB24C,qBAjFW,SAiFUhuC,GAGjB,OAFAA,EAAOipC,EAAsBjpC,GAC7BA,EAAKspC,MAAQ,OACNvtC,OAAI0mC,KAAU,CACjBC,IAAK,oEACL1uC,KAAM,CACd65C,SAAU7tC,EAAK6tC,SACfxE,KAAMrpC,EAAKqpC,KACXE,QAASvpC,EAAKupC,QACdC,SAAUxpC,EAAKwpC,SACft9B,WAAYlM,EAAKkM,WACjBo9B,MAAOtpC,EAAKspC,MACZH,YAAanpC,EAAKmpC,YAClBgD,UAAWnsC,EAAKmsC,UAChBc,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClBhE,kBAAmBppC,EAAKopC,mBAAqB,GAC7C6E,YAAajuC,EAAKiuC,YAClBC,WAAYluC,EAAKkuC,WACjBnC,sBAAuB/rC,EAAK+rC,wBAAyB,EACrD0B,oBAAqBztC,EAAKytC,sBAAuB,EACjDC,mBAAoB1tC,EAAK0tC,qBAAsB,MAM/CS,qBA9GW,SA8GUnuC,GAEjB,OADAA,EAAOipC,EAAsBjpC,GACtBjE,OAAI0mC,KAAU,CACjBC,IAAK,oEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACT2E,SAAU7tC,EAAK6tC,SACfxE,KAAMrpC,EAAKqpC,KACXE,QAASvpC,EAAKupC,QACdC,SAAUxpC,EAAKwpC,SACft9B,WAAYlM,EAAKkM,WACjBo9B,MAAOtpC,EAAKspC,MACZH,YAAanpC,EAAKmpC,YAClBgD,UAAWnsC,EAAKmsC,UAChBc,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClBhE,kBAAmBppC,EAAKopC,mBAAqB,GAC7C6E,YAAajuC,EAAKiuC,YAClBC,WAAYluC,EAAKkuC,WACjBnC,sBAAuB/rC,EAAK+rC,wBAAyB,EACrD0B,oBAAqBztC,EAAKytC,sBAAuB,EACjDC,mBAAoB1tC,EAAK0tC,qBAAsB,MAM/CU,qBA3IW,SA2IUpuC,GAEjB,OADAA,EAAOipC,EAAsBjpC,GACtBjE,OAAI0mC,KAAU,CACjBC,IAAK,oEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACT6C,sBAAuB/rC,EAAK+rC,wBAAyB,EACrD0B,oBAAqBztC,EAAKytC,sBAAuB,EACjDC,mBAAoB1tC,EAAK0tC,qBAAsB,OC7K7CjE,G,wCAAiC,SAASvvC,GAC/C,OAAQA,GACP,KAAK,EAAG,MAAO,SACf,KAAK,EAAG,MAAO,kBACf,KAAK,EAAG,MAAO,aACf,KAAK,EAAG,MAAO,YAEhB,MAAO,WAGFm0C,EAAiC,SAASn0C,GAC/C,OAAQA,GACP,IAAK,SAAU,OAAO,EACtB,IAAK,kBAAmB,OAAO,EAC/B,IAAK,aAAe,OAAO,EAC3B,IAAK,YAAa,OAAO,EAE1B,OAAO,GAGFo0C,EAA4B,SAASp0C,GAAsC,wBAC5Eq0C,EAAqB,CACzBC,cAAet0C,EAAM6gB,iBACrBxN,UAAWrT,EAAMwgB,UACjBlN,QAA6B,KAApBtT,EAAMihB,WAAoBjhB,EAAM8S,QAAU,KACnDyhC,SAAUr6B,MAAMzG,OAAOzT,EAAMkhB,WAAa,EAAIzN,OAAOzT,EAAMkhB,UAC3DszB,oBAAyC,KAApBx0C,EAAMihB,WAAqB/G,MAAMzG,OAAOzT,EAAMmhB,sBAAwB,EAAI1N,OAAOzT,EAAMmhB,qBAAwB,KACpIszB,eAAgBv6B,MAAMzG,OAAOzT,EAAM+gB,sBAAwB,EAAItN,OAAOzT,EAAM+gB,qBAC5E2zB,WAAYx6B,MAAMzG,OAAOzT,EAAM20C,aAAe,EAAIlhC,OAAOzT,EAAM20C,YAC/D/lC,MAAOsL,MAAMzG,OAAOzT,EAAM8gB,aAAe,EAAIrN,OAAOzT,EAAM8gB,YAC1D8zB,iBAA0D,IAAzC,UAAA50C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnDqsC,iBAA0D,IAAzC,UAAA70C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnDssC,iBAA0D,IAAzC,UAAA90C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnDusC,iBAA0D,IAAzC,UAAA/0C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnDwsC,iBAA0D,IAAzC,UAAAh1C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnDysC,iBAA0D,IAAzC,UAAAj1C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnD0sC,iBAA0D,IAAzC,UAAAl1C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnD2sC,iBAA0D,IAAzC,UAAAn1C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnD4sC,iBAA0D,IAAzC,UAAAp1C,EAAMghB,0BAAN,eAA0BxY,QAAQ,IACnD6sC,iBAA0D,IAAzC,UAAAr1C,EAAMghB,0BAAN,eAA0BxY,QAAQ,KAEnD,OAAO6rC,GAGFiB,EAA4B,SAASt1C,GAC1C,IAAIyR,EAA6C,CAChDoP,iBAAkB7gB,EAAMu1C,cACxB/0B,UAAWxgB,EAAMwgB,UACjB1N,QAAS9S,EAAM8S,QACfoO,SAAUlhB,EAAMkhB,SAChBC,oBAAqBnhB,EAAMmhB,oBAC3BJ,oBAAqB/gB,EAAMw1C,eAC3Bb,WAAY30C,EAAM20C,WAClB7zB,WAAY9gB,EAAMy1C,MAClBC,OAAQ11C,EAAM8S,SAAW9S,EAAMmhB,oBAC/BH,mBAAoB,CACnB,CAAC7S,KAAMnO,EAAM21C,gBAAiB1qC,IAAM,GACpC,CAACkD,KAAMnO,EAAM41C,gBAAiB3qC,IAAM,GACpC,CAACkD,KAAMnO,EAAM61C,gBAAiB5qC,IAAM,GACpC,CAACkD,KAAMnO,EAAM81C,gBAAiB7qC,IAAM,GACpC,CAACkD,KAAMnO,EAAM+1C,gBAAiB9qC,IAAM,GACpC,CAACkD,KAAMnO,EAAMg2C,gBAAiB/qC,IAAM,GACpC,CAACkD,KAAMnO,EAAMi2C,gBAAiBhrC,IAAM,GACpC,CAACkD,KAAMnO,EAAMk2C,gBAAiBjrC,IAAM,GACpC,CAACkD,KAAMnO,EAAMm2C,gBAAiBlrC,IAAM,GACpC,CAACkD,KAAMnO,EAAMo2C,gBAAiBnrC,IAAM,IACnCnE,QAAO,SAAC1E,GAAD,OAAOA,EAAE+L,QAAMhM,KAAI,SAACC,GAAD,OAAOA,EAAE6I,QAEtC,OAAOwG,GAGF+9B,EAAuB,SAAS1pC,GAAS,kBAC1C2qC,EAAwB,UAAA3qC,EAAK2qC,6BAAL,SAA4Bn2C,OAASwL,EAAK2qC,sBAAwB3qC,EAAKuwC,uBAC/F1F,EAAwB,UAAA7qC,EAAK6qC,6BAAL,SAA4Br2C,OAASwL,EAAK6qC,sBAAwB7qC,EAAKwwC,uBAC5F/4C,EAAK,iCACFuI,GADE,IAEXzD,IAAKyD,EAAKzD,IAAMyD,EAAKkpC,IAAI3xB,WACzB9K,gBAAiBg9B,EAA+BzpC,EAAKyM,iBAAmBzM,EAAK+pC,iBAC7EvgC,QAASxJ,EAAKwJ,SAAWxJ,EAAKic,QAC9BxQ,SAAUzL,EAAKyL,UAAYzL,EAAKkc,SAChC7X,SAAUrE,EAAKgqC,gBAAkBhqC,EAAKmP,gBAAkB,KACxDf,eAAgBpO,EAAKgqC,gBAAkBhqC,EAAKmP,eAC5C1F,QAASzJ,EAAK0a,WAAa1a,EAAKuN,WAAa,IAAI0E,QAAQ,IAAK,KAC9DtI,MAAO3J,EAAKgN,SAAWhN,EAAKwN,SAAW,IAAIyE,QAAQ,IAAK,KACxD+H,UAAW,CACV7gB,KAAM6G,EAAKiqC,eAAiBjqC,EAAKmc,cACjClS,QAASjK,EAAKkqC,kBAAoBlqC,EAAKoc,kBAExCrS,WAAY/J,EAAK+J,YAAc/J,EAAKmqC,WACpCtgC,cAAiB7J,EAAK6J,eAAiB7J,EAAKoqC,cAAiB,OAAS,QACtE7uB,YAAcvb,EAAKub,aAAevb,EAAKqqC,YACvCC,wBAA0BtqC,EAAKuqC,iBAAmBvqC,EAAKwqC,gBACvD9+B,MAAM,UAAA1L,EAAKyqC,yBAAL,eAAwB/+B,QAAxB,UAAgC1L,EAAK0qC,yBAArC,aAAgC,EAAwBh/B,QAAxD,UAAgE1L,EAAKywC,0BAArE,aAAgE,EAAyB/kC,QAAzF,UAAiG1L,EAAK0wC,0BAAtG,aAAiG,EAAyBhlC,MAChIC,WAAY6jC,EAA0BxvC,EAAK2wC,oBAAsB3wC,EAAKuuC,oBACtEzkC,kBAAmB6gC,GAAyBA,EAAsBn2C,OAASm2C,EAAsBtuC,KAAI,SAACC,GAAY,MAAO,CAACnD,KAAMmD,EAAEm1B,MAAQn1B,EAAEnD,KAAM8Q,QAAS3N,EAAEsuC,SAAWtuC,EAAE2N,YAAc,GACxLD,kBAAmB6gC,GAAyBA,EAAsBr2C,OAASq2C,EAAsBxuC,KAAI,SAACC,GAAY,MAAO,CAACnD,KAAMmD,EAAEm1B,MAAQn1B,EAAEnD,KAAM8Q,QAAS3N,EAAEsuC,SAAWtuC,EAAE2N,YAAc,GACxL4B,YAAa7L,EAAK6L,aAAe7L,EAAK8qC,YACtC/yC,KAAMiI,EAAK+qC,oBAAsB/qC,EAAKgrC,mBACtCvwB,YAAaza,EAAKirC,WAAajrC,EAAKirC,WAAW1zB,WAAa,MAAhD,UAAuDvX,EAAKkrC,kBAA5D,aAAuD,EAAiB3zB,aAAc,KAClG4zB,YAAanrC,EAAKorC,UAAYprC,EAAKqrC,SACnCC,YAAatrC,EAAKurC,YAAcvrC,EAAKwrC,WACrCoF,WAAY5wC,EAAK4wC,YAAc5wC,EAAK6wC,aAElC,OAAOp5C,GAGLq5C,EAAuB,SAAS9wC,GAA2B,QACzDvI,EAAa,CACnByxC,GAAI90B,MAAMzG,OAAO3N,EAAKzD,KAAO,EAAIoR,OAAO3N,EAAKzD,IAC7C8uC,SAAUrrC,EAAKmrC,YACfpB,gBAAiBsE,EAA+BruC,EAAKyM,iBAC/CwP,QAASjc,EAAKwJ,QACpB0S,SAAUlc,EAAKyL,SACf0D,eAAgBxB,OAAO3N,EAAKqE,UAAarE,EAAa+wC,gBACtDxjC,UAAWvE,OAAwB,aAAcA,OAAgBhJ,EAAKyJ,QAAU,IAAMzJ,EAAK0J,UAC3F8D,QAASxE,OAAwB,aAAcA,OAAgBhJ,EAAK2J,MAAQ,IAAM3J,EAAK4J,QACvFwgC,cAAepqC,EAAK6J,cACpBwgC,YAAarqC,EAAKub,YAClBivB,gBAAiBxqC,EAAKsqC,wBACtBnuB,cAAa,UAAEnc,EAAKga,iBAAP,aAAE,EAAgB7gB,KAC/BijB,iBAAgB,UAAEpc,EAAKga,iBAAP,aAAE,EAAgB/P,QAClCkgC,WAAYnqC,EAAK+J,WACjB2gC,kBAAmB,CAClBsG,KAAMhxC,EAAK0L,MAEZ6iC,mBAAoBD,EAA0BtuC,EAAK2L,YACnDslC,sBAAuBjxC,EAAK8J,mBAAqB9J,EAAK8J,kBAAkBtV,OAASwL,EAAK8J,kBAAkBzN,KAAI,SAACC,GAAQ,MAAO,CAACm1B,KAAMn1B,EAAEnD,KAAMyxC,QAAStuC,EAAE2N,YAAc,GACpKinC,sBAAuBlxC,EAAKgK,mBAAqBhK,EAAKgK,kBAAkBxV,OAASwL,EAAK8J,kBAAkBzN,KAAI,SAACC,GAAQ,MAAO,CAACm1B,KAAMn1B,EAAEnD,KAAMyxC,QAAStuC,EAAE2N,YAAc,GACpK6gC,YAAa9qC,EAAK6L,YAClBm/B,mBAAoBhrC,EAAKjI,KACzBmzC,WAAY92B,MAAMzG,OAAO3N,EAAKya,aAAe,KAAQ9M,OAAO3N,EAAKya,aAAe,KAChF0xB,UAAYnsC,EAAamsC,YAAa,EACtC0E,WAAY7wC,EAAK4wC,WACjBO,qBAAuBnxC,EAAaoxC,kBAElC,OAAO35C,GAGI,GACX45C,iBADW,SACMrxC,GACb,OAAOjE,OAAI0mC,KAAU,CACjBC,IAAK,4DACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACTh9B,WAAYlM,EAAKkM,WACjBolC,2BAA4BtxC,EAAKsxC,6BAA8B,EAC/DC,0BAA2BvxC,EAAKuxC,4BAA6B,EAC7DC,0BAA2BxxC,EAAKwxC,4BAA6B,EAC7DC,2BAA4BzxC,EAAKyxC,6BAA8B,EAC/DC,yBAA0B1xC,EAAK0xC,2BAA4B,EAC3DC,uBAAwB3xC,EAAK2xC,yBAA0B,EACvDC,wBAAyB5xC,EAAK4xC,0BAA2B,KAElDx5C,MAAK,SAAC4G,GAEN,OADNA,EAAM0qC,EAAqB1qC,GACdA,MAId6yC,oBArBW,WAsBP,OAAO91C,OAAI0mC,KAAiB,CACxBC,IAAK,iEACNtqC,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACxBA,EAAO01C,EAAqB11C,GAChB,IAAIqB,EAAS,kBACNrB,GAEP,OAAOqB,SAKnBy8C,qBAnCW,SAmCU9xC,GACjB,OAAOjE,OAAI0mC,KAAiB,CACxBC,IAAK,iEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,IAAM,KACf/5B,eAAgBnP,EAAKmP,gBAAkB,KACvCjD,WAAYlM,EAAKkM,YAAc,KAC/Bs9B,SAAUxpC,EAAKwpC,UAAY,KAC3BrtB,cAAenc,EAAKmc,eAAiB,KACrCC,iBAAkBpc,EAAKoc,kBAAoB,KAC3C8uB,WAAYlrC,EAAKkrC,YAAc,KAC/BjvB,QAASjc,EAAKic,SAAW,KACzBC,SAAUlc,EAAKkc,UAAY,KAC3B3O,UAAWvN,EAAKuN,WAAa,KAC7BwkC,eAAgB/xC,EAAK+xC,gBAAkB,KACvCC,aAAchyC,EAAKgyC,cAAgB,KACnCxkC,QAASxN,EAAKwN,SAAW,KACzBykC,aAAcjyC,EAAKiyC,cAAgB,KACnCC,WAAYlyC,EAAKkyC,YAAc,KAC/B/H,WAAYnqC,EAAKmqC,YAAc,KAC/BgC,UAAWnsC,EAAKmsC,WAAa,KAC7B/B,cAAepqC,EAAKoqC,eAAiB,KACrC+H,YAAanyC,EAAKmyC,aAAe,KACjC9H,YAAarqC,EAAKqqC,aAAe,KACjCG,gBAAiBxqC,EAAKwqC,iBAAmB,KACzCjuB,cAAevc,EAAKuc,eAAiB,KACrCC,eAAgBxc,EAAKwc,gBAAkB,KACvCswB,kBAAmB9sC,EAAK8sC,mBAAqB,KAC7CC,aAAc/sC,EAAK+sC,cAAgB,KACnCnB,eAAgB5rC,EAAK4rC,gBAAkB,KACvC0F,2BAA4BtxC,EAAKsxC,6BAA8B,EAC/DC,0BAA2BvxC,EAAKuxC,4BAA6B,EAC7DC,0BAA2BxxC,EAAKwxC,4BAA6B,EAC7DC,2BAA4BzxC,EAAKyxC,6BAA8B,EAC/DE,uBAAwB3xC,EAAK2xC,yBAA0B,EACvDD,yBAA0B1xC,EAAK0xC,2BAA4B,EAC3DE,wBAAyB5xC,EAAK4xC,0BAA2B,KAElDx5C,MAAK,SAAC4G,GACL,OAAOA,EAAI3C,KAAI,SAACrI,GACxB,IAAI03C,EAAUhC,EAAqB11C,GACnBqB,EAAS,kBACNq2C,GAEP,OAAOr2C,SAKnBiX,oBApFW,SAoFStM,GAEhB,OADNA,EAAO8wC,EAAqB9wC,GACfjE,OAAI0mC,KAAU,CACjBC,IAAK,kEACL1uC,KAAM,CACdmb,eAAgBnP,EAAKmP,eACrB46B,gBAAiB/pC,EAAK+pC,gBACtBiB,mBAAoBhrC,EAAKgrC,mBACzB9+B,WAAYlM,EAAKkM,WACjBs9B,SAAUxpC,EAAKwpC,SACfrtB,cAAenc,EAAKmc,cACpBC,iBAAkBpc,EAAKoc,iBACvB8uB,WAAYlrC,EAAKkrC,WACjBjvB,QAASjc,EAAKic,QACdC,SAAUlc,EAAKkc,SACf3O,UAAWvN,EAAKuN,UAChBC,QAASxN,EAAKwN,QACd28B,WAAYnqC,EAAKmqC,WACjBgC,UAAWnsC,EAAKmsC,UAChB/B,cAAepqC,EAAKoqC,cACpB+H,YAAanyC,EAAKmyC,YAClB9H,YAAarqC,EAAKqqC,YAClBwG,WAAY7wC,EAAK6wC,WACjBrG,gBAAiBxqC,EAAKwqC,gBACtByC,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClB1C,kBAAmB1qC,EAAK0qC,kBACxB6D,mBAAoBvuC,EAAKuuC,mBACzB2C,sBAAuBlxC,EAAKkxC,uBAAyB,GACrDD,sBAAuBjxC,EAAKixC,uBAAyB,GACrDmB,eAAgBpyC,EAAKoyC,eACrBC,iBAAkBryC,EAAKqyC,iBACvBf,2BAA4BtxC,EAAKsxC,6BAA8B,EAC/DC,0BAA2BvxC,EAAKuxC,4BAA6B,EAC7DC,0BAA2BxxC,EAAKwxC,4BAA6B,EAC7DC,2BAA4BzxC,EAAKyxC,6BAA8B,EAC/DC,yBAA0B1xC,EAAK0xC,2BAA4B,EAC3DC,uBAAwB3xC,EAAK2xC,yBAA0B,EACvDC,wBAAyB5xC,EAAK4xC,0BAA2B,MAKzDjlC,oBAjIW,SAiIS3M,GAEhB,OADNA,EAAO8wC,EAAqB9wC,GACfjE,OAAI0mC,KAAU,CACjBC,IAAK,kEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACT/5B,eAAgBnP,EAAKmP,eACrB46B,gBAAiB/pC,EAAK+pC,gBACtBiB,mBAAoBhrC,EAAKgrC,mBACzB9+B,WAAYlM,EAAKkM,WACjBs9B,SAAUxpC,EAAKwpC,SACfrtB,cAAenc,EAAKmc,cACpBC,iBAAkBpc,EAAKoc,iBACvB8uB,WAAYlrC,EAAKkrC,WACjBjvB,QAASjc,EAAKic,QACdC,SAAUlc,EAAKkc,SACf3O,UAAWvN,EAAKuN,UAChBC,QAASxN,EAAKwN,QACd28B,WAAYnqC,EAAKmqC,WACjBgC,UAAWnsC,EAAKmsC,UAChB/B,cAAepqC,EAAKoqC,cACpB+H,YAAanyC,EAAKmyC,YAClB9H,YAAarqC,EAAKqqC,YAClBwG,WAAY7wC,EAAK6wC,WACjBrG,gBAAiBxqC,EAAKwqC,gBACtByC,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClB1C,kBAAmB1qC,EAAK0qC,kBACxB6D,mBAAoBvuC,EAAKuuC,mBACzB2C,sBAAuBlxC,EAAKkxC,uBAAyB,GACrDD,sBAAuBjxC,EAAKixC,uBAAyB,GACrDmB,eAAgBpyC,EAAKoyC,eACrBC,iBAAkBryC,EAAKqyC,iBACvBlB,qBAAsBnxC,EAAKmxC,qBAC3BG,2BAA4BtxC,EAAKsxC,6BAA8B,EAC/DC,0BAA2BvxC,EAAKuxC,4BAA6B,EAC7DC,0BAA2BxxC,EAAKwxC,4BAA6B,EAC7DC,2BAA4BzxC,EAAKyxC,6BAA8B,EAC/DC,yBAA0B1xC,EAAK0xC,2BAA4B,EAC3DC,uBAAwB3xC,EAAK2xC,yBAA0B,EACvDC,wBAAyB5xC,EAAK4xC,0BAA2B,MAKzDU,oBAhLW,SAgLStyC,GAEhB,OADNA,EAAO8wC,EAAqB9wC,GACfjE,OAAI0mC,KAAU,CACjBC,IAAK,kEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACToI,2BAA4BtxC,EAAKsxC,6BAA8B,EAC/DC,0BAA2BvxC,EAAKuxC,4BAA6B,EAC7DC,0BAA2BxxC,EAAKwxC,4BAA6B,EAC7DC,2BAA4BzxC,EAAKyxC,6BAA8B,EAC/DE,uBAAwB3xC,EAAK2xC,yBAA0B,EACvDD,yBAA0B1xC,EAAK0xC,2BAA4B,EAC3DE,wBAAyB5xC,EAAK4xC,0BAA2B,MAK5DW,qBAjMc,SAiMOvyC,GACd,OAAOjE,OAAI0mC,KAAU,CACjBC,IAAK,oEACL1uC,KAAM,CACdw+C,QAASxyC,EAAKwyC,QACdzG,sBAAuB/rC,EAAK+rC,wBAAyB,KAG9C3zC,MAAK,SAAC4G,GACN,OAAOA,MAOjByzC,kBAjNc,SAiNIzyC,GACX,OAAOjE,OAAI0mC,KAAU,CACjBC,IAAK,8DACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACTh9B,WAAYlM,EAAKkM,WACjBwmC,6BAA8B1yC,EAAKsxC,6BAA8B,EACjEqB,4BAA6B3yC,EAAKuxC,4BAA6B,EAC/DqB,4BAA6B5yC,EAAKwxC,4BAA6B,EAC/DC,2BAA4BzxC,EAAKyxC,6BAA8B,EAC/DC,yBAA0B1xC,EAAK0xC,2BAA4B,KAEpDt5C,MAAK,SAAC4G,GAEN,OADNA,EAAM0qC,EAAqB1qC,GACdA,MAIjB6zC,qBAnOc,SAmOO7yC,GAEd,OADNA,EAAO8wC,EAAqB9wC,GACfjE,OAAI0mC,KAAU,CACjBC,IAAK,oEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACTmC,SAAUrrC,EAAKqrC,SACfl8B,eAAgBnP,EAAKmP,eACrB46B,gBAAiB/pC,EAAK+pC,gBACtBiB,mBAAoBhrC,EAAKgrC,mBACzB9+B,WAAYlM,EAAKkM,WACjBs9B,SAAUxpC,EAAKwpC,SACfrtB,cAAenc,EAAKmc,cACpBC,iBAAkBpc,EAAKoc,iBACvB8uB,WAAYlrC,EAAKkrC,WACjBjvB,QAASjc,EAAKic,QACdC,SAAUlc,EAAKkc,SACf3O,UAAWvN,EAAKuN,UAChBC,QAASxN,EAAKwN,QACd28B,WAAYnqC,EAAKmqC,WACjBgC,UAAWnsC,EAAKmsC,UAChB/B,cAAepqC,EAAKoqC,cACpB+H,YAAanyC,EAAKmyC,YAClB9H,YAAarqC,EAAKqqC,YAClBwG,WAAY7wC,EAAK6wC,WACjBrG,gBAAiBxqC,EAAKwqC,gBACtByC,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClBsD,mBAAoB1wC,EAAK0qC,kBACzB6D,mBAAoBvuC,EAAKuuC,mBACzBuE,uBAAwB9yC,EAAKkxC,uBAAyB,GACtD6B,uBAAwB/yC,EAAKixC,uBAAyB,GACtDmB,eAAgBpyC,EAAKoyC,eACrBC,iBAAkBryC,EAAKqyC,iBACvBK,6BAA8B1yC,EAAKsxC,6BAA8B,EACjEqB,4BAA6B3yC,EAAKuxC,4BAA6B,EAC/DqB,4BAA6B5yC,EAAKwxC,4BAA6B,EAC/DE,yBAA0B1xC,EAAK0xC,2BAA4B,MAK3DhlC,qBA/QW,SA+QU1M,GAEjB,OADNA,EAAO8wC,EAAqB9wC,GACfjE,OAAI0mC,KAAU,CACjBC,IAAK,oEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACTmC,SAAUrrC,EAAKqrC,SACfl8B,eAAgBnP,EAAKmP,eACrB46B,gBAAiB/pC,EAAK+pC,gBACtBiB,mBAAoBhrC,EAAKgrC,mBACzB9+B,WAAYlM,EAAKkM,WACjBs9B,SAAUxpC,EAAKwpC,SACfrtB,cAAenc,EAAKmc,cACpBC,iBAAkBpc,EAAKoc,iBACvB8uB,WAAYlrC,EAAKkrC,WACjBjvB,QAASjc,EAAKic,QACdC,SAAUlc,EAAKkc,SACf3O,UAAWvN,EAAKuN,UAChBC,QAASxN,EAAKwN,QACd28B,WAAYnqC,EAAKmqC,WACjBgC,UAAWnsC,EAAKmsC,UAChB/B,cAAepqC,EAAKoqC,cACpB+H,YAAanyC,EAAKmyC,YAClB9H,YAAarqC,EAAKqqC,YAClBwG,WAAY7wC,EAAK6wC,WACjBrG,gBAAiBxqC,EAAKwqC,gBACtByC,UAAWjtC,EAAKitC,UAChBC,UAAWltC,EAAKktC,UAChBC,YAAantC,EAAKmtC,YAClBC,YAAaptC,EAAKotC,YAClBsD,mBAAoB1wC,EAAK0qC,kBACzB6D,mBAAoBvuC,EAAKuuC,mBACzBuE,uBAAwB9yC,EAAKkxC,uBAAyB,GACtD6B,uBAAwB/yC,EAAKixC,uBAAyB,GACtDmB,eAAgBpyC,EAAKoyC,eACrBC,iBAAkBryC,EAAKqyC,iBACvBlB,qBAAsBnxC,EAAKmxC,qBAC3BuB,6BAA8B1yC,EAAKsxC,6BAA8B,EACjEqB,4BAA6B3yC,EAAKuxC,4BAA6B,EAC/DqB,4BAA6B5yC,EAAKwxC,4BAA6B,EAC/DC,2BAA4BzxC,EAAKyxC,6BAA8B,EAC/DC,yBAA0B1xC,EAAK0xC,2BAA4B,MAK3DsB,qBA7TW,SA6TUhzC,GAEjB,OADNA,EAAO8wC,EAAqB9wC,GACfjE,OAAI0mC,KAAU,CACjBC,IAAK,oEACL1uC,KAAM,CACdk1C,GAAIlpC,EAAKkpC,GACTwJ,6BAA8B1yC,EAAKsxC,6BAA8B,EACjEqB,4BAA6B3yC,EAAKuxC,4BAA6B,EAC/DqB,4BAA6B5yC,EAAKwxC,4BAA6B,OCjdpD,GAEdyB,sBAFc,SAEQr3C,GACrB,OAAOG,OAAIjC,IAAuC,CACxC4oC,IAAK,gEAAF,OAAkE9mC,MAKhFs3C,gCATc,SASkBl/C,GAC/B,OAAO+H,OAAI0mC,KAAK,CACNC,IAAK,kDACL1uC,KAAMA,KAKjBm/C,gCAjBc,SAiBkBn/C,GAC/B,OAAO+H,OAAI0mC,KAAK,CACNC,IAAK,kDACL1uC,KAAMA,KAKjBo/C,gCAzBc,SAyBkBC,GAC/B,OAAOt3C,OAAI0mC,KAAK,CACNC,IAAK,oEAAF,OAAsE2Q,MAKpFC,qBAAsB,SAACt/C,GAChB,OAAO+H,OAAI0mC,KAAK,CACZC,IAAK,+CACL1uC,KAAMA,KAKjBu/C,qBAAsB,SAACv/C,GAEhB,OAAO+H,OAAI0mC,KAAK,CACZC,IAAK,iCACL1uC,KAAMA,KAMdw/C,qBAAsB,SAACx/C,GAEnB,OAAO+H,OAAI0mC,KAAK,CACZC,IAAK,wCACL1uC,KAAMA,KAMjBy/C,yBAA0B,SAACz/C,GACpB,OAAO+H,OAAI0mC,KAAK,CACZC,IAAK,4CACL1uC,KAAMA,KAKjB0/C,oCAAqC,SAAC1/C,GAE/B,OAAO+H,OAAI0mC,KAAK,CACZC,IAAK,gEACL1uC,KAAMA,KAKjB2/C,uBA7Ec,SA6ESp3C,GACtB,OAAOR,OAAIjC,IAAI,CACL4oC,IAAK,2DAAF,OAA6DnmC,OCrE7D,QACXwL,UACA6rC,cACAC,YACAxnC,cAEAynC,qBAEA5pC,eACA1C,aACAuE,sB,qDCrBJ,IAAI6a,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAa,QAAE6wB,WAAW,kBAAkB1D,MAAM,CAAC,KAAO,OAAO,YAAcP,KAAKqC,GAAG,gBAAgB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAI3sB,MAAa,SAAGqtB,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAI3sB,MAAO,UAAWwuB,EAAO/wB,OAAOuC,eAAe+sB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,yBAAyB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAImtB,oBAAoB/sB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,yBAAyB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI3sB,MAAMwP,sBAAsBud,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,uBAAuB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIotB,kBAAkBhtB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,uBAAuB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI3sB,MAAM0P,oBAAoBqd,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,2BAA2BlC,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACjB,EAAG,QAAQ,CAACiB,YAAY,UAAU,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAmB,cAAE6wB,WAAW,wBAAwB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI3sB,MAAM2P,eAAegd,EAAIgT,GAAGhT,EAAI3sB,MAAM2P,cAAc,OAAO,EAAGgd,EAAI3sB,MAAmB,eAAGqtB,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI3sB,MAAM2P,cAAckwB,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,GAAIrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,gBAAiB4/B,EAAIK,OAAO,CAACF,KAAaC,GAAK,GAAIrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,gBAAiB4/B,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAYrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,gBAAiB8/B,OAAU/S,EAAG,OAAO,CAACiB,YAAY,2BAA2BjB,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQV,EAAIqtB,YAAY,CAAGrtB,EAAI3sB,MAAMyR,WAAWoP,iBAA2DkM,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIstB,gCAAnEltB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,gBAA0ElC,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,2BAA2B,CAAGlC,EAAIutB,iBAA6EntB,EAAG,IAAI,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIutB,iBAAiBC,kBAAkB,MAAMxtB,EAAI+B,GAAG/B,EAAIutB,iBAAiB33C,gBAAzLwqB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,kCAAgLlC,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAc,SAAE6wB,WAAW,mBAAmB1D,MAAM,CAAC,KAAO,OAAO,YAAcP,KAAKqC,GAAG,uBAAuB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAI3sB,MAAc,UAAGqtB,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAI3sB,MAAO,WAAYwuB,EAAO/wB,OAAOuC,eAAe+sB,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,sBAAsB,CAAGlC,EAAI3sB,MAAMmK,SAAiD4iB,EAAG,IAAI,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIytB,eAAhGrtB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAAsFlC,EAAG,kBAAkB,CAACI,MAAM,CAAC,KAAO,KAAK,MAAQP,KAAKqC,GAAG,SAAS5R,WAAW,MAAQsP,EAAIhpB,OAAO0pB,GAAG,CAAC,OAAS,SAAUgtB,GAAQ,OAAQ1tB,EAAIhpB,MAAM8I,GAAK4tC,IAAUC,MAAM,CAACt6C,MAAO2sB,EAAIhpB,MAAQ,GAAE42C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAIhpB,MAAO,KAAMo8B,IAAMlP,WAAW,cAAc9D,EAAG,kBAAkB,CAACI,MAAM,CAAC,KAAO,KAAK,MAAQP,KAAKqC,GAAG,SAAS5R,WAAW,MAAQsP,EAAIhpB,OAAO0pB,GAAG,CAAC,OAAS,SAAUgtB,GAAQ,OAAQ1tB,EAAIhpB,MAAM+I,GAAI2tC,IAAUC,MAAM,CAACt6C,MAAO2sB,EAAIhpB,MAAQ,GAAE42C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAIhpB,MAAO,KAAMo8B,IAAMlP,WAAW,cAAc9D,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,qBAAqB,CAAGlC,EAAI3sB,MAAM4R,2BAAmGmb,EAAG,IAAI,CAACI,MAAM,CAAC,GAAK,aAAa,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI6tB,iBAA3HztB,EAAG,IAAI,CAACI,MAAM,CAAC,GAAK,aAAa,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,oBAAyFlC,EAAG,YAAY,CAACutB,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAU,KAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,OAAQ+/B,IAAMlP,WAAW,iBAAiB,IAC95JtD,EAAkB,CAAC,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,iBAAiB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,mBAAmB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,mBAAmB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,kB,0NCiB7gCysB,EAAS,6KAkC1B,WACI,OAAO3rC,OAAwB,aAAcA,OAAgB8d,KAAK5sB,MAAMuP,UAnClD,uBAsC1B,WACI,OAAOT,OAAwB,aAAcA,OAAgB8d,KAAK5sB,MAAMyP,QAvClD,wBA0C1B,WACI,IAAIirC,EAAS9tB,KAAK5sB,MAAM4R,4BAA8B,EACtD,OAAc,KAAX8oC,EACQ9tB,KAAKqC,GAAG,WAAY,CAACyrB,OAAQ,IAAIr9B,WAEzB,OAAXq9B,EACG9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQ,IAAIr9B,WAExB,OAAXq9B,EACG9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQ,IAAIr9B,WAExB,OAAXq9B,EACG9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQ,IAAIr9B,WAEnCq9B,EAAS,GACN9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQA,IAASr9B,gBAD3C,IAxDiB,uCAgEzB,WAA+B,IAYxBs9B,EAZwB,OAKzB/tB,KAAK5sB,MAAMwP,WAAaod,KAAK5sB,MAAMwP,UAAUlV,OAAQ,GAC/BsyB,KAAK5sB,MAAMwP,UAAUorC,OAAO,EAAGhuB,KAAK5sB,MAAMwP,UAAUlV,OAAQ,GAElFsyB,KAAK5sB,MAAM0P,SAAWkd,KAAK5sB,MAAM0P,QAAQpV,OAAQ,GAC9BsyB,KAAK5sB,MAAM0P,QAAQkrC,OAAO,EAAGhuB,KAAK5sB,MAAM0P,QAAQpV,OAAQ,GAI1C,MAAjCsyB,KAAK5sB,MAAMyR,WAAWqB,UACrB6nC,EAAkB7rC,OAAwB,aAAcA,OAAgB8d,KAAK5sB,MAAMyR,WAAWqB,WAGlG,IAAI+nC,EAAkB,GAEtB,GAA6C,GAA1CjuB,KAAK5sB,MAAMyR,WAAWoP,iBAIjBg6B,EAHgC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QAGX,GAAH,OAAM6nC,EAAN,eAA4B/tB,KAAK5sB,MAAMyR,WAAWyP,SAAlD,WAKG,GAAH,OAAM0L,KAAK5sB,MAAMyR,WAAWyP,SAA5B,gBAIV,GAA6C,GAA1C0L,KAAK5sB,MAAMyR,WAAWoP,iBAAuB,CACjD,IAAIi6B,EAAWhsC,OAAuB,CAClC8d,KAAKqC,GAAG,qBAAqB5R,WAC7BuP,KAAKqC,GAAG,qBAAqB5R,WAC7BuP,KAAKqC,GAAG,sBAAsB5R,WAC9BuP,KAAKqC,GAAG,wBAAwB5R,WAChCuP,KAAKqC,GAAG,uBAAuB5R,WAC/BuP,KAAKqC,GAAG,qBAAqB5R,WAC7BuP,KAAKqC,GAAG,uBAAuB5R,aAGnCuP,KAAKmuB,aAAgBD,EAASh0C,QAAO,SAAC1E,GAAD,aAC+B,IAA/D,YAAKpC,MAAMyR,WAAWuP,0BAAtB,eAA0CxY,QAAQpG,EAAEpC,WACvDmC,KAAI,SAACC,GAAO,OAAOA,EAAEsF,QAAQszC,KAAK,KAOhCH,EAHgC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QAGX,GAAH,OAAM6nC,EAAN,eAA4B/tB,KAAK5sB,MAAMyR,WAAWyP,SAAlD,eAAiE0L,KAAKmuB,aAAtE,OAKG,GAAH,OAAMnuB,KAAK5sB,MAAMyR,WAAWyP,SAA5B,eAA2C0L,KAAKmuB,aAAhD,cAImC,GAA1CnuB,KAAK5sB,MAAMyR,WAAWoP,iBAItBg6B,EAHgC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QAGX,GAAH,OAAM6nC,EAAN,eAA4B/tB,KAAK5sB,MAAMyR,WAAWyP,SAAlD,gBAAkE0L,KAAK5sB,MAAMyR,WAAWkjC,WAAxF,SAKG,GAAH,OAAM/nB,KAAK5sB,MAAMyR,WAAWyP,SAA5B,gBAA4C0L,KAAK5sB,MAAMyR,WAAWkjC,WAAlE,SAImC,GAA1C/nB,KAAK5sB,MAAMyR,WAAWoP,mBAItBg6B,EAHgC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QAGX,GAAH,OAAM6nC,EAAN,kBAA+B/tB,KAAK5sB,MAAMyR,WAAWqP,WAArD,aAAoE8L,KAAK5sB,MAAMyR,WAAWkjC,WAA1F,UAKG,MAAH,OAAS/nB,KAAK5sB,MAAMyR,WAAWqP,WAA/B,aAA8C8L,KAAK5sB,MAAMyR,WAAWkjC,WAApE,WAOf,OAHK/nB,KAAK5sB,MAAMqR,QACZub,KAAK5sB,MAAMowC,wBAA0ByK,GAElCA,IA1Je,uBAmK1B,WACIjuB,KAAKquB,eAAeruB,KAAK5sB,OACzB4sB,KAAKyN,QAAQz/B,KAAK,CAAEsS,KAAM,sBAAwB7E,MAAO,CAAEhG,GAAIuqB,KAAK5sB,MAAMqC,UArKpD,GAAS+oB,QAOXqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,iCACAF,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,uCAVPkgD,EAAS,gBAX7B7sB,eAAU,CACPmD,WAAY,CACRmqB,iBACAC,wBAEJnqB,QAAS,kBACFE,eAAa,CACZ+pB,eAAgBh6C,cAIPw5C,WClB6R,I,YCO9ShtB,EAAY,eACd,EACAf,EACAa,GACA,EACA,KACA,KACA,MAIa,OAAAE,E,sEClBf,gNAAM2tB,EAAO,WAEAC,EAAU,GAAH,OAAMD,EAAN,YACPE,EAAQ,GAAH,OAAMF,EAAN,UACLG,EAAO,GAAH,OAAMH,EAAN,SACJI,EAAU,GAAH,OAAMJ,EAAN,YACPK,EAAY,GAAH,OAAML,EAAN,cACTM,EAAS,GAAH,OAAMN,EAAN,Y,oOCPnB,SAASO,IACP,MAAsB,qBAAX76C,OACFA,OAAOF,QAETg7C,EAAOh7C,QAEhB,IAAMA,EAAU+6C,IAEhB,SAASE,EAAOztB,GACd,IAAM0tB,EAAQvhD,OAAO8F,OAAO,MAC5B,OAAO,SAAkB07C,GACvB,IAAMC,EAAMF,EAAMC,GAClB,OAAOC,IAAQF,EAAMC,GAAO3tB,EAAG2tB,KAInC,IAAME,EAAQ,SACRC,EAAWL,GAAO,SAAAE,GAAG,OACzBA,EAAIhkC,QAAQkkC,GAAO,SAACE,EAAG78C,GAAJ,OAAWA,EAAIA,EAAE88C,cAAgB,SAGtD,SAASC,EAAWC,GACS,OAAvBA,EAAKC,eACPD,EAAKC,cAAcx+C,YAAYu+C,GAInC,SAASE,EAAaC,EAAYH,EAAMI,GACtC,IAAMC,EACS,IAAbD,EACID,EAAWx2C,SAAS,GACpBw2C,EAAWx2C,SAASy2C,EAAW,GAAGE,YACxCH,EAAWI,aAAaP,EAAMK,M,0DChChC,IAAIjwB,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACjB,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,WAAW,CAACjB,EAAG,QAAQ,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI1pB,UAAU8pB,EAAG,IAAI,CAACiB,YAAY,WAAWX,GAAG,CAAC,MAAQV,EAAImwB,oBAAoB/vB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQV,EAAIowB,gBAAgB,CAAChwB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,cAAc,CAACqJ,IAAI,WAAWjJ,MAAM,CAAC,aAAe,sBAAsBE,GAAG,CAAC,aAAeV,EAAIqwB,aAAa,SAAWrwB,EAAIswB,SAAS,WAAatwB,EAAIuwB,WAAW,mBAAqBvwB,EAAIwwB,oBAAoBjvB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,UAAU8tB,GAAG,SAASgvB,GAAU,MAAO,CAACrwB,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOiwB,EAASvgD,IAAI6K,KAAK,QAAU01C,EAASvgD,IAAImD,cAAcs6C,MAAM,CAACt6C,MAAO2sB,EAAS,MAAE4tB,SAAS,SAAUxa,GAAMpT,EAAI0wB,MAAMtd,GAAKlP,WAAW,YAAY,GAAiB,QAAblE,EAAI1pB,MAAiB8pB,EAAG,MAAM,CAACiB,YAAY,YAAYX,GAAG,CAAC,MAAQV,EAAImD,OAAO,CAAC/C,EAAG,IAAI,CAACA,EAAG,IAAI,CAACE,MAAM,CAACN,EAAIoB,KAAO,UAAY,mBAAmBpB,EAAIe,WAAYf,EAAoB,iBAAEI,EAAG,MAAM,CAACiB,YAAY,mCAAmC,CAACjB,EAAG,QAAQ,CAACJ,EAAI6N,GAAG,GAAGzN,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAoB,kBAAE,SAAStmB,EAAK4C,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,EAAMokB,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI2wB,mBAAmBj3C,MAAS,CAAC0mB,EAAG,KAAK,CAACA,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAAE3nB,EAAY,QAAE0mB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,2BAA6B9mB,EAAKk3C,KAAKlwB,GAAG,CAAC,MAAQV,EAAIhuB,SAASguB,EAAIe,SAASX,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGroB,EAAKqB,SAASqlB,EAAG,IAAI,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAGroB,EAAKlC,aAAa,MAAMwoB,EAAI+B,GAAGroB,EAAKzD,UAAU,MAAM+pB,EAAI+B,GAAGroB,EAAKnD,WAAW,IAAIypB,EAAI+B,GAAGroB,EAAKrG,mBAAkB,OAAO2sB,EAAIe,KAAKX,EAAG,gBAAgB,CAACI,MAAM,CAAC,SAAWR,EAAI6wB,UAAUnwB,GAAG,CAAC,MAAQ,SAASmB,GAAQ7B,EAAI6wB,UAAW,GAAO,MAAQ7wB,EAAIqc,UAAU,IAC9xDzb,EAAkB,CAAC,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,U,oQCArL,SAASswB,EAAiBrgD,GACtB,IAAIsgD,EACJ,IACIA,EAAW58C,OAAe1D,GAC1B,IAAIgF,EAAI,mBAGR,OAFAs7C,EAAQC,QAAQv7C,EAAGA,GACnBs7C,EAAQE,WAAWx7C,IACZ,EAEX,MAAMlG,GACF,OAAOA,aAAa2hD,eAEL,KAAX3hD,EAAE2B,MAES,OAAX3B,EAAE2B,MAGS,uBAAX3B,EAAE+C,MAES,+BAAX/C,EAAE+C,OAEDy+C,GAA8B,IAAnBA,EAAQpjD,QAIjB,iBACX,MAAO,CAKHgf,IALG,SAKCtZ,EAAYM,GACPm9C,EAAiB,kBAInBn9C,EACCw9C,aAAaH,QAAQr9C,EAAKqI,KAAKE,UAAU7I,IAGzC89C,aAAaH,QAAQ,WAAYh1C,KAAKE,UAAU7I,MAOxDJ,IArBG,SAqBCU,GACA,GAAKm9C,EAAiB,gBAAtB,CAIA,GAAGn9C,EAAI,CACH,IAAMN,EAAQ89C,aAAaC,QAAQz9C,GACnC,OAAON,EAAQ2I,KAAKC,MAAM5I,GAAS,KAEnC,IAAMA,EAAQ89C,aAAaC,QAAQ,YACnC,OAAO/9C,EAAQ2I,KAAKC,MAAM5I,GAAS,OAO3C+mC,OAtCG,SAsCIzmC,GACAssB,KAAKhtB,IAAIU,IACRw9C,aAAaF,WAAWt9C,GAAO,cAzChC,G,6CC1BX,EAAS,WAAa,IAAIqsB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,wBAAwB,CAACjB,EAAG,OAAO,CAACiB,YAAY,eAAeb,MAAM,CAAC,KAAO,QAAQ6wB,KAAK,QAAQ,CAACrxB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI1tB,YACvO,EAAkB,GCODgwC,EAAW,wDAAhC,iD,0BAmBI,EAAAgP,OAAS,CACLzV,IAAK,GACLnnC,SAAS,GArBjB,EAAgC,0BAAS+pB,QAObqE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,2BACAF,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,8BARPsf,EAAW,gBAH/BrhB,eAAU,CACPmD,WAAY,MAEKke,WCRuQ,I,wBCQxRxhB,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,gCCnBX,EAAS,WAAa,IAAId,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,YAAY,CAACI,MAAM,CAAC,KAAOR,EAAI6wB,WAAW,CAACzwB,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAOR,EAAI6wB,WAAW,CAACzwB,EAAG,eAAe,CAACI,MAAM,CAAC,KAAOR,EAAIvvB,MAAMiwB,GAAG,CAAC,cAAgB,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,UAAU,cAAgB,SAASL,GAAQ,OAAO7B,EAAIkC,MAAM,cAAc,IAAI,IACnW,EAAkB,G,wBCDlB,EAAS,WAAa,IAAIlC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,kBAAkB,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,kBAAkB,MAAQ,SAASL,GAAQ,OAAO7B,EAAIkC,MAAM,mBAAmByrB,MAAM,CAACt6C,MAAO2sB,EAAQ,KAAE4tB,SAAS,SAAUxa,GAAMpT,EAAItmB,KAAK05B,GAAKlP,WAAW,UAAU9D,EAAG,MAAM,CAACiB,YAAY,qBAAqB,CAACjB,EAAG,eAAe,IAAI,IAC/Y,EAAkB,G,YCDlB,EAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,SAAU,CAACyrB,OAAQ/tB,EAAIuxB,yBAAyBnxB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAY,CAAC9B,EAAG,IAAI,CAACiB,YAAY,mBAAmBjB,EAAG,MAAM,CAACiB,YAAY,iBAAiBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAY,CAAClC,EAAI6N,GAAG,QACnd,EAAkB,CAAC,WAAa,IAAI7N,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,IAAI,CAACA,EAAG,IAAI,CAACiB,YAAY,wB,YCWjHmwB,EAAe,wDAApC,iD,0BASI,EAAAD,mBAA0B,EAT9B,EAAoC,sDA0BhC,WACItxB,KAAKsxB,mBAAqBtxB,KAAKwxB,SAAS9jD,SA3BZ,qBAoChC,WACIsyB,KAAKsxB,mBAAqBtxB,KAAKwxB,SAAS9jD,WArCZ,GAAS8wB,QACjBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BAyBxBk1B,gBADC0G,eAAM,aACP,oCA1BiBgoB,EAAe,gBAPnCvwB,eAAU,CACPC,SAAU,kBACHC,eAAW,CACVswB,SAAUn9C,aAIDk9C,WCZuR,ICOxS,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCPME,EAAY,wDAAjC,iD,0BAeI,EAAAh4C,KAAY,GAfhB,EAAiC,iDAsB7B,SAAWP,GACP8mB,KAAKvmB,KAAOP,MAvBa,GAASslB,QAMdqE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,2BANP0uB,EAAY,gBANhCzwB,eAAU,CACPmD,WAAY,CACRutB,kBACAH,sBAGaE,WCXoR,ICOrS,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCTME,EAAa,qJAASnzB,QAMfqE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,2BACCF,gBAAxBC,eAAK,CAAEtyB,KAAMyyB,WAAW,+BAPR0uB,EAAa,gBAHjC3wB,eAAU,CACPmD,WAAY,CAAEf,aAAOD,iBAAWsuB,mBAEfE,WCTqR,ICOtS,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,K,qBCGMpD,GAAe,wDAApC,iD,0BA+BE,EAAAqD,SAAmB,EACnB,EAAAzwB,MAAgB,EAChB,EAAA0wB,QAAkB,EAClB,EAAAC,kBAA4B,EAC5B,EAAAC,iBAAwB,GACxB,EAAAnB,UAAoB,EApCtB,EAAoC,0CAiBlC,WACE,OAAO5wB,KAAK5sB,OAAS,IAlBW,IAqBlC,SAAUA,GACR4sB,KAAKiC,MAAM,QAAS7uB,GACpB4sB,KAAKiC,MAAM,YAvBqB,mBAqDlC,SAAM3yB,GACJ,IAAI4gC,EAAO5gC,EAAE0iD,WACb9hB,EAAKp/B,IAAM,mCAvDqB,gCA0DlC,WACEkvB,KAAK8xB,kBAAmB,EACxB9xB,KAAK+xB,iBAAmB,GACtB/xB,KAAKiyB,MAAMC,SAAiBJ,kBAAmB,EAC/C9xB,KAAKiyB,MAAMC,SAAiBC,YAAa,EACzCnyB,KAAKiyB,MAAMC,SAAiBE,aAAc,IA/DZ,0BAkElC,SAAaC,GAAgB,WACvBC,EAAW,SAAH,OAAYD,GACpBj/C,EAASc,OAAeo+C,GAC5BC,QAAUr9C,GACP4C,UACC,CACE2D,MAAOrI,EACPwoB,KAAM,IAERoE,KAAKwyB,KAAK19C,SAEXxD,MAAK,SAAC4G,GACL,EAAKu6C,iBAAiB,CACpB33C,KAAM,cACN1H,MAAO,QACP4C,SAAU,WACVM,UAAW,YACXq6C,IAAK,YACL+B,QAAS,uBACTliD,KAAM,OACNtD,KAAMgL,EAAI9C,MACVN,QAAS,UACTC,SAAU,WACVwC,YAAa,gBAEf43B,cAAej7B,OAAem+C,IAC5Bn+C,OAAem+C,GAAY,QAE9B/uC,OAAM,SAACvS,GACNo+B,cAAej7B,OAAem+C,IAC5Bn+C,OAAem+C,GAAY,UAhGD,8BAoGlC,SAAiB34C,GAAY,WACzBsmB,KAAKiyB,MAAMC,SAAiBS,uBAC5B3yB,KAAKiyB,MAAMC,SAAiBU,uBAAwB,EACtD,IAAI93C,EAAOpB,EAAQ/D,aAAe,cAC9BvC,EAAQsG,EAAQ3C,OAAS,QACzBf,EAAW0D,EAAQ1D,UAAY,WAC/BxF,EAAOkJ,EAAQlJ,MAAQ,OACvB8F,EAAYoD,EAAQpD,WAAa,YACjCq6C,EAAMj3C,EAAQvD,WAAa,YAC3Bu8C,EAAUh5C,EAAQg5C,SAAW,GAC7BG,EAAWn5C,EAAQm5C,UAAY,iCAC/BC,EAAQp5C,EAAQo5C,OAAS,GACzB5lD,EAAOwM,EAAQxM,MAAQ,GACvB6H,EAAW2E,EAAQ3E,UAAY,WAC/BD,EAAU4E,EAAQ5E,SAAW,UAC7ByC,EAAcmC,EAAQnC,aAAe,cACzCyoB,KAAK+xB,iBAAmB7kD,EACrB0B,OAAO,EAAGkkD,GACVv9C,KAAI,SAACC,GACJ,IAAIu9C,EAAM,CACRj4C,KAAM,GACN1H,MAAO,GACP4C,SAAU,GACVM,UAAW,GACXq6C,IAAK,GACLngD,KAAM,GACNkiD,QAASA,EACTG,SAAUA,EACV99C,SAAU,GACVD,QAAS,GACTyC,YAAa,IAuCf,OApCI/B,EAAE3H,eAAeiN,KACnBi4C,EAAIj4C,KAAOtF,EAAEsF,IAGXtF,EAAE3H,eAAeuF,KACnB2/C,EAAI3/C,MAAQoC,EAAEpC,IAGZoC,EAAE3H,eAAemI,KACnB+8C,EAAI/8C,SAAWR,EAAEQ,IAGfR,EAAE3H,eAAe2C,KACnBuiD,EAAIviD,KAAOgF,EAAEhF,IAGXgF,EAAE3H,eAAeyI,KACnBy8C,EAAIz8C,UAAYd,EAAEc,IAGhBd,EAAE3H,eAAe8iD,KACnBoC,EAAIpC,IAAMn7C,EAAEm7C,IAGVn7C,EAAE3H,eAAekH,KACnBg+C,EAAIh+C,SAAWS,EAAET,IAGfS,EAAE3H,eAAeiH,KACnBi+C,EAAIj+C,QAAUU,EAAEV,IAGdU,EAAE3H,eAAe0J,KACnBw7C,EAAIx7C,YAAc/B,EAAE+B,IAGfw7C,KAER74C,QACC,SAAC1E,GAAD,OACqF,GAAlF,EAAKy8C,MAAMC,SAAiBzE,KAAKvzC,QAAO,SAACW,GAAD,OAAYA,EAAEzH,OAASoC,EAAEpC,SAAO1F,UAG/EsyB,KAAK8xB,iBAAmB9xB,KAAK+xB,iBAAiBrkD,OAE1CsyB,KAAK8xB,mBACL9xB,KAAKiyB,MAAMC,SAAiBJ,kBAAmB,EAC/C9xB,KAAKiyB,MAAMC,SAAiBC,YAAa,EACzCnyB,KAAKiyB,MAAMC,SAAiBE,aAAc,KArLd,0BAyLlC,SAAa9iD,GAAQ,WACfuB,EAASvB,EAAEuB,OACXuC,EAAQvC,EAAOuC,MACb4/C,EAAY,IAClB,GAAI5/C,EAAO,CACT,IAAIi/C,EAAW,OAAH,OAAUxhD,EAAOoiD,UAAjB,YAA8BpiD,EAAOqiD,YAC7CC,EAAU,OAAH,OAAUd,GACjBC,EAAW,SAAH,OAAYD,GACpBe,EAAU,QAAH,OAAWf,GACpBn+C,OAAek/C,IAAW,EAC1Bl/C,OAAeo+C,GAAYl/C,EACvBc,OAAem+C,GAWjBn+C,OAAei/C,GAAWjxC,OAAkB8wC,EAAW,IAAIxvC,KAAQ,SAVnEtP,OAAei/C,GAAWjxC,OAAkB8wC,EAAW,IAAIxvC,KAAQ,QACnEtP,OAAem+C,GAAY1jB,aAAY,WAClCz6B,OAAei/C,GAAW,IAAI3vC,OAC3BtP,OAAek/C,KACjBl/C,OAAek/C,IAAW,EAC5B,EAAKC,aAAahB,OAGrB,UAKLryB,KAAK8xB,kBAAmB,EACtB9xB,KAAKiyB,MAAMC,SAAiBJ,kBAAmB,EAC/C9xB,KAAKiyB,MAAMC,SAAiBC,YAAa,EACzCnyB,KAAKiyB,MAAMC,SAAiBE,aAAc,IArNd,gCAyNlC,SAAmB34C,GACfumB,KAAKiyB,MAAMC,SAAiBp3C,KAAOrB,EAAKqB,KACxCklB,KAAKiyB,MAAMC,SAAiBE,aAAc,EAC1CpyB,KAAKiyB,MAAMC,SAAiBC,YAAa,EACzCnyB,KAAKiyB,MAAMC,SAAiBoB,aAAY,EAAM,CAC9Cx4C,KAAMrB,EAAKqB,KACX1H,MAAOqG,EAAKrG,MACZ2B,SAAU0E,EAAK1E,SACfiB,SAAUyD,EAAK85C,gBACf79C,WAAY+D,EAAK/D,WACjBZ,QAAS2E,EAAK3E,UAEhBkrB,KAAK8xB,kBAAmB,EACtB9xB,KAAKiyB,MAAMC,SAAiBJ,kBAAmB,EAC/C9xB,KAAKiyB,MAAMC,SAAiBC,YAAa,EACzCnyB,KAAKiyB,MAAMC,SAAiBE,aAAc,IAxOZ,2BA2OlC,SAAc9iD,GACZ,IAAI4gC,EAAO5gC,EAAEuB,OACT2iD,EAASxlB,IAAEkC,GAAM12B,KAAK,qBACtBg6C,EAAO9lD,QACT8lD,EAAOC,UA/OuB,sBAmPlC,SAASxjD,GACP,IAAIqhC,EACJ,GAAItR,KAAK5sB,MAAM1F,OAAQ,CACrB,IAAIgmD,EAAgB1zB,KAAK5sB,MAAMmC,KAAI,SAACo+C,GAClC,MAAO,CACLthD,KAAMshD,EAAE74C,KACR/D,MAAO48C,EAAEvgD,MACT2B,SAAU4+C,EAAE5+C,SACZD,QAAS6+C,EAAE7+C,QACXkB,SAAU29C,EAAEJ,gBACZ79C,WAAYi+C,EAAEj+C,eAIlB47B,EAAW,CACT9gC,KAAMwvB,KAAKxvB,KACXqJ,MAAO65C,GAGTpiB,EAASz3B,MAAM7L,KAAK,CAClBqE,KAAMpC,EAAI6K,KACV/D,MAAO9G,EAAImD,MACX2B,SAAU9E,EAAI8E,SACdD,QAAS7E,EAAI6E,QACbkB,SAAU/F,EAAIsjD,gBACd79C,WAAYzF,EAAIyF,kBAGlB47B,EAAW,CACT9gC,KAAMwvB,KAAKxvB,KACXqJ,MAAO,CACL,CACExH,KAAMpC,EAAI6K,KACV/D,MAAO9G,EAAImD,MACX2B,SAAU9E,EAAI8E,SACdD,QAAS7E,EAAI6E,QACbkB,SAAU/F,EAAIsjD,gBACd79C,WAAYzF,EAAIyF,cAMxBsqB,KAAK4zB,iBAAiBtiB,GACtBuiB,EAAcnnC,IAAI4kB,KA/Rc,wBAkSlC,SAAWrhC,GACT,IAAIqhC,EAEJ,GAAItR,KAAK5sB,MAAM1F,OAAQ,CACrB,IAAIgmD,EAAgB1zB,KAAK5sB,MAAMmC,KAAI,SAACo+C,GAClC,MAAO,CAAEthD,KAAMshD,EAAE74C,KAAM/D,MAAO48C,EAAEvgD,UAGlCk+B,EAAW,CACT9gC,KAAMwvB,KAAKxvB,KACXqJ,MAAO65C,GAGT,IAAIr1C,EAAM2hB,KAAK5sB,MAAMwI,QAAQ3L,GAC7BqhC,EAASz3B,MAAMjL,OAAOyP,EAAK,GAG7B2hB,KAAK4zB,iBAAiBtiB,GACtBuiB,EAAcnnC,IAAI4kB,KApTc,8BAuTlC,SAAiBl3B,GACf,IACIo3C,EADEz6C,EAAQipB,KAAKjpB,MAEfqD,EAAKP,QACP23C,EAAWp3C,EAAKP,MAAMtE,KAAI,SAAC+7B,GACzB,MAAO,CACLj/B,KAAMi/B,EAASj/B,KACf0E,MAAOu6B,EAASv6B,MAChBhC,SAAUu8B,EAASv8B,SACnBD,QAASw8B,EAASx8B,QAClBkB,SAAUs7B,EAASiiB,gBACnB79C,WAAY47B,EAAS57B,gBAI3B,IAAMiK,EAAyChS,OAAO8F,OAAO,MACvDiZ,EAAM,SAAS7S,EAAmBrJ,GACtC,GAAIqJ,GAASA,EAAMnM,OAAS,EAAG,CAC7B,IAAM0M,EAAgBrD,EAAcvG,GAAQ,GAC5CqJ,EAAMd,SAAQ,SAACU,GACbW,EAAKpM,KAAK,CACR8M,KAAMrB,EAAKpH,KACXe,MAAOqG,EAAK1C,MACZjC,QAAS2E,EAAK3E,QACdC,SAAU0E,EAAK1E,SACfiB,SAAUyD,EAAK85C,gBACf79C,WAAY+D,EAAK/D,gBAGnBiK,EAAiBnP,IAAQ,IAI/Bkc,EAAI8kC,EAAUxxB,KAAKxvB,QAxVa,0BA4VlC,WACE,IAAI4J,EAAQ4lB,KAAKjpB,MAAcipB,KAAKxvB,OAAS,GAE7C4J,EAAOA,EAAK7E,KAAI,SAACC,GACf,MAAO,CACLnD,KAAMmD,EAAEnD,MAASmD,EAAUsF,KAC3B/D,MAAOvB,EAAE2N,SAAY3N,EAAUpC,MAC/B2B,SAAUS,EAAET,SACZD,QAASU,EAAEV,YAGf++C,EAAcnnC,IAAItS,GAClB4lB,KAAK4wB,UAAW,IAxWgB,kBA2WlC,WACE5wB,KAAKmB,MAAQnB,KAAKmB,KAClBnB,KAAKiC,MAAM,cAAejC,KAAKmB,QA7WC,4EAgXlC,mHACQ3wB,EAAOwvB,KAAKxvB,KAEd8gC,EAAW,CACb9gC,KAAMA,EACNqJ,MAAOmmB,KAAKwxB,SAASj8C,KAAI,SAACkE,GAAD,MAAyB,CAChD1C,MAAO0C,EAAK1C,MACZ1E,KAAMoH,EAAK9D,YACXZ,SAAU0E,EAAK1E,SACfD,QAAS2E,EAAK3E,QACdkB,SAAUyD,EAAK85C,gBACf79C,WAAY+D,EAAK/D,gBAIfo+C,EAAU9zB,KAAKwxB,SAASt3C,QAAO,SAAC65C,GAAD,OAAsBA,EAAEh9C,WACzD+8C,EAAQpmD,OAAS,GAhBvB,gCAiBUwG,OAAegnB,WACnB,yBACE44B,EAAQv+C,KAAI,SAACw+C,GAAD,OAAYA,EAAEp+C,aAAeo+C,EAAE1hD,MAAQ0hD,EAAE/9C,YAAUo4C,KAAK,MAnB5E,OAsBMoD,EAAWxxB,KAAKwxB,SACjBt3C,QAAO,SAAC65C,GAAD,OAAqBA,EAAEh9C,SAC9BxB,KAAI,SAACkE,GAAD,MAAyB,CAC5B1C,MAAO0C,EAAK1C,MACZ1E,KAAMoH,EAAK9D,YACXZ,SAAU0E,EAAK1E,SACfD,QAAS2E,EAAK3E,QACdkB,SAAUyD,EAAK85C,gBACf79C,WAAY+D,EAAK/D,eAEfqB,EAAQipB,KAAKjpB,MACb4I,EAAyChS,OAAO8F,OAAO,MACvDiZ,EAAM,SAAS7S,EAAYrJ,GAC/B,GAAIqJ,GAASA,EAAMnM,OAAS,EAAG,CAC7B,IAAM0M,EAAgBrD,EAAcvG,GAAQ,GAC5CqJ,EAAMd,SAAQ,SAACU,GACbW,EAAKpM,KAAK,CACR8M,KAAMrB,EAAKpH,KACXe,MAAOqG,EAAK1C,MACZjC,QAAS2E,EAAK3E,QACdC,SAAU0E,EAAK1E,SACfiB,SAAUyD,EAAK85C,gBACf79C,WAAY+D,EAAK/D,gBAGnBiK,EAAiBnP,IAAQ,IAG/Bkc,EAAI8kC,EAAUxxB,KAAKxvB,MACnBqjD,EAAcnnC,IAAI4kB,GAClBtR,KAAK4wB,UAAW,EApDlB,iDAhXkC,8DAASpyB,QAMpBqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BACCuS,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,6BACAF,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,6BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,4BATLwrB,GAAe,gBAPnCvtB,eAAU,CACTmD,WAAY,CAAEke,cAAa2R,mBAAarC,kBACxC1wB,SAAUC,eAAW,CACnBsxB,KAAM/lB,OACN+kB,SAAUyC,YAGO1F,cCrB2Q,MCQ5R,I,UAAY,eACd,GACAzuB,EACAa,GACA,EACA,KACA,KACA,OAIa,U,2FCZA,kBACX,IAAMuzB,EAAc,0BAEdC,EAAgB,CAClBC,cAAe,CACXC,WAAY,GACZC,SAAU,KAGZC,EAAmB,SAACC,GACtB,wCACOL,GACAK,IAGX,MAAO,CAEH9nC,IAFG,SAEC+nC,GACA,IAAID,EAASD,EAAiBzD,OAAQ99C,IAAIkhD,IACpCQ,EAAY,iCACXF,GACAC,GAGP3D,OAAQpkC,IAAIwnC,EAAaQ,IAG7B1hD,IAZG,SAYCU,GACA,IAAI8gD,EAASD,EAAiBzD,OAAQ99C,IAAIkhD,IAC1C,OAAOM,EAAO9gD,KA7BX,I,gGCLf,SAASihD,EAAgBj8C,GACvB,IAAIk8C,EAAsC,GACtCpiD,EAAqD,GA0BzD,OAzBAkG,EAAKK,SAAQ,SAAUG,GACrB1G,EAAI0G,EAAKnE,UAAT,iCACKmE,GADL,IAEEiF,YAAkC,SAArBjF,EAAKiF,YAClB9E,SAAU,KACV0vB,UAAU,EACVrxB,UAAU,EACVmC,MAAO,UAGXlM,OAAOknD,KAAKriD,GAAKuG,SAAQ,SAAUtD,GACjC,IAAIyD,EAAO1G,EAAIiD,GACTq/C,EAAa57C,EAAK67C,eACxB,GAAKD,EAEE,GAAIA,KAActiD,EAAK,CAC5B,IAAItD,EAAIsD,EAAIsiD,GACN,aAAc5lD,GAAOA,EAAEmK,WAC3BnK,EAAEmK,SAAW,IAEfnK,EAAEmK,SAASrL,KAAKkL,QAEhB07C,EAAM5mD,KAAKkL,QARX07C,EAAM5mD,KAAKkL,MAWR07C,EAGM,IChCH59B,EDgCG,GAQbg+B,WAAY,SAAU9nD,GACpB,OAAO+H,OACJ0mC,KAAsC,CACrCC,IAAK,4BACL1uC,KAAMA,IAEPoE,MAAK,SAAC4G,GAAD,OAASy8C,EAAgBz8C,EAAI9C,WAQvC6/C,YAAa,SAAU/nD,GACrB,OAAO+H,OAAI0mC,KAAK,CACdC,IAAK,4BACL1uC,KAAMA,KAGVgoD,YAAa,SAAUpgD,EAAiBC,GACtC,OAAOE,OAAIjC,IAAI,CACb4oC,IAAK,4BACLU,OAAQ,CACNxnC,UACAC,eAONogD,YAAa,SAAUjoD,GACrB,OAAO+H,OAAIjC,IAAI,CACb4oC,IAAK,0BACLU,OAAQ,CAAEvlC,MAAO7J,MAUrBiI,gBAAiB,SACfjI,GAEA,OAAO+H,OAAI0mC,KAAK,CACdC,IAAK,0BACL1uC,KAAMA,KAOV4K,UAAW,SACT4B,EACA5E,GAGA,IAAM2G,EAAU/B,EAAV+B,MACFA,IACFA,EAAQ25C,mBAAmB35C,IAE7B,IAAIvO,EAAO,iCACNwM,GADG,IAEN5E,QAASA,IAEX,OAAOG,OAAI0mC,KAAK,CACdC,IAAK,uCAAyCngC,EAC9CvO,KAAMA,KAQVmoD,aAAc,WACZ,OAAOpgD,OAAI0mC,KAAK,CACdC,IAAK,wC,WC1HX,SAAY5kB,GAIVA,kBAIAA,qBARF,CAAYA,MAAkB,KAUf,OACbs+B,sBADa,SACS/3C,GACpB,OAAOtI,OACJ0mC,KAAK,CACJC,IAAK,iCAAmC5kB,EAAmBC,GAC3D/pB,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,eACP,CAAEA,IAAK,cACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,uBACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,sBAETmtC,QAAS,CACP,CACEntC,IAAK,cACLN,MAAO,cACP2tC,UAAW,aAEb,CACErtC,IAAK,mBACLN,MAAO,OACP2tC,UAAW,cAGfxjC,SAAUA,EACVyjC,oBAAqB,WACrBxwC,KAAM,SACN+kD,UAAW,aAGdjkD,MAAK,SAAC4G,GACL,IAAM0f,EAAQ1f,EAAI9C,MAAMG,KAAI,SAAC2D,GAC3B,wCACKA,GADL,IAEEG,SAAU,KACV0vB,UAAU,EACVrxB,UAAU,EACVqf,WAAYC,EAAmBC,GAC/BjB,YAAY,EACZxlB,KAAM,gBAGV,OAAOonB,MAIb49B,8BAjDa,SAiDiBxU,EAA6BzjC,GACzD,OAAOtI,OACJ0mC,KAAK,CACJC,IAAK,iCAAmC5kB,EAAmBy+B,IAC3DvoD,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,eACP,CAAEA,IAAK,cACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,uBACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,sBAETmtC,QAAS,CACP,CACEntC,IAAK,cACLN,MAAO,cACP2tC,UAAW,aAEb,CACErtC,IAAK,mBACLN,MAAO,OACP2tC,UAAW,cAGfxjC,SAAUA,EACVyjC,oBAAqBA,EACrBxwC,KAAM,SACN+kD,UAAW,aAGdjkD,MAAK,SAAC4G,GACL,IAAM0f,EAAQ1f,EAAI9C,MAAMG,KAAI,SAAC2D,GAC3B,wCACKA,GADL,IAEEG,SAAU,KACV0vB,UAAU,EACVrxB,UAAU,EACVqf,WAAYC,EAAmBy+B,IAC/Bz/B,YAAY,EACZxlB,KAAM,gBAGV,OAAOonB,OCrGA,GAIXrf,sBAAuB,WACnB,OAAOtD,OACF0mC,KAAK,CACFC,IAAK,iCAAiC5kB,EAAmBy+B,IACzDvoD,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,MACP,CAAEA,IAAK,eACP,CAAEA,IAAK,cACP,CAAEA,IAAK,uBACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,sBAEXmtC,QAAS,CACL,CACIntC,IAAK,cACLN,MAAO,cACP2tC,UAAW,aAEf,CACIrtC,IAAK,iBACLN,MAAO,QACP2tC,UAAW,cAGnBxjC,SAAU,KACVyjC,oBAAqB,gBACrBxwC,KAAM,SACN+kD,UAAW,aAGlBjkD,MAAK,SAAC4G,GAAD,OACFA,EAAI9C,MAAMG,KAAI,SAAC2D,GACX,IAAIgoC,EAAM,iCACHhoC,GADA,IAEHxB,UAAU,EACVqf,WAAYC,EAAmBy+B,MAEnC,OAAOvU,SAQvB1oC,eAAgB,SAAS+E,GACrB,OAAOtI,OACF0mC,KAAK,CACFC,IAAK,iCAAiC5kB,EAAmBy+B,IACzDvoD,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,MACP,CAAEA,IAAK,eACP,CAAEA,IAAK,cACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,uBACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,sBAEXmtC,QAAS,CACL,CACIntC,IAAK,cACLN,MAAO,cACP2tC,UAAW,cAGnBxjC,SAAUA,EACVyjC,oBAAqB,WACrBxwC,KAAM,SACN+kD,UAAW,aAGlBjkD,MAAK,SAAC4G,GAAD,OACFA,EAAI9C,MAAMG,KAAI,SAAC2D,GACX,IAAIgoC,EAAM,iCACHhoC,GADA,IAEHG,SAAU,KACV0vB,UAAU,EACVrxB,UAAU,EACVqf,WAAYC,EAAmBy+B,MAEnC,OAAOvU,SAQvBvoC,gBA9FW,SA+FPzL,EAAoCsD,GAEpC,OAAOyE,OACF0mC,KAAK,CACFC,IAAK,8BAAgCprC,EACrCtD,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,MACP,CAAEA,IAAK,eACP,CAAEA,IAAK,eACP,CAAEA,IAAK,cACP,CAAEA,IAAK,YACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,aACP,CAAEA,IAAK,cACP,CACIA,IAAK,eACLgiD,WAAY,cACZC,GAAI,UAER,CACIjiD,IAAK,eACLgiD,WAAY,gBACZC,GAAI,iBAQR,CAAEjiD,IAAK,kCAAmCiiD,GAAI,SAC9C,CACIjiD,IAAK,oBACLgiD,WAAY,WACZE,WAAW,EACXD,GAAI,mBAER,CACIjiD,IAAK,cACLgiD,WAAY,cACZE,WAAW,EACX/U,QAAS,CACL,CACIntC,IAAK,iBACLN,OAAO,EACP0tC,SAAU,SAM1BD,QAAS3zC,EAAK2zC,QACdtjC,SAAUrQ,EAAKqQ,SACf+B,MAAOpS,EAAKoS,MACZu2C,SAAU3oD,EAAK2oD,SACfC,OAAQ5oD,EAAK4oD,OACb9U,oBAAqB9zC,EAAK8zC,oBAC1BxwC,KAAMtD,EAAKsD,QAGlBc,MAAK,SAAC4G,GACH,IAAIgpC,EAAMhpC,EACCgpC,EAAI9rC,MAUf,OARA8rC,EAAI9rC,MAAQ8rC,EAAI9rC,MAAMG,KAAI,SAAA/H,GACtB,wCACOA,GADP,IAEIkK,UAAU,EACVq+C,YAAavoD,EAAEgD,UAIhB0wC,OCzKT,GAKV1oC,eALU,SAKK+E,GACX,OAAOtI,OACF0mC,KAAK,CACFC,IAAK,qEACL1uC,KAAM,CACFwX,OAAQ,CACJ,CAAEhR,IAAK,MACP,CAAEA,IAAK,eACP,CAAEA,IAAK,cACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,uBACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,sBAEXmtC,QAAS,CACL,CACIntC,IAAK,cACLN,MAAO,cACP2tC,UAAW,cAGnBxjC,SAAUA,EACVyjC,oBAAqB,WACrBxwC,KAAM,SACN+kD,UAAW,aAGlBjkD,MAAK,SAAC4G,GAAD,OACFA,EAAI9C,MAAMG,KAAI,SAAC2D,GACX,IAAIgoC,EAAM,iCACHhoC,GADA,IAEHG,SAAU,KACV0vB,UAAU,EACVrxB,UAAU,EACVqf,WAAYC,EAAmBC,KAEnC,OAAOiqB,UC1CZ,GAIbjpC,sBAJa,SAIS/K,GACpB,OAAO+H,OACJ0mC,KAAK,CACJC,IAAK,qDACL1uC,KAAMA,KAQZiL,6BAhBa,SAiBXjL,GAEA,OAAO+H,OACJ0mC,KAAK,CACJC,IAAK,2DACL1uC,KAAMA,IAEPoE,MAAK,SAAC4G,GACL,IAAI3J,EAAS,GAIb,OAHAA,EAAO6G,MAAQ8C,EAAIhL,KACnBqB,EAAO8G,WAAa6C,EAAI7C,WAEjB9G,MA8DbynD,cA3Fa,SA2FCtgD,GACZ,OAAOT,OAAIjC,IAAI,CACb4oC,IAAK,wCAA0ClmC,MC5FtC,G,UAAA,CAMX0D,gBANW,SAMK3D,EAAYjF,GACxB,OAAOyE,OAAI0mC,KAAK,CACZC,IAAK,uCAAyCprC,EAC9CtD,KAAK,CACDqQ,SAAU9H,EAAGgb,iBCVd,GACburB,eADa,WAEX,OAAO/mC,OAAIjC,IAAkB,CAAE4oC,IAAK,+BAGtCK,YALa,SAKD94B,GACV,OAAOlO,OAAIjC,IAAI,CACb4oC,IAAK,sBAAF,OAAwBz4B,MAI/B+4B,mBAXa,SAWMC,GACjB,OAAOlnC,OAAI0mC,KAAK,CACdC,IAAK,6BACL1uC,KAAMivC,KAIV8Z,QAlBa,SAkBLl/C,GACN,OAAO9B,OAAIjC,IAAI,CACb4oC,IAAK,iBACLU,OAAQ,CACNvlC,YAKNm/C,oBA3Ba,SA2BOxgD,GAClB,OAAOT,OAAIjC,IAAI,CACb4oC,IAAK,4BACLU,OAAQ,CACN5mC,kBC/BO,GACb6lC,MADa,SACPxkC,EAAe0kC,GACnB,OAAOC,OAAOC,KAAK,CACjBC,IAAK,6BACL1uC,KAAM,CAAE6J,QAAO0kC,gBCGN,QACbgB,OACAC,UACAxnC,KACAoD,WACAG,QACAT,UACAmB,QACAqe,a,oPCjBF,IAAIsI,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,mBAAmBrB,EAAI0B,GAAI1B,EAAIo2B,KAAU,OAAE,SAASj9C,GAAM,OAAOinB,EAAG,eAAe,CAACzsB,IAAIwF,EAAKnC,MAAMwpB,MAAM,CAAC,KAAOrnB,EAAK,YAAc6mB,EAAIq2B,YAAY,SAAWr2B,EAAIs2B,SAAS,SAAWt2B,EAAIu2B,SAAS,SAAWv2B,EAAIqY,eAAc,IAClVzX,EAAkB,G,oFCDlB,EAAS,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACM,GAAG,CAAC,SAAW,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIq2B,YAAYr2B,EAAI7mB,OAAO,MAAQ,SAAS0oB,GAAyD,OAAjDA,EAAOe,iBAAiBf,EAAOkX,kBAAyB,WAAe,OAAO/Y,EAAIs2B,SAASt2B,EAAI7mB,OAAU7K,MAAM,KAAM46B,cAAc,CAAC9I,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI7mB,KAAa,SAAE+qB,WAAW,kBAAkB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI7mB,KAAKxB,UAAUqoB,EAAIgT,GAAGhT,EAAI7mB,KAAKxB,SAAS,OAAO,EAAGqoB,EAAI7mB,KAAa,UAAGunB,GAAG,CAAC,MAAQ,SAASmB,GAAQA,EAAOkX,mBAAoB,OAAS,SAASlX,GAAQ,IAAIoR,EAAIjT,EAAI7mB,KAAKxB,SAASu7B,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,GAAIrT,EAAIwL,KAAKxL,EAAI7mB,KAAM,WAAY85B,EAAIK,OAAO,CAACF,KAAaC,GAAK,GAAIrT,EAAIwL,KAAKxL,EAAI7mB,KAAM,WAAY85B,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAYrT,EAAIwL,KAAKxL,EAAI7mB,KAAM,WAAYg6B,OAAU/S,EAAG,OAAO,CAACiB,YAAY,gBAAgB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAmB,SAAhB/B,EAAIqY,SAAsBrY,EAAI7mB,KAAK4B,KAAwB,SAAhBilB,EAAIqY,SAAsBrY,EAAI7mB,KAAKtD,OAASmqB,EAAI7mB,KAAKpD,SAAU,IAAIiqB,EAAI+B,GAAG/B,EAAI7mB,KAAK9F,OAAO,IAAI2sB,EAAI+B,GAAmB,SAAhB/B,EAAIqY,SAAsBrY,EAAI7mB,KAAK7C,MAAQ0pB,EAAI7mB,KAAK3C,uBACl5C,EAAkB,GCGDggD,EAAY,qJAAS/3B,QAChBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,2BACEk1B,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,kCACFzG,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,+BALLwzB,EAAY,gBADhCv1B,QACoBu1B,WCJgS,I,YCOjT11B,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QCXM21B,EAAQ,qJAASh4B,QACZqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,2BACEk1B,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,4BACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,kCACFzG,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,+BANLyzB,EAAQ,gBAH5Bx1B,eAAU,CACTmD,WAAY,CAAEsyB,mBAEKD,WCP4R,ICO7S,EAAY,eACd,EACA12B,EACAa,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAAErB,EAAe,YAAEI,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,SAAS,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAkB,eAAEkE,WAAW,mBAAmB7C,YAAY,eAAeb,MAAM,CAAC,SAAWR,EAAI22B,eAAe,KAAO,GAAG,GAAK,IAAIj2B,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAI+0B,EAAgBrmC,MAAM1iB,UAAUsM,OAAOpM,KAAK8zB,EAAO/wB,OAAO6I,SAAQ,SAAS7G,GAAG,OAAOA,EAAE6E,YAAWnC,KAAI,SAAS1C,GAAG,IAAI+jD,EAAM,WAAY/jD,EAAIA,EAAEgkD,OAAShkD,EAAEO,MAAM,OAAOwjD,KAAO72B,EAAI+2B,eAAel1B,EAAO/wB,OAAOkmD,SAAWJ,EAAgBA,EAAc,MAAM52B,EAAI0B,GAAI1B,EAAa,WAAE,SAASzoB,EAAQ+G,GAAK,OAAO8hB,EAAG,SAAS,CAACzsB,IAAI2K,EAAImnB,SAAS,CAAC,MAAQluB,IAAU,CAACyoB,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIi3B,SAAsB1/C,EAAQC,YAAcD,EAAQG,sBAAsB,GAAG0oB,EAAG,MAAM,CAACiB,YAAY,cAAcrB,EAAIe,KAAKX,EAAG,MAAM,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoBrB,EAAI0B,GAAI1B,EAAS,OAAE,SAAS7mB,GAAM,OAAOinB,EAAG,eAAe,CAACzsB,IAAIwF,EAAKzD,GAAG8qB,MAAM,CAAC,KAAOrnB,EAAK,SAAW6mB,EAAIk3B,SAAS,QAAUl3B,EAAIrc,QAAQ,SAAWqc,EAAIi3B,UAAUv2B,GAAG,CAAC,WAAaV,EAAIm3B,WAAW,QAAUn3B,EAAIo3B,cAAa,QAC/sC,EAAkB,GCDlB,G,oBAAS,WAAa,IAAIp3B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,UAAU,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQf,MAAM,CAAG,SAA8B,OAAhBN,EAAIrc,SAAmBqc,EAAI7mB,KAAKzD,KAAOsqB,EAAIrc,QAAQjO,IAAcgrB,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIm3B,WAAWn3B,EAAI7mB,SAAS,CAACinB,EAAG,OAAO,CAACiB,YAAY,YAAYX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB,WAAe,OAAO/Y,EAAIk3B,SAASl3B,EAAI7mB,OAAU7K,MAAM,KAAM46B,cAAc,CAAGlJ,EAAI7mB,KAAKiF,YAA+E4hB,EAAI7mB,KAAa,SAAEinB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,gDAAgDJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,8CAAnLJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,4CAA4MJ,EAAG,OAAO,CAACiB,YAAY,aAAa,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIi3B,SAAsBj3B,EAAI7mB,KAAKlD,SAAW+pB,EAAI7mB,KAAKjD,iBAAmB8pB,EAAI7mB,KAAa,SAAEinB,EAAG,MAAM,CAACiB,YAAY,SAASrB,EAAI0B,GAAI1B,EAAI7mB,KAAa,UAAE,SAASmH,GAAO,OAAO8f,EAAG,iBAAiB,CAACzsB,IAAI2M,EAAM5K,GAAG8qB,MAAM,CAAC,KAAOlgB,EAAM,SAAW0f,EAAIk3B,SAAS,QAAUl3B,EAAIrc,QAAQ,SAAWqc,EAAIi3B,UAAUv2B,GAAG,CAAC,WAAaV,EAAIm3B,WAAW,QAAUn3B,EAAIo3B,cAAa,GAAGp3B,EAAIe,SACrpC,EAAkB,GCMDs2B,G,UAAY,wDAAjC,iD,0BAkBE,EAAAznB,MAAgB,EAChB,EAAA0nB,MAAgB,IAChB,EAAAC,MAAa,KApBf,EAAiC,iDAgC/B,SAAWp+C,GACT,IAAMq+C,EAAQv3B,KACdA,KAAK2P,QACc,IAAf3P,KAAK2P,MACP3P,KAAKs3B,MAAQ/kD,YAAW,WACtBglD,EAAMt1B,MAAM,aAAc/oB,GAC1Bq+C,EAAM5nB,MAAQ,IACb3P,KAAKq3B,QAERrlD,aAAaguB,KAAKs3B,OAClBt3B,KAAKiC,MAAM,UAAW/oB,GACtB8mB,KAAK2P,MAAQ,KA3Cc,qBAmD/B,SAAQz2B,GACN8mB,KAAKiC,MAAM,UAAW/oB,OApDO,GAASslB,SAOhBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,2BACEk1B,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACazG,gBAAtCC,eAAK,CAAEtyB,KAAM7C,OAAQq1B,QAAS,QAAQ,8BACfH,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,+BAVLq0B,EAAY,gBAHhCp2B,eAAU,CACT3uB,KAAM,oBAEa+kD,WCPgS,ICOjT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,gCCJMI,EAAQ,wDAA7B,iD,0BAkBI,EAAAd,gBAA0B,EAS1B,EAAAI,eAAiC,GA3BrC,EAA6B,iDAqCzB,SAAW59C,GACP8mB,KAAKiC,MAAM,aAAc/oB,KAtCJ,qBAyCzB,SAAQA,GACJ8mB,KAAKiC,MAAM,UAAW/oB,KA1CD,qCAoDzB,SAAwB2uB,EAA0B4vB,GAC1CA,EAAS3iD,SAAW+yB,EAAS/yB,SAAW2iD,EAAS3iD,UAAY+yB,EAAS/yB,SACtEkrB,KAAKiC,MAAM,aAAc4F,KAtDR,gCA2DzB,SAAmBA,GAA0B,WAEnC0vB,EAAQv3B,KACR03B,EAAe,WAEjBH,EAAMT,eAAiBjvB,EAAS3tB,QAAO,SAAA1E,GAAC,OAAmB,IAAfA,EAAEkC,YAAmB,IAGrE,GAAImwB,EAIA,GAAuC,IAAnC7H,KAAKtmB,QAAQiD,mBAA0B,CAMvC,IAAMg7C,EAAW9vB,EAAS3tB,QAAO,SAAA09C,GAC7B,OAAOA,EAAI9iD,SAAW,EAAK4E,QAAQiD,sBAInCg7C,EAASjqD,OAAS,GAElBsyB,KAAK02B,gBAAiB,EACtB12B,KAAK82B,eAAiBa,EAAS,GAC/B33B,KAAKiC,MAAM,aAAc01B,EAAS,KAElCD,SAKJA,QA7Fa,GAASl5B,QAQXqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,4BACGuS,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACazG,gBAAtCC,eAAK,CAAEtyB,KAAM7C,OAAQq1B,QAAS,QAAQ,8BAChBH,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,gCACiBuS,gBAAvCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAQ,kCAChBH,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,+BAuCxBF,gBADC0G,eAAM,mBACP,4CAOA1G,gBADC0G,eAAM,cACP,uCA3DiBiuB,EAAQ,gBAP5Bx2B,eAAU,CACP3uB,KAAM,YACN8xB,WAAY,CAAEizB,gBACdn2B,SAAUC,eAAW,CACjBxnB,QAASrF,YAGImjD,WCd4R,ICO7S,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIz3B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,2BAA2Bb,MAAM,CAAC,MAAQ,SAAS,CAACR,EAAI6N,GAAG,GAAGzN,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAAGJ,EAAIrmB,QAAQK,OAA8wBgmB,EAAIe,KAA1wBX,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAiB,YAAE6wB,WAAW,sBAAsB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI3sB,MAAMyE,aAAakoB,EAAIgT,GAAGhT,EAAI3sB,MAAMyE,YAAY,OAAO,EAAGkoB,EAAI3sB,MAAiB,aAAGqtB,GAAG,CAAC,MAAQ,SAAUnxB,GAAK,OAAOywB,EAAI83B,YAAYvoD,EAAEuB,OAAO2V,UAAY,OAAS,SAASob,GAAQ,IAAIoR,EAAIjT,EAAI3sB,MAAMyE,YAAYo7B,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,GAAIrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,cAAe4/B,EAAIK,OAAO,CAACF,KAAaC,GAAK,GAAIrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,cAAe4/B,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAYrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,cAAe8/B,aAAyB/S,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,wBAAwBlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,oBAAoBlC,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,QAAQ,CAACiB,YAAY,0BAA0Bb,MAAM,CAAC,MAAQ,SAAS,CAACR,EAAI6N,GAAG,GAAGzN,EAAG,QAAQ,CAAEJ,EAAW,QAAE,CAACA,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,SAAS,MAAOtC,EAAI3qB,MAAY,OAAE2qB,EAAI0B,GAAI1B,EAAS,OAAE,SAAS7mB,EAAKmF,GAAK,OAAO8hB,EAAG,iBAAiB,CAACzsB,IAAI2K,EAAIkiB,MAAM,CAAC,KAAOrnB,EAAK,SAAW6mB,EAAIi3B,SAAS,SAAWj3B,EAAIs2B,SAAS,YAAct2B,EAAI+3B,kBAAiB/3B,EAAIe,MAAM,KAAOf,EAAItrB,SAA+B,GAApBsrB,EAAI3qB,MAAM1H,OAAyNqyB,EAAIe,KAAhNX,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQb,MAAM,CAAC,IAAM,sCAAsCJ,EAAG,OAAO,CAACiB,YAAY,gBAAgB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,+BACv4D,EAAkB,CAAC,WAAa,IAAItC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,OAAOA,EAAG,OAAOA,EAAG,UAAU,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,OAAOA,EAAG,OAAOA,EAAG,W,YCD3d,EAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACE,MAAM,CAAC,WAAYN,EAAIroB,UAAyB+oB,GAAG,CAAC,SAAW,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAI+3B,YAAY/3B,EAAI7mB,KAAM6mB,EAAIrmB,QAAQK,SAAS,MAAQ,SAAS6nB,GAAiC,OAAzBA,EAAOkX,kBAAyB,WAAe,OAAO/Y,EAAIs2B,SAASt2B,EAAI7mB,OAAU7K,MAAM,KAAM46B,cAAc,CAAC9I,EAAG,KAAK,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAY,SAAEkE,WAAW,aAAa1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIroB,UAAUqoB,EAAIgT,GAAGhT,EAAIroB,SAAS,OAAO,EAAGqoB,EAAY,UAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIroB,SAASu7B,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIroB,SAASs7B,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIroB,SAASs7B,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIroB,SAASw7B,YAAe/S,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIi3B,UAAuC,SAAhBj3B,EAAIi3B,SAAsBj3B,EAAI7mB,KAAK7G,KAAwB,SAAhB0tB,EAAIi3B,SAAsBj3B,EAAI7mB,KAAKtD,OAASmqB,EAAI7mB,KAAKpD,YAAcqqB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIi3B,UAAuC,SAAhBj3B,EAAIi3B,SAAsBj3B,EAAI7mB,KAAK7C,MAA6B,IAApB0pB,EAAI7mB,KAAK3C,QAAgBwpB,EAAI7mB,KAAK3C,QAAUwpB,EAAI7mB,KAAK7C,UAAY8pB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIi3B,UAAuC,SAAhBj3B,EAAIi3B,SAAsBj3B,EAAI7mB,KAAKxC,aAA2C,IAA3BqpB,EAAI7mB,KAAKvC,eAAuBopB,EAAI7mB,KAAKvC,eAAiBopB,EAAI7mB,KAAKxC,iBAAmBypB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIi3B,UAAuC,SAAhBj3B,EAAIi3B,SAAsBj3B,EAAI7mB,KAAKlD,SAAmC,IAAvB+pB,EAAI7mB,KAAKjD,WAAmB8pB,EAAI7mB,KAAKjD,WAAa8pB,EAAI7mB,KAAKlD,aAAemqB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKhC,WACrqD,EAAkB,GCWD6gD,EAAc,wDAAnC,iD,0BAYE,EAAArgD,UAAoB,EAZtB,EAAmC,wDA6BjC,SAAkBsgD,GAChBh4B,KAAKtoB,SAAWsgD,IA9Be,qBAiCjC,WACEh4B,KAAKtoB,SAAWsoB,KAAK9mB,KAAKxB,aAlCK,GAAS8mB,QAClBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,2BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,+BACEF,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,kCAyB1BzG,gBADC0G,eAAM,kBACP,sCA7BmBwuB,EAAc,gBARlC/2B,eAAU,CACT3uB,KAAM,iBACN4uB,SAAU,kBACLC,eAAW,CACZxnB,QAASrF,aAIM0jD,WCZkS,ICOnT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCHME,EAAU,wDAA/B,iD,0BAwBE,EAAApgD,aAAuB,EAxBzB,EAA+B,0CAc7B,WACE,OAAOmoB,KAAK5sB,MAAMgC,QAfS,gCA0C7B,SAAmB4iD,GACjBh4B,KAAKnoB,YAAcmgD,IA3CQ,qBAoD7B,WACEh4B,KAAKnoB,YAAcmoB,KAAK5sB,MAAMyE,gBArDH,GAAS2mB,QACdqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACCk1B,gBAAxBC,eAAK,CAAEtyB,KAAMyyB,WAAW,8BACDJ,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,+BACEF,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,+BACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,kCACAzG,gBAAzBC,eAAK,CAAEtyB,KAAM84B,YAAY,kCAoC1BzG,gBADC0G,eAAM,sBACP,uCA1CmB0uB,EAAU,gBAT9Bj3B,eAAU,CACT3uB,KAAM,aACN8xB,WAAY,CAAE4zB,kBACd92B,SAAU,kBACLC,eAAW,CACZxnB,QAASrF,aAIM4jD,WCf8R,ICO/S,GAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIl4B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,kBAAkB,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI1tB,MAAM,KAAK8tB,EAAG,OAAO,CAACiB,YAAY,UAAU,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI+yB,OAAO,UACpO,GAAkB,GCKDoF,I,UAAc,qJAAS15B,SAClBqE,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,4BACAF,gBAAvBC,eAAK,CAAEtyB,KAAMqW,UAAU,6BAFLqxC,GAAc,gBAHlCl3B,eAAU,CACT3uB,KAAM,oBAEa6lD,cCNkS,MCOnT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIn4B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,UAAU,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQf,MAAM,CAAE3oB,SAAUqoB,EAAI7mB,KAAKxB,UAAW+oB,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIjmB,OAAOimB,EAAI7mB,SAAS,CAAC6mB,EAAI6N,GAAG,GAAGzN,EAAG,OAAO,CAACiB,YAAY,aAAa,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAK6mB,EAAIiJ,cAAc,OAAQjJ,EAAe,YAAEI,EAAG,OAAO,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,IAAI,CAACE,MAAM,CAACN,EAAI7mB,KAAK6vB,SAAW,UAAY,iBAAiBhJ,EAAIe,OAAOX,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,WAAW,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAI7mB,KAAa,SAAE+qB,WAAW,kBAAkB1D,MAAM,CAAC,KAAOR,EAAI7mB,QAAQ6mB,EAAI0B,GAAI1B,EAAI7mB,KAAa,UAAE,SAASmH,GAAO,OAAO8f,EAAG,iBAAiB,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAI7mB,KAAa,SAAE+qB,WAAW,kBAAkBvwB,IAAI2M,EAAM3M,IAAI6sB,MAAM,CAAC,KAAOlgB,EAAM,YAAc0f,EAAIiJ,YAAY,cAAgBjJ,EAAImJ,cAAc,iBAAmBnJ,EAAIoJ,kBAAkB1I,GAAG,CAAC,OAAS,SAAU2I,GAAc,OAAOrJ,EAAIkC,MAAM,SAAUmH,WAAqB,MAC3hC,GAAkB,CAAC,WAAa,IAAIrJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACiB,YAAY,aAAa,CAACjB,EAAG,IAAI,CAACiB,YAAY,oBCD/J,GAAS,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAMJ,EAAI0B,GAAI1B,EAAI7mB,KAAU,OAAE,SAASO,EAAK4C,GAAO,OAAO8jB,EAAG,OAAO,CAACzsB,IAAI2I,EAAMkkB,MAAM,CAAC,KAAO9mB,QAAU,IACtM,GAAkB,GCDlB,I,kDAAS,WAAa,IAAIsmB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,SAASX,GAAG,CAAC,MAAQ,SAASmB,GAAgC,OAAxBA,EAAOe,iBAAwB5C,EAAIjmB,OAAOimB,EAAItmB,SAAS,CAAC0mB,EAAG,MAAM,CAACiB,YAAY,QAAQf,MAAM,CAAE3oB,SAAUqoB,EAAItmB,KAAK/B,WAAY,CAACyoB,EAAG,OAAO,CAACiB,YAAY,YAAY,CAAErB,EAAItmB,KAAc,UAAE0mB,EAAG,MAAM,CAACqJ,IAAI,QAAQjJ,MAAM,CAAC,IAAMR,EAAIo4B,OAASp4B,EAAItmB,KAAKtD,WAAWsqB,GAAG,CAAC,MAAQV,EAAIq4B,cAAcj4B,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,sCAAsCJ,EAAG,OAAO,CAACiB,YAAY,aAAa,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAItmB,KAAK9D,aAAa,aAC3jB,GAAkB,GCYD68C,I,UAAI,wDAAzB,iD,0BAEI,EAAA2F,OAAA,UAAoBxzC,SAAS0zC,SAA7B,aAA0C1zC,SAAS2zC,MAFvD,EAAyB,6CAyBrB,SAAO7+C,GACHA,EAAK/B,UAAY+B,EAAK/B,SACtBsoB,KAAKu4B,WAAW9+C,KA3BC,wBA8BrB,gBAEkDnH,GAAzC0tB,KAAKiyB,MAAM/7C,OACX8pB,KAAKiyB,MAAM/7C,MAA2BpF,MAAQoD,OAAOyQ,SAAS/U,OAE9DowB,KAAKiyB,MAAM/7C,MAA2BpF,IACnC,sCApCS,GAAS0tB,SASNqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BATP6kD,GAAI,gBARxBxxB,eAAU,CACP3uB,KAAM,OACN+xB,QAAS,kBACFE,eAAa,CACZi0B,WAAYlkD,aAIHm+C,cCbwR,MCOzS,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCFMgG,GAAQ,yKA0BzB,WACI,IAEqB,EAFjBC,EAAiBz4B,KAAK04B,YAAYC,SAAQ,SAACl/C,GAAD,OAAwBA,EAAK/D,cAEvEsqB,KAAK9mB,KAAKW,QACV,UAAAmmB,KAAK9mB,KAAKW,aAAV,SAAiBd,SAAQ,SAACU,GAClBg/C,EAAez/C,SAASS,EAAK/D,cAC7B+D,EAAK/B,UAAW,WAhCP,GAAS8mB,QAMVqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BANP6qD,GAAQ,gBAT5Bx3B,eAAU,CACP3uB,KAAM,WACN8xB,WAAY,CAAEquB,SACdvxB,SAAU,kBACHC,eAAW,CACVw3B,YAAaE,aAIJJ,cChB4R,MCO7S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCVMK,GAAc,wDAAnC,iD,0BAuCI,EAAAxB,MAAgB,IAChB,EAAAyB,OAAiB,EACjB,EAAAxB,MAAa,KAzCjB,EAAmC,iDAiF/B,SAAWzvB,QACSv1B,GAAZu1B,IAAsC,IAAbA,GACzB7H,KAAKiC,MAAM,SAAUjC,KAAK9mB,QAnFH,yBA6F/B,WACI,MAAqC,kBAA1B8mB,KAAKmJ,iBACJnJ,KAAK9mB,KAAa8mB,KAAKmJ,kBAExBnJ,KAAKmJ,iBAAiBnJ,KAAK9mB,QAjGX,oBAqG/B,SAAOA,GACH8mB,KAAKiC,MAAM,SAAU/oB,OAtGM,GAASslB,QA0BhBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACiBk1B,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,mCACIH,gBAA5CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,cAAc,qCACTH,gBAAnCC,eAAK,CAAEtyB,KAAM,CAACuyB,OAAQuG,aAAa,wCAoDpCzG,gBADC0G,eAAM,kBACP,gCAjFiBsvB,GAAc,gBAJlC73B,eAAU,CACP3uB,KAAM,iBACN8xB,WAAY,CAAEq0B,gBAEGK,cCRkS,MCOnT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI94B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,YAAYrB,EAAI0B,GAAI1B,EAAS,OAAE,SAAS7mB,EAAKmD,GAAO,OAAO8jB,EAAG,iBAAiB,CAACzsB,IAAI2I,EAAMkkB,MAAM,CAAC,KAAOrnB,EAAK,YAAc6mB,EAAIiJ,YAAY,cAAgBjJ,EAAImJ,cAAc,iBAAmBnJ,EAAIoJ,kBAAkB1I,GAAG,CAAC,WAAaV,EAAIgC,WAAW,OAAS,SAAU1hB,GAAS,OAAO0f,EAAIkC,MAAM,SAAU5hB,UAAe,IAC9a,GAAkB,GCQD04C,GAAc,4KAc/B,SAAW7/C,GACP8mB,KAAKiC,MAAM,aAAc/oB,OAfE,GAASslB,QAOjBqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BACkBuS,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,mCACIH,gBAA5CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,cAAc,qCACTH,gBAAnCC,eAAK,CAAEtyB,KAAM,CAACuyB,OAAQuG,aAAa,wCAVnByvB,GAAc,gBAJlC/3B,eAAU,CACP3uB,KAAM,iBACN8xB,WAAY,CAAE00B,sBAEGE,cCTkS,MCOnT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIh5B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAQ,KAAEI,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAW,QAAEkE,WAAW,YAAY7C,YAAY,+BAA+B,CAACjB,EAAG,MAAM,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,MAAM,CAACiB,YAAY,wCAAwC,CAACjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAAErB,EAAIsxB,OAAc,QAAElxB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,4CAA4CJ,EAAG,MAAM,CAACqJ,IAAI,QAAQjJ,MAAM,CAAC,IAAMR,EAAIsxB,OAAOzV,IAAI,IAAM,UAAUnb,GAAG,CAAC,MAAQV,EAAIi5B,qBAAqB74B,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,KAAK,CAACiB,YAAY,iCAAiC,CAACjB,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIi3B,SAAsBj3B,EAAI7mB,KAAK7G,KAAwB,SAAhB0tB,EAAIi3B,SAAsBj3B,EAAI7mB,KAAKtD,OAASmqB,EAAI7mB,KAAKpD,cAAgBqqB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,IAAI,CAACiB,YAAY,uBAAuBZ,YAAY,CAAC,QAAU,OAAOD,MAAM,CAAC,KAAQ,UAAaR,EAAI7mB,KAAU,QAAK,CAACinB,EAAG,IAAI,CAACiB,YAAY,4BAA4BjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,cAAcX,GAAG,CAAC,MAAQV,EAAIuQ,cAAc,CAACnQ,EAAG,IAAI,CAACiB,YAAY,yBAAyBjB,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAAkB,SAAhBrB,EAAIi3B,SAAqB72B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAK7C,OAAO0pB,EAAI+B,GAAG/B,EAAI7mB,KAAKxC,aAAe,MAAQqpB,EAAI7mB,KAAKxC,aAAe,OAAOypB,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAK3C,SAASwpB,EAAI+B,GAAG/B,EAAI7mB,KAAKvC,gBAAkBopB,EAAI7mB,KAAK3C,QAAU,MAAQ,IAAMwpB,EAAI7mB,KAAKvC,eAAiB,SAASwpB,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAAkB,SAAhBrB,EAAIi3B,SAAqB72B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKlD,UAAU+pB,EAAI+B,GAAG/B,EAAI7mB,KAAK5B,QAAU,MAAQyoB,EAAI7mB,KAAK5B,QAAU,OAAO6oB,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKjD,YAAY8pB,EAAI+B,GAAG/B,EAAI7mB,KAAK1B,WAAauoB,EAAI7mB,KAAKjD,WAAa,MAAQ,IAAM8pB,EAAI7mB,KAAK1B,UAAY,SAAS2oB,EAAG,MAAM,CAACiB,YAAY,iCAAiCjB,EAAG,QAAQ,CAACiB,YAAY,YAAYb,MAAM,CAAC,MAAQ,SAAS,CAACR,EAAI6N,GAAG,GAAGzN,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACJ,EAAI6N,GAAG,GAAGzN,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,IAAI,CAACiB,YAAY,oBAAoBb,MAAM,CAAC,KAAQ,UAAaR,EAAI7mB,KAAU,QAAK,CAAC6mB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKnC,YAAYgpB,EAAI6N,GAAG,GAAGzN,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,OAAO,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKlC,eAAempB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,iBAAiBjB,EAAG,KAAK,CAACiB,YAAY,iBAAiBrB,EAAI6N,GAAG,GAAGzN,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,OAAO,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKhC,KAAK,IAAI6oB,EAAI+B,GAAG/B,EAAIk5B,OAAOl5B,EAAI7mB,0BAA0B6mB,EAAIe,MACz/E,GAAkB,CAAC,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,MAAMJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAAS,WAAa,IAAIR,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,IAAI,CAACiB,YAAY,sCAAsC,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,IAAI,CAACiB,YAAY,uCAAuC,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,IAAI,CAACiB,YAAY,0C,aCM/tB83B,GAAU,wDAA/B,iD,0BAWI,EAAAC,SAAmB,EACnB,EAAA9H,OAAS,CACLzV,IAAK,GACLnnC,SAAS,GAGb,EAAA2kD,mBAA6B,GAjBjC,EAA+B,oDA0B3B,SAAcpB,GACVh4B,KAAKo5B,mBAAqBp5B,KAAKzoB,YAC/ByoB,KAAKq5B,cAAcrB,KA5BI,qBAqC3B,WACIh4B,KAAKq5B,cAAcr5B,KAAK9mB,QAtCD,oBA+C3B,SAAOA,GACH,OAAIA,EAAK7B,UACL,iBAAiB6B,EAAK7B,UAAtB,KAEG,KAnDgB,yBAsD3B,WACI2oB,KAAKm5B,SAAU,IAvDQ,2BA0D3B,SAAcjgD,GAA+B,WACzC8mB,KAAKm5B,UAAUjgD,EACfg2C,QAAMmC,OAAOr+C,KAAQ,OAAJkG,QAAI,IAAJA,OAAA,EAAAA,EAAMnC,QAAS,IAAIzF,MAAK,SAACsqC,GACtC,EAAKyV,OAAOzV,IAAMA,EAClB,EAAKyV,OAAO58C,SAAU,OA9DH,2BAkE3B,gBAEkDnC,GAAzC0tB,KAAKiyB,MAAM/7C,OACX8pB,KAAKiyB,MAAM/7C,MAA2BpF,MAAQoD,OAAOyQ,SAAS/U,OAE5DowB,KAAKiyB,MAAM/7C,MAA2BpF,IAAM,oCAvE5B,2BA2E3B,WACI,GAAGkvB,KAAK9mB,KAAM,CACV,IAAIogD,EAAUt5B,KAAK9mB,KAAKzD,GAAGmG,QAAQ,KAC/B8gC,EAAU1c,KAAK9mB,KAAKzD,GAAG22B,UAAUktB,EAAU,GAE3CC,EAAU,6BAAH,OAAgC7c,EAAhC,iBAEX,GAAI1c,KAAK8N,QACL55B,OAAOyQ,SAAS/U,KAAO2pD,OAELrlD,OAAOitB,KAAKo4B,QArFf,GAAS/6B,QACZqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,mCACAF,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,gCAuBxBF,gBADC0G,eAAM,SACP,mCA1BiB2vB,GAAU,gBAH9Bl4B,eAAU,CACP3uB,KAAM,gBAEW6mD,cCPkR,MCOnS,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,6CClBf,IAAIp5B,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,OAAS,+BAA+B,MAAQR,EAAIsC,GAAG,wBAAwB,MAAO,EAAK,UAAW,EAAK,QAAS,GAAM5B,GAAG,CAAC,OAASV,EAAIwC,SAAS,CAACpC,EAAG,MAAM,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,gBAAgB,CAACI,MAAM,CAAC,MAAQR,EAAIy5B,SAAS/4B,GAAG,CAAC,QAAUV,EAAI05B,UAAU,CAACt5B,EAAG,MAAM,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACiB,YAAY,2BAA2B,CAACjB,EAAG,gBAAgB,CAACI,MAAM,CAAC,MAAQR,EAAI25B,WAAWj5B,GAAG,CAAC,QAAUV,EAAI45B,gBAAgB,CAACx5B,EAAGJ,EAAIc,UAAU,CAAC5wB,IAAI,YAAYwwB,GAAG,CAAC,KAAOV,EAAIoB,KAAK,OAASpB,EAAIwC,WAAW,IAAI,QAAQ,MAC/oB5B,EAAkB,G,gMCDlB,EAAS,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,4BAA4B,CAACjB,EAAG,KAAK,CAACiB,YAAY,kBAAkBrB,EAAI0B,GAAI1B,EAAc,YAAE,SAAS7mB,EAAKmD,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,GAAO,CAAC8jB,EAAG,IAAI,CAACiB,YAAY,aAAaf,MAAM,CAAEu5B,OAAQ1gD,EAAKxB,UAAW+oB,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI85B,UAAU3gD,MAAS,CAAC6mB,EAAI4B,GAAG5B,EAAI+B,GAAG5oB,EAAK7G,cAAa,GAAG0tB,EAAIyC,GAAG,YAAY,IAClb,EAAkB,GCKDs3B,G,UAAa,2KAe9B,SAAU5gD,GACN8mB,KAAK+5B,WAAWxkD,KAAI,SAAC/H,GACdA,EAAE6E,OAAS6G,EAAK7G,KACf7E,EAAEkK,UAAW,GAEblK,EAAEkK,UAAW,EACVlK,EAAE6L,UACD7L,EAAE6L,SAAS9D,KAAI,SAAC7C,GACZA,EAAEgF,UAAW,SAM7BsoB,KAAKiC,MAAM,UAAWjC,KAAK+5B,gBA7BD,GAASv7B,SAOHqE,gBAAnCm3B,eAAS,QAAS,CAAExpD,KAAM8f,SAAS,iCAPnBwpC,EAAa,gBAFjC94B,eAAU,KAEU84B,WCNqR,I,YCOtSj5B,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAId,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,WAAW,CAACyD,MAAM,cAAgBrD,MAAM,CAAC,MAAQR,EAAIzD,SAAST,eAAe,SAAWkE,EAAIk6B,cAAcx5B,GAAG,CAAC,OAASV,EAAIjmB,WAAW,IACjR,EAAkB,GCDlB,EAAS,WAAa,IAAIimB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI0D,YAC/I,EAAkB,GCIDE,EAAW,qJAASnF,QACdqE,gBAAtBC,eAAK,CAAEtyB,KAAKuyB,UAAU,6BADNY,EAAW,gBAF/B3C,eAAU,KAEU2C,WCL+R,ICOhT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAI5D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAAErB,EAAe,YAAEI,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI2D,gBAAgB3D,EAAIe,KAAKf,EAAIyC,GAAG,YAAY,IAC/P,EAAkB,GCID03B,EAAY,qJAAS17B,QAOfqE,gBAAtBC,eAAK,CAAEtyB,KAAMuyB,UAAS,kCAPNm3B,EAAY,gBAFhCl5B,eAAU,KAEUk5B,WCLgS,ICOjT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIn6B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,WAAW,CAAErB,EAAa,UAAEI,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,iCAAiCX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,cAAc,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAActC,EAAIe,KAAKX,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,WAAW,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,sBAAsBlC,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAC/oB,EAAkB,GCKDiB,EAAW,qJAAS9E,QAMbqE,gBAAvBC,eAAK,CAAEtyB,KAAKyyB,WAAW,gCANPK,EAAW,gBAF/BtC,eAAU,KAEUsC,WCN+R,ICOhT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIvD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAAErB,EAAQ,KAAEI,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,OAAO,CAACiB,YAAY,SAAS,CAAErB,EAAU,OAAEI,EAAG,IAAI,CAACiB,YAAY,iCAAiC,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI+tB,WAAW/tB,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI1tB,MAAM,SAAS0tB,EAAIe,KAAKX,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAIyC,GAAG,YAAY,MACrZ,EAAkB,GCID23B,EAAW,qJAAS37B,QAOdqE,gBAAtBC,eAAK,CAAEtyB,KAAKuyB,UAAU,2BACAF,gBAAtBC,eAAK,CAAEtyB,KAAKuyB,UAAU,6BARNo3B,EAAW,gBAF/Bn5B,eAAU,KAEUm5B,WCL+R,ICOhT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIp6B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAiB,cAAEkE,WAAW,kBAAkB7C,YAAY,SAASX,GAAG,CAAC,OAAS,CAAC,SAASmB,GAAQ,IAAI+0B,EAAgBrmC,MAAM1iB,UAAUsM,OAAOpM,KAAK8zB,EAAO/wB,OAAO6I,SAAQ,SAAS7G,GAAG,OAAOA,EAAE6E,YAAWnC,KAAI,SAAS1C,GAAG,IAAI+jD,EAAM,WAAY/jD,EAAIA,EAAEgkD,OAAShkD,EAAEO,MAAM,OAAOwjD,KAAO72B,EAAIq6B,cAAcx4B,EAAO/wB,OAAOkmD,SAAWJ,EAAgBA,EAAc,IAAI,SAAS/0B,GAAQ,OAAO7B,EAAIkC,MAAM,SAAUlC,EAAIq6B,mBAAmBr6B,EAAI0B,GAAI1B,EAAS,OAAE,SAAS7mB,EAAKmD,GAAO,OAAO8jB,EAAG,SAAS,CAACzsB,IAAI2I,EAAMmpB,SAAS,CAAC,MAAQtsB,EAAKxF,MAAM,CAACqsB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG5oB,EAAK7G,MAAM,UAAS,IAC3sB,GAAkB,GCGDgoD,GAAQ,wDAA7B,iD,0BAeI,EAAAD,cAAwB,GAf5B,EAA6B,wDAwBzB,WACIp6B,KAAKo6B,cAAgBp6B,KAAKtoB,WAzBL,qBAiCzB,WACIsoB,KAAKo6B,cAAgBp6B,KAAKtoB,aAlCL,GAAS8mB,QAOXqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BACCuS,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,gCAgBxBF,gBADC0G,eAAM,aACP,uCAxBiB8wB,GAAQ,gBAD5Br5B,QACoBq5B,cCJ4R,MCO7S,GAAY,eACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIt6B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,QAAQ,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAW,QAAEkE,WAAW,YAAY1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIvZ,SAASuZ,EAAIgT,GAAGhT,EAAIvZ,QAAQ,OAAO,EAAGuZ,EAAW,SAAGU,GAAG,CAAC,OAAS,CAAC,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIvZ,QAAQysB,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIvZ,QAAQwsB,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIvZ,QAAQwsB,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIvZ,QAAQ0sB,GAAMnT,EAAIu6B,aAAan6B,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI1tB,cAC7vB,GAAkB,GCIDkoD,GAAQ,wDAA7B,iD,0BAeI,EAAA/zC,SAAmB,EAfvB,EAA6B,qDAwBzB,WACIwZ,KAAKxZ,QAAUwZ,KAAK5sB,QAzBC,sBAkCzB,WACI4sB,KAAKiC,MAAM,SAAUjC,KAAKxZ,aAnCL,GAASgY,QAMVqE,gBAAvBC,eAAK,CAAEtyB,KAAKyyB,WAAW,6BACDJ,gBAAtBC,eAAK,CAAEtyB,KAAKuyB,UAAU,4BAiBvBF,gBADC0G,eAAM,UACP,oCAxBiBgxB,GAAQ,gBAF5Bv5B,eAAU,KAEUu5B,cCL4R,MCO7S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIx6B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACiB,YAAY,2BAA2B,CAACjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACrB,EAAIyC,GAAG,WAAW,GAAGrC,EAAG,aAAa,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAa,UAAEkE,WAAW,cAAc1D,MAAM,CAAC,QAAUR,EAAIwQ,kBAAoBxQ,EAAIy6B,OAAoKz6B,EAAU,OAAE,CAACA,EAAIyC,GAAG,YAAYzC,EAAIe,KAAhM,CAACX,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAe7C,YAAY,iBAAiB,CAACrB,EAAIyC,GAAG,YAAY,IAA8CrC,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAe7C,YAAY,gBAAgB,CAACrB,EAAIyC,GAAG,WAAW,IAAI,MACnvB,GAAkB,G,0BCcDi4B,GAAyB,wDAA9C,iD,0BAcG,EAAAlqB,eAAyB,EAAKlO,GAAG,sBAAsB5R,WAd1D,EAA8C,0BAAS+N,QAO7BqE,gBAAtBC,eAAK,CAACtyB,KAAMyyB,WAAU,8BAPLw3B,GAAyB,gBAT7Cz5B,eAAU,CACRmD,WAAY,CAACyM,oBACb3P,SAAU,kBACJC,eAAW,CACXrM,UAAWxgB,cAKComD,cCfiS,MCOlT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,qBCWMC,GAAQ,wDAA7B,iD,0BAeI,EAAAT,aAAuB,GACvB,EAAA5nD,KAAe,EAAKgwB,GAAG,MAAM5R,WAhBjC,EAA6B,6CAsCzB,SAAOkc,GACH3M,KAAKi6B,aAAettB,IAvCC,kBA2CzB,WACI3M,KAAK26B,WAAW,CACZjlD,WAAYsqB,KAAKvmB,KAAK/D,WACtB4mB,SAAU0D,KAAKi6B,eAAe3oD,MAAK,iBA9ClB,6BAmDzB,WAAe,WACX2D,QAAI2lD,cAAc56B,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAC1C,EAAK+hD,aAAe/hD,EAAI,GAAGokB,cArDV,qBA+DzB,WACI0D,KAAK66B,eACL76B,KAAK86B,sBAjEgB,GAASt8B,QAMVqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BANP+sD,GAAQ,gBArB5B15B,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,aAEJj2B,QAAS,kBACFC,eAAW,CACdw2B,aAAcxmD,QACdsmD,WAAYtmD,WAGhB4sB,SAAU,kBACHC,eAAW,CACd5E,SAAUjoB,cAIGqmD,cC7BoT,MCOrU,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI36B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,WAAW,CAACyD,MAAM,cAAgBrD,MAAM,CAAC,MAAQR,EAAIjV,KAAKgR,WAAW,SAAWiE,EAAIg7B,cAAct6B,GAAG,CAAC,OAASV,EAAIjmB,WAAW,IACzQ,GAAkB,G,aC6BDkhD,I,UAAI,wDAAzB,iD,0BAeI,EAAAD,aAAuB,GACvB,EAAA1oD,KAAe,EAAKgwB,GAAG,0BAA0B5R,WAhBrD,EAAyB,6CAyCrB,SAAOkc,GACH3M,KAAK+6B,aAAepuB,IA1CH,kBA6CrB,WAAI,WACA3M,KAAKi7B,WAAW,CACZvlD,WAAYsqB,KAAKvmB,KAAK/D,WACtBwlD,SAAUl7B,KAAK+6B,eAAezpD,KAFlC,yCAEuC,8GACzB4C,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YADzB,8CAhDtB,yBAsDrB,WAAW,WACPxb,QAAI2lD,cAAc56B,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAC1C,EAAK6iD,aAAe7iD,EAAI,GAAGgjD,SACxB,EAAKH,cACJ,EAAKtmD,SAAQ,QA1DJ,qBAqErB,WACIurB,KAAKm7B,WACLn7B,KAAKo7B,kBAvEY,GAAS58B,SAONqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BAPPqtD,GAAI,gBAtBxBh6B,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,aAEJj2B,QAAS,kBACFC,eAAW,CACd82B,SAAU9mD,QACV4mD,WAAY5mD,QACZI,QAASJ,WAGb4sB,SAAU,kBACHC,eAAW,CACVpW,KAAMzW,cAIG2mD,cC9BgT,MCOjU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIj7B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,iCAAiCtC,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,YAAYswB,MAAM,CAAC,KAAOR,EAAItmB,aAAY2oB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QACvwB,GAAkB,G,aCqCDm5B,GAAY,wDAAjC,iD,0BAWE,EAAA93B,OAAgB,EAAKpB,GAAG,oBAAoB5R,WAX9C,EAAiC,sDAO/B,WACE,MAAO,CAACiqC,GAAUM,MARW,wBAoC/B,WACE,IAAMQ,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YAvCyB,qBAiD/B,WACE17B,KAAKvrB,SAAQ,OAlDgB,GAAS+pB,QAArB+8B,GAAY,gBAvBhCv6B,eAAU,CACTmD,WAAY,CACVR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACAK,YACAM,SAEF52B,QAAS,kBACJC,eAAW,CACb5vB,QAASJ,WAGZ4sB,SAAU,kBACLC,eAAW,CACZznB,KAAMgzB,QACN5X,UAAWxgB,cAIIknD,cCtCwT,MCOzU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIx7B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI47B,QAAQ,CAACx7B,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAI67B,OAAOn7B,GAAG,CAAC,OAASV,EAAI87B,oBAAoBnO,MAAM,CAACt6C,MAAO2sB,EAAc,WAAE4tB,SAAS,SAAUxa,GAAMpT,EAAI+7B,WAAW3oB,GAAKlP,WAAW,gBAAgB9D,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAIg8B,OAAOt7B,GAAG,CAAC,OAASV,EAAIi8B,uBAAuBtO,MAAM,CAACt6C,MAAO2sB,EAAsB,mBAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIk8B,mBAAmB9oB,GAAKlP,WAAW,wBAAwB9D,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAIm8B,OAAOz7B,GAAG,CAAC,OAASV,EAAIo8B,sBAAsBzO,MAAM,CAACt6C,MAAO2sB,EAAqB,kBAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIq8B,kBAAkBjpB,GAAKlP,WAAW,uBAAuB9D,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAIs8B,OAAO57B,GAAG,CAAC,OAASV,EAAIu8B,uBAAuB5O,MAAM,CAACt6C,MAAO2sB,EAAsB,mBAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIw8B,mBAAmBppB,GAAKlP,WAAW,yBAAyB,IACr8B,GAAkB,GCoBDu4B,GAAK,wDAA1B,iD,0BAOI,EAAAV,YAAsB,EACtB,EAAAG,mBAAqC,KACrC,EAAAG,kBAAoC,KACpC,EAAAG,mBAAqC,KACrC,EAAAZ,MAAgB,EAAKt5B,GAAG,OAAO5R,WAC/B,EAAAmrC,MAAgB,EAAKv5B,GAAG,aAAa5R,WACrC,EAAAsrC,MAAgB,EAAK15B,GAAG,QAAQ5R,WAChC,EAAAyrC,MAAgB,EAAK75B,GAAG,SAAS5R,WACjC,EAAA4rC,MAAgB,EAAKh6B,GAAG,QAAQ5R,WAfpC,EAA0B,oDA+BtB,WACOuP,KAAKi8B,oBAAsBj8B,KAAKo8B,mBAAqBp8B,KAAKu8B,mBACzDv8B,KAAK87B,YAAa,EAElB97B,KAAK87B,YAAa,IAnCJ,0BAwCtB,WACO97B,KAAKi8B,oBAAsBj8B,KAAKo8B,mBAAqBp8B,KAAKu8B,mBACzDv8B,KAAK87B,YAAa,EAElB97B,KAAK87B,YAAa,IA5CJ,2BAiDtB,WACO97B,KAAKi8B,oBAAsBj8B,KAAKo8B,mBAAqBp8B,KAAKu8B,mBACzDv8B,KAAK87B,YAAa,EAElB97B,KAAK87B,YAAa,IArDJ,gCA+DtB,SAAmB5iD,GACf8mB,KAAK87B,WAAa5iD,EACf8mB,KAAK87B,YACJ97B,KAAKi8B,oBAAqB,EAC1Bj8B,KAAKo8B,mBAAoB,EACzBp8B,KAAKu8B,oBAAqB,IAE1Bv8B,KAAKi8B,oBAAqB,EAC1Bj8B,KAAKo8B,mBAAoB,EACzBp8B,KAAKu8B,oBAAqB,KAxEZ,mCA4EtB,SAAsBrjD,GAClB8mB,KAAKi8B,mBAAqB/iD,IA7ER,kCAgFtB,SAAqBA,GACjB8mB,KAAKo8B,kBAAoBljD,IAjFP,mCAoFtB,SAAsBA,GAClB8mB,KAAKu8B,mBAAqBrjD,IArFR,iCAwFtB,WAAmB,WACfjE,QAAIwnD,eAAez8B,KAAKvmB,KAAK3E,QAASkrB,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAC3DA,EAAIxK,OAAS,GACZ,EAAKuuD,mBAAqB/jD,EAAI,GAAGwkD,YACjC,EAAKN,kBAAoBlkD,EAAI,GAAGykD,WAChC,EAAKJ,mBAAqBrkD,EAAI,GAAG0kD,cAEjC,EAAKX,oBAAqB,EAC1B,EAAKG,mBAAoB,EACzB,EAAKG,oBAAqB,QAjGhB,kBAuGtB,WAAI,WACAtnD,QAAI4nD,eAAe,CACf/nD,QAASkrB,KAAKvmB,KAAK3E,QACnBY,WAAYsqB,KAAKvmB,KAAK/D,WACtBgnD,YAAa18B,KAAKi8B,mBAClBU,WAAY38B,KAAKo8B,kBACjBQ,YAAa58B,KAAKu8B,mBAClBO,SAAU,KACVC,cAAe,OACGzrD,KARtB,yCAQ2B,qGACvB,EAAK0rD,sBADkB,SAEjB9oD,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAFjC,8CAhHT,qBA2HtB,WACIuP,KAAKg9B,0BA5Ha,GAASx+B,QA+B/BqE,gBADC0G,eAAM,uBACP,mCASA1G,gBADC0G,eAAM,sBACP,kCASA1G,gBADC0G,eAAM,uBACP,mCAjDiBizB,GAAK,gBAbzBx7B,eAAU,CACPmD,WAAW,CAACR,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BJ,YAASE,aAChGn2B,QAAO,kBACAC,eAAW,KAGlBpD,SAAQ,kBACDC,eAAW,CACVznB,KAAMgzB,cAKG+vB,cCrBiT,MCOlU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIz8B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI47B,QAAQ,CAACx7B,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAI67B,OAAOn7B,GAAG,CAAC,OAASV,EAAI87B,oBAAoBnO,MAAM,CAACt6C,MAAO2sB,EAAc,WAAE4tB,SAAS,SAAUxa,GAAMpT,EAAI+7B,WAAW3oB,GAAKlP,WAAW,gBAAgB9D,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAIg8B,OAAOt7B,GAAG,CAAC,OAASV,EAAIk9B,kBAAkBvP,MAAM,CAACt6C,MAAO2sB,EAAmB,gBAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIm9B,gBAAgB/pB,GAAKlP,WAAW,qBAAqB9D,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAIm8B,OAAOz7B,GAAG,CAAC,OAASV,EAAIo9B,uBAAuBzP,MAAM,CAACt6C,MAAO2sB,EAAwB,qBAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIq9B,qBAAqBjqB,GAAKlP,WAAW,2BAA2B,IACnvB,GAAkB,GC6BDo5B,GAAU,wDAA/B,iD,0BAOI,EAAAvB,YAAsB,EACtB,EAAAoB,gBAAkC,KAClC,EAAAE,qBAAsC,KACtC,EAAAzB,MAAgB,EAAKt5B,GAAG,QAAQ5R,WAChC,EAAAmrC,MAAgB,EAAKv5B,GAAG,cAAc5R,WACtC,EAAAsrC,MAAgB,EAAK15B,GAAG,WAAW5R,WACnC,EAAAyrC,MAAgB,EAAK75B,GAAG,YAAY5R,WAbxC,EAA+B,sDAuC3B,WACOuP,KAAKk9B,iBAAmBl9B,KAAKo9B,qBAC5Bp9B,KAAK87B,YAAa,EAElB97B,KAAK87B,YAAa,IA3CC,kCAgD3B,WACO97B,KAAKk9B,iBAAmBl9B,KAAKo9B,qBAC5Bp9B,KAAK87B,YAAa,EAElB97B,KAAK87B,YAAa,IApDC,gCA8D3B,SAAmB5iD,GACf8mB,KAAK87B,WAAa5iD,EACf8mB,KAAK87B,YACJ97B,KAAKk9B,iBAAkB,EACvBl9B,KAAKo9B,sBAAuB,GACtBp9B,KAAK87B,aACX97B,KAAKk9B,iBAAkB,EACvBl9B,KAAKo9B,sBAAuB,KArET,8BAyE3B,SAAiBlkD,GACb8mB,KAAKk9B,gBAAkBhkD,IA1EA,mCA6E3B,SAAsBA,GAClB8mB,KAAKo9B,qBAAuBlkD,IA9EL,kBAiF3B,WAAI,WACAjE,QAAI4nD,eAAe,CACf/nD,QAASkrB,KAAKvmB,KAAK3E,QACnBY,WAAYsqB,KAAKvmB,KAAK/D,WACtBonD,SAAU98B,KAAKk9B,gBACfH,cAAe/8B,KAAKo9B,qBACpBV,YAAa,KACbC,WAAY,KACZC,YAAY,OACMtrD,MAAK,WACvB,EAAK0rD,2BA3Fc,iCAoG3B,WAAmB,WACf/nD,QAAIwnD,eAAez8B,KAAKvmB,KAAK3E,QAASkrB,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAC3DA,EAAIxK,OAAS,GACZ,EAAKwvD,gBAAkBhlD,EAAI,GAAG4kD,SAC9B,EAAKM,qBAAuBllD,EAAI,GAAG6kD,cACnC,EAAKtoD,SAAQ,KAEb,EAAKyoD,iBAAkB,EACvB,EAAKE,sBAAuB,EAC5B,EAAK3oD,SAAQ,SA7GE,qBAkH3B,WACIurB,KAAKg9B,0BAnHkB,GAASx+B,QAuCpCqE,gBADC0G,eAAM,oBACP,qCASA1G,gBADC0G,eAAM,yBACP,0CAhDiB8zB,GAAU,gBArB9Br8B,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACAE,aAEJn2B,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,WAGjB4sB,SAAQ,kBACDC,eAAW,CACVznB,KAAMgzB,cAIG4wB,cC9BsT,MCOvU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIt9B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,OAAOzB,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,kBAAiBmyB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QAC5oB,GAAkB,GCuBDk7B,GAAM,wDAA3B,iD,0BAWE,EAAA75B,OAAgB,EAAKpB,GAAG,MAAM5R,WAXhC,EAA2B,sDAOzB,WACE,MAAO,CAAC4sC,GAAYb,MARG,wBAkCzB,WACE,IAAMhB,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YArCmB,qBA+CzB,WACE17B,KAAKvrB,SAAQ,OAhDU,GAAS+pB,QAAf8+B,GAAM,gBAd1Bt8B,eAAU,CACPmD,WAAW,CAACR,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0B4C,cAAWb,UAClGp4B,QAAO,kBACFC,eAAW,CACZ5vB,QAASJ,WAGb4sB,SAAQ,kBACHC,eAAW,CACZznB,KAAMgzB,QACN5X,UAAWxgB,cAIEipD,cCxBkT,MCOnU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIv9B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,cAAc,CAACA,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQR,EAAI2E,OAAOgpB,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAuB,kBAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,oBAAqB+/B,IAAMlP,WAAW,8BAA8B,GAAG9D,EAAG,QAAQ,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,KAAK,CAACA,EAAG,aAAa,CAACI,MAAM,CAAC,UAAWR,EAAI3sB,MAAMmqD,mBAAkC7P,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAW,MAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,QAAS+/B,IAAMlP,WAAW,iBAAiB9D,EAAG,SAAS,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAe,UAAE6wB,WAAW,oBAAoB7C,YAAY,SAASZ,YAAY,CAAC,MAAQ,SAASD,MAAM,CAAC,UAAWR,EAAI3sB,MAAMmqD,mBAAkC98B,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAI+0B,EAAgBrmC,MAAM1iB,UAAUsM,OAAOpM,KAAK8zB,EAAO/wB,OAAO6I,SAAQ,SAAS7G,GAAG,OAAOA,EAAE6E,YAAWnC,KAAI,SAAS1C,GAAG,IAAI+jD,EAAM,WAAY/jD,EAAIA,EAAEgkD,OAAShkD,EAAEO,MAAM,OAAOwjD,KAAO72B,EAAIwL,KAAKxL,EAAI3sB,MAAO,YAAawuB,EAAO/wB,OAAOkmD,SAAWJ,EAAgBA,EAAc,OAAO52B,EAAI0B,GAAI1B,EAAkB,gBAAE,SAASjV,EAAKzO,GAAO,OAAO8jB,EAAG,SAAS,CAACzsB,IAAI2I,EAAMmpB,SAAS,CAAC,MAAQ1a,EAAK1X,QAAQ,CAAC2sB,EAAI4B,GAAG5B,EAAI+B,GAAGhX,EAAKhQ,YAAW,IAAI,KAAKqlB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0BlC,EAAG,KAAK,CAACA,EAAG,aAAa,CAACI,MAAM,CAAC,UAAWR,EAAI3sB,MAAMmqD,mBAAkC7P,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAS,IAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,MAAO+/B,IAAMlP,WAAW,eAAe9D,EAAG,SAAS,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAa,QAAE6wB,WAAW,kBAAkB7C,YAAY,SAASZ,YAAY,CAAC,MAAQ,SAASD,MAAM,CAAC,UAAWR,EAAI3sB,MAAMmqD,mBAAkC98B,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAI+0B,EAAgBrmC,MAAM1iB,UAAUsM,OAAOpM,KAAK8zB,EAAO/wB,OAAO6I,SAAQ,SAAS7G,GAAG,OAAOA,EAAE6E,YAAWnC,KAAI,SAAS1C,GAAG,IAAI+jD,EAAM,WAAY/jD,EAAIA,EAAEgkD,OAAShkD,EAAEO,MAAM,OAAOwjD,KAAO72B,EAAIwL,KAAKxL,EAAI3sB,MAAO,UAAWwuB,EAAO/wB,OAAOkmD,SAAWJ,EAAgBA,EAAc,OAAO52B,EAAI0B,GAAI1B,EAAgB,cAAE,SAASjV,EAAKzO,GAAO,OAAO8jB,EAAG,SAAS,CAACzsB,IAAI2I,EAAMmpB,SAAS,CAAC,MAAQ1a,EAAK1X,QAAQ,CAAC2sB,EAAI4B,GAAG5B,EAAI+B,GAAGhX,EAAKhQ,YAAW,IAAI,UAAU,IAC7uE,GAAkB,GCDlB,I,UAAS,WAAa,IAAIilB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAa,UAAEkE,WAAW,cAAcuF,IAAI,QAAQpI,YAAY,sBAAsBZ,YAAY,CAAC,MAAQ,QAAQD,MAAM,CAAC,KAAO,OAAO,SAAWR,EAAImG,SAAS,YAAcnG,EAAIy9B,aAAah4B,SAAS,CAAC,MAASzF,EAAa,WAAGU,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,YAAqBltB,EAAI09B,UAAU77B,EAAO/wB,OAAOuC,WAAU+sB,EAAG,IAAI,CAACiB,YAAY,oBAAoBX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAI29B,aAAa97B,SAAczB,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAgB,aAAEkE,WAAW,iBAAiB7C,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAI49B,QAAQ/7B,MAAW7B,EAAI0B,GAAI1B,EAAa,WAAE,SAAS69B,EAAKvhD,GAAO,OAAO8jB,EAAG,SAAS,CAACzsB,IAAI2I,EAAMmpB,SAAS,CAAC,MAAQo4B,EAAK,SAAWA,GAAQ79B,EAAI89B,UAAUzyC,gBAAgB,CAAC2U,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG87B,GAAM,UAAS,GAAGz9B,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIjU,SAAS8V,MAAW7B,EAAI0B,GAAI1B,EAAc,YAAE,SAAS8oB,EAAMxsC,GAAO,OAAO8jB,EAAG,SAAS,CAACzsB,IAAI2I,EAAMmpB,SAAS,CAAC,MAAQqjB,EAAM,SAAWA,GAAS9oB,EAAI89B,UAAUxyC,WAAa,IAAI,CAAC0U,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG+mB,GAAO,UAAS,KAAK1oB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,IAAI,CAACA,EAAG,IAAI,CAACiB,YAAY,2BAA2BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI+9B,iBAAiB,SAAS/9B,EAAI4B,GAAG,KAAKxB,EAAG,IAAI,CAACA,EAAG,IAAI,CAACiB,YAAY,6BAA6BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI+9B,gBAAgB,aAAa39B,EAAG,QAAQ,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,QAAQ,CAACA,EAAG,KAAKJ,EAAI0B,GAAI1B,EAAY,UAAE,SAASg+B,EAAM1hD,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,GAAO,CAAC0jB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAGi8B,GAAO,UAAS,KAAK59B,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAe,aAAE,SAASvS,EAAKnR,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,EAAM+kB,YAAY,eAAerB,EAAI0B,GAAG,GAAO,SAASvoB,EAAK8kD,GAAQ,OAAO79B,EAAG,KAAK,CAACzsB,IAAIsqD,EAAO39B,MAAM,CAAEu5B,QAAQ,EAAMliD,SAAUwB,EAAKxB,SAAU+V,MAAOvU,EAAK4U,QAAUmwC,IAAK/kD,EAAKglD,OAAQ39B,MAAM,CAAC,SAAW,QAAQE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIo+B,WAAWjlD,EAAKwI,SAAS,CAACqe,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG5oB,EAAKwI,KAAK0E,WAAW,UAAS,MAAK,KAAK+Z,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIq+B,SAAS/vD,MAAM,KAAM46B,cAAc,CAAC9I,EAAG,IAAI,CAACiB,YAAY,kBAAkBrB,EAAI4B,GAAG,mBACliF,GAAkB,G,mCCMT08B,I,oBAAkB,SAASC,EAAsBC,GAC1D,IAAI36B,EAAQ46B,iBAAiBF,GACzBG,EAAyC,aAAnB76B,EAAMksB,SAC5B4O,EAAgBH,EAAgB,uBAAyB,gBAE7D,GAAuB,UAAnB36B,EAAMksB,SAAsB,OAAO//C,SAAS6U,KAChD,IAAK,IAAI4qB,EAA4B8uB,EAAU9uB,EAASA,EAAOmgB,eAE3D,GADA/rB,EAAQ46B,iBAAiBhvB,KACrBivB,GAA0C,WAAnB76B,EAAMksB,WAG7B4O,EAAcC,KAAK/6B,EAAMg7B,SAAWh7B,EAAMi7B,UAAYj7B,EAAMk7B,WAAY,OAAOtvB,EAGvF,OAAO,OAQEuvB,GAAa,SAAST,EAAsBU,GACrD,IAAIC,EAAOD,GAAYA,EAAStxD,QAAyB,KAAfsxD,EAAS,GAC/CE,EAAUF,GAAYA,EAAStxD,QAAyB,KAAfsxD,EAAS,IAClDC,GAAQC,KACRF,EAAWA,EAAShR,OAAO,IAE/B,EAAG,CACC,IAAIsQ,EAaA,MAZA,GAAKY,GAAWZ,EAAQrkB,WAAaqkB,EAAQrkB,UAAUC,SAAS8kB,IAC3DC,GAAQX,EAAQ7oD,IAAM6oD,EAAQ7oD,IAAMupD,IAClCE,IAAYD,IAAUX,EAAQa,QAAU,IAAI7yB,gBAAkB0yB,EAAW,IAAI1yB,cAEhF,MAEC,GAA4C,SAAvCgyB,EAAQa,QAAU,IAAI7yB,cAE5B,OAAO,KAEXgyB,EAAUA,EAAQptD,iBAIjB,GACT,OAAOotD,GC1CUc,GAAU,wDAA/B,iD,0BASE,EAAAC,YAAiC,GAEjC,EAAAC,UAA2B,GAC3B,EAAAC,WAA4B,GAE5B,EAAAC,YAA2B,GAE3B,EAAA/B,UAA2B,EAAKgC,iBAAmB,EAAKrsD,MAAQ8O,QAAwB,aAAcA,QAAgB,EAAK9O,QAE3H,EAAAssD,cAAwB,EACxB,EAAAC,WAAqB,EAErB,EAAAC,KAAe,EACf,EAAAC,KAAe,EAtBjB,EAA+B,6CA8B7B,WACE,IAAIC,EAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC/C,OAAOA,IAhCoB,0BAkC7B,WACE,OAAO59C,QAAwB,QAAS8d,KAAK69B,aAnClB,2BAqC7B,WACE,OAAO37C,QAAwB,MAAO8d,KAAK69B,aAtChB,qBAyC7B,WACE,OAAO37C,QAAgB8d,KAAKy9B,aA1CD,4BA6C7B,WAAc,WACZz9B,KAAK0/B,cAAgB1/B,KAAK0/B,aAEtB1/B,KAAK0/B,cACLxrD,OAAe6rD,iBAAiBhnD,SAAQ,SAACvD,GACrCA,GAAK,GACPA,EAAEwqD,kBAnDmB,yBAyD7B,SAAYrvD,GACV,IAAI6E,GAAc7E,EAAMqhD,WAAWiO,YAAc,EAC7CplD,EAAYlK,EAAMuvD,QAAUvvD,EAAMqhD,WAAWmO,aAAe,EAEhEngC,KAAK4/B,KAAOpqD,EACZwqB,KAAK6/B,KAAOhlD,IA9De,0BAkE7B,WAQE,IAPA,IAAIulD,EAAY,GACZ1+C,EAAO,IAAI8B,KACX68C,EAAc3+C,EAAK0J,cACnBk1C,EAAatgC,KAAKugC,WAClBr1C,EAAMm1C,EAAcC,EACpBtuC,EAAMquC,EAAcC,EAEf1C,EAAO1yC,EAAK0yC,EAAO5rC,EAAK4rC,IAC/BwC,EAAUpyD,KAAK4vD,GAGjB59B,KAAKs/B,UAAYc,IA9EU,2BAiF7B,WAGE,IAFA,IAAII,EAAa,GAER3X,GADE,IAAIrlC,KACE,GAAGqlC,GAAS,GAAIA,IAC/B2X,EAAWxyD,KAAK66C,GAElB7oB,KAAKu/B,WAAaiB,IAvFS,4BA0F7B,WAME,IALA,IAAIC,EAAmB,GACnBjzC,EAAO,GACPC,EAAQ,IAAIjK,KACZkK,EAAWxL,QAAyB8d,KAAK69B,WAEpCrwD,EAAI,EAAGA,EAAIkgB,EAAShgB,OAAQF,IAAK,CACxC,IAAIkU,EAAOgM,EAASlgB,GAEhBsgB,EACFpM,EAAK0J,eAAiBqC,EAAMrC,eAC5B1J,EAAK2J,YAAcoC,EAAMpC,YACzB3J,EAAK0E,WAAaqH,EAAMrH,UAEtBiE,EAAQnI,QAAwB,aAAcR,GAC9C8N,EAAQtN,QAAwB,aAAcA,QAAgB8d,KAAKy9B,YAEnExtC,EAAW,CACbvO,KAAMA,EACNhK,SAAU2S,GAASmF,EACnB1B,QAASA,EACToC,MAAwB,GAAjBxO,EAAKyN,SACZgB,MAAwB,GAAjBzO,EAAKyN,SACZ+uC,MAAOx8C,EAAK2J,YAAcnJ,QAAgB8d,KAAKy9B,WAAWpyC,YAK5D,GAFAmC,EAAKxf,KAAKiiB,IAELziB,EAAI,GAAK,GAAK,EAAG,CACpB,IAAI6iB,EAAU,IAAIC,MAClBD,EAAU1iB,OAAO2W,OAAO+L,EAAS7C,GACjCizC,EAAiBzyD,KAAKqiB,GACtB7C,EAAO,IAIXwS,KAAKq/B,YAAcoB,IA9HQ,sBAiI7B,WACE,IAAI/+C,EAAO,IAAI8B,KACfwc,KAAKy9B,UAAYv7C,QAAwB,aAAcR,GACvDse,KAAKiC,MAAM,SAAUvgB,GACrBse,KAAK0gC,eACL1gC,KAAK2gC,mBAtIsB,qBAyI7B,SAAQhwD,GACN,IAAIiwD,EAAmB/5C,OAAOlW,EAAMqhD,WAAWt4C,QAAQ/I,EAAMqhD,WAAW6O,eAAeztD,OACnF0tD,EAAW,IAAIt9C,KAAuB,MAAlBwc,KAAKy9B,UAAoB,EAAKz9B,KAAKy9B,WAC3DqD,EAASpgB,YAAYkgB,GACrB5gC,KAAKy9B,UAAYv7C,QAAwB,aAAc4+C,GACvD9gC,KAAKiC,MAAM,YAAa2+B,EAAUE,GAClC9gC,KAAK0gC,iBA/IsB,6BAkJ7B,SAAgB5N,GACd,IAAIgO,EAAW,IAAIt9C,KAAuB,MAAlBwc,KAAKy9B,UAAoB,EAAKz9B,KAAKy9B,WACvDmD,EAAmB/5C,OAAOi6C,EAASz1C,WAAa,EAAIynC,GACxDgO,EAASh1C,SAAS80C,EAAW,GAC7B5gC,KAAKy9B,UAAYv7C,QAAwB,aAAc4+C,GACvD9gC,KAAKiC,MAAM,aAAc2+B,EAAUE,GACnC9gC,KAAK0gC,iBAxJsB,sBA2J7B,SAAS/vD,GACP,IAAIiwD,EAAmB/5C,OAAOlW,EAAMqhD,WAAWt4C,QAAQ/I,EAAMqhD,WAAW6O,eAAeztD,OACnF0tD,EAAW,IAAIt9C,KAAuB,MAAlBwc,KAAKy9B,UAAoB,EAAKz9B,KAAKy9B,WAC3DqD,EAASh1C,SAAS80C,EAAW,GAC7B5gC,KAAKy9B,UAAYv7C,QAAwB,aAAc4+C,GAEvD9gC,KAAKiC,MAAM,aAAc2+B,EAAUE,GACnC9gC,KAAK0gC,iBAlKsB,0BAoK7B,WACE,IAAIK,EAAW7+C,QAAgB8d,KAAKy9B,WAC/BnwC,MAAMzG,OAAOk6C,MAChB/gC,KAAKghC,eACLhhC,KAAKihC,gBACLjhC,KAAKkhC,oBAzKoB,wBA6K7B,SAAWx/C,GACTse,KAAKy9B,UAAYv7C,QAAwB,aAAcR,GACvDse,KAAKiC,MAAM,SAAUvgB,GAErBse,KAAK0gC,eACL1gC,KAAK2gC,mBAlLsB,0BAqL7B,SAAarxD,GACX,GAAG0wB,KAAKkG,SACJ,OAAO,EAEP1iB,KAAKxH,MAAMgkB,KAAKy9B,UAAWhtC,cAC7BuP,KAAKy9B,UAAYv7C,QAAwB,aAAc,IAAIsB,OAG7Dwc,KAAK0/B,cAAgB1/B,KAAK0/B,aAC1B,IAAInI,EAAQv3B,KACZztB,YAAW,WACT,GAAIglD,EAAMmI,aAAc,CACtB,IAAIyB,EAAQC,GAAiB9xD,EAAE0iD,WAA2B,kBAC1D,GAAImP,EAAO,CACT,IAAIE,EAAUD,GAAsBD,GAAsB,GACtDE,GAEAF,EAAMlO,UAAYkO,EAAMhB,aAAe,IACrCkB,EAAQlB,aAAekB,EAAQC,WACjCD,EAAQlB,aAAekB,EAAQE,cAE/BF,EAAQG,OAAOH,EAAQI,WAAYN,EAAMlO,UAAY,QAK5D,KA/MwB,4BAmN7B,SAAe7/C,GACb,IAAI2tD,EAAW7+C,QAAgB9O,GAC1Bka,MAAMzG,OAAOk6C,MAChB/gC,KAAKy9B,UAAYrqD,KAtNQ,gCA2N7B,SAAmBA,GACbA,IACFA,EAAQ8O,QAA4B9O,GAAO,IAE7C4sB,KAAKiC,MAAM,QAAS7uB,GACpB4sB,KAAK0gC,iBAhOsB,qBAmO7B,WACE1gC,KAAK0gC,iBApOsB,wBAuO7B,WACE1gC,KAAK0/B,cAAe,IAxOO,qBA2O7B,WAEQxrD,OAAe6rD,mBACjB7rD,OAAe6rD,iBAAmB,GAElC7rD,OAAkBwtD,iBAClB,SACA,SAACpyD,GACC,IAAI4gC,EAAoB5gC,EAAE0iD,WACtB2P,EAAiE,MAA5CP,GAAiBlxB,EAAM,kBAE3CyxB,GAEDztD,OAAe6rD,iBAAiBhnD,SAAQ,SAACvD,GAAmBA,EAAEwqD,mBAGpE,IAIF9rD,OAAe6rD,iBAAiB/xD,KAAKgyB,UA/PZ,GAASxB,QACDqE,gBAApCC,eAAK,CAAEtyB,KAAMqW,OAAQmc,QAAS,MAAM,kCAC+CH,gBAAnFC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS9gB,QAAwB,aAAc,IAAIsB,SAAW,6BAC5Dqf,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,mCACiBF,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,gCACDH,gBAAvCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAQ,mCACCH,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,gCACDH,gBAAvCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAQ,wCA4MxCH,gBADC0G,eAAM,UACP,oCAQA1G,gBADC0G,eAAM,cACP,wCA3NmB61B,GAAU,gBAH9Bp+B,eAAU,CACT3uB,KAAM,gBAEa+sD,cCV8R,MCO/S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,QClBX,GAAS,WAAa,IAAIr/B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACiB,YAAY,UAAU,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAiB,cAAEkE,WAAW,kBAAkB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI6hC,eAAe7hC,EAAIgT,GAAGhT,EAAI6hC,cAAc,OAAO,EAAG7hC,EAAiB,eAAGU,GAAG,CAAC,OAAS,CAAC,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI6hC,cAAc3uB,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAI6hC,cAAc5uB,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAI6hC,cAAc5uB,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAI6hC,cAAc1uB,GAAM,SAAStR,GAAQ,OAAO7B,EAAIu6B,gBAAgBn6B,EAAG,OAAO,CAACiB,YAAY,iBAAkBrB,EAAS,MAAEI,EAAG,OAAO,CAACiB,YAAY,SAAS,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI2E,UAAU3E,EAAIe,QACh2B,GAAkB,GCKD+gC,GAAW,wDAAhC,iD,0BAII,EAAAD,eAAyB,EAJ7B,EAAgC,oDAO5B,SAAc5J,EAAiB8J,GAC3B9hC,KAAK4hC,cAAgB5hC,KAAK5sB,QARF,qBAW5B,WACI4sB,KAAK4hC,cAAgB5hC,KAAK5sB,QAZF,sBAe5B,WACI4sB,KAAKiC,MAAM,QAASjC,KAAK4hC,eACzB5hC,KAAKiC,MAAM,SAAUjC,KAAK4hC,mBAjBF,GAASpjC,QACZqE,gBAAxBC,eAAK,CAAEtyB,KAAMyyB,WAAW,6BACDJ,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,6BAKxBF,gBADC0G,eAAM,UACP,mCAPiBs4B,GAAW,gBAH/B7gC,eAAU,KAGU6gC,cCN+R,MCOhT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCUME,GAAiB,wDAAtC,iD,0BAsBI,EAAAC,WAAqB,EACrB,EAAAC,eAA6B,GAC7B,EAAAC,aAA2B,GAC3B,EAAAx9B,MAAgB,EAAKrC,GAAG,aAAa5R,WAzBzC,EAAsC,mDAmClC,WAEA,OADAuP,KAAKiiC,eAAejkD,MAAK,SAACvD,EAAGwD,GAAJ,OAAUxD,EAAEyX,IAAMjU,EAAEiU,OACtC8N,KAAKiiC,gBArCsB,IA0ClC,SAAmB7uD,GACf4sB,KAAKiiC,eAAiB7uD,IA3CQ,wBAgDlC,WAEI,OADA4sB,KAAKkiC,aAAalkD,MAAK,SAACvD,EAAGwD,GAAJ,OAAUxD,EAAEyX,IAAMjU,EAAEiU,OACpC8N,KAAKkiC,cAlDkB,IAuDlC,SAAiB9uD,GACb4sB,KAAKkiC,aAAe9uD,IAxDU,iFAiElC,WAAgBwgB,EAAmB1N,GAAnC,0FACUi8C,EAAM,IAAI3+C,OAEZoQ,GAAa1N,GAHrB,gCAIchS,OAAegnB,WAAW8E,KAAKqC,GAAG,qBAJhD,iCAKe,GALf,YAOQ,IAAI7e,KAAK0C,IAAYi8C,GAP7B,gCAQcjuD,OAAegnB,WAAW8E,KAAKqC,GAAG,qBARhD,iCASe,GATf,iCAYW,GAZX,iDAjEkC,oFAgFlC,SAAW+/B,GAAmC,IAAjB5xD,EAAiB,uDAAF,GAClCslD,GAAS,IAAItyC,MAAO6+C,oBACtB3gD,EAAOQ,QAAgBkgD,GAM3B,MALa,QAAT5xD,EACAkR,EAAK4P,WAAW5P,EAAK6J,aAAeuqC,GAEpCp0C,EAAK4P,WAAW5P,EAAK6J,aAAeuqC,GAEjC5zC,QACH,mBACAA,QAAgBR,MA1FU,4EA8FlC,gHACQ4gD,EAAgBtiC,KAAK5sB,MAAMuP,MAAQ,IAAMqd,KAAK5sB,MAAMwP,UACpD2/C,EAAcviC,KAAK5sB,MAAMyP,IAAM,IAAMmd,KAAK5sB,MAAM0P,SAEjDkd,KAAK5sB,MAAMmqD,kBAJlB,gCAKiBv9B,KAAKwiC,UAAUF,EAAeC,GAL/C,kCAMYttD,QAAIwtD,OAAO,CACPC,SAAU1iC,KAAK2iC,WAAWL,EAAe,OACzCM,OAAQ5iC,KAAK2iC,WAAWJ,EAAa,OACrCM,QAAS7iC,KAAK5sB,MAAMmqD,kBACpBuF,gBAAiB9iC,KAAK5sB,MAAM2vD,aAC5BC,gBAAiB,KAClB1xD,KANH,yCAMQ,8GACE4C,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YADpD,4CAZpB,8BAiBQxb,QAAIwtD,OAAO,CACPC,SAAUxgD,QAAwB,oBAAqB,IAAIsB,MAC3Do/C,OAAQ1gD,QAAwB,oBAAqB,IAAIsB,MACzDq/C,QAAS7iC,KAAK5sB,MAAMmqD,kBACpBuF,gBAAiB9iC,KAAK5sB,MAAM2vD,aAC5BC,gBAAiB,KAElB1xD,KAPH,yCAOQ,8GACE4C,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAD/C,4CAxBhB,iDA9FkC,8EAmIlC,WACIuP,KAAKiiC,eAAiB//C,QAAuB,CACzC8d,KAAKqC,GAAG,QAAQ5R,WAChBuP,KAAKqC,GAAG,QAAQ5R,aAEpBuP,KAAKkiC,aAAehgD,QAAuB,CACvC8d,KAAKqC,GAAG,QAAQ5R,WAChBuP,KAAKqC,GAAG,QAAQ5R,iBA1IU,GAAS+N,QAOnBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,6BAPPo0D,GAAiB,gBAjBrC/gC,eAAU,CACPmD,WAAW,CACP09B,eACAl+B,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACA+E,eAEJh7B,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,cAIA0tD,cC5B6T,MCO9U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIhiC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uCAAuClC,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,SAAS,aAAeR,EAAI3sB,MAAM2vD,aAAa,UAAUhjC,EAAI3sB,MAAM2vD,aAAa,SAAWhjC,EAAIkjC,SAAS,UAAYljC,EAAImjC,UAAU,UAAWnjC,EAAI3sB,MAAMmqD,sBAAqC,IAAI,IAC/e,GAAkB,G,aCsBD4F,GAAe,wDAApC,iD,0BAsBI,EAAA9wD,KAAc,EAAKgwB,GAAG,iBAAiB5R,WAEvC,EAAAwyC,SAAW,CACTG,SAAS,EACTC,QAAQ,EACR15B,OAAQ,IACR25B,eAAe,EACfC,oBAAoB,EACpBC,kBAAmB7+C,SAAS8+C,OAC5BnnC,SAAU,QACVonC,cAAe,gLAMfC,MAAO,SAACr0D,GACNA,EAAEmxB,GAAG,QAAQ,SAACmjC,GACZA,EAAG/yD,OAAOgzD,eAAeC,YAAY,YAAY,EAAO,YAG5DC,WAAY,IAGd,EAAAb,UAAsC,CACpCc,aAAc,IACdC,KAAM,SAhDZ,EAAoC,qDAmDhC,SAAe7wD,GACX4sB,KAAK5sB,MAAM2vD,aAAe3vD,IApDE,kBAuDhC,cAvDgC,qBAiEhC,WACE4sB,KAAKkjC,UAAUe,KAAOjkC,KAAKqR,YAAYwJ,WAAWve,aAlEpB,GAASkC,QAOjBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,6BAPPw1D,GAAe,gBAfnCniC,eAAU,CACPmD,WAAW,CACTR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACA6J,mBAGFjjC,SAAUC,eAAW,CACjBmQ,YAAa5E,aAGA02B,cCvB2T,MCO5U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIpjC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,OAAOzB,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,YAAYy9C,MAAM,CAACt6C,MAAO2sB,EAAQ,KAAE4tB,SAAS,SAAUxa,GAAMpT,EAAI7mB,KAAKi6B,GAAKlP,WAAW,cAAa7B,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QAC9tB,GAAkB,GCiCD+hC,I,UAAM,wDAA3B,iD,0BAwBI,EAAA1gC,OAAgB,EAAKpB,GAAG,UAAU5R,WAMlC,EAAAvX,KAAgC,CAC5ByJ,MAAOT,QAAwB,oBAAqB,IAAIsB,MACxDX,IAAKX,QAAwB,oBAAqB,IAAIsB,MACtDZ,UAAW,WACXE,QAAS,WACTigD,aAAc,GACdxF,mBAAmB,EACnB6G,gBAAgB,GArCxB,EAA2B,sDAyBvB,WACI,MAAO,CAACrC,GAAkBoB,MA1BP,wBA+CvB,WACI,IAAM3H,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACjBA,EAAEkmD,YAlDiB,wBAwDvB,SAAW0G,GAAmC,IAAjB5xD,EAAiB,uDAAF,GAClCslD,GAAS,IAAItyC,MAAO6+C,oBACtB3gD,EAAOQ,QAAgBkgD,GAM3B,MALa,QAAT5xD,EACAkR,EAAK4P,WAAW5P,EAAK6J,aAAeuqC,GAEpCp0C,EAAK4P,WAAW5P,EAAK6J,aAAeuqC,GAEjC5zC,QACH,mBACAA,QAAgBR,MAlED,qBA4EvB,WAAO,WACHse,KAAKvrB,SAAQ,GACbQ,QAAIovD,SAAS/yD,MAAK,SAAC4G,GACf,IAAMosD,EAAYpsD,EACdoqD,EAAgB,GAChBC,EAAc,GAElB,GAAI+B,EAAU5B,UAAY4B,EAAU1B,OAChCN,EAAgB,EAAKK,WAAW2B,EAAU5B,UAC1CH,EAAc,EAAKI,WAAW2B,EAAU1B,YACrC,CACH,IAAIn0C,EAAQ,IAAIjL,KACZmD,EAAQ,IAAInD,KAChBmD,EAAMR,QAAQQ,EAAMP,UAAY,GAEhCk8C,EAAgB,EAAKK,WAAWzgD,QAAwB,oBAAqBuM,IAC7E8zC,EAAc,EAAKI,WAAWzgD,QAAwB,oBAAqByE,IAG/E,EAAKzN,KAAO,CACRyJ,MAAO2hD,EAAUzB,QACXP,EAAct3C,MAAM,KAAK,GACzB9I,QAAwB,aAAc,IAAIsB,MAEhDZ,UAAW0hD,EAAUzB,QACfP,EAAct3C,MAAM,KAAK,GAAK,WAEpCnI,IAAKyhD,EAAUzB,QACTN,EAAYv3C,MAAM,KAAK,GACvB9I,QAAwB,aAAc,IAAIsB,MAEhDV,QAASwhD,EAAUzB,QAAUN,EAAYv3C,MAAM,KAAK,GAAK,WACzDuyC,kBAAmB+G,EAAUzB,QAC7BuB,eAAoC,cAApBE,EAAUhwD,MAC1ByuD,aAAcuB,EAAUxB,oBAE7BxxD,MAAK,WACJ,EAAKmD,SAAQ,UAjHE,GAAS+pB,SAAf2lC,GAAM,gBAtB1BnjC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAiF,cACA3E,6BACAsH,qBACAoB,oBAEJ/+B,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,WAGjB4sB,SAAQ,kBACDC,eAAW,CACVrM,UAAWxgB,cAIF8vD,cClCkT,MCOnU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIpkC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,qBAAqB,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAe,YAAEkE,WAAW,gBAAgB1D,MAAM,CAAC,KAAO,QAAQ,KAAO,SAAS,GAAK,GAAG,MAAQ,YAAYiF,SAAS,CAAC,QAAUzF,EAAIwkC,GAAGxkC,EAAIykC,YAAY,aAAa/jC,GAAG,CAAC,OAAS,CAAC,SAASmB,GAAQ7B,EAAIykC,YAAY,YAAY,SAAS5iC,GAAQ,OAAO7B,EAAI0kC,aAAa,iBAAiBtkC,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uBAAuBlC,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,YAAY,IAAM,qDAAqDJ,EAAG,MAAM,CAACiB,YAAY,qBAAqB,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAe,YAAEkE,WAAW,gBAAgB1D,MAAM,CAAC,KAAO,QAAQ,KAAO,SAAS,GAAK,GAAG,MAAQ,cAAciF,SAAS,CAAC,QAAUzF,EAAIwkC,GAAGxkC,EAAIykC,YAAY,eAAe/jC,GAAG,CAAC,OAAS,CAAC,SAASmB,GAAQ7B,EAAIykC,YAAY,cAAc,SAAS5iC,GAAQ,OAAO7B,EAAI0kC,aAAa,mBAAmBtkC,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,YAAY,IAAM,0DAC/0C,GAAkB,GCODmkC,GAAU,wDAA/B,iD,0BAaI,EAAAF,YAAsB,GACtB,EAAAnyD,KAAe,EAAKgwB,GAAG,cAAc5R,WAdzC,EAA+B,mDAsB3B,SAAajgB,GAELwvB,KAAKwkC,YADA,YAANh0D,EACoB,WAEA,eA1BA,2BA8B3B,WAAa,WACTyE,QAAI2lD,cAAc56B,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAClB,YAArBA,EAAI,GAAGysD,WACL,EAAKH,YAAc,WAEnB,EAAKA,YAAc,kBAnCL,kBAwC3B,WACIvvD,QAAIylB,cAAc,CAAChlB,WAAYsqB,KAAKvmB,KAAK/D,WAAYivD,WAAY3kC,KAAKwkC,gBAzC/C,qBAkD3B,WACIxkC,KAAK4kC,oBAnDkB,GAASpmC,QAMZqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BANP+2D,GAAU,gBAH9B1jC,eAAU,CACPmD,WAAW,CAACR,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BJ,gBAEtEqK,cCRsT,MCOvU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI3kC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,mCAAmClC,EAAG,WAAW,CAACyD,MAAM,eAAiBrD,MAAM,CAAC,MAAQR,EAAI+yB,MAAM,SAAW/yB,EAAI8kC,eAAepkC,GAAG,CAAC,OAASV,EAAIjmB,WAAW,IAC7V,GAAkB,GCsBDgrD,GAAS,wDAA9B,iD,0BAaI,EAAAzyD,KAAc,EAAKgwB,GAAG,QAAQ5R,WAC9B,EAAAo0C,cAAwB,GACxB,EAAA/R,MAAQ,CACJ,CACIzgD,KAAM,KAAO,EAAKgwB,GAAG,KAAK5R,WAC1B/c,IAAK,MAET,CACIrB,KAAM,KAAO,EAAKgwB,GAAG,KAAK5R,WAC1B/c,IAAK,MAET,CACIrB,KAAM,KAAO,EAAKgwB,GAAG,KAAK5R,WAC1B/c,IAAK,OA1BjB,EAA8B,2CA6C1B,WACIuB,QAAIylB,cAAc,CAAChlB,WAAYsqB,KAAKvmB,KAAK/D,WAAYqvD,cAAe/3B,SAAShN,KAAK6kC,iBAAmCvzD,KAArH,yCAA0H,8GAChH4C,OAAegnB,WAAW,YADsF,8CA9CpG,oBAmD1B,SAAOyR,GACH3M,KAAK6kC,cAAgBl4B,IApDC,8BAuD1B,WAAgB,WACZ13B,QAAI2lD,cAAc56B,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GACvCA,EAAI,GAAG6sD,gBACN,EAAKF,cAAgB3sD,EAAI,GAAG6sD,cAAct0C,WACvC,EAAKo0C,eACJ,EAAKpwD,SAAQ,SA5DH,qBAwE1B,WACIurB,KAAKglC,uBAzEiB,GAASxmC,QAMXqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BANPm3D,GAAS,gBAf7B9jC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,aAEJj2B,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,cAIAywD,cCvBqT,MCOtU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/kC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,OAAOzB,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,YAAYswB,MAAM,CAAC,KAAOR,EAAItmB,YAAW2oB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QACpqB,GAAkB,GC+BD6iC,GAAM,wDAA3B,iD,0BAWE,EAAAxhC,OAAiB,EAAKpB,GAAG,QAAQ5R,WAXnC,EAA2B,sDAOzB,WACE,MAAO,CAACi0C,GAAYI,MARG,wBAoCzB,WACE,IAAMtJ,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YAvCmB,qBAiDzB,WACE17B,KAAKvrB,SAAQ,OAlDU,GAAS+pB,QAAfymC,GAAM,gBAvB1BjkC,eAAU,CACTmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAiK,cACAI,cAEJ7jC,SAAU,kBACLC,eAAW,CACZznB,KAAMgzB,QACN5X,UAAWxgB,WAGf+vB,QAAO,kBACFC,eAAW,CACZ5vB,QAASJ,cAKM4wD,cChCkT,MCOnU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIllC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,KAAK,CAACiB,YAAY,wBAAwBrB,EAAI0B,GAAI1B,EAAa,WAAE,SAASmlC,EAAU7oD,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,EAAMgkB,MAAM,CAACu5B,OAAQ75B,EAAIolC,MAAQD,EAAUE,YAAY3kC,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIslC,QAAQH,EAAUE,eAAe,CAACjlC,EAAG,IAAI,CAACI,MAAM,CAAC,cAAc,QAAQ,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAGojC,EAAUvxC,oBAAmB,GAAGwM,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACiB,YAAY,kBAAkBb,MAAM,CAAC,GAAK,SAAS,CAACJ,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,QAAQ,CAACiB,YAAY,gBAAgBZ,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,QAAqB,WAAZR,EAAIolC,IAAkBhlC,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAoB,YAAErhC,WAAW,yBAAyB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAoB,aAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,cAAe1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAiB,SAAErhC,WAAW,sBAAsB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAiB,UAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,WAAY1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAkB,UAAErhC,WAAW,uBAAuB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAkB,WAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,YAAa1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0BlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAkB,UAAErhC,WAAW,uBAAuB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAkB,WAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,YAAa1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,YAAYlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAkB,UAAErhC,WAAW,uBAAuB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAkB,WAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,YAAa1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,wBAAwBlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAkB,UAAErhC,WAAW,uBAAuB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAkB,WAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,YAAa1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,wBAAwBlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAc,MAAErhC,WAAW,mBAAmB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAc,OAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,QAAS1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAsB,cAAErhC,WAAW,2BAA2B7C,YAAY,eAAeb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAsB,eAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,gBAAiB1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,6BAA6BlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAoB,YAAErhC,WAAW,yBAAyB7C,YAAY,eAAeb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAoB,aAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,cAAe1jC,EAAO/wB,OAAOuC,iBAAiB2sB,EAAIe,KAAkB,YAAZf,EAAIolC,IAAmBhlC,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,UAAUxB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAuB,eAAErhC,WAAW,4BAA4B7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAuB,gBAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,iBAAkB1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,UAAUxB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAoB,YAAErhC,WAAW,yBAAyB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAoB,aAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,cAAe1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,WAAWxB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAqB,aAAErhC,WAAW,0BAA0B7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAqB,cAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,eAAgB1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,iBAAiBxB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAkB,UAAErhC,WAAW,uBAAuB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAkB,WAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,YAAa1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,eAAexB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAkB,UAAErhC,WAAW,uBAAuB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAkB,WAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,YAAa1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,eAAexB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAkB,UAAErhC,WAAW,uBAAuB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAkB,WAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,YAAa1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,WAAWxB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAc,MAAErhC,WAAW,mBAAmB7C,YAAY,SAASb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAc,OAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,QAAS1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,aAAaxB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAyB,iBAAErhC,WAAW,8BAA8B7C,YAAY,eAAeb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAyB,kBAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,mBAAoB1jC,EAAO/wB,OAAOuC,eAAe+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,qBAAqB,CAACrB,EAAI4B,GAAG,iBAAiBxB,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAIulC,SAAuB,eAAErhC,WAAW,4BAA4B7C,YAAY,eAAeb,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAIulC,SAAuB,gBAAG7kC,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAIulC,SAAU,iBAAkB1jC,EAAO/wB,OAAOuC,iBAAiB2sB,EAAIe,KAAkB,SAAZf,EAAIolC,IAAgBhlC,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,YAAY,CAACqJ,IAAI,SAASjJ,MAAM,CAAC,KAAO,SAAS,UAAYR,EAAImjC,WAAWxV,MAAM,CAACt6C,MAAO2sB,EAAe,YAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIwlC,YAAYpyB,GAAKlP,WAAW,kBAAkB,OAAOlE,EAAIe,WAAWX,EAAG,iBAAiB,CAACI,MAAM,CAAC,KAAOR,EAAImD,KAAK,KAAOnD,EAAIulC,SAAS,KAAOvlC,EAAIolC,KAAK1kC,GAAG,CAAC,OAASV,EAAIwC,WAAW,IACr3R,GAAkB,GCDlB,GAAS,WAAa,IAAIxC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,8BAA8B,MAAQR,EAAI1pB,MAAM,KAAO0pB,EAAImD,MAAMzC,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAc,UAAZlC,EAAIylC,KAAkB,CAACrlC,EAAG,QAAQ,CAACK,YAAY,CAAC,kBAAkB,WAAW,OAAS,oBAAoB,WAAa,OAAO,MAAQ,QAAQ,cAAc,kEAAkE,YAAY,SAAS,CAACL,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACK,YAAY,CAAC,QAAU,cAAc,CAACL,EAAG,QAAQ,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,YAAYJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,YAAYJ,EAAG,SAASA,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACK,YAAY,CAAC,iBAAiB,QAAQ,CAACL,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,qCAAqCJ,EAAG,KAAK,CAACK,YAAY,CAAC,iBAAiB,QAAQ,CAACL,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,YAAY,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKvD,aAAe,OAAOwqB,EAAG,OAAO,CAACK,YAAY,CAAC,MAAQ,UAAU,QAAU,QAAQ,YAAY,OAAO,aAAa,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAK5C,WAAa,IAAI,MAAMypB,EAAI+B,GAAG/B,EAAI7mB,KAAKlD,UAAY,SAASmqB,EAAG,KAAK,CAACK,YAAY,CAAC,iBAAiB,QAAQ,CAACL,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,YAAY,OAAO,MAAQ,YAAY,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAK3B,gBAAgB4oB,EAAG,OAAO,CAACK,YAAY,CAAC,MAAQ,UAAU,QAAU,QAAQ,YAAY,OAAO,aAAa,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKusD,eAAiB,OAAOtlC,EAAG,MAAM,CAACK,YAAY,CAAC,MAAQ,UAAU,QAAU,QAAQ,YAAY,OAAO,aAAa,SAAS,CAAuB,MAArBT,EAAI7mB,KAAK9B,WAAyC,IAArB2oB,EAAI7mB,KAAK9B,UAAgB+oB,EAAG,OAAO,CAACK,YAAY,CAAC,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAK9B,WAAa,IAAI,KAA2B,MAArB2oB,EAAI7mB,KAAK7B,WAAyC,IAArB0oB,EAAI7mB,KAAK7B,UAAgB8oB,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAK7B,WAAa,IAAI,KAA2B,MAArB0oB,EAAI7mB,KAAKjC,WAAyC,IAArB8oB,EAAI7mB,KAAKjC,UAAgBkpB,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAKjC,WAAa,IAAI,KAAuB,MAAjB8oB,EAAI7mB,KAAKnC,OAAiC,IAAjBgpB,EAAI7mB,KAAKnC,MAAYopB,EAAG,OAAO,CAACK,YAAY,CAAC,QAAU,eAAe,aAAa,MAAM,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAKnC,OAAS,IAAI,mBAAmBopB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACK,YAAY,CAAC,WAAa,yEAAyE,kBAAkB,QAAQ,OAAS,iBAA8B,WAAZT,EAAIylC,KAAmB,CAACrlC,EAAG,QAAQ,CAACK,YAAY,CAAC,kBAAkB,WAAW,OAAS,oBAAoB,WAAa,OAAO,MAAQ,QAAQ,cAAc,kEAAkE,YAAY,SAAS,CAACL,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACK,YAAY,CAAC,QAAU,cAAc,CAACL,EAAG,QAAQ,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,YAAYJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,YAAYJ,EAAG,SAASA,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACK,YAAY,CAAC,iBAAiB,QAAQ,CAACL,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,qCAAqCJ,EAAG,KAAK,CAACK,YAAY,CAAC,iBAAiB,QAAQ,CAACL,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,YAAY,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKrD,gBAAkB,OAAOsqB,EAAG,OAAO,CAACK,YAAY,CAAC,MAAQ,UAAU,QAAU,QAAQ,YAAY,OAAO,aAAa,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKwsD,cAAgB,KAAKvlC,EAAG,MAAMJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKysD,aAAe,SAASxlC,EAAG,KAAK,CAACK,YAAY,CAAC,iBAAiB,QAAQ,CAACL,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,YAAY,OAAO,MAAQ,YAAY,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKzB,mBAAmB0oB,EAAG,OAAO,CAACK,YAAY,CAAC,MAAQ,UAAU,QAAU,QAAQ,YAAY,OAAO,aAAa,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAK0sD,kBAAoB,OAAOzlC,EAAG,MAAM,CAACK,YAAY,CAAC,MAAQ,UAAU,QAAU,QAAQ,YAAY,OAAO,aAAa,SAAS,CAAuB,MAArBT,EAAI7mB,KAAK9B,WAAyC,IAArB2oB,EAAI7mB,KAAK9B,UAAgB+oB,EAAG,OAAO,CAACK,YAAY,CAAC,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAK9B,WAAa,IAAI,KAA2B,MAArB2oB,EAAI7mB,KAAK7B,WAAyC,IAArB0oB,EAAI7mB,KAAK7B,UAAgB8oB,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAK7B,WAAa,IAAI,KAA2B,MAArB0oB,EAAI7mB,KAAKjC,WAAyC,IAArB8oB,EAAI7mB,KAAKjC,UAAgBkpB,EAAG,OAAO,CAACK,YAAY,CAAC,cAAc,OAAO,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAKjC,WAAa,IAAI,KAAuB,MAAjB8oB,EAAI7mB,KAAKnC,OAAiC,IAAjBgpB,EAAI7mB,KAAKnC,MAAYopB,EAAG,OAAO,CAACK,YAAY,CAAC,QAAU,eAAe,aAAa,MAAM,MAAQ,UAAU,cAAc,SAAS,CAACT,EAAI4B,GAAG,OAAO5B,EAAIe,KAAKf,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAKnC,OAAS,IAAI,mBAAmBopB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACK,YAAY,CAAC,WAAa,yEAAyE,kBAAkB,QAAQ,OAAS,iBAAiB,CAACL,EAAG,IAAI,CAACqF,SAAS,CAAC,UAAYzF,EAAI+B,GAAG/B,EAAI7mB,KAAKqsD,kBAAkB,IACn/J,GAAkB,GCDlB,GAAS,WAAa,IAAIxlC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAQ,KAAEI,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACiB,YAAY,SAAS,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI1pB,YAAY8pB,EAAG,MAAM,CAACiB,YAAY,WAAW,EAAErB,EAAU,OAAEI,EAAG,IAAI,CAACiB,YAAY,oBAAoBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAC9B,EAAG,IAAI,CAACiB,YAAY,4BAAyKrB,EAAW,QAAE,CAACI,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,oCAAoCwC,MAAO7D,EAAU,QAAG,CAACI,EAAG,aAAa,CAACI,MAAM,CAAC,QAAUR,EAAIwQ,mBAAmB,MAAOxQ,EAAQ,KAAE,CAACI,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,mCAAmCwC,MAAO7D,EAAU,QAAG,CAACA,EAAIyC,GAAG,YAAY,KAAOzC,EAAIyQ,SAA0GzQ,EAAIe,KAApGX,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAIyC,GAAG,WAAW,MAAe,CAACrC,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,MAAM,CAACiB,YAAY,oCAAoCwC,MAAO7D,EAAU,QAAG,CAACA,EAAIyC,GAAG,YAAY,KAAKrC,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAIyC,GAAG,WAAW,OAAO,OAAOzC,EAAIe,MACp6C,GAAkB,G,aCQD4P,GAAW,qJAASlS,QAOFqE,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,6BACIH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,+BACAH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,4BACjBH,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,sCACwBF,gBAA/CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,iBAAiB,8BACPH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,8BACAH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,gCACAH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,4BAdtB0N,GAAW,gBAH/B1P,gBAAU,CACTmD,WAAY,CAAEyM,uBAEKF,cCT8R,MCO/S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCFMm1B,GAAc,wDAAnC,iD,0BAiBI,EAAAxvD,MAAe,EAAKgsB,GAAG,QAAQ5R,WAjBnC,EAAmC,0BAAS+N,QAOjBqE,gBAAtBC,eAAK,CAACtyB,KAAMyyB,WAAU,4BACDJ,gBAArBC,eAAK,CAACtyB,KAAM7C,UAAS,4BACAk1B,gBAArBC,eAAK,CAACtyB,KAAMuyB,UAAS,4BATL8iC,GAAc,gBAVlC7kC,eAAU,CACPmD,WAAY,CACR2F,eAEJ7I,SAAU,kBACHC,eAAW,CACZmQ,YAAa5E,cAIFo5B,cChBsU,MCOvV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCyBMC,GAAa,wDAAlC,iD,0BA0BE,EAAAzzD,KAAc,EAAKgwB,GAAG,SAAS5R,WAC/B,EAAA00C,IAAc,SACd,EAAAY,0BAAyD,GACzD,EAAAT,SAAiC,CAC/B5vD,WAAY,GACZ6B,YAAa,GACbE,eAAgB,GAChBzB,SAAU,GACV2vD,YAAa,GACbrvD,UAAW,GACXovD,aAAc,GACd7uD,SAAU,GACVmvD,YAAa,GACbC,aAAc,GACdC,gBAAiB,GACjBvwD,YAAa,GACbE,eAAgB,GAChB+B,YAAa,GACbuuD,eAAgB,GAChB/uD,UAAW,GACXC,UAAW,GACXJ,UAAW,GACXF,MAAO,GACPqvD,SAAU,GACVC,SAAU,GACVd,YAAa,GACbH,WAAY,UACZkB,UAAU,EACVC,eAAe,EACfd,cAAe,GACfG,iBAAkB,IAGpB,EAAAL,YAAsB,GAEtB,EAAAtC,SAAgB,CACdG,SAAS,EACTC,QAAQ,EACR15B,OAAQ,IACR25B,eAAe,EACfC,oBAAoB,EACpBC,kBAAmB7+C,SAAS8+C,OAC5BnnC,SAAU,QACVonC,cAAe,0LAMfC,MAAO,SAACr0D,GACNA,EAAEmxB,GAAG,QAAQ,SAACmjC,GACZA,EAAG/yD,OAAOgzD,eAAeC,YAAY,YAAY,EAAO,YAK5DC,WAAY,IAGd,EAAAb,UAAsC,CACpCc,aAAc,IACdC,KAAM,SAGR,EAAA/gC,MAAgB,EA1FlB,EAAkC,8CA0G9B,WAII,IAAIsjC,EAAgB,CAAC,CACjB9iC,YAAa1D,KAAKqC,GAAG,kCAAkC5R,WACvDg2C,aAAc,EACdC,WAAY,SACZ/yC,WAAYqM,KAAKqC,GAAG,MAAM5R,WAC1B20C,WAAY,UAEZ,CACI1hC,YAAa1D,KAAKqC,GAAG,kCAAkC5R,WACvDg2C,aAAc,EACdC,WAAY,UACZ/yC,WAAYqM,KAAKqC,GAAG,MAAM5R,WAC1B20C,WAAY,WAEhB,CACI1hC,YAAa1D,KAAKqC,GAAG,kCAAkC5R,WACvDg2C,aAAc,EACdC,WAAY,OACZ/yC,WAAYqM,KAAKqC,GAAG,MAAM5R,WAC1B20C,WAAY,SAEtB,OAAOoB,IAnIqB,sBAwIhC,WACKxmC,KAAKslC,UACNtlC,KAAKvrB,SAAQ,KA1Ie,oBAqJhC,WACEurB,KAAKkD,MAAO,IAtJkB,qBAyJhC,SAAQhqB,GACN8mB,KAAKmlC,IAAMjsD,IA1JmB,yBA8JhC,WAAW,WACT8mB,KAAK2mC,YAAY3mC,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAC3C,EAAKotD,SAAWptD,EAChB,EAAKqtD,YAAcrtD,EAAIqtD,iBAjKK,4BAqKhC,SAAenyD,GACb4sB,KAAKslC,SAASC,YAAcnyD,IAtKE,kBAyKhC,WAAI,WACa,QAAZ4sB,KAAKmlC,MACNnlC,KAAKslC,SAASC,YAAcvlC,KAAK4mC,qBAEnC5mC,KAAK6mC,YAAY7mC,KAAKslC,UAAUh0D,KAAhC,0DAAqC,WAAO4G,GAAP,iGAC7BhE,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YADrB,2CAArC,kCAAAuP,KAAA,kBA7K8B,qBAkLhC,WACiB,QAAZA,KAAKmlC,MACNnlC,KAAKslC,SAASC,YAAcvlC,KAAK4mC,qBAEnC5mC,KAAKkD,MAAO,IAtLkB,+BAyLhC,WACE,IAAM4jC,EAA8B9mC,KAAKiyB,MAAM6U,OAC/C,OAAOA,EAAOC,YAAYC,iBA3LI,qBAoMhC,WACEhnC,KAAKvrB,SAAQ,GACburB,KAAKinC,eACLjnC,KAAKm1B,gBAvMyB,qBA0MhC,WACEn1B,KAAKkjC,UAAUe,KAAOjkC,KAAKqR,YAAYwJ,WAAWve,aA3MpB,GAASkC,QAwIzCqE,gBADC0G,eAAM,aACP,8BAxImBu8B,GAAa,gBA3BjC9kC,eAAU,CACTmD,WAAY,CACVR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACA6J,kBACA2B,mBAEF5kC,SAAU,kBACLC,eAAW,CACZznB,KAAMgzB,QACN4E,YAAa5E,QACb1Q,UAAW1nB,WAGf+vB,QAAS,kBACJC,eAAW,CACZ4iC,aAAc5yD,QACdsyD,YAAatyD,QACbwyD,YAAaxyD,QACbI,QAASJ,cAIMyxD,cC3CyT,MCO1U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/lC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAAC,CAACrB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qCAAqCtC,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAClkD,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,oBAAmBmyB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,WAAY,GAAME,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,WAAW,QAAUlC,EAAImnC,mBAAmB9kC,OAAM,QAC/sB,GAAkB,GCQD+kC,GAAS,wDAA9B,iD,0BAYE,EAAA1jC,OAAiB,EAAKpB,GAAG,MAAM5R,WAZjC,EAA8B,sDAQ5B,WACE,MAAO,CAAC22C,GAAoBtB,MATF,wBAoB5B,WACE,IAAMtK,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YAvBsB,2BA2B5B,WACE,IAAMF,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAE6xD,iBA9BsB,GAAS7oC,QAAlB2oC,GAAS,gBAH7BnmC,eAAU,CACPmD,WAAW,CAACR,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BqL,iBAAcsB,2BAEpFD,cCTqT,MCOtU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIpnC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,IAAI,CAACJ,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uBAAuB,OAAOlC,EAAG,WAAW,CAACyD,MAAM,eAAiBrD,MAAM,CAAC,MAAQR,EAAI7mB,KAAK,SAAW6mB,EAAIqlC,YAAY3kC,GAAG,CAAC,OAASV,EAAIjmB,WAAW,IAC5T,GAAkB,GCiCDstD,I,oBAAmB,wDAAxC,iD,0BAOI,EAAAZ,cAA6C,CACzC,CACI9iC,YAAa,EAAKrB,GAAG,kCAAkC5R,WACvDg2C,aAAc,EACdC,WAAY,UACZ/yC,WAAY,EAAK0O,GAAG,cAAc5R,WAClC20C,WAAY,WAEhB,CACI1hC,YAAa,EAAKrB,GAAG,kCAAkC5R,WACvDg2C,aAAc,EACdC,WAAY,SACZ/yC,WAAY,EAAK0O,GAAG,MAAM5R,WAC1B20C,WAAY,UAEhB,CACI1hC,YAAa,EAAKrB,GAAG,kCAAkC5R,WACvDg2C,aAAc,EACdC,WAAY,UACZ/yC,WAAY,EAAK0O,GAAG,MAAM5R,WAC1B20C,WAAY,WAEhB,CACI1hC,YAAa,EAAKrB,GAAG,kCAAkC5R,WACvDg2C,aAAc,EACdC,WAAY,OACZ/yC,WAAY,EAAK0O,GAAG,MAAM5R,WAC1B20C,WAAY,SAwBpB,EAAA/yD,KAAe,EAAKgwB,GAAG,iCAAiC5R,WAOxD,EAAAvX,KAAY,GACZ,EAAAksD,WAAoB,GAEpB,EAAAW,0BAAyD,GACzD,EAAAT,SAAiC,CAC7B5vD,WAAY,GACZ6B,YAAa,GACbE,eAAgB,GAChBzB,SAAU,GACV2vD,YAAa,GACbrvD,UAAW,GACXovD,aAAc,GACd7uD,SAAU,GACVmvD,YAAa,GACbC,aAAc,GACdC,gBAAiB,GACjBvwD,YAAa,GACbE,eAAgB,GAChB+B,YAAa,GACbuuD,eAAgB,GAChB/uD,UAAW,GACXC,UAAW,GACXJ,UAAW,GACXF,MAAO,GACPqvD,SAAU,GACVC,SAAU,GACVd,YAAa,GACbH,WAAY,UACZkB,UAAU,EACVC,eAAe,EACfd,cAAe,GACfG,iBAAkB,IAhG1B,EAAwC,uDA0GpC,WACI,GAAG5lC,KAAKhE,SACJ,OAAQgE,KAAKhE,SAASopC,YAClB,IAAK,IACDplC,KAAKhE,SAASopC,WAAa,UAC3BplC,KAAKolC,WAAa,UAClB,MACJ,IAAK,IACDplC,KAAKhE,SAASopC,WAAa,SAC3BplC,KAAKolC,WAAa,SAClB,MACJ,IAAK,IACDplC,KAAKhE,SAASopC,WAAa,UAC3BplC,KAAKolC,WAAa,UAClB,MACJ,IAAK,IACDplC,KAAKhE,SAASopC,WAAa,OAC3BplC,KAAKolC,WAAa,OAClB,MACJ,IAAK,UACDplC,KAAKhE,SAASopC,WAAa,UAC3BplC,KAAKolC,WAAa,UAClB,MACJ,IAAK,SACDplC,KAAKhE,SAASopC,WAAa,SAC3BplC,KAAKolC,WAAa,SAClB,MACJ,IAAK,UACDplC,KAAKhE,SAASopC,WAAa,UAC3BplC,KAAKolC,WAAa,UAClB,MACJ,IAAK,OACDplC,KAAKhE,SAASopC,WAAa,OAC3BplC,KAAKolC,WAAa,OAClB,SA5IoB,oBAyJpC,SAAOlsD,GACH8mB,KAAKslC,SAASF,WAAalsD,IA1JK,qBA6JpC,cA7JoC,yBAkKpC,WAAW,WACP8mB,KAAK2mC,YAAY3mC,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GACzC,EAAKotD,SAAWptD,EACb,EAAKsuD,gBACJ,EAAKttD,KAAO,EAAKstD,cAAcjxD,KAAI,SAAC7C,GAChC,MAAO,CACHL,KAAMK,EAAEgxB,YACRhwB,IAAKhB,EAAE0yD,qBAzKS,kBAgLpC,WAAI,WACAplC,KAAKwmC,cAAcjxD,KAAI,SAAC7C,GACjBA,EAAEgB,MAAQ,EAAK4xD,SAASF,aACvB,EAAKE,SAASF,WAAa1yD,EAAEg0D,eAGrCzxD,QAAIqyD,yBAAyB,CAAC5xD,WAAYsqB,KAAKvmB,KAAK/D,WAAY0vD,WAAYplC,KAAKslC,SAASF,eAtL1D,qBA+LpC,WACIplC,KAAKinC,eACLjnC,KAAKm1B,cACLn1B,KAAKunC,uBAlM2B,GAAS/oC,SA0G7CqE,gBADC0G,eAAM,aACP,sCA1GiB69B,GAAmB,gBA1BvCpmC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAE,aAEJp5B,SAAQ,kBACDC,eAAW,CACVznB,KAAMgzB,QACN1Q,UAAW1nB,QACX2nB,SAAU3nB,WAGlB+vB,QAAO,iCACAC,eAAW,CACV4iC,aAAc5yD,QACdsyD,YAAatyD,QACbwyD,YAAaxyD,WAEdiwB,eAAa,CACZkjC,YAAanzD,cAIJ+yD,cClC+T,MCOhV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrnC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACiB,YAAY,gBAAgBZ,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,MAAMJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,MAAMJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,aAAaJ,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAI0nC,MAAMvtD,QAAO,SAAUwtD,GAC1U,MAA0B,WAAnBA,EAAKC,cAA0B,SAASD,EAAKrrD,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,GAAO,CAAC8jB,EAAG,cAAc,CAACM,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAI6nC,eAAeF,KAAQha,MAAM,CAACt6C,MAAOs0D,EAAc,UAAE/Z,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKm8B,EAAM,YAAav0B,IAAMlP,WAAW,oBAAoB9D,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,KAAK,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG4lC,EAAKr1D,SAAS8tB,EAAG,IAAI,CAACiB,YAAY,0BAA0B,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG4lC,EAAK5sD,WAAWqlB,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,SAAS,CAACiB,YAAY,8BAA8Bb,MAAM,CAAC,SAAoB,GAATlkB,GAAYokB,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIrjB,KAAKL,EAAOA,EAAQ,MAAM,CAAC8jB,EAAG,IAAI,CAACiB,YAAY,yBAAyBjB,EAAG,SAAS,CAACiB,YAAY,8BAA8Bb,MAAM,CAAC,SAAWlkB,GAAS0jB,EAAI8nC,WAAWpnC,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIrjB,KAAKL,EAAOA,EAAQ,MAAM,CAAC8jB,EAAG,IAAI,CAACiB,YAAY,2BAA2BjB,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI+nC,KAAKJ,MAAS,CAACvnC,EAAG,IAAI,CAACiB,YAAY,oBAAoBjB,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIgoC,WAAWL,MAAS,CAACvnC,EAAG,IAAI,CAACiB,YAAY,sBAAsB,MAAK,QACjtC,GAAkB,G,wFC0BD4mC,GAAQ,wDAA7B,iD,0BAeI,EAAAP,MAA0B,GAC1B,EAAAI,UAAoB,EACpB,EAAAnqD,QAA4B,GAC5B,EAAAuqD,SAAmB,GAlBvB,EAA6B,uDAoCzB,WAAgB,MACNR,EAAQznC,KAAKynC,MAEfppD,EAAMopD,EAAMjtD,WAAU,SAACvH,GACvB,MAAkB,eAAXA,EAAEZ,QAITo1D,EAAMppD,IAEN2hB,KAAKynC,MAAM74D,OAAOyP,EAAK,GAK3B2hB,KAAK6nC,WACD,UAAA7nC,KAAKynC,MAAMvtD,QAAO,SAACwtD,GACf,MAA0B,WAAnBA,EAAKC,oBADhB,eAEIj6D,QAAS,EAEjBsyB,KAAKiC,MAAM,cAAewlC,KAxDL,4BAiEzB,SAAeC,GACX1nC,KAAKiC,MAAM,iBAAkBylC,KAlER,+EAqEzB,WAAcxuD,GAAd,4FACQgvD,EAAcloC,KAAKmoC,aAAa,uBAEjB,WAAhB,gBAAOjvD,GAHd,oBAIYkvD,EAAa,GAEbA,EADmB,WAAnB,gBAAOlvD,EAAK,IACCA,EAAK,GAAGiK,QAAQnK,SAAS,KAAOE,EAAK,GAAGiK,QAAQ6H,MAAM,KAAK,GAAK9R,EAAK,GAAGiK,QAGxEjK,EAAK,GAAGF,SAAS,KAAOE,EAAK,GAAG8R,MAAM,KAAK,GAAK9R,EAAK,GAT9E,OAYYgvD,QAZZ,IAYYA,MAAalvD,SAASovD,EAAW97B,eAZ7C,iCAayBr3B,QAAIozD,mBAAmBnvD,EAAK,IAAI5H,MAAK,SAAC4G,GAAM,MACrD,OAAO,UAAAA,EAAI9C,MAAM,UAAV,eAAcO,aAAc,IAAMuD,EAAK,GAAK,OAdnE,mDAkBuC,QAAvBA,EAAK,GAAGovD,YAlBxB,0CAmBuBpvD,EAAK,GAAG7G,KAAO,IAAM6G,EAAK,GAAGiK,QAAU,KAnB9D,iCAsBuBjK,EAAK,GAAG7G,MAtB/B,0CA0BY61D,QA1BZ,IA0BYA,MAAalvD,SAASE,GA1BlC,kCA2ByBjE,QAAIozD,mBAAmBnvD,GAAM5H,MAAK,SAAC4G,GAAM,MAClD,OAAO,UAAAA,EAAI9C,MAAM,UAAV,eAAcO,aAAc,IAAMuD,EAAO,OA5BhE,0EAgCmBA,GAhCnB,iDArEyB,yFA0GzB,SAAkBqvD,GACd,IAAMhR,EAAQv3B,KACVllB,EAAe,GACf0tD,EAAc,EAClB,OAAO,IAAI/4D,SAAQ,SAACC,EAAQC,GACxB44D,EAAWxvD,QAAX,0DAAmB,WAAOrG,EAA2B2L,EAAa6L,GAA/C,4FACH,IAARpP,IACAA,GAAQ,MAEC,0BAAVpI,EAAEgB,KAA4C,iBAAThB,EAAEgB,IAJ3B,oBAKPwE,EAAM,KACG,yBAATxF,EAAEgB,KAAkChB,EAAEU,MAAM,GAAG1F,QAAUgF,EAAEU,MAAM,GAAG1F,OAAS,GANtE,gBAOPwK,EAAMxF,EAAEU,MAAM,GAPP,uCASKmkD,EAAMkR,QAAQ/1D,EAAEU,OATrB,OASP8E,EATO,eAWX4C,GAAQkf,QAAK3mB,EAAE,SAASod,WAAavY,EAAM8hB,QAAK3mB,EAAE,SAASod,WAC3D+3C,IAZW,2BAaI,oBAAV91D,EAAEgB,IAbI,kCAccjE,QAAQ+C,IAAIE,EAAEU,MAAMmC,KAAI,SAACkF,GAC9C,IAAIvC,EAAMq/C,EAAMkR,QAAQhuD,EAAE0I,SAC1B,OAAOjL,MAhBA,QAcPwwD,EAdO,OAkBX5tD,GAAQkf,QAAK3mB,EAAE,SAAUq1D,EAAata,KAAK,MAAQp0B,QAAK3mB,EAAE,aAAaod,WACvE+3C,IAnBW,wBAoBI,0BAAV91D,EAAEgB,KACPoH,GAAQkf,QAAK3mB,EAAE,OAASX,EAAEU,MAAQ4mB,QAAK3mB,EAAE,aAAaod,WACtD+3C,KACe,2BAAV91D,EAAEgB,KACPoH,GAAQkf,QAAK3mB,EAAE,OAAOod,WAAa/d,EAAEU,MAAQ4mB,QAAK3mB,EAAE,aAAaod,WACjE+3C,KACe,wBAAV91D,EAAEgB,KACPoH,GAAQkf,QAAK3mB,EAAE,OAAOod,WAAa/d,EAAEU,MAAQ4mB,QAAK3mB,EAAE,aAAaod,WACjE+3C,KACgB,iCAAV91D,EAAEgB,MACRoH,GAAQkf,QAAK3mB,EAAE,YAAYod,WAAa/d,EAAEU,MAAQ4mB,QAAK3mB,EAAE,aAAaod,WACtE+3C,KA/BW,QAkCZA,GAAOt+C,EAAMxc,QACZgC,EAAQoL,GAnCG,4CAAnB,gEA/GiB,qBA0JzB,SAAQ4sD,GAAmB,WACjBnQ,EAAQv3B,KACVllB,EAAe,GAClBklB,KAAK2oC,kBAAkBjB,EAAKa,YAAYj3D,KAAxC,0DAA6C,WAAO4G,GAAP,uFAC1C4C,GAAQ5C,EACLA,IACCs1C,EAAqB,GACzBka,EAAK5qD,QAAQ/D,SAAQ,SAAC0B,GAClB,IAAMmuD,EAAgB,SAAhBA,EAAiBlrD,GACnBA,EAAQ3E,SAAQ,SAAC8U,GACTA,EAAEpY,KAAOgF,EAAErH,QACXo6C,EAAa3/B,EAAElY,aAGD,MAAdkY,EAAExU,UACFuvD,EAAc/6C,EAAExU,cAK5BuvD,EAAcrR,EAAM75C,SAEP,iBAAVjD,EAAE/G,MACDoH,GAAQ,IAAM0yC,EAAY,aAIlC,EAAKya,SAAWntD,EAChB4sD,EAAK5sD,KAAO,EAAKmtD,SACdP,EAAK5sD,KA1BkC,2CAA7C,kCAAAklB,KAAA,kBA7JoB,qBA+LzB,SAAQ9mB,GACJ,IAAMuuD,EAAQznC,KAAKynC,MAEfppD,EAAMopD,EAAMjtD,WAAU,SAACvH,GACvB,OAAOA,EAAEwC,KAAOyD,EAAKzD,MAGF,WAAnByD,EAAKyuD,UAEDtpD,GAAO,EAEP2hB,KAAKynC,MAAM74D,OAAOyP,EAAK,EAAGnF,GAE1B8mB,KAAKynC,MAAMz5D,KAAKkL,GAEM,QAAnBA,EAAKyuD,UAEZ3nC,KAAKynC,MAAM74D,OAAOyP,EAAK,EAAGnF,GACA,WAAnBA,EAAKyuD,YAERF,EAAMppD,GAAK5I,GAAGmG,QAAQ,UAAY,EAElCokB,KAAKynC,MAAM74D,OAAOyP,EAAK,GAGvB2hB,KAAKynC,MAAM74D,OAAOyP,EAAK,EAAGnF,MAxNb,kBAgOzB,SAAK44B,EAAcjyB,GAGf,OAFAmgB,KAAKiC,MAAM,OAAQ6P,EAAMjyB,GACzBmgB,KAAKynC,MAAM74D,OAAOiR,EAAI,EAAGmgB,KAAKynC,MAAM74D,OAAOkjC,EAAM,GAAG,IAC7C9R,KAAKynC,QAnOS,kBAsOzB,SAAKC,GACF1nC,KAAKiC,MAAM,SAASylC,KAvOE,kFA0OzB,WAAiBxuD,GAAjB,8FACU9G,EAAU4tB,KAAKqC,GAAG,0BAA0B5R,WADtD,SAEcvc,OAAe20D,aAAaz2D,GAF1C,sBAEsD,GAFtD,+CAGe,GAHf,OAKQ8G,EAAKyuD,UAAY,SACjB3nC,KAAK8oC,QAAQ5vD,GANrB,iDA1OyB,+EAyPzB,WAAO,WACJ8mB,KAAKvrB,SAAQ,GACZQ,QAAIwsC,YAAYnwC,MAAK,SAAC4G,GAClB,EAAKwF,QAAUxF,EACfjD,QAAI8zD,WAAWz3D,MAAK,SAAC4G,GACjB,EAAKzD,SAAQ,GACb,EAAKgzD,MAAQvvD,EAAIuvD,MAAMlyD,KAAI,SAACmyD,GAGxB,OAFAA,EAAK5sD,KAAO,GACZ,EAAKkuD,QAAQtB,GACNA,eAlQE,GAASlpC,QAoClCqE,gBADC0G,eAAM,UACP,sCApCiBy+B,GAAQ,gBAjB5BhnC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACAwH,gBAEJz9B,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,cAKA2zD,cC5BoT,MCOrU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIjoC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACI,MAAM,CAAC,QAAS,GAAMe,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAAGzB,EAAI8xB,OAAsoB9xB,EAAU,OAAE,CAACI,EAAG,UAAU,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAeypB,MAAM,CAACt6C,MAAO2sB,EAAgB,aAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIkpC,aAAa91B,GAAKlP,WAAW,mBAAmBlE,EAAIe,KAAr2BX,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAe7C,YAAY,iBAAiB,CAACjB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,8CAA8ClC,EAAG,MAAMJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,+DAA+DlC,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQV,EAAImpC,aAAa,CAAC/oC,EAAG,IAAI,CAACiB,YAAY,+BAA+BrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqB,SAASlC,EAAG,WAAW,CAACM,GAAG,CAAC,OAASV,EAAIopC,WAAW,eAAiBppC,EAAI6nC,eAAe,KAAO7nC,EAAIrjB,KAAK,YAAcqjB,EAAIqpC,gBAAgB,KAAkPhnC,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAAGzB,EAAI8xB,OAAuG1xB,EAAG,cAAc,CAACM,GAAG,CAAC,OAASV,EAAIspC,aAAa,KAAOtpC,EAAIupC,eAA1JnpC,EAAG,cAAc,CAACM,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,WAAW,KAAOlC,EAAI27B,UAAoFt5B,OAAM,QACt5C,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOP,KAAKqC,GAAG,uBAAuB5R,WAAW,OAAS,MAAM,CAAC0P,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI7mB,KAAS,KAAE+qB,WAAW,cAAc7C,YAAY,SAASb,MAAM,CAAC,KAAO,OAAO,KAAO,GAAG,GAAK,GAAG,YAAcP,KAAKqC,GAAG,oBAAoB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAI7mB,KAAS,MAAGunB,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAI7mB,KAAM,OAAQ0oB,EAAO/wB,OAAOuC,aAAa+sB,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOP,KAAKqC,GAAG,YAAY5R,WAAW,OAAS,MAAM,CAAC0P,EAAG,MAAM,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACjB,EAAG,OAAO,CAACiB,YAAY,iCAAiCjB,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,mBAAmBtC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,iBAAiB,CAACI,MAAM,CAAC,QAAS,EAAK,UAAY,SAAS,WAAaR,EAAIwpC,WAAW,YAAcxpC,EAAIypC,mBAAmB/oC,GAAG,CAAC,oBAAoB,SAASmB,GAAQ7B,EAAIwpC,WAAW3nC,OAAY,GAAGzB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACjB,EAAG,OAAO,CAACiB,YAAY,iCAAiCjB,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,sBAAsBtC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,iBAAiB,CAACI,MAAM,CAAC,QAAS,EAAM,UAAY,WAAW,WAAaR,EAAI2oC,aAAa,YAAc3oC,EAAI0pC,qBAAqBhpC,GAAG,CAAC,oBAAoB,SAASmB,GAAQ7B,EAAI2oC,aAAa9mC,OAAY,GAAGzB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACjB,EAAG,OAAO,CAACiB,YAAY,iCAAiCjB,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,aAAatC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAU,OAAEkE,WAAW,WAAW7C,YAAY,SAASb,MAAM,CAAC,KAAO,OAAO,YAAcP,KAAKqC,GAAG,sBAAsB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAU,QAAGU,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,YAAqBltB,EAAI0D,OAAO7B,EAAO/wB,OAAOuC,aAAY+sB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACjB,EAAG,OAAO,CAACiB,YAAY,iCAAiCjB,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BtC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAS,MAAEkE,WAAW,UAAU7C,YAAY,SAASb,MAAM,CAAC,KAAO,OAAO,YAAcP,KAAKqC,GAAG,sBAAsB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAS,OAAGU,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,YAAqBltB,EAAI1pB,MAAMurB,EAAO/wB,OAAOuC,aAAY+sB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACjB,EAAG,OAAO,CAACiB,YAAY,iCAAiCjB,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,8BAA8BtC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAW,QAAEkE,WAAW,YAAY7C,YAAY,SAASb,MAAM,CAAC,KAAO,OAAO,YAAcP,KAAKqC,GAAG,sBAAsB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAW,SAAGU,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,YAAqBltB,EAAIsG,QAAQzE,EAAO/wB,OAAOuC,eAAc+sB,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOP,KAAKqC,GAAG,SAAS5R,WAAW,OAAS,MAAM,CAAC0P,EAAG,MAAM,CAACiB,YAAY,+BAA+B,CAACjB,EAAG,MAAM,CAACiB,YAAY,4BAA4B,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,QAAQ,CAACiB,YAAY,eAAeb,MAAM,CAAC,KAAO,OAAO,SAAW,IAAIiF,SAAS,CAAC,MAAQzF,EAAI2pC,uBAAuB3pC,EAAI7mB,SAASinB,EAAG,SAAS,CAACiB,YAAY,uCAAuCX,GAAG,CAAC,MAAQV,EAAI4pC,YAAY,CAAC5pC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0CAA0ClC,EAAG,YAAY,CAACI,MAAM,CAAC,KAAOR,EAAImD,MAAMzC,GAAG,CAAC,OAASV,EAAIwC,OAAO,KAAOxC,EAAIpK,mBAAmB,IAC34H,GAAkB,GCDlB,I,UAAS,WAAa,IAAIoK,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,8BAA8B,MAAQR,EAAI1pB,MAAM,KAAO0pB,EAAImD,MAAMzC,GAAG,CAAC,OAASV,EAAIwC,QAAQjB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQV,EAAI27B,OAAO,CAAC37B,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQV,EAAIwC,SAAS,CAACxC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAAcD,OAAM,MAAS,CAACjC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,mBAAmB,CAACM,GAAG,CAAC,OAASV,EAAIjmB,WAAW,KAC9mB,GAAkB,GCDlB,GAAS,WAAa,IAAIimB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,IAAI,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,2BAA2B,OAAOlC,EAAG,IAAI,CAACiB,YAAY,0BAA0B,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI6pC,oBAAoB7pC,EAAI4B,GAAG,MAAM5B,EAAI+B,GAAG/B,EAAI8pC,iBAAiB,OAAO1pC,EAAG,QAAQ,CAACiB,YAAY,MAAMZ,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqBlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uBAAuBlC,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,wBAAwBlC,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAc,YAAE,SAASviB,EAAOnB,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,GAAO,CAAC8jB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAGtkB,EAAO7H,gBAAgBwqB,EAAG,KAAK,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAGtkB,EAAOssD,gBAAgB3pC,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAGtkB,EAAOnI,iBAAiB8qB,EAAG,KAAK,CAACiB,YAAY,kBAAkB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIgqC,iBAAiBvsD,EAAOo3B,eAAezU,EAAG,KAAK,CAACA,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIoB,KAAK3jB,MAAW,CAACuiB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,YAAYlC,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIiqC,WAAWxsD,MAAW,CAACuiB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqBlC,EAAG,KAAK,CAACA,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkqC,WAAWzsD,MAAW,CAAC2iB,EAAG,IAAI,CAACiB,YAAY,mBAAmBjB,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAImqC,iBAAiB1sD,MAAW,CAACuiB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,mBAAkB,KAAKlC,EAAG,eAAe,CAACI,MAAM,CAAC,KAAOR,EAAIoqC,YAAY,MAAQpqC,EAAI7mB,MAAMunB,GAAG,CAAC,OAASV,EAAIqqC,aAAa,WAAarqC,EAAIsqC,iBAAiB,MAAQtqC,EAAIuqC,eAAenqC,EAAG,kBAAkB,CAACI,MAAM,CAAC,KAAOR,EAAIwqC,gBAAgB,GAAKxqC,EAAItqB,IAAIgrB,GAAG,CAAC,OAASV,EAAIyqC,qBAAqB,IACn6D,GAAkB,G,aCDlB,GAAS,WAAa,IAAIzqC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,8BAA8B,MAAQP,KAAKqC,GAAG,wBAAwB5R,WAAW,KAAOsP,EAAImD,MAAMzC,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAYX,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAY,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAAcD,OAAM,MAAS,CAACjC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,QAAQ,CAACA,EAAG,WAAW,CAACA,EAAG,MAAM,CAACK,YAAY,KAAKL,EAAG,SAASA,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,mCAAmClC,EAAG,KAAK,CAACiB,YAAY,cAAcb,MAAM,CAAC,kBAAkB,KAAK,CAACJ,EAAG,QAAQ,CAACiB,YAAY,WAAWb,MAAM,CAAC,kBAAkB,KAAK,CAACJ,EAAG,OAAO,CAACiB,YAAY,QAAQb,MAAM,CAAC,kBAAkB,KAAK,CAACR,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,6BAA6B,OAAOlC,EAAG,QAAQ,CAACI,MAAM,CAAC,kBAAkB,GAAG,KAAO,QAAQ,KAAO,WAAWiF,SAAS,CAAC,SAAgC,IAAtBzF,EAAI3sB,MAAMoT,SAAmBia,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,cAAc,OAAW9B,EAAG,OAAO,CAACiB,YAAY,QAAQb,MAAM,CAAC,kBAAkB,QAAQJ,EAAG,QAAQ,CAACiB,YAAY,WAAWb,MAAM,CAAC,kBAAkB,KAAK,CAACJ,EAAG,OAAO,CAACiB,YAAY,QAAQb,MAAM,CAAC,kBAAkB,KAAK,CAACR,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,6BAA6B,OAAOlC,EAAG,QAAQ,CAACI,MAAM,CAAC,kBAAkB,GAAG,KAAO,QAAQ,KAAO,WAAWiF,SAAS,CAAC,SAAgC,IAAtBzF,EAAI3sB,MAAMoT,SAAkBia,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,cAAc,OAAU9B,EAAG,OAAO,CAACiB,YAAY,QAAQb,MAAM,CAAC,kBAAkB,SAA+B,IAAtBR,EAAI3sB,MAAMoT,QAAkB2Z,EAAG,MAAM,CAACA,EAAG,MAAM,CAACiB,YAAY,aAAajB,EAAG,aAAa,CAACI,MAAM,CAAC,SAAWR,EAAI0qC,eAAehqC,GAAG,CAAC,MAAQ,SAAUrtB,GAAS,OAAO2sB,EAAIkC,MAAM,QAAS7uB,KAAWs6C,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAW,MAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,QAAS+/B,IAAMlP,WAAW,iBAAiB9D,EAAG,aAAa,CAACI,MAAM,CAAC,SAAWR,EAAI0qC,eAAe/c,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAS,IAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,MAAO+/B,IAAMlP,WAAW,gBAAgB,GAAGlE,EAAIe,cAC5yE,GAAkB,GCsBD4pC,GAAY,wDAAjC,iD,0BAkBI,EAAAD,eAAyB,EAlB7B,EAAiC,gDA6B7B,WACQzqC,KAAK5sB,MAAMoT,QAEXwZ,KAAKyqC,eAAgB,EACbzqC,KAAK5sB,MAAMoT,UACnBwZ,KAAKyqC,eAAgB,OAlCA,GAASjsC,QAQfqE,gBAAtBC,eAAK,CAACtyB,KAAMyyB,WAAU,4BACDJ,gBAArBC,eAAK,CAACtyB,KAAM7C,UAAS,6BAoBtBk1B,gBADC0G,eAAM,kBACP,+BA7BiBmhC,GAAY,gBAbhC1pC,eAAU,CACPmD,WAAW,CACP2F,cACA4G,mBACA/M,cACAu2B,eACA52B,cACA62B,cACAM,6BACAkQ,eACAvL,kBAGasL,cCvBoU,MCOrV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI3qC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,4CAA4C,MAAQR,EAAI1pB,MAAM,KAAO0pB,EAAImD,MAAMzC,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAYX,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQV,EAAIrjB,OAAO,CAACqjB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAAcD,OAAM,MAAS,CAACjC,EAAG,mBAAmB,CAACM,GAAG,CAAC,OAASV,EAAIjmB,WAAW,IAC9pB,GAAkB,GCDlB,GAAS,WAAa,IAAIimB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAW,QAAEI,EAAG,aAAa,CAACI,MAAM,CAAC,MAAQR,EAAI6qC,iBAAiBnqC,GAAG,CAAC,OAASV,EAAIjmB,UAAUimB,EAAIe,MAC9L,GAAkB,GCDlB,GAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAAErB,EAAI3qB,MAAM1H,OAAS,EAAGyyB,EAAG,MAAM,CAACiB,YAAY,UAAUrB,EAAI0B,GAAI1B,EAAS,OAAE,SAAS7mB,GAAM,OAAOinB,EAAG,eAAe,CAACzsB,IAAIwF,EAAKzD,GAAG8qB,MAAM,CAAC,KAAOrnB,EAAK,YAAc6mB,EAAIiJ,YAAY,cAAgBjJ,EAAImJ,cAAc,iBAAmBnJ,EAAIoJ,kBAAkB1I,GAAG,CAAC,OAAS,SAAUpgB,GAAS,OAAO0f,EAAIkC,MAAM,SAAU5hB,IAAU,OAAS,SAAUnH,GAAQ,OAAO6mB,EAAIkC,MAAM,SAAU/oB,UAAc,GAAG6mB,EAAIe,QAClhB,GAAkB,GCDlB,GAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,QAAQf,MAAM,CAAE3oB,SAAUqoB,EAAI7mB,KAAKxB,UAAW+oB,GAAG,CAAC,MAAQ,SAASmB,GAAgC,OAAxBA,EAAOe,iBAAwB5C,EAAIjmB,OAAOzL,MAAM,KAAM46B,cAAc,CAAElJ,EAAI5hB,cAAegiB,EAAG,OAAO,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAQ7B,EAAIgJ,UAAYhJ,EAAIgJ,YAAY,CAAC5I,EAAG,IAAI,CAACE,MAAM,CACjWN,EAAIgJ,SACE,yBACA,gCAAiChJ,EAAIe,KAAMf,EAAI7mB,KAAK6mB,EAAIiJ,aAAc7I,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI7mB,KAAK6mB,EAAIiJ,cAAc,OAAOjJ,EAAIe,KAAMf,EAAY,SAAEI,EAAG,MAAM,CAACiB,YAAY,SAASrB,EAAI0B,GAAI1B,EAAI7mB,KAAa,UAAE,SAASmH,GAAO,OAAO8f,EAAG,eAAe,CAACzsB,IAAI2M,EAAM3M,IAAI6sB,MAAM,CAAC,KAAOlgB,EAAM,YAAc0f,EAAIiJ,YAAY,cAAgBjJ,EAAImJ,cAAc,iBAAmBnJ,EAAIoJ,kBAAkB1I,GAAG,CAAC,OAAS,SAAU2I,GAAc,OAAOrJ,EAAIkC,MAAM,SAAUmH,IAAe,OAAS,SAAUA,GAAc,OAAOrJ,EAAIkC,MAAM,SAAUmH,UAAoB,GAAGrJ,EAAIe,QACzlB,GAAkB,GCEDuI,GAAY,wDAAjC,iD,0BAoBI,EAAAN,UAAoB,EApBxB,EAAiC,gDA8B7B,SAAUlB,QACUv1B,GAAZu1B,IAAsC,IAAbA,GACzB7H,KAAKiC,MAAM,SAAUjC,KAAK9mB,QAhCL,oBA0C7B,WACI8mB,KAAKiC,MAAM,SAAUjC,KAAK9mB,QA3CD,yBA8C7B,WACI,MAAqC,kBAA1B8mB,KAAKmJ,iBACJnJ,KAAK9mB,KAAa8mB,KAAKmJ,kBAExBnJ,KAAKmJ,iBAAiBnJ,KAAK9mB,UAlDb,GAASslB,QAOdqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACiBk1B,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,mCACIH,gBAA5CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,cAAc,qCACTH,gBAAnCC,eAAK,CAAEtyB,KAAM,CAACuyB,OAAQuG,aAAa,wCAoBpCzG,gBADC0G,eAAM,aACP,+BA9BiBF,GAAY,gBAHhCrI,eAAU,CACP3uB,KAAM,kBAEWg3B,cCNgS,MCOjT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCXMoB,GAAQ,qJAASjM,QAOXqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BACkBuS,gBAAxCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,UAAU,mCACIH,gBAA5CC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,cAAc,qCACTH,gBAAnCC,eAAK,CAAEtyB,KAAM,CAACuyB,OAAQuG,aAAa,wCAVnBmB,GAAQ,gBAH5BzJ,eAAU,CACPmD,WAAY,CAAEkF,oBAEGoB,cCP4R,MCO7S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI1K,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACjB,EAAG,MAAM,CAACiB,YAAY,wCAAwC,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoBrB,EAAI0B,GAAI1B,EAAS,OAAE,SAAS7mB,GAAM,OAAOinB,EAAG,aAAa,CAACzsB,IAAIwF,EAAKzD,GAAG8qB,MAAM,CAAC,KAAOrnB,EAAK,GAAK6mB,EAAIyhB,UAAU/gB,GAAG,CAAC,OAAS,SAAUhrB,GAAM,OAAOsqB,EAAI8qC,aAAap1D,EAAI,MAAQ,UAAY,SAAUyD,GAAQ,OAAO6mB,EAAI+qC,kBAAkB5xD,UAAc,QAC/d,GAAkB,GCDlB,GAAS,WAAa,IAAI6mB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,SAASb,MAAM,CAAC,GAAK,aAAiBR,EAAI7mB,KAAKzD,IAAIgrB,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIgrC,UAAUhrC,EAAI7mB,SAAS,CAACinB,EAAG,MAAM,CAACE,MAAM,CAAC,QAAUN,EAAItqB,IAAMsqB,EAAI7mB,KAAKzD,GAAK,WAAa,KAAM,CAAEsqB,EAAI7mB,KAAgB,YAAEinB,EAAG,OAAO,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,IAAI,CAACiB,YAAY,gBAAgBb,MAAM,CAAC,GAAK,OAAWR,EAAI7mB,KAAKzD,IAAIgrB,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB,SAAWrjC,GAAM,OAAOsqB,EAAIkC,MAAM,SAAUlC,EAAI7mB,KAAKzD,KAAQpH,MAAM,KAAM46B,iBAAiBlJ,EAAIe,KAAKf,EAAI6N,GAAG,GAAGzN,EAAG,OAAO,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI7mB,KAAKvD,kBAAmBoqB,EAAI7mB,KAAgB,YAAEinB,EAAG,MAAM,CAACiB,YAAY,SAASrB,EAAI0B,GAAI1B,EAAI7mB,KAAa,UAAE,SAASmH,GAAO,OAAO8f,EAAG,cAAc,CAACzsB,IAAI2M,EAAM5K,GAAG8qB,MAAM,CAAC,KAAOlgB,EAAM,GAAK0f,EAAItqB,IAAIgrB,GAAG,CAAC,OAAS,SAAUhrB,GAAM,OAAOsqB,EAAIkC,MAAM,SAAUxsB,IAAO,UAAY,SAAUyD,GAAQ,OAAO6mB,EAAIkC,MAAM,YAAa/oB,UAAc,GAAG6mB,EAAIe,QACxgC,GAAkB,CAAC,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACiB,YAAY,aAAa,CAACjB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,8CCMjJyqC,GAAU,2KAiB7B,SAAUxtD,GACRwiB,KAAKiC,MAAM,YAAazkB,OAlBG,GAASghB,QAOdqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,0BACDF,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BATJ06C,GAAU,gBAJ9BhqC,eAAU,CACT3uB,KAAM,iBAGa24D,cCP8V,MCO/W,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCTMC,GAAU,wDAA/B,iD,0BAOI,EAAAzpB,SAAkB,GAPtB,EAA+B,wDAW3B,SAAkB3gC,GACVA,EAAWpL,KACXuqB,KAAKwhB,SAAW3gC,EAAWpL,GAAGgb,WAC9BuP,KAAKiC,MAAM,SAAUphB,MAdF,0BAmB3B,SAAaoqB,EAAgBigC,GACzB,IAAInxB,EAAOhqC,SAASy9B,gBAA4B,KAAZ09B,EAAkB,OAAS,UAAYjgC,GACvEkgC,EAAUp7D,SAASy9B,gBAA4B,KAAZ09B,EAAkB,aAAe,gBAAkBjgC,GACtFmgC,EAAO,OAAGD,QAAH,IAAGA,OAAH,EAAGA,EAAS9zB,cAAc,UAErC,OAAI0C,QAAJ,IAAIA,KAAME,UAAUC,SAAS,kBACrB,OAAJH,QAAI,IAAJA,KAAME,UAAUE,OAAO,iBACnB,OAAJJ,QAAI,IAAJA,KAAME,UAAUG,IAAI,kBACb,OAAPgxB,QAAO,IAAPA,KAASt5D,aAAa,QAAS,kBAG3B,OAAJioC,QAAI,IAAJA,KAAME,UAAUE,OAAO,kBACnB,OAAJJ,QAAI,IAAJA,KAAME,UAAUG,IAAI,iBACb,OAAPgxB,QAAO,IAAPA,KAASt5D,aAAa,QAAS,iBAhCZ,GAAS0sB,QAMbqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,6BANN26C,GAAU,gBAH9BjqC,eAAU,CACPmD,WAAY,CAAEsG,YAAUugC,kBAEPC,cCT8R,MCO/S,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCTMI,GAAgB,wDAArC,iD,0BAOI,EAAA11C,eAA2C,KAC3C,EAAAjY,QAA4B,GARhC,EAAqC,oDAejC,WAAmB,WACTkrD,EAAgB,SAAhBA,EAAiBlrD,GAAgD,IAArB4tD,EAAqB,uDAAL,EAC9D5tD,EAAQ3E,SAAQ,SAAC8U,GAAK,MAEL,GAATy9C,IACCz9C,EAAqBkb,UAAW,GAGrClb,EAAEnW,UAAW,YAAKie,sBAAL,eAAqBlgB,MAAOoY,EAAEpY,GACzB,MAAdoY,EAAExU,UACFuvD,EAAc/6C,EAAExU,WAAgCiyD,OAIxDC,EAAoB,CAAC,SAAU,SAyBnC,OAvBA3C,EAAc5oC,KAAKtiB,SAEnBsiB,KAAKtiB,QAAQnI,KAAI,SAAC2D,GACd,OAAOA,EAAKsyD,qBACR,IAAK,QACDtyD,EAAKvD,YAAc,EAAK0sB,GAAG,UAAU5R,WACrC,MACJ,IAAK,YACDvX,EAAKvD,YAAc,EAAK0sB,GAAG,wBAAwB5R,WACnD,MACJ,IAAK,SACDvX,EAAKvD,YAAc,EAAK0sB,GAAG,UAAU5R,WACrC,MACJ,IAAK,SACDvX,EAAKvD,YAAc,EAAK0sB,GAAG,uBAAuB5R,WAClD,MACJ,IAAK,eACDvX,EAAKvD,YAAc,EAAK0sB,GAAG,6BAA6B5R,WACxD,UAKLuP,KAAKtiB,QAAQxD,QAAO,SAAC2T,GAAD,OAAwB09C,EAAkBvyD,SAAS6U,EAAElY,kBAtDnD,oBA+DjC,SAAO6H,GACHwiB,KAAKrK,eAAiBnY,EACtBwiB,KAAKiC,MAAM,SAAUzkB,KAjEQ,qBA0EjC,WAAO,WACHvI,QAAIwsC,YAAYnwC,MAAK,SAAC4G,GAClB,EAAKwF,QAAUxF,SA5EU,GAASsmB,QAAzB6sC,GAAgB,gBAHpCrqC,eAAU,CACPmD,WAAY,CAAEsG,YAAUwgC,kBAEPI,cCToS,MCQrT,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCGMI,GAAe,wDAApC,iD,0BAMI,EAAA91C,eAAoC,GACpC,EAAAtf,MAAgB,EAAKgsB,GAAG,qBAAqB5R,WAPjD,EAAoC,6CAyBhC,SAAOjT,GACHwiB,KAAKrK,eAAiBnY,IA1BM,kBA6BhC,WAAI,WACAvI,QAAIy2D,YACD,CAAC1rC,KAAKvqB,IAAIuqB,KAAKrK,eAAelgB,IAC/BnE,KAFF,0DAEO,WAAO0pB,GAAP,qFACCA,EADD,gCAEO9mB,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAFpD,OAGC,EAAKwR,MAAM,UAHZ,2CAFP,2DA9B4B,GAASzD,QAgBlBqE,gBAAtBC,eAAK,CAACtyB,KAAMyyB,WAAU,4BACDJ,gBAArBC,eAAK,CAACtyB,KAAMuyB,UAAS,0BAjBL0oC,GAAe,gBAbnCzqC,eAAU,CACPmD,WAAW,CACP2F,cACA4G,mBACA/M,cACAu2B,eACA52B,cACA62B,cACAM,6BACAkQ,eACAU,wBAGaI,cCtBuU,MCOxV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,qBCmBMd,GAAW,wDAAhC,iD,0BAOE,EAAAzxD,KAAwB,CACtBsN,SAAS,EACT7D,MAAOT,QAAwB,aAAc,IAAIsB,MACjDX,IAAKX,QAAwB,aAAc,IAAIsB,OAGjD,EAAA3C,WAA6B,CAC3BxH,SAAU,KACV1D,YAAa,GACbwI,aAAa,EACb1I,GAAI,GACJugB,YAAY,EACZ1O,eAAgB,GAChBjS,WAAY,EACZu/B,UAAW,EACXk1B,YAAa,EACb0B,oBAAqB,GACrBG,kBAAmB,IAGrB,EAAAl2D,GAAa,GACb,EAAAmmB,KAAe,EACf,EAAAgwC,SAAmB,GACnB,EAAAC,WAAqB,EACrB,EAAAC,MAAgB,sBAChB,EAAA3B,aAAuB,EACvB,EAAAI,iBAA2B,EAE3B,EAAAX,gBAA0B,OAE1B,EAAAC,gBAA0B,OArC5B,EAAgC,+CAsD9B,WACE,IAAIh5D,EAA2B,GACzBk7D,EAAgB,SAAhBA,EAA0B7yD,GAC9B,IAAK,IAAI1L,EAAI,EAAGA,EAAI0L,EAAKxL,OAAQF,IAC/BqD,EAAO7C,KAAKkL,EAAK1L,IACb0L,EAAK1L,GAAG2Q,aACV4tD,EAAc7yD,EAAK1L,GAAG6L,UAG1B,OAAOxI,GAET,OAAOk7D,EAAc/rC,KAAKnf,cAjEE,8BA4F9B,SAAiB2a,GACf,OAAOA,EAAQD,gBAAgBC,GAAS,MA7FZ,8BAgG9B,SAAiBhrB,GACfwvB,KAAK9mB,KAAKsN,QAAUhW,IAjGQ,kBAoG9B,SAAK0I,GACH8mB,KAAKvqB,GAAKyD,EAAKzD,GACfuqB,KAAK4rC,SAAW1yD,EAAKvD,YACrBqqB,KAAKpE,KAAO1iB,EAAK07B,UACjB5U,KAAKmqC,aAAc,IAxGS,wBA2G9B,SAAWjxD,GACT8mB,KAAKvqB,GAAKyD,EAAKzD,GACfuqB,KAAK4rC,SAAW1yD,EAAKvD,YACrBqqB,KAAKpE,KAAO1iB,EAAK07B,UACjB5U,KAAKuqC,iBAAkB,IA/GK,8BAiH9B,WACEvqC,KAAKuqC,iBAAkB,IAlHK,0BAqH9B,WACEvqC,KAAKmqC,aAAc,IAtHS,mFAyH9B,gHACMjkD,EAAU,IAAI1C,KAAKwc,KAAK9mB,KAAK2J,KACjCqD,EAAQC,QAAQD,EAAQE,UAAY,GACpC4Z,KAAK9mB,KAAK2J,IAAMX,QAAwB,aAAcgE,KAElD8Z,KAAKpE,KAAO,GALlB,gBAMUowC,EAAU,SAACz9D,GACf,IAAQysB,EAA4DzsB,EAA5DysB,QAA4DzsB,EAAnD4sB,WAAmD5sB,EAAvC6sB,UAAuC7sB,EAA5B8sB,QAA4B9sB,EAAnB+sB,eAC7CN,IACF,EAAKixC,QACL,EAAK9B,aAAc,KAIG,IAAtBnqC,KAAK9mB,KAAKsN,QACZwZ,KAAKsT,SAAS,CACZkO,SAAUxhB,KAAKvqB,GACfm2D,SAAU5rC,KAAK4rC,WACQt6D,KAAK06D,GAE9BhsC,KAAKsT,SAAS,CACZkO,SAAUxhB,KAAKvqB,GACfkN,MAAOqd,KAAK9mB,KAAKyJ,MACjBE,IAAKmd,KAAK9mB,KAAK2J,IACf+oD,SAAU5rC,KAAK4rC,WACQt6D,KAAK06D,GAzBpC,wCA4BU93D,OAAegnB,WAAW8E,KAAKqC,GAAG,qBA5B5C,QA6BIrC,KAAKisC,QA7BT,QA+BEjsC,KAAK6rC,WAAY,EA/BnB,iDAzH8B,4EA2J9B,WACE7rC,KAAK9mB,KAAKsN,SAAU,EACpBwZ,KAAKvqB,GAAK,GACVuqB,KAAK9mB,KAAKyJ,MAAQT,QAAwB,aAAc,IAAIsB,MAC5Dwc,KAAK9mB,KAAK2J,IAAMX,QAAwB,aAAc,IAAIsB,MAC1Dwc,KAAK4rC,SAAW,KAhKY,kFAmK9B,WAAiB1yD,GAAjB,iGACmC,iBAA7BA,EAAKsyD,oBADX,oBAEUp5D,EAAU4tB,KAAKqC,GAAG,oBAAoB5R,aACxCvX,EAAK07B,UAAY,GAHzB,iCAIgB1gC,OAAe20D,aAAaz2D,GAJ5C,sBAIwD,GAJxD,wDAOQ85D,QACGnqB,OAAO,CACNtsC,GAAIyD,EAAKzD,GACTnC,KAAMe,QAAiB83D,mBACvBC,kBAAkB,IAEnB96D,KANH,yCAMQ,8GACE4C,OAAegnB,WAAW,EAAKmH,GAAG,YAAY5R,YADhD,OAEJ,EAAKgxB,YAFD,4CAbhB,iDAmBYvtC,OAAegnB,WAAW8E,KAAKqC,GAAG,wBAnB9C,gCAsBIrC,KAAKkqC,iBAAiBhxD,GAtB1B,iDAnK8B,kJA6L9B,WAAuBA,GAAvB,iGACQ9G,EAEJ4tB,KAAKqC,GAAG,gBAAgB5R,WAAa,WAAauP,KAAKqC,GAAG,gBAAgB5R,aACxEvX,EAAK07B,UAAY,GAJvB,iCAKc1gC,OAAe20D,aAAaz2D,GAL1C,sBAKsD,GALtD,sDAQM85D,QACGnqB,OAAO,CACNtsC,GAAIyD,EAAKzD,GACTnC,KAAMe,QAAiBg4D,WACvBD,kBAAkB,IAEnB96D,KANH,yCAMQ,8GACE4C,OAAegnB,WAAW,EAAKmH,GAAG,cAAc5R,YADlD,OAEJ,EAAKgxB,YAFD,4CAdd,iDAoBUvtC,OAAegnB,WAAW8E,KAAKqC,GAAG,wBApB5C,iDA7L8B,iFAqN9B,WAAS,WACP6pC,QAAUI,gBAAgBh7D,MAAK,SAAC4G,GAC9B,EAAK2I,WAAa3I,EACd,EAAK2I,YACP,EAAKpM,SAAQ,QAzNW,qBAmO9B,WAAO,WACLurB,KAAKyhB,YACLzhB,KAAK6pC,gBAAkB7pC,KAAK4pC,gBAAkB5pC,KAAKqC,GAAG,UAAU5R,WAChExb,QAAIkI,KAAKovD,qBAAqBj7D,MAAK,YAAuC,IAApCk7D,EAAoC,EAApCA,eAAgBC,EAAoB,EAApBA,eAChDA,EAAiB,IAAG,EAAK7C,gBAAkBruC,gBAAgBkxC,IAC3DD,EAAiB,IAAG,EAAK3C,gBAAkBtuC,gBAAgBixC,WAxOrC,GAAShuC,QAApBmsC,GAAW,gBAlB/B3pC,eAAU,CACTmD,WAAY,CACVsnC,mBACA9nC,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACAqQ,iBAEFtmC,QAAS,kBACJC,eAAW,CACZiP,SAAUj/B,QACVI,QAASJ,cAIMs2D,cCrCuT,MCOxU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCPM+B,GAAS,wDAA9B,iD,0BAQI,EAAA/2C,eAA2C,KAC3C,EAAAtf,MAAgB,EAAKgsB,GAAG,yBAAyB5R,WATrD,EAA8B,6CAkB1B,SAAOjT,GACHwiB,KAAKrK,eAAiBnY,IAnBA,kBAsB1B,WACIwiB,KAAKiC,MAAM,OAAQjC,KAAKrK,kBAvBF,oBA0B1B,WACIqK,KAAKiC,MAAM,cA3BW,GAASzD,QACZqE,gBAAtBC,eAAK,CAACtyB,KAAMyyB,WAAU,4BADNypC,GAAS,gBAH7B1rC,eAAU,CACPmD,WAAW,CAAC2F,cAAW4G,mBAAY/M,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BkQ,eAAYU,wBAEzGqB,cCXqT,MCOtU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI3sC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,+BAA+B,CAACjB,EAAG,MAAM,CAACiB,YAAY,qCAAqCZ,YAAY,CAAC,aAAa,UAAU,CAACT,EAAI0B,GAAI1B,EAAkB,gBAAE,SAAStmB,GAAM,OAAO0mB,EAAG,OAAO,CAACzsB,IAAI+F,EAAKhE,GAAG2rB,YAAY,+DAA+D,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAI4sC,eAAelzD,IAAO,KAAOsmB,EAAI6sC,SAA8J7sC,EAAIe,KAAxJX,EAAG,IAAI,CAACiB,YAAY,uBAAuBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI8sC,cAAcpzD,MAAS,CAAC0mB,EAAG,IAAI,CAACiB,YAAY,0BAAoCrB,EAAI6sC,SAAib7sC,EAAIe,KAA3aX,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAc,WAAEkE,WAAW,eAAeuF,IAAI,UAAUpI,YAAY,0BAA0Bb,MAAM,CAAC,SAAWR,EAAI+sC,YAAY,YAAc/sC,EAAIy9B,YAAY,KAAO,QAAQh4B,SAAS,CAAC,MAASzF,EAAc,YAAGU,GAAG,CAAC,QAAUV,EAAIgtC,UAAU,KAAOhtC,EAAIitC,UAAU,MAAQ,SAASprC,GAAWA,EAAO/wB,OAAOo8C,YAAqBltB,EAAIktC,WAAWrrC,EAAO/wB,OAAOuC,WAAmB+sB,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAImtC,mBAAmBx/D,OAAS,EAAGu2B,WAAW,mCAAmC,CAAC9D,EAAG,KAAK,CAACqJ,IAAI,gBAAgBpI,YAAY,oBAAoBrB,EAAI0B,GAAI1B,EAAsB,oBAAE,SAAStmB,GAAM,OAAO0mB,EAAG,KAAK,CAACzsB,IAAI+F,EAAKhE,GAAG2rB,YAAY,QAAQb,MAAM,CAAC,MAAU9mB,EAAgB,YAAI,MAASA,EAAc,UAAI,MAASA,EAAU,OAAIgnB,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI2wB,mBAAmBj3C,MAAS,CAAC0mB,EAAG,MAAM,CAACA,EAAG,KAAK,CAACiB,YAAY,mDAAmD,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGroB,EAAK9D,gBAAgBwqB,EAAG,OAAO,CAACiB,YAAY,kCAAkC,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAKroB,EAAa,SAAI,IAAOA,EAAc,cAAO0mB,EAAG,OAAO,CAACiB,YAAY,kCAAkC,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGroB,EAAK1C,iBAAgB,MAAM,GAAKgpB,EAAI6sC,SAAyL7sC,EAAIe,KAAnLX,EAAG,OAAO,CAACiB,YAAY,SAAS,CAACjB,EAAG,SAAS,CAACiB,YAAY,uCAAuCX,GAAG,CAAC,MAAQV,EAAIotC,gBAAgB,CAACptC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,2BACx+D,GAAkB,G,mCCsBhB+qC,GAAkB,qBAGHC,GAAc,wDAAnC,iD,0BAOE,EAAAP,aAAuB,EACvB,EAAAG,WAAqB,GACrB,EAAAC,mBAAwC,GAT1C,EAAmC,8CAWjC,WACEI,gBAAep5D,OAAD,UAAYk5D,GAAZ,YAA+BptC,KAAKutC,WAAavtC,KAAKwtC,qBAZrC,2BAejC,WACEC,gBAAev5D,OAAD,UAAYk5D,GAAZ,YAA+BptC,KAAKutC,WAAavtC,KAAKwtC,qBAhBrC,+BAmBjC,SAAkBtgE,GAAS,WAEzB,GADA8G,QAAQ4M,IAAI,cAAe1T,GACvBA,GAAQA,EAAKQ,OAAS,EAAG,CAC3B,IAAIggE,EAAqBxgE,EAAK,GAAGkI,MACjCs4D,EAAY30D,SAAQ,SAAC7J,GACb,EAAKy+D,eAAenzD,WAAU,SAACvH,GAAD,OAAO/D,EAAEuG,KAAOxC,EAAEwC,OAAO,GAC3D,EAAKk4D,eAAe3/D,KAAK,CACvByH,GAAIvG,EAAEuG,GACNO,SAAU9G,EAAE8G,SACZL,YAAazG,EAAEmD,KACf0E,MAAO7H,EAAEkE,MACTkD,UAAWpH,EAAEmH,MACbvB,QAAS,GACTC,SAAU7F,EAAE6F,SACZggD,eAAgB,GAChBr/C,WAAYxG,EAAEuG,GACdiC,UAAU,UAnCa,uBA0CjC,SAAUpI,GAC0B,UAA9BA,EAAEoE,IAAIk6D,oBACR5tC,KAAKqzB,eACkC,cAA9B/jD,EAAEoE,IAAIk6D,qBACX5tC,KAAK2tC,eAAejgE,OAAS,GAA+B,GAA1BsyB,KAAKitC,WAAWv/D,QACpDsyB,KAAK2tC,eAAe/+D,OAAOoxB,KAAK2tC,eAAejgE,OAAS,EAAG,KA/ChC,uBAoDjC,WACE,IAAI6pD,EAAQv3B,KACZztB,YAAW,WACTglD,EAAM2V,mBAAqB,KAC1B,OAxD4B,mCA2DjC,WACE,IAAIW,EAAU7tC,KAAKiyB,MAAM6b,QACrBC,EAAcF,EAAQG,wBACtBC,EAASjuC,KAAKiyB,MAAMic,cAEpBD,IACFA,EAAOrqC,MAAMuqC,IAAb,UAAsBJ,EAAYI,IAAM,GAAxC,MACAF,EAAOrqC,MAAMsb,KAAb,UAAuB2uB,EAAQ3a,WAAa,GAA5C,SAlE6B,0BAsEjC,WAAY,WACN+Z,EAAajtC,KAAKitC,WAClBA,EAAWmB,OAAO1gE,OAAS,GAE/BuH,QAAIo5D,OACDv2D,UACC,CACE2D,MAAOwxD,EACPrxC,KAAM,IAER,MAEDtqB,MAAK,SAAC4G,GASL,GAAI+0D,GAAcA,EAAWv/D,OAAS,EAAG,CACvC,IAAI6R,EACF,gGACEA,EAAQo/C,KAAKsO,IACf,EAAKqB,eAAe,CAClB34D,YAAas3D,EACbl2D,MAAOk2D,UAjGc,gCAwGjC,SAAmBxzD,GACjBumB,KAAKsuC,eAAe70D,KAzGW,4BA4GjC,SAAeA,GAIPumB,KAAK2tC,eAAenzD,WAAU,SAAC/H,GAAD,OAAOA,EAAEsE,QAAU0C,EAAK1C,UAAU,GACpEipB,KAAK2tC,eAAe3/D,KAAKyL,GAG3BumB,KAAKitC,WAAa,GAClBjtC,KAAKktC,mBAAqB,KArHK,2BAwHjC,SAAczzD,GACZ,IAAI4E,EAAM2hB,KAAK2tC,eAAenzD,WAAU,SAAC/H,GAAD,OAAOA,EAAEgD,KAAOgE,EAAKhE,MAEzD4I,GAAO,GACT2hB,KAAK2tC,eAAe/+D,OAAOyP,EAAK,KA5HH,2BAgIjC,WACE,IAAMkwD,EAAsC,CAC1C9xD,aAAa,EACb1C,OAAQimB,KAAKjmB,OACb8C,WAAY,CAAC,CAAEpH,GAAI,EAAGpD,KAAM,SAAUs3B,OAAQ,OAG1CxC,EAA+B,CACnCA,MAAO,CAAC,KAAM,OAAQ,aAAc,WAAY,WAAY,UAG9DqnC,gBACE,oBACA,UACA,CAAE79D,MAAO,GAAF,OAAKy8D,GAAL,YAAwBptC,KAAKutC,WAAax1D,OAAQw2D,EAAcpnC,SACvE,CAAEsC,MAAO,KAAME,OAAQ,IAAK8kC,QAASzuC,KAAK8N,YA/Ib,4BAmJjC,SAAer0B,GACb,OAAKA,EAAKnD,WAAcmD,EAAKzD,SAG3B,UAAUyD,EAAK9D,YAAf,YAA8B8D,EAAKnD,UAAnC,aAAiDmD,EAAKzD,SAAtD,KAFOyD,EAAK9D,gBArJiB,GAAS6oB,QACDqE,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,gCACJH,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,iCACAH,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,mCACIH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,8BACAH,gBAAxCm3B,eAAS,aAAc,CAAExpD,KAAM8f,SAAS,sCALtB+8C,GAAc,gBADlCrsC,eAAU,KACUqsC,cC1BkS,MCQnT,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCUMqB,GAAO,wDAA5B,iD,0BAiBI,EAAAx1D,KAAuB,CACnBzD,GAAI,GACJpD,KAAM,GACNs8D,SAAU,EACV3M,WAAW,EACX2F,UAAW,SACXY,WAAY,GACZzrD,QAAS,IAGb,EAAAysD,WAAmC,GACnC,EAAAb,aAAqC,GACrC,EAAAryD,MAAgB,GAChB,EAAAgwB,QAAkB,GAClB,EAAAnD,MAAgB,EAChB,EAAA1lB,OAAyB,GACzB,EAAAE,QAA4B,GAC5B,EAAAkxD,aAAuB,mBACvB,EAAAnrC,OAAiB,GACjB,EAAAorC,kBAA4B,EAC5B,EAAApF,oBAA6B,EAAKpnC,GAAG,mBAAmB5R,WACxD,EAAA+4C,kBAA2B,EAAKnnC,GAAG,mBAAmB5R,WAtC1D,EAA4B,qDA0CxB,WACE,IAAM83C,EAAavoC,KAAK9mB,KAAKqvD,WAAW/uD,MAAK,SAACs1D,GAAD,MAA4C,0BAAXA,EAAIp7D,OAClF,GAAG60D,EACCA,EAAWn1D,MAAQ,CAAC4sB,KAAK3pB,WACxB,CACD,IAAM04D,EAAe,CACjBr7D,IAAK,yBACLN,MAAO,CAAC4sB,KAAK3pB,QAEjB2pB,KAAK9mB,KAAKqvD,WAAWv6D,KAAK+gE,MAnDR,8BAwDxB,WACE,IAAMxG,EAAavoC,KAAK9mB,KAAKqvD,WAAW/uD,MAAK,SAACs1D,GAAD,MAA4C,uBAAXA,EAAIp7D,OAClF,GAAG60D,EACCA,EAAWn1D,MAAQ,CAAC4sB,KAAK3pB,WACxB,CACD,IAAM04D,EAAe,CACjBr7D,IAAK,sBACLN,MAAO,CAAC4sB,KAAK3pB,QAEjB2pB,KAAK9mB,KAAKqvD,WAAWv6D,KAAK+gE,MAjER,6BAsExB,WACE,IAAMxG,EAAavoC,KAAK9mB,KAAKqvD,WAAW/uD,MAAK,SAACs1D,GAAD,MAA4C,yBAAXA,EAAIp7D,OAClF,GAAG60D,EACCA,EAAWn1D,MAAQ,CAAC4sB,KAAKyD,YACxB,CACD,IAAMsrC,EAAe,CACjBr7D,IAAK,wBACLN,MAAO,CAAC4sB,KAAKyD,SAEjBzD,KAAK9mB,KAAKqvD,WAAWv6D,KAAK+gE,MA/ER,6BAoFxB,WACI,GAAG/uC,KAAKupC,WAAW,CAEf,IAAIhrD,EAAwB,GAC5ByhB,KAAKupC,WAAWh0D,KAAI,SAAAC,GAChB+I,EAAOvQ,KAAKwH,EAAEuB,UAGlB,IAAMwxD,EAAavoC,KAAK9mB,KAAKqvD,WAAW/uD,MAAK,SAACs1D,GAAD,MAA4C,yBAAXA,EAAIp7D,OAClF,GAAG60D,EACCA,EAAWn1D,MAAQmL,MAClB,CACD,IAAMwwD,EAAe,CACjBr7D,IAAK,wBACLN,MAAOmL,GAEXyhB,KAAK9mB,KAAKqvD,WAAWv6D,KAAK+gE,OApGd,+BA0GxB,WACI,GAAG/uC,KAAK0oC,aAAa,CACjB,IAAInqD,EAASyhB,KAAK0oC,aAAanzD,KAAI,SAAC9C,GAChC,OAAOA,EAAEsE,SAETwxD,EAAavoC,KAAK9mB,KAAKqvD,WAAW/uD,MAAK,SAACs1D,GAAD,MAA4C,mBAAXA,EAAIp7D,OAChF,GAAG60D,EACCA,EAAWn1D,MAAQmL,MAChB,CACH,IAAIwwD,EAAe,CACfr7D,IAAK,kBACLN,MAAOmL,GAEXyhB,KAAK9mB,KAAKqvD,WAAWv6D,KAAK+gE,OAvHd,uBAmIxB,WACI/uC,KAAKkD,MAAO,IApIQ,oBAuIxB,WACIlD,KAAKkD,MAAO,IAxIQ,4BA2IxB,SAAehqB,GACX8mB,KAAKxiB,OAAStE,EACd8mB,KAAK9mB,KAAK4D,QAAU,CAAC,CAACpJ,IAAI,eAAeN,MAAM8F,EAAKzD,KACpDuqB,KAAKkD,MAAO,IA9IQ,gGAiJxB,WAA+B9vB,EAAYM,GAA3C,mGACQw0D,EAAcloC,KAAKmoC,aAAa,uBAChC/0D,EAFR,0CAEsB,GAFtB,OAGUmkD,EAAQv3B,KAHlB,KAIYtsB,EAJZ,OAKa,0BALb,OAsBa,oBAtBb,QAuCa,2BAvCb,QA8Ca,wBA9Cb,QAqDa,0BArDb,QA4Da,kBA5Db,wCAMoCjE,QAAQ+C,IAC5BY,EAAMmC,KAAI,SAACwB,GACP,IAAIqxD,EAAarxD,EAAMiC,SAAS,KAAOjC,EAAMiU,MAAM,KAAK,GAAKjU,EAC7D,cAAImxD,QAAJ,IAAIA,KAAalvD,SAASovD,EAAW97B,eAC1BirB,EAAMyX,YAAYj4D,GAGD,CACpBpB,YAAaoB,EACbT,UAAW,GACXN,SAAU,GACVe,MAAOA,OAjBnC,cAMYipB,KAAKupC,WANjB,qDAuBsC95D,QAAQ+C,IAC9BY,EAAMmC,KAAI,SAACkF,GACP,IAAI2tD,EAAa3tD,EAAE0I,QAAQnK,SAAS,KAAOyB,EAAE0I,QAAQ6H,MAAM,KAAK,GAAKvQ,EAAE0I,QACvE,cAAI+kD,QAAJ,IAAIA,KAAalvD,SAASovD,EAAW97B,eAC1B,EAAK0iC,YAAYv0D,EAAE0I,SAGF,CACpBxN,YAAa8E,EAAEpI,KACfiE,UAAW,GACXN,SAAU,GACVe,MAAO0D,EAAE0I,aAlCrC,eAuBY6c,KAAK0oC,aAvBjB,0CAwCgC,WAAjB,gBAAOt1D,GACN4sB,KAAK3pB,MAAQjD,EAAM,GAEnB4sB,KAAK3pB,MAAQjD,EA3C7B,mCA+CgC,WAAjB,gBAAOA,GACN4sB,KAAKqG,QAAUjzB,EAAM,GAErB4sB,KAAKqG,QAAUjzB,EAlD/B,mCAsDgC,WAAjB,gBAAOA,GACN4sB,KAAKyD,OAASrwB,EAAM,GAEpB4sB,KAAKyD,OAASrwB,EAzD9B,8CA6DoC3D,QAAQ+C,IAC5BY,EAAMmC,KAAI,SAACqhD,GACP,cAAIsR,QAAJ,IAAIA,KAAalvD,SAAS49C,EAAIzzC,SACnBo0C,EAAMyX,YAAYpY,EAAIzzC,SAGL,CACpBxN,YAAaihD,EAAIvkD,KACjBiE,UAAW,GACXN,SAAU,GACVe,MAAO6/C,EAAIzzC,aAvEvC,eA6DY6c,KAAKupC,WA7DjB,6EAjJwB,sFAiOxB,SAAahB,EAAuC70D,GAChD,OAAO60D,EAAW/uD,MAAK,SAAC9G,GACpB,OAAOA,EAAEgB,MAAQA,OAnOD,oCAuOxB,SAAuBN,GAAU,WAC7B,IAAIA,EAAM0J,QAAS,MAAO,GAE1B,IAAMA,EAAU1J,EAAM0J,QACtB,OAAOA,EACFvH,KAAI,SAAC7C,GACF,OAAQA,EAAEgB,KACN,IAAK,eACD,IAAI85C,EAAqB,GAEnBob,EAAgB,SAAhBA,EAAiBlrD,GACnBA,EAAQ3E,SAAQ,SAAC8U,GACTA,EAAEpY,KAAO/C,EAAEU,QACXo6C,EAAa3/B,EAAElY,aAGD,MAAdkY,EAAExU,UACFuvD,EAAc/6C,EAAExU,cAO5B,OAFAuvD,EAAc,EAAKlrD,SAEnB,UAAU,EAAK2kB,GAAG,qBACb5R,WACAtF,QAAQ,MAAOqiC,QAG/BY,KAAK,QApQU,2BAwQxB,SAAc4J,EAAyB8J,GAAuB,gBAEtDmN,EAAW,OAAGjX,QAAH,IAAGA,GAAH,UAAGA,EAAQuQ,WAAW/uD,MAAK,SAACunC,GAAD,MAAsC,0BAAlBA,EAAUrtC,cAAzD,aAAG,EAAwFN,MACtG87D,EAAa,OAAGlX,QAAH,IAAGA,GAAH,UAAGA,EAAQuQ,WAAW/uD,MAAK,SAACunC,GAAD,MAAsC,oBAAlBA,EAAUrtC,cAAzD,aAAG,EAAkFN,MAClG+7D,EAAW,OAAGnX,QAAH,IAAGA,GAAH,UAAGA,EAAQuQ,WAAW/uD,MAAK,SAACunC,GAAD,MAAsC,0BAAlBA,EAAUrtC,cAAzD,aAAG,EAAwFN,MACtGg8D,EAAY,OAAGpX,QAAH,IAAGA,GAAH,UAAGA,EAAQuQ,WAAW/uD,MAAK,SAACunC,GAAD,MAAqC,2BAAlBA,EAAUrtC,cAAxD,aAAG,EAAwFN,MACvGi8D,EAAY,OAAGrX,QAAH,IAAGA,GAAH,UAAGA,EAAQuQ,WAAW/uD,MAAK,SAACunC,GAAD,MAAqC,wBAAlBA,EAAUrtC,cAAxD,aAAG,EAAqFN,MACpGk8D,EAAW,OAAGtX,QAAH,IAAGA,GAAH,UAAGA,EAAQuQ,WAAW/uD,MAAK,SAACunC,GAAD,MAAqC,kBAAlBA,EAAUrtC,cAAxD,aAAG,EAA+EN,MAE9F67D,GACCjvC,KAAKuvC,yBAAyBN,EAAa,yBAE5CC,GACClvC,KAAKuvC,yBAAyBL,EAAe,mBAE7CC,GACAnvC,KAAKuvC,yBAAyBJ,EAAa,yBAE1CC,GACDpvC,KAAKuvC,yBAAyBH,EAAc,0BAE5CC,GACArvC,KAAKuvC,yBAAyBF,EAAc,uBAE5CC,GACAtvC,KAAKuvC,yBAAyBD,EAAa,mBAjS3B,mFAqSxB,WAAkBv4D,GAAlB,iGACiB9B,QAAIozD,mBAAmBtxD,GAAOzF,MAAK,SAAC4G,GACrC,YAAR,OAAIA,EACwB,CACpBvC,YAAW,UAAEuC,EAAI9C,MAAM,UAAZ,aAAE,EAAcO,YAC3BW,UAAS,UAAE4B,EAAI9C,MAAM,UAAZ,aAAE,EAAckB,UACzBN,SAAQ,UAAEkC,EAAI9C,MAAM,UAAZ,aAAE,EAAcY,SACxBe,MAAK,UAAEmB,EAAI9C,MAAM,UAAZ,aAAE,EAAc2B,OAID,CACpBpB,YAAaoB,EACbT,UAAW,GACXN,SAAU,GACVe,MAAOA,MAfvB,mFArSwB,+EAiUxB,WAAO,WACH9B,QAAIwsC,YAAYnwC,MAAK,SAAC4G,GAClB,EAAKwF,QAAUxF,KAGnB8nB,KAAK9mB,KAAO8mB,KAAK5sB,MACd4sB,KAAK9mB,MACJ8mB,KAAKwvC,cAAcxvC,KAAK9mB,UAxUR,GAASslB,QAOXqE,gBAArBC,eAAK,CAACtyB,KAAM7C,UAAS,6BAmCtBk1B,gBADC0G,eAAM,UACP,oCAcA1G,gBADC0G,eAAM,YACP,sCAcA1G,gBADC0G,eAAM,WACP,qCAcA1G,gBADC0G,eAAM,eACP,qCAsBA1G,gBADC0G,eAAM,iBACP,uCA8JA1G,gBADC0G,eAAM,UACP,mCAxQiBmlC,GAAO,gBAhB3B1tC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAiS,aACAW,mBAEJjpC,QAAO,kBACAC,eAAW,CACZ5vB,QAASJ,cAIEq6D,cC7BmT,MCOpU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCaMe,GAAI,wDAAzB,iD,0BAOI,EAAAhsC,OAAiB,EAAKpB,GAAG,mBAAmB5R,WAC5C,EAAAg3C,MAA0B,GAC1B,EAAA5V,QAAkB,EAClB,EAAAoX,aAA+B,CAC3BxzD,GAAI,GACJpD,KAAM,GACNs8D,SAAU,EACV3M,WAAW,EACX2F,UAAW,GACXY,WAAY,GACZzrD,QAAS,GACT4yD,WAAY,IAlBpB,EAAyB,oDA4CrB,WACQ1vC,KAAK6xB,QACL7xB,KAAK+oC,aA9CQ,wBA0DrB,WACI/oC,KAAKipC,aAAe,CAChBxzD,GAAI,GACJpD,KAAM,GACNs8D,SAAU,EACV3M,WAAW,EACX2F,UAAW,GACXY,WAAY,GACZzrD,QAAS,GACT4yD,WAAY,IAEhB1vC,KAAK6xB,QAAS,IArEG,wBAwErB,SAAW6V,GACP1nC,KAAK6xB,QAAS,EACd7xB,KAAKipC,aAAevB,IA1EH,kBA8ErB,SAAK51B,EAAcjyB,GACfmgB,KAAKynC,MAAM1uD,SAAQ,SAAC9F,EAAEoJ,GACfA,IAAUy1B,GACT7+B,EAAE07D,SAAW9uD,EAAK,EAClB5M,EAAE00D,UAAY,OAETtrD,IAAUwD,IACf5M,EAAE07D,SAAW78B,EAAO,EACpB7+B,EAAE00D,UAAY,YAtFL,yBA2FrB,SAAYF,GACRznC,KAAKynC,MAAQA,IA5FI,4BA+FrB,SAAeC,GACX1nC,KAAKynC,MAAM1uD,SAAQ,SAAC9F,GACbA,EAAEwC,KAAOiyD,EAAKjyD,KACbxC,EAAE+uD,UAAY0F,EAAK1F,UACnB/uD,EAAE00D,UAAY,YAnGL,kBAwGrB,WAAI,WAOA3nC,KAAKynC,MAAMlyD,KAAI,SAAAtC,GACX,GAAGA,EAAE6J,QAAQtC,WAAU,SAACC,GAAD,MAAqC,yBAAVA,EAAE/G,OAAgC,EAAI,OAAOT,EAE3F,IAAIy0D,EAAOz0D,EAaf,OAZIy0D,EAAK5qD,QAAU7J,EAAE6J,QAAQvH,KAAI,SAACV,GAC1B,MAAmB,yBAAfA,EAAOnB,IACP,iCACOmB,GADP,IAEIzB,MAAO,CAACyB,EAAOzB,MAAM,GAAG+P,WAIrBtO,KAIZ6yD,KAGX1nC,KAAKynC,MAAMlyD,KAAI,SAAAtC,GACX,GAAGA,EAAEs1D,WAAW/tD,WAAU,SAAC9H,GAAD,MAAoB,oBAAVA,EAAEgB,OAA2B,EAAI,OAAOT,EAExE,IAAIy0D,EAAOz0D,EAcd,OAbGy0D,EAAKa,WAAat1D,EAAEs1D,WAAWhzD,KAAI,SAACwrC,GAChC,MAAsB,oBAAlBA,EAAUrtC,IACV,iCACOqtC,GADP,IAEI3tC,MAAO2tC,EAAU3tC,MAAMmC,KAAI,SAACo+C,GACxB,OAAOA,EAAExwC,aAKV49B,KAGX2mB,KAEZzyD,QAAI06D,SAAS3vC,KAAKynC,OAAOn2D,KAAzB,0DAA8B,WAAO4G,GAAP,qFACvBA,EADuB,gCAEhBhE,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAFlC,OAGtB,EAAKs4C,WACL,EAAKlX,QAAS,EAJQ,sCAMhB39C,OAAegnB,WAAW,EAAKmH,GAAG,2BAA2B5R,YAN7C,2CAA9B,uDASGnN,MATH,0DASS,WAAOvS,GAAP,iGAAqBmD,OAAegnB,WAAW,EAAKmH,GAAG,cAAc5R,YAArE,2CATT,yDArJiB,mFAiKrB,gHAEiC,IAA1BuP,KAAKipC,aAAa52D,KAFzB,gCAGc6B,OAAegnB,WAAW,kBAHxC,iCAIe,GAJf,UAOQvF,EAAiBqK,KAAKipC,aAAansD,QAAQvH,KAAI,SAACkF,GAChDA,EAAE/G,OAGiC,GAApCssB,KAAKipC,aAAansD,QAAQpP,QAAwC,GAAzBioB,EAAejoB,OAX/D,gCAYcwG,OAAegnB,WAAW,mBAZxC,iCAae,GAbf,OAgBI8E,KAAKynC,MAAMlyD,KAAI,SAAAtC,GACX,GAAGA,EAAE6J,QAAQtC,WAAU,SAACC,GAAD,MAAqC,yBAAVA,EAAE/G,OAAgC,EAAI,OAAOT,EAE3F,IAAIy0D,EAAOz0D,EAaf,OAZIy0D,EAAK5qD,QAAU7J,EAAE6J,QAAQvH,KAAI,SAACV,GAC1B,MAAmB,yBAAfA,EAAOnB,IACP,iCACOmB,GADP,IAEIzB,MAAO,CAACyB,EAAOzB,MAAM,GAAG+P,WAIrBtO,KAIZ6yD,KAGX1nC,KAAKynC,MAAMlyD,KAAI,SAAAtC,GACX,GAAGA,EAAEs1D,WAAW/tD,WAAU,SAAC9H,GAAD,MAAwC,oBAAVA,EAAEgB,OAA2B,EAAI,OAAOT,EAE5F,IAAIy0D,EAAOz0D,EAqBf,OApBIy0D,EAAKa,WAAat1D,EAAEs1D,WAAWhzD,KAAI,SAACwrC,GAChC,MAAsB,oBAAlBA,EAAUrtC,IACV,iCACOqtC,GADP,IAEI3tC,MAAO2tC,EAAU3tC,MAAMmC,KAAI,SAACo+C,GACxB,MAAiB,WAAd,gBAAOA,GACCA,EAAExwC,QAEFwwC,OAOZ5S,KAKZ2mB,KAKR1nC,KAAKipC,aAAaxzD,IACjBuqB,KAAKipC,aAAaV,WAAWhzD,KAAI,SAACu5D,GACd,0BAAZA,EAAIp7D,KAA0D,kBAAdo7D,EAAI17D,QACpD07D,EAAI17D,MAAQ,CAAC07D,EAAI17D,WAKzB4sB,KAAKipC,aAAatB,UAAY,MAG1BtpD,EAAM2hB,KAAKynC,MAAMjtD,WAAU,SAACvH,GAC5B,OAAOA,EAAEwC,KAAO,EAAKwzD,aAAaxzD,MAGlCuqB,KAAKynC,MAAM74D,OAAOyP,EAAK,EAAG2hB,KAAKipC,gBAInCjpC,KAAKipC,aAAatB,UAAY,SAC9B3nC,KAAKynC,MAAMz5D,KAAKgyB,KAAKipC,eAEzBh0D,QAAI06D,SAAS3vC,KAAKynC,OAAOn2D,KAAzB,yCAA8B,8GACpB4C,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAD9B,OAE1B,EAAKs4C,WACL,EAAKlX,QAAS,EAHY,4CAtFlC,iDAjKqB,mFA8PrB,WACI7xB,KAAKipC,aAAe,CACpBxzD,GAAI,GACJpD,KAAM,GACNs8D,SAAU,EACV3M,WAAW,EACX2F,UAAW,GACXY,WAAY,GACZzrD,QAAS,GACT4yD,WAAY,IAEZ1vC,KAAK6xB,QAAS,IAzQG,sBA4QrB,WAAQ,WACJ58C,QAAI8zD,WAAWz3D,MAAK,SAAC4G,GACdA,EAAIxK,OAAS,IACZ,EAAK+5D,MAAQvvD,EAAIuvD,YA/QR,qBA6RrB,WACIznC,KAAKvrB,SAAQ,GACburB,KAAK+oC,eA/RY,GAASvqC,QA4C9BqE,gBADC0G,eAAM,WACP,mCA5CiBkmC,GAAI,gBArBxBzuC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAuN,YACA0G,YAEJtqC,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,WAGjB4sB,SAAQ,kBACDC,eAAW,CACVrM,UAAWxgB,cAIFo7D,cC/BgT,MCOjU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI1vC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,MAAM,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,QAAQ,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAqB,kBAAEkE,WAAW,sBAAsB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI6vC,mBAAmB7vC,EAAIgT,GAAGhT,EAAI6vC,kBAAkB,OAAO,EAAG7vC,EAAqB,mBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI6vC,kBAAkB38B,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAI6vC,kBAAkB58B,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAI6vC,kBAAkB58B,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAI6vC,kBAAkB18B,MAAS/S,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,8CAC71B,GAAkB,GCsBDwtC,GAAU,wDAA/B,iD,0BAOI,EAAAD,mBAA6B,EAPjC,EAA+B,2CA+B3B,WAAI,WACA36D,QAAIylB,cAAc,CAAChlB,WAAYsqB,KAAKvmB,KAAK/D,WAAYk6D,kBAAmB5vC,KAAK4vC,oBAAqCt+D,KAAlH,yCAAuH,8GAC7G4C,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAD2D,8CAhChG,2BAqC3B,WAAa,WACTxb,QAAI2lD,cAAc56B,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAC1C,EAAK03D,kBAAoB13D,EAAI,GAAG03D,kBAChC,EAAKn7D,SAAQ,QAxCM,qBAkD3B,WACGurB,KAAK8vC,oBAnDmB,GAAStxC,QAAnBqxC,GAAU,gBAb9B7uC,eAAU,CACPmD,WAAW,CAACR,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BJ,aACvFp5B,SAAU,kBACHC,eAAW,CACZznB,KAAMgzB,WAGZrI,QAAS,kBACFC,eAAW,CACV5vB,QAASJ,cAIAw7D,cCvBsT,MCOvU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI9vC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uBAAuBtC,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,mBAAkBmyB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QACruB,GAAkB,GC2BD2tC,GAAM,wDAA3B,iD,0BA2BE,EAAAtsC,OAAgB,EAAKpB,GAAG,MAAM5R,WA3BhC,EAA2B,sDAuBzB,WACE,MAAO,CAACo/C,MAxBe,wBAmCzB,WACE,IAAMrU,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YAtCmB,qBAgDzB,WACE17B,KAAKvrB,SAAQ,OAjDU,GAAS+pB,QAAfuxC,GAAM,gBApB1B/uC,eAAU,CACPmD,WAAW,CACTR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAoV,eAEFzrC,QAAO,kBACFC,eAAW,CACZ5vB,QAASJ,WAGb4sB,SAAQ,kBACHC,eAAW,CACVrM,UAAWxgB,cAIA07D,cC5BkT,MCOnU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIhwC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQR,EAAI2E,OAAOgpB,MAAM,CAACt6C,MAAO2sB,EAAIiwC,aAAsB,UAAEriB,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAIiwC,aAAc,YAAa78B,IAAMlP,WAAW,4BAA4B9D,EAAG,MAAMA,EAAG,MAAMA,EAAG,cAAc,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAIiwC,aAAsB,UAAE/rC,WAAW,2BAA2B1D,MAAM,CAAC,MAAQR,EAAIkwC,WAAWviB,MAAM,CAACt6C,MAAO2sB,EAAU,OAAE4tB,SAAS,SAAUxa,GAAMpT,EAAImwC,OAAO/8B,GAAKlP,WAAW,YAAY9D,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAIiwC,aAAsB,UAAE/rC,WAAW,2BAA2B7C,YAAY,WAAW,CAACjB,EAAG,OAAO,CAACiB,YAAY,SAAS,CAACrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIowC,QAAQ,SAAShwC,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,IAAI,CAACiB,YAAY,QAAQ,CAACjB,EAAG,iBAAiB,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAIiwC,aAAsB,UAAE/rC,WAAW,2BAA2B1D,MAAM,CAAC,QAAS,EAAM,UAAY,uBAAuB,WAAaR,EAAIqwC,mBAAmB,YAAcrwC,EAAIy9B,aAAa/8B,GAAG,CAAC,oBAAoB,SAASmB,GAAQ7B,EAAIqwC,mBAAmBxuC,OAAY,MAAM,IACnrC,GAAkB,GCyCDyuC,GAAgB,wDAArC,iD,0BAME,EAAAC,SAA6B,GAC7B,EAAAH,OAAiB,GACjB,EAAAH,aAA+B,CAC7Bv6D,GAAI,GACJpD,KAAM,aACNs8D,SAAU,EACV3M,WAAW,EACX2F,UAAW,SACXY,WAAY,GACZzrD,QAAS,IAEX,EAAAozD,QAAkB,EAClB,EAAAK,SAA8B,GAC9B,EAAAC,UAA+B,GAC/B,EAAAJ,mBAAwC,GACxC,EAAA1rC,MAAgB,EAAKrC,GAAG,YAAY5R,WACpC,EAAAw/C,UAAoB,kBACpB,EAAAzS,YAAsB,EAAKn7B,GAAG,kBAAkB5R,WAvBlD,EAAqC,kEAwCnC,WACMuP,KAAKowC,oBACPpwC,KAAKwwC,UAAYxwC,KAAKowC,mBAAmB76D,KAAI,SAACtC,GAC5C,OAAOA,EAAE8D,SAEXipB,KAAKmwC,OAASnwC,KAAKwwC,UAAU//C,WACzBuP,KAAKmwC,SACPnwC,KAAKgwC,aAAalzD,QAAU,CAC1B,CACEpJ,IAAK,uBACLN,MAAO4sB,KAAKwwC,cAKlBxwC,KAAKmwC,OAAS,KAvDiB,yCA4DnC,WACMnwC,KAAKgwC,eACHhwC,KAAKgwC,aAAahO,UACpB/sD,QAAI8zD,WAAWz3D,MAAK,eAEpB0uB,KAAKgwC,aAAalzD,QAAU,MAjEC,0CAuEnC,WACE,GAAIkjB,KAAKkwC,OACPlwC,KAAKgwC,aAAalzD,QAAQ9O,KAAK,CAC7B0F,IAAK,eACLN,MACE,iIAEC,CACL,IAAIiL,EAAM2hB,KAAKgwC,aAAalzD,QAAQtC,WAAU,SAACC,GAC7C,MAAiB,iBAAVA,EAAE/G,OAEP2K,GAAO,GACT2hB,KAAKgwC,aAAalzD,QAAQlO,OAAOyP,EAAK,MAnFT,uBAyFnC,WACE,IAAI2xD,EAAehwC,KAAKswC,SAAS92D,MAAK,SAACvG,GACrC,MAAkB,eAAXA,EAAEZ,QAOX,GAJI29D,IACFhwC,KAAKgwC,aAAeA,GAGlBhwC,KAAKgwC,cACHhwC,KAAKgwC,aAAahO,UAAW,CAC/B,IAAIyO,EAAYzwC,KAAKgwC,aAAalzD,QAAQtD,MAAK,SAAC3E,GAC9C,MAAsB,yBAAfA,EAAOnB,OAGZ+8D,GACFA,EAAUr9D,MAAM2F,SAAQ,SAAC46C,GACvB,GAAIA,EAAG,CACL,IAAIwc,EAAc,GAClBl7D,QAAIozD,mBAAmB1U,GAAGriD,MAAK,SAAC4G,GAC1BA,GACFi4D,EAAOniE,KAAKkK,EAAI9C,iBA9GG,4EA8HnC,mHACM4qB,KAAKgwC,aAAahO,WAA+C,GAAlChiC,KAAKowC,mBAAmB1iE,OAD7D,gCAEWwG,OAAegnB,WAAW,sBAFrC,iCAGW,GAHX,UAMI8E,KAAKswC,SAAS/6D,KAAI,SAACtC,GACjB,GACEA,EAAE6J,QAAQtC,WAAU,SAAC9H,GAAD,MAAuC,yBAAVA,EAAEgB,OAAkC,EAErF,OAAOT,EAEP,IAAIy0D,EAAOz0D,EAaX,OAZAy0D,EAAK5qD,QAAU7J,EAAE6J,QAAQvH,KAAI,SAACV,GAC5B,MAAmB,yBAAfA,EAAOnB,IACT,iCACKmB,GADL,IAEEzB,MAAOyB,EAAOzB,MAAMmC,KAAI,SAACo+C,GACvB,OAAOA,OAIJ9+C,KAGJ6yD,KAIX1nC,KAAKswC,SAAS/6D,KAAI,SAACtC,GACjB,GACEA,EAAEs1D,WAAW/tD,WAAU,SAAC9H,GAAD,MAA0C,oBAAVA,EAAEgB,OAA6B,EAEtF,OAAOT,EAEP,IAAIy0D,EAAOz0D,EAcb,OAbEy0D,EAAKa,WAAat1D,EAAEs1D,WAAWhzD,KAAI,SAACwrC,GAClC,MAAsB,oBAAlBA,EAAUrtC,IACZ,iCACKqtC,GADL,IAEE3tC,MAAO2tC,EAAU3tC,MAAMmC,KAAI,SAACo+C,GAC1B,OAAOA,EAAExwC,aAIN49B,KAIN2mB,MAGL1nC,KAAKgwC,aAAahO,UApD1B,oBAsD6C,IAArChiC,KAAKgwC,aAAalzD,QAAQpP,QACoB,IAA9CsyB,KAAKgwC,aAAalzD,QAAQ,GAAG1J,MAAM1F,OAvD3C,kCAyDewG,OAAegnB,WAAW8E,KAAKqC,GAAG,2BAzDjD,kCA0De,GA1Df,YA8DQrC,KAAKgwC,aAAav6D,GA9D1B,qBA+DUuqB,KAAKgwC,aAAahO,UA/D5B,iBAgEQhiC,KAAKgwC,aAAarI,UAAY,MAE1BtpD,EAAM2hB,KAAKswC,SAAS91D,WAAU,SAACvH,GACjC,OAAOA,EAAEwC,KAAO,EAAKu6D,aAAav6D,OAGxB,GAAR4I,GACF2hB,KAAKgwC,aAAav6D,GAAK,GACvBuqB,KAAKgwC,aAAarI,UAAY,SAC9B3nC,KAAKswC,SAAStiE,KAAKgyB,KAAKgwC,gBAExBhwC,KAAKswC,SAAS1hE,OAAOyP,EAAK,EAAG2hB,KAAKgwC,cAClChwC,KAAKswC,SAASv3D,SAAQ,SAAC9F,EAAmBoJ,GAC1B,cAAVpJ,EAAEZ,MAAwBgK,GAASgC,IACrCpL,EAAE6J,QAAU,GACZ7J,EAAE00D,UAAY,cAIpB1yD,QAAI06D,SAAS3vC,KAAKswC,UAAUh/D,KAA5B,0DAAiC,WAAO0pB,GAAP,qFAC3BA,EAD2B,gCAEtB9mB,OAAegnB,WAAW,EAAKmH,GAAG,qBAFZ,OAG7BptB,QAAI8zD,WAAWz3D,MAAK,SAAC4G,GACnB,EAAKo4D,SAAWp4D,EAAIuvD,SAJO,sCAOtBvzD,OAAegnB,WAAW,4BAPJ,2CAAjC,uDAnFR,2BA+Fc9oB,EAAU4tB,KAAKqC,GAAG,wBAAwB5R,WACxB,GAApBigD,QAAQt+D,GAhGpB,2CAiGiB,GAjGjB,YAmGc4tB,KAAKgwC,aAAav6D,GAnGhC,iBAoGYuqB,KAAKgwC,aAAarI,UAAY,SAE1BtpD,EAAM2hB,KAAKswC,SAAS91D,WAAU,SAACvH,GACjC,OAAOA,EAAEwC,KAAO,EAAKu6D,aAAav6D,OAGxB,GAAR4I,IAEF2hB,KAAKswC,SAAS1hE,OAAOyP,EAAK,EAAG2hB,KAAKgwC,cAClChwC,KAAKswC,SAASv3D,SAAQ,SAAC9F,EAAmBoJ,GAC1B,cAAVpJ,EAAEZ,MAAwBgK,GAASgC,IACrCpL,EAAE6J,QAAU,GACZ7J,EAAE00D,UAAY,cAKpB1yD,QACG06D,SAAS3vC,KAAKswC,UACdh/D,KAFH,0DAEQ,WAAO0pB,GAAP,qFACAA,EADA,uBAEF,EAAKm1C,OAAS,GACd,EAAKC,mBAAqB,GAHxB,SAIKl8D,OAAegnB,WAAW,EAAKmH,GAAG,wBAJvC,OAKFptB,QAAI8zD,WAAWz3D,MAAK,SAAC4G,GACnB,EAAKo4D,SAAWp4D,EAAIuvD,SANpB,wCASKvzD,OAAegnB,WAAW,4BAT/B,4CAFR,uDAcG5X,MAdH,0DAcS,WAAOvS,GAAP,iGACEmD,OAAegnB,WAAW,eAD5B,2CAdT,uDArHZ,yCAuImBhnB,OAAegnB,WAAW8E,KAAKqC,GAAG,2BAvIrD,oCA4IUrC,KAAKgwC,aAAahO,UA5I5B,iBA6IQhiC,KAAKswC,SAAStiE,KAAKgyB,KAAKgwC,cACxB/6D,QAAI06D,SAAS3vC,KAAKswC,UAAUh/D,KAA5B,0DAAiC,WAAO0pB,GAAP,qFAC3BA,EAD2B,gCAEtB9mB,OAAegnB,WAAW,EAAKmH,GAAG,qBAFZ,OAG7BptB,QAAI8zD,WAAWz3D,MAAK,SAAC4G,GACnB,EAAKo4D,SAAWp4D,EAAIuvD,SAJO,2CAAjC,uDA9IR,yCAuJevzD,OAAegnB,WAAW8E,KAAKqC,GAAG,2BAvJjD,iDA9HmC,8EAiSnC,WAAO,WAGLptB,QAAI8zD,WAAWz3D,KAAf,0DAAoB,WAAO4G,GAAP,8FAClB,EAAKo4D,SAAWp4D,EAAIuvD,OAChB,EAAK6I,SAFS,oBAGZN,EAAe,EAAKM,SAAS92D,MAAK,SAACvG,GACrC,MAAkB,eAAXA,EAAEZ,SAEP29D,EANY,wBAOVlzD,EAAUkzD,EAAalzD,QAAQtD,MAAK,SAACvG,GACvC,MAAiB,yBAAVA,EAAES,OARG,SAUkBjE,QAAQ+C,IACtCsK,EAAQ1J,MAAMmC,KAAI,SAACkF,GACjB,OAAO,EAAKu0D,YAAYv0D,EAAE0I,aAZhB,OAUd,EAAKitD,mBAVS,OAeVO,EAAc,EAAKX,aAAalzD,QAAQtD,MAAK,SAACvG,GAChD,MAAiB,iBAAVA,EAAES,OAIT,EAAKw8D,SADHS,EAnBU,QA0BhB,EAAKl8D,SAAQ,GA1BG,4CAApB,yDApSiC,mFAmUnC,WAAkBsC,GAAlB,iGACe9B,QAAIozD,mBAAmBtxD,GAAOzF,MAAK,SAAC4G,GAC/C,IAAMuB,EAAOvB,EAAI9C,MAAM,GACvB,OAAIqE,EACsB,CACtB9D,YAAa8D,EAAK9D,YAClBW,UAAWmD,EAAKnD,UAChBN,SAAUyD,EAAKzD,SACfe,MAAO0C,EAAK1C,MACZtB,GAAIgE,EAAKhE,IAGJ,CACLE,YAAaoB,EACbA,MAAOA,MAdf,mFAnUmC,+DAASynB,QAwC5CqE,gBADC0G,eAAM,uBACP,iDAoBA1G,gBADC0G,eAAM,2BACP,iDAWA1G,gBADC0G,eAAM,WACP,kDAkBA1G,gBADC0G,eAAM,aACP,+BAzFmB8mC,GAAgB,gBAjBpCrvC,eAAU,CACTmD,WAAY,CACV09B,eACAl+B,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACAgT,mBAEFjpC,QAAS,kBACJC,eAAW,CACZ5vB,QAASJ,cAIMg8D,cC1C4T,MCO7U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAItwC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uCAAuCtC,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,mBAAkBmyB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QACrvB,GAAkB,GC2BDwuC,GAAY,wDAAjC,iD,0BAyBE,EAAAntC,OAAgB,EAAKpB,GAAG,wBAAwB5R,WAzBlD,EAAiC,sDAqB/B,WACE,MAAO,CAAC4/C,MAtBqB,wBAiC/B,WACE,IAAM7U,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YApCyB,qBA8C/B,WACE17B,KAAKvrB,SAAQ,OA/CgB,GAAS+pB,QAArBoyC,GAAY,gBApBhC5vC,eAAU,CACPmD,WAAW,CACTR,cACAu2B,eACA52B,cACA62B,cACAM,6BACA4V,qBAEFjsC,QAAO,kBACFC,eAAW,CACV5vB,QAASJ,WAGf4sB,SAAQ,kBACDC,eAAW,CACVrM,UAAWxgB,cAIFu8D,cC5BwT,MCOzU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI7wC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACiB,YAAY,UAAU,CAACjB,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,cAAcJ,EAAG,OAAO,CAACiB,YAAY,iBAAiBjB,EAAG,OAAO,CAACiB,YAAY,SAAS,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,QAAQ,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,WAAW,MAAQ,MAAMJ,EAAG,OAAO,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,QAAQ,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,KAAK,CAACA,EAAG,cAAcA,EAAG,SAAS,CAACiB,YAAY,SAASZ,YAAY,CAAC,MAAQ,SAASD,MAAM,CAAC,KAAO,GAAG,GAAK,KAAK,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAI4B,GAAG,cAAcxB,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAI4B,GAAG,iBAAiB,KAAKxB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0BlC,EAAG,KAAK,CAACA,EAAG,cAAcA,EAAG,SAAS,CAACiB,YAAY,SAASZ,YAAY,CAAC,MAAQ,SAASD,MAAM,CAAC,KAAO,GAAG,GAAK,KAAK,CAACJ,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAI4B,GAAG,cAAcxB,EAAG,SAAS,CAACI,MAAM,CAAC,MAAQ,KAAK,CAACR,EAAI4B,GAAG,iBAAiB,SAASxB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,sCAAsClC,EAAG,MAAM,CAACK,YAAY,CAAC,MAAQ,OAAO,OAAS,QAAQ,OAAS,iBAAiB,cAAc,QAAQ,aAAa,SAAS,MAAQ,OAAO,iBAAiB,MAAM,YAAY,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uBACljD,GAAkB,GCQDwuC,GAAa,qJAASryC,QAAtBqyC,GAAa,gBAHjC7vC,eAAU,CACPmD,WAAW,CAACR,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BJ,YAAS+E,kBAE/EyR,cCTyT,MCO1U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI9wC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,mIAAmIlC,EAAG,mBAAmBiC,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QACvnB,GAAkB,GCgBD0uC,GAAS,wDAA9B,iD,0BAOC,EAAArtC,OAAgB,EAAKpB,GAAG,QAAQ5R,WAPjC,EAA8B,0BAAS+N,QAAlBsyC,GAAS,gBAX7B9vC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAiF,cACA3E,6BACAoW,qBAGaC,cCjBqT,MCOtU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/wC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACiB,YAAY,yBAAyBZ,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,QAAQJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,QAAQJ,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAIgxC,WAAW72D,QAAO,SAAU82D,GAAU,MAA8B,WAAvBA,EAASrJ,cAA0B,SAASqJ,EAAS30D,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,GAAO,CAAC8jB,EAAG,KAAK,CAACA,EAAG,OAAO,CAACiB,YAAY,oBAAoBf,MAAM,CAAC,eAAiBN,EAAIkxC,eAAeD,EAASlwD,YAAYqf,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGkvC,EAAS3+D,SAAS8tB,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,SAAS,CAACiB,YAAY,8BAA8Bb,MAAM,CAAC,MAAQR,EAAImxC,cAAczwC,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI+nC,KAAKkJ,MAAa,CAAC7wC,EAAG,IAAI,CAACiB,YAAY,oBAAoBjB,EAAG,SAAS,CAACiB,YAAY,8BAA8Bb,MAAM,CAAC,MAAQR,EAAIoxC,gBAAgB1wC,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkqC,WAAW+G,MAAa,CAAC7wC,EAAG,IAAI,CAACiB,YAAY,0BAAyB,QAChjC,GAAkB,GCsBDgwC,GAAY,wDAAjC,iD,0BAgBI,EAAAF,aAAuB,EAAK7uC,GAAG,UAAU5R,WACzC,EAAA0gD,eAAyB,EAAK9uC,GAAG,UAAU5R,WAjB/C,EAAiC,sDAyB7B,SAAgBvX,GACZ,IAAM63D,EAAa/wC,KAAK+wC,WAEpB1yD,EAAM0yD,EAAWv2D,WAAU,SAACvH,GAC5B,OAAOA,EAAEwC,KAAOyD,EAAKzD,MAGF,WAAnByD,EAAKyuD,UAEDtpD,GAAO,EAEP2hB,KAAK+wC,WAAWniE,OAAOyP,EAAK,EAAGnF,GAE/B8mB,KAAK+wC,WAAW/iE,KAAKkL,GAEC,QAAnBA,EAAKyuD,UAEZ3nC,KAAK+wC,WAAWniE,OAAOyP,EAAK,EAAGnF,GACL,WAAnBA,EAAKyuD,YAERoJ,EAAW1yD,GAAK5I,GAAGmG,QAAQ,UAAY,EAEvCokB,KAAK+wC,WAAWniE,OAAOyP,EAAK,GAG5B2hB,KAAK+wC,WAAWniE,OAAOyP,EAAK,EAAGnF,MAlDd,kBAwD7B,SAAKA,GACD8mB,KAAKiC,MAAM,SAAU/oB,KAzDI,kFA4D7B,WAAiBA,GAAjB,qGACU9G,EAAU4tB,KAAKqC,GAAG,0BAA0B5R,WADtD,SAEcvc,OAAe20D,aAAaz2D,GAF1C,sBAEsD,GAFtD,+CAGe,GAHf,OAKQ6C,QAAIo8D,eAAen4D,EAAKzD,IAAInE,KAA5B,0DAAiC,WAAO4G,GAAP,iGACvBhE,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YADtB,2CAAjC,uDAGAvX,EAAKyuD,UAAY,SACjB3nC,KAAKsxC,gBAAgBp4D,GAT7B,iDA5D6B,mFAyE7B,SAAYA,MAzEiB,4BA6E7B,SAAe4H,GACX,IAAIzE,EAEJ,OAAOyE,GACH,IAAK,OACDzE,EAAQ,EACR,MACJ,IAAK,QACDA,EAAQ,EACR,MACJ,IAAK,MACDA,EAAQ,EACR,MACJ,IAAK,SACDA,EAAQ,EACR,MACJ,IAAK,SACDA,EAAQ,EACR,MACJ,IAAK,SACDA,EAAQ,EACR,MAER,OAAOA,MApGkB,GAASmiB,QAejBqE,gBAApBC,eAAK,CAACtyB,KAAM8f,SAAQ,kCAfJ8gD,GAAY,gBAfhCpwC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,aAEJj2B,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,cAIA+8D,cCvBwT,MCOzU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrxC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,YAAckL,EAAI8xB,OAAQ5tB,WAAW,0BAA0B7C,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQV,EAAIwxC,iBAAiB,CAACpxC,EAAG,IAAI,CAACiB,YAAY,uBAAuBrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,kBAAkBlC,EAAG,eAAe,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,YAAckL,EAAI8xB,OAAQ5tB,WAAW,0BAA0B1D,MAAM,CAAC,WAAaR,EAAIgxC,YAAYtwC,GAAG,CAAC,OAASV,EAAIjmB,UAAUqmB,EAAG,gBAAgB,CAACI,MAAM,CAAC,KAAOR,EAAImD,KAAK,KAAOnD,EAAIyxC,kBAAkB/wC,GAAG,CAAC,OAASV,EAAI0xC,gBAAgBrvC,OAAM,QAC71B,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,gBAAgB,MAAQR,EAAI1pB,MAAM,KAAO0pB,EAAImD,MAAMzC,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAYX,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI27B,KAAK37B,EAAI7mB,SAAS,CAAC6mB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAUlC,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAAcD,OAAM,MAAS,CAACjC,EAAG,QAAQ,CAACiB,YAAY,eAAeb,MAAM,CAAC,MAAQ,SAAS,CAACJ,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,WAAWJ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAWlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAQ,KAAEkE,WAAW,SAAS7C,YAAY,SAASZ,YAAY,CAAC,MAAQ,QAAQD,MAAM,CAAC,KAAO,QAAQiF,SAAS,CAAC,MAASzF,EAAQ,MAAGU,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,YAAqBltB,EAAI1tB,KAAKuvB,EAAO/wB,OAAOuC,eAAc+sB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,YAAYlC,EAAG,KAAK,CAACA,EAAG,OAAOJ,EAAI0B,GAAI1B,EAAU,QAAE,SAASixC,EAAS30D,GAAO,OAAO8jB,EAAG,QAAQ,CAACzsB,IAAI2I,EAAM+kB,YAAY,sBAAsB,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAS,MAAEkE,WAAW,UAAU1D,MAAM,CAAC,KAAO,QAAQ,KAAO,cAAc,QAAU,WAAWiF,SAAS,CAAC,MAAQwrC,EAAS,QAAUjxC,EAAIwkC,GAAGxkC,EAAIjf,MAAMkwD,IAAWvwC,GAAG,CAAC,OAAS,SAASmB,GAAQ7B,EAAIjf,MAAMkwD,MAAa7wC,EAAG,OAAO,CAACiB,YAAY,YAAYf,MAAM,eAAiBN,EAAIkxC,eAAeD,UAAgB,cAC5nD,GAAkB,GCSDU,GAAa,wDAAlC,iD,0BAeI,EAAAr/D,KAAc,GACd,EAAAyO,MAAe,GACf,EAAA6wD,OAAmB,CACf,MAAM,SAAS,SAAS,QAAQ,OAAO,UAE3C,EAAAt7D,MAAgB,EAAKgsB,GAAG,QAAQ5R,WApBpC,EAAkC,kDA6B9B,WACOuP,KAAK9mB,OACJ8mB,KAAK3tB,KAAO2tB,KAAK9mB,KAAK7G,KACtB2tB,KAAKlf,MAAQkf,KAAK9mB,KAAK4H,SAhCD,kBA4C9B,SAAK5H,GAAsB,WACpBA,EAAKzD,GACJR,QAAI28D,eAAe,CAACn8D,GAAIuqB,KAAK9mB,KAAKzD,GAAIpD,KAAM2tB,KAAK3tB,KAAMyO,MAAMkf,KAAKlf,MAAOkV,YAAY,IAA2B1kB,KAAhH,0DAAqH,WAAO4G,GAAP,iGAC3GhE,OAAegnB,WAAW,YADiF,OAEjH,EAAK+G,MAAM,UAFsG,2CAArH,uDAKAhtB,QAAI48D,eAAe,CAACx/D,KAAM2tB,KAAK3tB,KAAMyO,MAAMkf,KAAKlf,MAAOkV,YAAY,IAA2B1kB,KAA9F,0DAAmG,WAAO4G,GAAP,iGACzFhE,OAAegnB,WAAW,YAD+D,OAE/F,EAAK+G,MAAM,UAFoF,2CAAnG,yDAnDsB,4BA2D9B,SAAenhB,GACX,IAAIzE,EAEJ,OAAOyE,GACH,IAAK,OACDzE,EAAQ,EACR,MACJ,IAAK,QACDA,EAAQ,EACR,MACJ,IAAK,MACDA,EAAQ,EACR,MACJ,IAAK,SACDA,EAAQ,EACR,MACJ,IAAK,SACDA,EAAQ,EACR,MACJ,IAAK,SACDA,EAAQ,EACR,MAER,OAAOA,MAlFmB,GAASmiB,QAOhBqE,gBAAtBC,eAAK,CAACtyB,KAAMyyB,WAAU,4BACDJ,gBAArBC,eAAK,CAACtyB,KAAM7C,UAAS,4BAqBtBk1B,gBADC0G,eAAM,SACP,iCA7BiBmoC,GAAa,gBALjC1wC,eAAU,CACPmD,WAAY,CACR2F,kBAGa4nC,cCVqU,MCOtV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCYMI,GAAQ,wDAA7B,iD,0BAqBE,EAAAjgB,QAAkB,EAClB,EAAA3uB,MAAgB,EAChB,EAAAsuC,iBAAqC,GACrC,EAAAO,aAAiC,GACjC,EAAAhB,WAAiC,GACjC,EAAAttC,OAAiB,EAAKpB,GAAG,mBAAmB5R,WA1B9C,EAA6B,6CAiC3B,SAAOrd,GACL4sB,KAAK+xC,aAAe3+D,IAlCK,4BAqC3B,WAEE4sB,KAAKkD,MAAO,IAvCa,wBA0C3B,WAAU,WACRlD,KAAKwxC,iBAAoB,GACzBxxC,KAAKkD,MAAO,EACZjuB,QAAI+8D,kBAAkB1gE,MAAK,SAAC4G,GAC1B,EAAK64D,WAAa74D,OA9CK,oBAkD3B,SAAO+5D,GACLjyC,KAAKkD,MAAO,EACZlD,KAAKwxC,iBAAmBS,IApDC,oBAuD3B,WACKjyC,KAAK6xB,OACN7xB,KAAK6xB,QAAS,EAGd7xB,KAAKiC,MAAM,YA5DY,kBAgE3B,WAAI,WACCjC,KAAK6xB,QACN58C,QAAI6kB,aAAakG,KAAK+xC,cAAczgE,KAApC,yCAAyC,8GACjC4C,OAAegnB,WAAW,EAAKmH,GAAG,eAAe5R,aADhB,8CAlElB,qBA+E3B,WAAO,WACLuP,KAAKvrB,SAAQ,GACbQ,QAAI+8D,kBAAkB1gE,MAAK,SAAC4G,GACtB,EAAK64D,WAAa74D,EACf,EAAK64D,YACJ,EAAKt8D,SAAQ,UApFE,GAAS+pB,QAAjBszC,GAAQ,gBArB5B9wC,eAAU,CACPmD,WAAW,CACTR,cACAu2B,eACA52B,cACA62B,cACAM,6BACA2W,gBACAM,kBAEFttC,QAAO,kBACFC,eAAW,CACV5vB,QAASJ,WAGf4sB,SAAQ,kBACDC,eAAW,CACVrM,UAAWxgB,cAIFy9D,cC9BoT,MCOrU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/xC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,mBAAmB7B,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,aAA6BY,OAAM,QACxc,GAAkB,GC2BD8vC,GAAO,wDAA5B,iD,0BAcI,EAAAzuC,OAAiB,EAAKpB,GAAG,sBAAsB5R,WAdnD,EAA4B,8CA6BxB,WACIuP,KAAKvrB,SAAQ,OA9BO,GAAS+pB,QAAhB0zC,GAAO,gBApB3BlxC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAkQ,gBAEJvmC,QAAO,kBACAC,eAAW,CACV5vB,QAASJ,WAGjB4sB,SAAQ,kBACDC,eAAW,CACVrM,UAAWxgB,cAIF69D,cC5BmT,MCOpU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAInyC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,mBAAmB,CAACM,GAAG,CAAC,KAAOV,EAAIoB,KAAK,KAAOpB,EAAIrjB,KAAK,KAAOqjB,EAAI+nC,KAAK,QAAU/nC,EAAIoyC,iBAAiB,OAASpyC,EAAIkqC,YAAYvc,MAAM,CAACt6C,MAAO2sB,EAAa,UAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIqyC,UAAUj/B,GAAKlP,WAAW,iBAAiB7B,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIsyC,SAAS,OAAS,SAASzwC,GAAQ,OAAO7B,EAAIkC,MAAM,cAAc9B,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAOR,EAAImD,KAAK,eAAiBnD,EAAIuyC,gBAAgB7xC,GAAG,CAAC,OAASV,EAAIsB,MAAM,KAAOtB,EAAI27B,MAAMhO,MAAM,CAACt6C,MAAO2sB,EAAgB,aAAE4tB,SAAS,SAAUxa,GAAMpT,EAAI4M,aAAawG,GAAKlP,WAAW,oBAAoB7B,OAAM,QACl4B,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,OAAS,8BAA8B,MAAQR,EAAI1pB,MAAM,KAAO0pB,EAAImD,MAAMzC,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAYX,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQV,EAAI27B,OAAO,CAAC37B,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIwyC,gBAAgBpyC,EAAG,SAAS,CAACiB,YAAY,yBAAyBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,aAAa,CAAClC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAAcD,OAAM,MAAS,CAACjC,EAAG,QAAQ,CAACiB,YAAY,gBAAgBb,MAAM,CAAC,MAAQ,SAAS,CAACJ,EAAG,WAAW,CAACA,EAAG,MAAM,CAACK,YAAY,KAAKL,EAAG,SAASA,EAAG,QAAQ,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,MAAM,UAAW,IAAO,CAACJ,EAAG,iBAAiB,CAACI,MAAM,CAAC,QAAS,EAAK,WAAaR,EAAIqwC,mBAAmB,YAAcrwC,EAAIy9B,aAAa/8B,GAAG,CAAC,oBAAoB,SAASmB,GAAQ7B,EAAIqwC,mBAAmBxuC,OAAY,GAAGzB,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,MAAM,UAAW,IAAO,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,UAAW,EAAK,MAAO,GAAMmtB,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAW,MAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,QAAS+/B,IAAMlP,WAAW,kBAAkB,GAAG9D,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,OAAO,UAAW,IAAO,CAACJ,EAAG,cAAc,CAACutB,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAW,MAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,QAAS+/B,IAAMlP,WAAW,kBAAkB,IAAI,QACr4C,GAAkB,G,6CC6BDuuC,GAAiB,wDAAtC,iD,0BAiBI,EAAApC,mBAAwC,GACxC,EAAA/5D,MAAgB,GAChB,EAAAk8D,YAAsB,GACtB,EAAAE,cAA+B,GApBnC,EAAsC,sDA6BlC,WAAe,WACRzyC,KAAK5sB,OAAS4sB,KAAK5sB,MAAMsC,YACxBT,QAAIihD,oBAAoBl2B,KAAK5sB,MAAMsC,YAAYpE,MAAK,SAAC4G,GACjD,EAAKk4D,mBAAqB,CAACl4D,MAGhC8nB,KAAK5sB,MAAMqC,IACVuqB,KAAK3pB,MAAM,QACX2pB,KAAKuyC,YAAc,OAEnBvyC,KAAK3pB,MAAM,UACX2pB,KAAKuyC,YAAc,QAxCO,uBAkDlC,WACI,OAAGvyC,KAAKowC,mBAAmB1iE,OAAS,EACzB,KAEA,oBAtDmB,2BA+DlC,SAAc0F,GACV,IAAMs/D,EAAa,IAAIC,OAAJ,kDACnB,OAAKD,EAAW/T,KAAKvrD,IAAUA,EAAM1F,OAAS,EACnC,CAAEstB,SAAS,EAAO43C,OAAQ,WAE1B,CAAE53C,SAAS,KApEQ,4EAwElC,yGACOgF,KAAKowC,mBAAmB1iE,OAAS,GADxC,gCAEcwG,OAAegnB,WAAW,yBAFxC,iCAGe,GAHf,UAKQ8E,KAAK5sB,MAAMsC,WAAasqB,KAAKowC,mBAAmB,GAAG16D,WAC/Cm9D,EAAW7yC,KAAK8yC,cAAc9yC,KAAK5sB,MAAM2D,QACrB,IAArB87D,EAAS73C,QAPpB,iBAQYgF,KAAKiC,MAAM,QACXjC,KAAKowC,mBAAqB,GATtC,yCAWkBl8D,OAAegnB,WAAW,sCAX5C,iDAxEkC,4IAwFlC,WAAkBnkB,GAAlB,iGACiB9B,QAAIozD,mBAAmBtxD,GAAOzF,MAAK,SAAC4G,GAAM,YACnD,MAAwB,CACpBvC,YAAW,UAAEuC,EAAI9C,MAAM,UAAZ,aAAE,EAAcO,YAC3BW,UAAS,UAAE4B,EAAI9C,MAAM,UAAZ,aAAE,EAAckB,UACzBN,SAAQ,UAAEkC,EAAI9C,MAAM,UAAZ,aAAE,EAAcY,SACxBe,MAAK,UAAEmB,EAAI9C,MAAM,UAAZ,aAAE,EAAc2B,UANjC,mFAxFkC,+EAmGlC,WACIipB,KAAKyyC,cAAgBzyC,KAAK5sB,UApGI,GAASorB,QAOrBqE,gBAArBC,eAAK,CAACtyB,KAAM7C,UAAS,6BACCk1B,gBAAtBC,eAAK,CAACtyB,KAAMyyB,WAAU,4BACDJ,gBAArBC,eAAK,CAACtyB,KAAM7C,UAAS,sCAoBtBk1B,gBADC0G,eAAM,UACP,qCA7BiBipC,GAAiB,gBAjBrCxxC,eAAU,CACPmD,WAAW,CACP2F,cACA4G,mBACA/M,cACAu2B,eACA52B,cACA62B,cACAM,6BACAkQ,eACAvL,cACA2T,kBACAC,qBACA3F,kBACAxL,mBAGa2Q,cC9ByU,MCO1V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIzyC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,IAAI,CAACiB,YAAY,QAAQ,CAACjB,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQV,EAAIoB,OAAO,CAACpB,EAAI4B,GAAG,eAAexB,EAAG,QAAQ,CAACiB,YAAY,MAAMZ,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG,SAASxB,EAAG,KAAK,CAACJ,EAAI4B,GAAG,aAAaxB,EAAG,KAAK,CAACJ,EAAI4B,GAAG,UAAUxB,EAAG,UAAUA,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAIqyC,UAAUl4D,QAAO,SAAU+4D,GACrc,OAAQA,EAAMC,cAAa,SAASD,EAAM52D,GAAO,OAAO8jB,EAAG,KAAK,CAACzsB,IAAI2I,GAAO,CAAC8jB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAGmxC,EAAMn4D,SAASqlB,EAAG,KAAK,CAACiB,YAAY,kBAAkB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGmxC,EAAMl8D,UAAUopB,EAAG,KAAK,CAACiB,YAAY,kBAAkB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGmxC,EAAME,MAAM,KAAK,UAAUhzC,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,SAAS,CAACiB,YAAY,8BAA8Bb,MAAM,CAAC,SAAoB,GAATlkB,GAAYokB,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIrjB,KAAKL,EAAOA,EAAQ,MAAM,CAAC8jB,EAAG,IAAI,CAACiB,YAAY,yBAAyBjB,EAAG,SAAS,CAACiB,YAAY,8BAA8Bb,MAAM,CAAC,SAAWlkB,GAAS0jB,EAAI8nC,WAAWpnC,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIrjB,KAAKL,EAAOA,EAAQ,MAAM,CAAC8jB,EAAG,IAAI,CAACiB,YAAY,2BAA2BjB,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI+nC,KAAKmL,MAAU,CAAC9yC,EAAG,IAAI,CAACiB,YAAY,oBAAoBjB,EAAG,SAAS,CAACiB,YAAY,8BAA8BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIqzC,YAAYH,MAAU,CAAC9yC,EAAG,IAAI,CAACiB,YAAY,0BAAyB,QAC9gC,GAAkB,GCiBDiyC,GAAgB,wDAArC,iD,0BAeI,EAAAxL,UAAoB,EACpB,EAAAuK,UAAkC,GAhBtC,EAAqC,oDA0BjC,WAAa,aACTpyC,KAAKoyC,UAAYpyC,KAAK5sB,MACtB6B,QAAIk9D,mBAAmB7gE,MAAK,SAAC4G,GACzB,EAAKk6D,UAAYl6D,EAAI3C,KAAI,SAAC4H,GAKtB,OAJAA,EAAKrC,KAAO,GACZ,EAAKq6C,YAAYh4C,EAAKzH,YAAYpE,MAAK,SAAC4G,GACpCiF,EAAKrC,KAAO5C,KAETiF,QAGf6iB,KAAK6nC,WAAY,UAAA7nC,KAAK5sB,MAAM8G,QAAO,SAAC+4D,GAChC,OAAQA,EAAMC,oBADD,eAEbxlE,QAAS,EACbsyB,KAAKiC,MAAM,kBAAmBjC,KAAK5sB,SAxCN,mFAgDjC,WAAkBsC,GAAlB,iGACiBT,QAAIihD,oBAAoBxgD,GAAYpE,MAAM,SAAC4G,GAClD,OAAQA,EAAIlC,SAAS,IAAIkC,EAAIvC,YAAY,IAAIuC,EAAIxC,WAAW,OAFtE,mFAhDiC,4EAsDjC,WACGsqB,KAAKiC,MAAM,UAvDmB,kBA0DjC,SAAK6P,EAAcjyB,GAGf,OAFAmgB,KAAKiC,MAAM,OAAQ6P,EAAMjyB,GACzBmgB,KAAKoyC,UAAUxjE,OAAOiR,EAAI,EAAGmgB,KAAKoyC,UAAUxjE,OAAOkjC,EAAM,GAAG,IACrD9R,KAAKoyC,YA7DiB,kBAgEjC,SAAKl5D,GACD8mB,KAAKiC,MAAM,OAAQ/oB,KAjEU,mFAoEjC,WAAkBA,GAAlB,8FACU9G,EAAU,qBADpB,SAEc8B,OAAe20D,aAAaz2D,GAF1C,sBAEsD,GAFtD,+CAGe,GAHf,OAKO8G,EAAKg6D,WAAY,EACjBlzC,KAAKiC,MAAM,SAAU/oB,GAN5B,iDApEiC,+EAoFjC,WACI8mB,KAAKszC,oBArFwB,GAAS90C,QAOtBqE,gBAAnBC,eAAK,CAACtyB,KAAK8f,SAAQ,6BAmBpBuS,gBADC0G,eAAM,UACP,mCA1BiB8pC,GAAgB,gBATpCryC,eAAU,CACPmD,WAAW,CAACquC,qBAAkB7uC,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BJ,aACxGj2B,QAAO,kBACDC,eAAW,CACViP,SAAUj/B,QACVI,QAASJ,cAIAg/D,cCnB4T,MCO7U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCcME,GAAY,wDAAjC,iD,0BAMI,EAAArwC,MAAgB,EAChB,EAAAO,OAAiB,UACjB,EAAA2uC,UAAkC,GAClC,EAAAzlC,aAA8B,CAC1Bj3B,WAAY,GACZqB,MAAO,GACPo8D,OAAO,EACPD,WAAW,EACXzM,aAAc,EACdjpC,UAAW,GACXC,YAAa,IAAIja,KACjBgwD,UAAW,GACXC,YAAa,IAAIjwD,MAGrB,EAAA8uD,eAAkC,CAC9Bx9D,QAAQ,GACRC,SAAS,GACTiB,SAAS,GACTL,YAAY,GACZoB,MAAM,GACNtB,GAAG,GACHs/C,eAAe,GACfr/C,WAAW,GACXgC,UAAU,EACVpB,UAAU,IA/BlB,EAAiC,uDAwC7B,WAAgB,WACZrB,QAAIk9D,mBAAmB7gE,MAAK,SAAC4G,GACzB,EAAKk6D,UAAYl6D,OA1CI,kBA8C7B,SAAK45B,EAAcjyB,GACfmgB,KAAKoyC,UAAUr5D,SAAQ,SAACtG,EAAE4J,GACnBA,IAAUy1B,EACVr/B,EAAEg0D,aAAe5mD,EAAK,EAChBxD,IAAUwD,IACfpN,EAAEg0D,aAAe30B,EAAO,QAnDP,kBAwD7B,SAAK54B,GACD8mB,KAAKkD,MAAO,EACZlD,KAAK2M,aAAezzB,IA1DK,kBA6D7B,WAAI,MACA,aAAG8mB,KAAK2M,oBAAR,OAAG,EAAmBl3B,GAAG,CACrB,IAAIA,EAAKu3B,SAAShN,KAAK2M,aAAal3B,IACpCuqB,KAAK2M,aAAal3B,GAAKA,EACvBR,QAAIy+D,aAAa,CAAC1zC,KAAK2M,eAAer7B,KAAtC,yCAA2C,8GACjC4C,OAAegnB,WAAW,YADO,iDAI3C8E,KAAK2M,aAAa85B,aAAezmC,KAAKoyC,UAAU1kE,OAAS,EACzDuH,QAAIy+D,aAAa,CAAC1zC,KAAK2M,eAAer7B,KAAtC,yCAA2C,8GACjC4C,OAAegnB,WAAW,YADO,4CAI/C8E,KAAK2M,aAAe,GACZ3M,KAAKsyC,eAAiB,GACtBtyC,KAAKqB,UA5EY,wBA+E7B,SAAWnoB,GACT8mB,KAAKoyC,UAAUr5D,SAAQ,SAACtG,GACjBA,EAAEgD,IAAMyD,EAAKzD,KACZhD,EAAEygE,WAAY,QAlFK,sBAuF7B,WASIj+D,QAAIy+D,aAAa1zC,KAAKoyC,WAAW9gE,KAAjC,0DAAsC,WAAO4G,GAAP,iGAC5BhE,OAAegnB,WAAW,YADE,2CAAtC,yDAhGyB,kBAqG7B,WACI8E,KAAK2M,aAAe,CAChBj3B,WAAY,GACZqB,MAAO,GACPo8D,OAAO,EACPD,WAAW,EACXzM,aAAc,EACdjpC,UAAW,GACXC,YAAa,IAAIja,KACjBgwD,UAAW,GACXC,YAAa,IAAIjwD,MAErBwc,KAAKkD,MAAO,IAjHa,mBAoH7B,WACIlD,KAAKkD,MAAO,EACZlD,KAAKmyC,qBAtHoB,qBAgI7B,WACInyC,KAAKmyC,uBAjIoB,GAAS3zC,QAArB+0C,GAAY,gBArBhCvyC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAuN,YACA0G,WACA2E,oBACAb,sBAEJpuC,QAAO,kBACAC,eAAW,KAGlBpD,SAAQ,kBACDC,eAAW,QAIDqyC,cChCwT,MCOzU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIxzC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG,2EAA2ExB,EAAG,wBAAwBiC,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QACtjB,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,MAAM,CAACiB,YAAY,+BAA+B,CAACjB,EAAG,MAAM,CAACiB,YAAY,4BAA4B,CAACjB,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,QAAQ,CAACiB,YAAY,aAAab,MAAM,CAAC,KAAO,OAAO,YAAcR,EAAIy9B,mBAAmBr9B,EAAG,OAAO,CAACiB,YAAY,SAAS,CAACjB,EAAG,IAAI,CAACiB,YAAY,uCAAuCb,MAAM,CAAC,QAAU,wJAAwJ,CAACR,EAAI4B,GAAG,gBACxmB,GAAkB,GCcDgyC,GAAkB,wDAAvC,iD,0BAOE,EAAAnW,YAAqB,EAAKn7B,GAAG,wBAAwB5R,WAPvD,EAAuC,0BAAS+N,QAA3Bm1C,GAAkB,gBAVtC3yC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,gBAGasZ,cCf8T,MCO/U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCHMC,GAAc,wDAAnC,iD,0BAOI,EAAAnwC,OAAgB,EAAKpB,GAAG,4BAA4B5R,WAPxD,EAAmC,0BAAS+N,QAAvBo1C,GAAc,gBAVlC5yC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAkZ,0BAGaC,cCf0T,MCO3U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI7zC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,OAAOzB,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,kBAAiBmyB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,WAAW,KAAOlC,EAAIu7B,gBAAgBl5B,OAAM,QAC5oB,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,WAAW,CAACyD,MAAM,eAAiBrD,MAAM,CAAC,MAAQR,EAAI5Y,SAAS,SAAW4Y,EAAI8zC,UAAUpzC,GAAG,CAAC,OAASV,EAAI+zC,cAAc,IAClQ,GAAkB,GCqCDC,GAAY,wDAAjC,iD,0BAuBI,EAAA1hE,KAAc,EAAKgwB,GAAG,+BAA+B5R,WACrD,EAAAojD,SAAmB,GACnB,EAAAn8D,SAAmB,SACnB,EAAAs8D,aAAiC,CAC7Bn2C,WAAY,GACZ22B,OAAQ,KACR/2B,YAAa,GACbD,UAAW,GACXy2C,eAAgB,KAChBC,cAAe,KACfC,eAAgB,KAChBC,kBAAmB,KACnBC,aAAc,KACd32B,SAAU,EACV42B,YAAa,KACbC,YAAa,KACbC,UAAU,EACV52C,UAAU,EACV1gB,QAAQ,EACRygB,UAAU,EACV82C,YAAa,GACbC,OAAQ,EACRp6C,IAAK,EACLm5C,YAAa,GACbD,UAAW,GACXmB,eAAe,EACfC,SAAU,EACVC,YAAa,KACbC,YAAa,KACbC,eAAgB,GAChBC,iBAAkB,GAClBC,YAAa,IAEjB,EAAA9tD,SAAwB,CACpB,CACIzT,IAAK,IACLrB,KAAM,EAAKgwB,GAAG,qBAAqB5R,WACnCykD,YAAa,EAAK7yC,GAAG,cAAc5R,WACnC/Y,UAAU,GAEd,CACIhE,IAAK,IACLrB,KAAM,EAAKgwB,GAAG,sBAAsB5R,WACpCykD,YAAa,EAAK7yC,GAAG,cAAc5R,WACnC/Y,UAAU,GAEd,CACIhE,IAAK,IACLrB,KAAM,EAAKgwB,GAAG,wBAAwB5R,WACtCykD,YAAa,EAAK7yC,GAAG,cAAc5R,WACnC/Y,UAAU,GAEd,CACIhE,IAAK,IACLrB,KAAM,EAAKgwB,GAAG,uBAAuB5R,WACrCykD,YAAa,EAAK7yC,GAAG,eAAe5R,WACpC/Y,UAAU,GAEd,CACIhE,IAAK,IACLrB,KAAM,EAAKgwB,GAAG,qBAAqB5R,WACnCykD,YAAa,EAAK7yC,GAAG,cAAc5R,WACnC/Y,UAAU,GAEd,CACIhE,IAAK,IACLrB,KAAM,EAAKgwB,GAAG,uBAAuB5R,WACrCykD,YAAa,EAAK7yC,GAAG,cAAc5R,WACnC/Y,UAAU,GAEd,CACIhE,IAAK,IACLrB,KAAM,EAAKgwB,GAAG,qBAAqB5R,WACnCykD,YAAa,EAAK7yC,GAAG,cAAc5R,WACnC/Y,UAAU,IAjGtB,EAAiC,gDA2G7B,SAAUtE,GACFA,IACA4sB,KAAK6zC,SAAWzgE,KA7GK,kBAiH7B,WACI4sB,KAAKg0C,aAAat2B,SAAW1Q,SAAShN,KAAK6zC,UAC3C5+D,QAAIkgE,gBAAgBn1C,KAAKg0C,cAAc1iE,KAAvC,0DAA4C,WAAO0pB,GAAP,qFACrCA,EADqC,gCAE9B9mB,OAAegnB,WAAW,YAFI,2CAA5C,yDAnHyB,uBAiI7B,WACI8E,KAAK6zC,SAAW7zC,KAAKg0C,aAAat2B,SAASjtB,aAlIlB,qBA2I7B,WAAO,WACHxb,QAAImgE,gBAAgBp1C,KAAKvmB,KAAK/D,YAAYpE,MAAK,SAAC4G,GAC5C,EAAK87D,aAAe97D,EACjB,EAAK87D,cACJ,EAAKv/D,SAAQ,UA/II,GAAS+pB,QAiItCqE,gBADC0G,eAAM,iBACP,+BAjIiBwqC,GAAY,gBArBhC/yC,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,aAEJp5B,SAAU,kBACHC,eAAW,CACZznB,KAAMgzB,WAGZrI,QAAS,kBACFC,eAAW,CACb5vB,QAASJ,cAKG0/D,cCtC4S,MCO7T,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCWMsB,GAAQ,wDAA7B,iD,0BA2BE,EAAA5xC,OAAiB,EAAKpB,GAAG,SAAS5R,WA3BpC,EAA6B,sDAuB3B,WACE,MAAO,CAACsjD,MAxBiB,wBAmC3B,WACE,IAAMvY,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YAtCqB,qBAgD3B,WACE17B,KAAKvrB,SAAQ,OAjDY,GAAS+pB,QAAjB62C,GAAQ,gBArB5Br0C,eAAU,CACPmD,WAAW,CACTR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACA0Z,iBAEF3vC,QAAS,kBACJC,eAAW,CACb5vB,QAASJ,WAGZ4sB,SAAU,kBACLC,eAAW,CACZrM,UAAWxgB,cAIEghE,cC7BwS,MCOzT,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIt1C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,OAAOzB,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,YAAYswB,MAAM,CAAC,YAAcR,EAAIu1C,mBAAkBlzC,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QAClrB,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,WAAW,CAACM,GAAG,CAAC,MAAQ,SAAUrtB,GAAS,OAAO2sB,EAAI7D,UAAUA,UAAUG,SAAWjpB,IAAUs6C,MAAM,CAACt6C,MAAO2sB,EAAI7D,UAAUA,UAAkB,SAAEyxB,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI7D,UAAUA,UAAW,WAAYiX,IAAMlP,WAAW,mCAAmC,IACrZ,GAAkB,GCDlB,GAAS,WAAa,IAAIlE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,6BAA6BlC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,SAAS,CAACiB,YAAY,+BAA+Bb,MAAM,CAAC,KAAO,UAAUE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIw1C,QAAQ,CAACx1C,EAAI4B,GAAG,KAAK5B,EAAI+B,GAAG/B,EAAIsC,GAAG,uBAAuBlC,EAAG,SAAS,CAACiB,YAAY,+BAA+Bb,MAAM,CAAC,KAAO,UAAUE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIy1C,UAAU,CAACz1C,EAAI4B,GAAG,KAAK5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yBAAyBlC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,wBAAwB,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,OAAO,CAACiB,YAAY,qBAAqBrB,EAAI0B,GAAI1B,EAAW,SAAE,SAASolC,GAAK,OAAOhlC,EAAG,MAAM,CAACzsB,IAAIyxD,EAAI9mD,IAAI+iB,YAAY,kCAAkC,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAe,YAAEkE,WAAW,gBAAgB1D,MAAM,CAAC,KAAO,QAAQ,KAAO,QAAQ,GAAM,QAAW4kC,EAAO,KAAI3/B,SAAS,CAAC,MAAQ2/B,EAAI9mD,IAAI,QAAU0hB,EAAIwkC,GAAGxkC,EAAI01C,YAAYtQ,EAAI9mD,MAAMoiB,GAAG,CAAC,OAAS,SAASmB,GAAQ7B,EAAI01C,YAAYtQ,EAAI9mD,QAAQ8hB,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAO,QAAW4kC,EAAO,MAAK,CAACplC,EAAI4B,GAAG5B,EAAI+B,GAAGqjC,EAAI9yD,cAAa,QACtqC,GAAkB,CAAC,WAAa,IAAI0tB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACiB,YAAY,yBAAyB,CAACjB,EAAG,KAAK,CAACJ,EAAI4B,GAAG,OAAOxB,EAAG,KAAK,CAACJ,EAAI4B,GAAG,OAAOxB,EAAG,KAAK,CAACJ,EAAI4B,GAAG,W,aCoBlM+zC,GAAQ,wDAA7B,iD,0BAgBI,EAAAC,gBAA0B,QAC1B,EAAAC,KAAmB,CAAE,CAAEv3D,IAAK,IAAKhM,KAAM,EAAKgwB,GAAG,iBAAiB5R,YAAc,CAAEpS,IAAK,IAAKhM,KAAM,EAAKgwB,GAAG,cAAc5R,YAAc,CAAEpS,IAAK,IAAKhM,KAAM,EAAKgwB,GAAG,oBAAoB5R,aAClL,EAAAglD,YAAc,GAlBlB,EAA6B,4CA4CzB,WACE,OAAOz1C,KAAK41C,MA7CW,IAgDzB,SAAYxiE,GACV4sB,KAAK41C,KAAOxiE,IAjDW,wBA8DzB,SAAWgH,GACT,IADyB,EACnB1C,EAAWsoB,KAAKy1C,YAClBI,EAAuB,GACvB5qD,EAAO,KAHc,kBAIZ7Q,GAJY,IAIzB,2BAAkB,KAAV5E,EAAU,QACbkC,EAASsB,SAASxD,EAAE6I,MACrB4M,EAAO4qD,EAAQnoE,OAAS,EAAImoE,EAAQt7D,MAAQ,KAC5Cs7D,EAAQ7nE,KAAKwH,GACVyV,IACD4qD,EAAQ7nE,KAAKid,GACbA,EAAO,OAIT4qD,EAAQ7nE,KAAKwH,IAdQ,8BAiBzB,OAAOqgE,IA/EgB,gBAqFzB,WACE71C,KAAK81C,QAAU91C,KAAK+1C,WAAW/1C,KAAK81C,WAtFb,kBA4FzB,WACE91C,KAAK81C,QAAU91C,KAAK+1C,WAAW/1C,KAAK81C,QAAQp7D,WAAWA,YA7FhC,wBAgGzB,SAAWs7D,EAAqBC,GAC5B,IAAM1e,EAAQv3B,KACR5lB,EAAoB,GACA,IAAvB67D,EAAYvoE,SACbsoE,EAAYhrD,MAAM,KAAKjS,SAAQ,SAAAoyB,GAC7B/wB,EAAKpM,KAAKupD,EAAMqe,KAAKp8D,MAAK,SAAChE,GAAD,OAAYA,EAAE6I,MAAQ8sB,SAElDnL,KAAK81C,QAAU17D,KAvGI,+BAwHzB,SAAkB47D,EAAqBC,GACrCj2C,KAAKk2C,WAAWF,EAAaC,KAzHN,8BAiIzB,SAAiBJ,GACf,IAAM1qC,EAAQ0qC,EAAQtgE,KAAI,SAAA4vD,GAAG,OAAIA,EAAI9mD,OACjC83D,EAAWhrC,EAAM1a,WACrBuP,KAAKiC,MAAM,QAASk0C,KApIG,qBA8IzB,cA9IyB,qBAkJzB,WACEn2C,KAAKk2C,WAAWl2C,KAAK5sB,MAAO,QAnJL,GAASorB,QAQQqE,gBAAzCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,WAAW,6BAgH1CH,gBADC0G,eAAM,UACP,uCASA1G,gBADC0G,eAAM,YACP,sCAjIiBmsC,GAAQ,gBAd5B10C,eAAU,CACR3uB,KAAM,WACN8xB,WAAY,GACZlD,SAAU,kBACFC,eAAW,KAGnBkD,QAAS,iCACDC,eAAW,KAEXC,eAAa,QAIHoxC,cCrBoT,MCOrU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCUMU,GAAmB,wDAAxC,iD,0BAQI,EAAA/jE,KAAc,EAAKgwB,GAAG,gBAAgB5R,WAR1C,EAAwC,2CAmCpC,WACIuP,KAAKs1C,YAAY7B,YAAc,IAAIjwD,KACnCwc,KAAKq2C,YAAY,CAAEnpE,KAAM8yB,KAAKs1C,YAAa17C,SAAS,IACnDtoB,MAAK,mBAtC0B,GAASktB,QAerBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,mCAfPyoE,GAAmB,gBArBvCp1C,eAAU,CACPmD,WAAW,CACPuxC,YACA/xC,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,aAEHp5B,SAAQ,kBACFC,eAAW,CACVhF,UAAW7nB,WAGlB+vB,QAAO,kBACDC,eAAW,CACdgyC,YAAahiE,cAIA+hE,cC5B+T,MCOhV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIr2C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,MAAMouB,GAAG,CAAC,OAASV,EAAIu2C,QAAQ5oB,MAAM,CAACt6C,MAAO2sB,EAAIu1C,YAAsB,WAAE3nB,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAIu1C,YAAa,aAAcniC,IAAMlP,WAAW,4BAA4B9D,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,+DAA+DlC,EAAG,MAAMJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4CAA4C,IACpkB,GAAkB,GCsBDk0C,GAAmB,wDAAxC,iD,0BAOI,EAAAlkE,KAAc,EAAKgwB,GAAG,eAAe5R,WAPzC,EAAwC,6CA6BpC,SAAOvX,GACH8mB,KAAKs1C,YAAYkB,WAAat9D,IA9BE,kBAiCpC,WAAI,WACA8mB,KAAKs1C,YAAY7B,YAAc,IAAIjwD,KACnCwc,KAAKq2C,YAAY,CAAEnpE,KAAM8yB,KAAKs1C,YAAa17C,SAAS,IACnDtoB,KADD,0DACM,WAAO4G,GAAP,qFACEA,EADF,gCAEQhE,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAFrD,6CAKQvc,OAAegnB,WAAW,EAAKmH,GAAG,uBAAuB5R,YALjE,2CADN,kCAAAuP,KAAA,oBAnCgC,GAASxB,QAcrBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,mCAdP4oE,GAAmB,gBAhBvCv1C,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACAE,aAEHn2B,QAAO,kBACDC,eAAW,CACdgyC,YAAahiE,cAIAkiE,cCvB+T,MCOhV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCmBME,GAAO,wDAA5B,iD,0BAQE,EAAAnB,YAAgC,GAChC,EAAA7xC,OAAgB,EAAKpB,GAAG,qBAAqB5R,WAT/C,EAA4B,sDAiB1B,WAGE,MAAO,CAAC2lD,GAAqBG,MApBL,wBAsC1B,WACE,IAAM/a,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YAzCoB,qBAkDxB,WAAO,WACL17B,KAAKvrB,SAAQ,GACburB,KAAK02C,OAAOplE,MAAK,SAAC4G,GACd,EAAKo9D,YAAcp9D,EAAIgkB,UACpB,EAAKo5C,aACN,EAAK7gE,SAAQ,UAvDG,GAAS+pB,QAAhBi4C,GAAO,gBAxB3Bz1C,eAAU,CACPmD,WAAW,CACTR,cACAu2B,eACA52B,cACA62B,cACAM,6BACA2b,uBACAG,wBAIFnyC,QAAS,kBACJC,eAAW,CACZqyC,KAAMriE,QACNI,QAASJ,WAGb4sB,SAAU,kBACLC,eAAW,CACZrM,UAAWxgB,cAIEoiE,cCrCmT,MCOpU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI12C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,oBAAoB,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,mBAAmB7B,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,aAA6BY,OAAM,QAC9c,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACA,EAAG,OAAO,CAACiB,YAAY,WAAW,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,gBAAgB,SAASlC,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAoB,SAAhB/B,EAAIqY,SAAsBrY,EAAItmB,KAAK9D,YAAcoqB,EAAItmB,KAAK5D,yBAA0BsqB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,mCAAmC,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,mBAAmB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,SAASlC,EAAG,OAAO,CAACiB,YAAY,YAAY,CAACrB,EAAI4B,GAAG,SAASxB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,SAAS,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAkB,eAAEkE,WAAW,mBAAmB7C,YAAY,SAASZ,YAAY,CAAC,MAAQ,SAASC,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAI+0B,EAAgBrmC,MAAM1iB,UAAUsM,OAAOpM,KAAK8zB,EAAO/wB,OAAO6I,SAAQ,SAAS7G,GAAG,OAAOA,EAAE6E,YAAWnC,KAAI,SAAS1C,GAAG,IAAI+jD,EAAM,WAAY/jD,EAAIA,EAAEgkD,OAAShkD,EAAEO,MAAM,OAAOwjD,KAAO72B,EAAI42C,eAAe/0C,EAAO/wB,OAAOkmD,SAAWJ,EAAgBA,EAAc,MAAM,CAACx2B,EAAG,SAAS,CAACI,MAAM,CAAC,SAAW,YAAYiF,SAAS,CAAC,OAAS,IAAI,CAACzF,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,YAAYtC,EAAI0B,GAAI1B,EAAW,SAAE,SAAS9G,GAAa,OAAOkH,EAAG,SAAS,CAACzsB,IAAIulB,EAAYZ,cAAcmN,SAAS,CAAC,MAAQvM,EAAYZ,gBAAgB,CAAC0H,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAoB,SAAhB/B,EAAIqY,SAAsBnf,EAAY29C,gBAAkB39C,EAAY49C,mBAAqB,WAAU,OAAO12C,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,mBAAmB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAWlC,EAAG,OAAO,CAACiB,YAAY,YAAY,CAACrB,EAAI4B,GAAG,SAASxB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,SAAS,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAa,UAAEkE,WAAW,cAAc7C,YAAY,SAASZ,YAAY,CAAC,MAAQ,SAASC,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAI+0B,EAAgBrmC,MAAM1iB,UAAUsM,OAAOpM,KAAK8zB,EAAO/wB,OAAO6I,SAAQ,SAAS7G,GAAG,OAAOA,EAAE6E,YAAWnC,KAAI,SAAS1C,GAAG,IAAI+jD,EAAM,WAAY/jD,EAAIA,EAAEgkD,OAAShkD,EAAEO,MAAM,OAAOwjD,KAAO72B,EAAI+2C,UAAUl1C,EAAO/wB,OAAOkmD,SAAWJ,EAAgBA,EAAc,MAAM52B,EAAI0B,GAAI1B,EAAW,SAAE,SAAS6yC,EAAOv0D,GAAK,OAAO8hB,EAAG,SAAS,CAACzsB,IAAI2K,EAAImnB,SAAS,CAAC,MAAQnnB,IAAM,CAAC0hB,EAAI4B,GAAG5B,EAAI+B,GAAG8wC,SAAa,OAAOzyC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,mBAAmB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAWlC,EAAG,OAAO,CAACiB,YAAY,YAAY,CAACrB,EAAI4B,GAAG,SAASxB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,aAAa,CAACutB,MAAM,CAACt6C,MAAO2sB,EAAU,OAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIg3C,OAAO5jC,GAAKlP,WAAW,aAAa,KAAK9D,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,mBAAmB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAWlC,EAAG,OAAO,CAACiB,YAAY,YAAY,CAACrB,EAAI4B,GAAG,SAASxB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,aAAa,CAACutB,MAAM,CAACt6C,MAAO2sB,EAAQ,KAAE4tB,SAAS,SAAUxa,GAAMpT,EAAIi3C,KAAK7jC,GAAKlP,WAAW,WAAW,KAAK9D,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,mBAAmB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,SAASlC,EAAG,OAAO,CAACiB,YAAY,YAAY,CAACrB,EAAI4B,GAAG,SAASxB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAiB,cAAEkE,WAAW,kBAAkB7C,YAAY,SAASZ,YAAY,CAAC,MAAQ,SAASD,MAAM,CAAC,KAAO,OAAO,YAAcR,EAAIy9B,YAAY,SAAW,IAAIh4B,SAAS,CAAC,MAASzF,EAAiB,eAAGU,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,YAAqBltB,EAAIk3C,cAAcr1C,EAAO/wB,OAAOuC,WAAU+sB,EAAG,IAAI,CAACiB,YAAY,kBAAkBX,GAAG,CAAC,MAAQV,EAAIm3C,kBAAkB/2C,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAM,EAAQ6wB,WAAW,UAAU7C,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACiB,YAAY,mBAAmB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,mBAAmBlC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,QAAQ,CAACiB,YAAY,SAASb,MAAM,CAAC,KAAO,OAAO,SAAW,IAAIiF,SAAS,CAAC,MAAQzF,EAAItmB,KAAK9D,qBAAqBwqB,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,IAAI,CAACiB,YAAY,gCAAgCX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIo3C,YAAY,CAACh3C,EAAG,IAAI,CAACiB,YAAY,6BAA6BrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,kBAAkBlC,EAAG,MAAM,CAACiB,YAAY,YAAYjB,EAAG,MAAM,CAACiB,YAAY,2BAA2BjB,EAAG,QAAQ,CAACiB,YAAY,gBAAgBZ,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,QAAQJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,UAAUJ,EAAG,QAAQJ,EAAI0B,GAAI1B,EAAiB,eAAE,SAASq3C,EAAU/4D,GAAK,OAAO8hB,EAAG,KAAK,CAACzsB,IAAI2K,GAAK,CAAC8hB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAGs1C,EAAUzhE,gBAAgBwqB,EAAG,KAAK,CAACJ,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIs3C,UAAUD,EAAUxE,YAAYzyC,EAAG,KAAK,CAACJ,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIu3C,mBAAmBF,EAAU/+C,mBAAmB8H,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI3Z,QAAQgxD,EAAUxjD,eAAeuM,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI3Z,QAAQgxD,EAAUlxD,aAAaia,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,OAAO,CAACiB,YAAY,8BAA8B,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIw3C,UAAUH,EAAUxjD,UAAWwjD,EAAUlxD,eAAeia,EAAG,KAAK,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,IAAI,CAACiB,YAAY,oBAAoBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIy3C,iBAAgB,EAAOJ,EAAU98C,QAAQ,CAAC6F,EAAG,IAAI,CAACiB,YAAY,4BAA2B,QACx5K,GAAkB,G,mCCWhBq2C,GAAW,YAgCIC,GAAiB,wDAAtC,iD,0BASI,EAAAf,gBAA0B,EAC1B,EAAAG,UAAoB,EACpB,EAAAa,aAAiC,CAC7BhiE,YAAa,GACboB,MAAO,IAEX,EAAA4L,MAAgBT,QAAwB,cACxC,EAAAW,IAAcX,QAAwB,cACtC,EAAA01D,QAAyB,CAAE,EAAKv1C,GAAG,SAAS5R,WAAY,EAAK4R,GAAG,cAAc5R,WAAY,EAAK4R,GAAG,mBAAmB5R,WAAY,EAAK4R,GAAG,eAAe5R,YACxJ,EAAAonD,WAAqB,aACrB,EAAAd,OAAiB70D,QAAwB,aAAc,IAAIsB,MAC3D,EAAAwzD,KAAe90D,QAAwB,aAAc,IAAIsB,MACzD,EAAAg6C,YAAsB,EAAKn7B,GAAG,eAAe5R,WAC7C,EAAAqnD,YAAsB,EACtB,EAAAC,MAAkC,GAvBtC,EAAsC,4CAsDlC,WACI,OAAO/3C,KAAK7D,gBAAgB4B,qBAC3B46B,SAAQ,SAAAqf,GAAC,OAAIA,EAAEC,oBAAoB1iE,KAAI,SAAAC,GAAC,OAAIA,EAAE0iE,sBAC9C7kC,OAAOrT,KAAK7D,gBAAgB4B,qBAChB46B,SAAQ,SAAAqf,GAAC,OAAIA,EAAEG,2BACfxf,SAAQ,SAAAyf,GAAE,OAAIA,EAAGC,uBAAuB9iE,KAAI,SAAC/H,GAAD,OAAiCA,EAAE8qE,4BA3D9D,yBA+DlC,WACI,OAAOt4C,KAAK23C,aAAe33C,KAAK23C,aAAahiE,YAAc,KAhE7B,yBAmElC,WACI,OAAOqqB,KAAK+3C,OApEkB,IAuElC,SAAkB3kE,GACd4sB,KAAK+3C,MAAQ3kE,IAxEiB,sBA2ElC,WACI,OAAqC,IAA9B4sB,KAAKu4C,cAAc7qE,QAAuBsyB,KAAKu4C,cAAc7qE,SAAWsyB,KAAKu4C,cAAcr+D,QAAO,SAAC1E,GAAD,OAAuC,IAAdA,EAAEgR,WAAkB9Y,QA5ExH,IA+ElC,SAAe0F,GACX4sB,KAAKu4C,cAAgBv4C,KAAKu4C,cAAchjE,KAAI,SAAAC,GACxC,wCACOA,GADP,IAEIgR,QAASpT,SAnFa,oBAwFlC,WACI,IAAIoyD,EAAO,QAIX,OAHIxlC,KAAKqR,aAAerR,KAAKqR,YAAYwJ,aACrC2qB,EAAOxlC,KAAKqR,YAAYwJ,WAAWve,SAASgQ,eAEzCk5B,IA7FuB,wBAyGhC,WACE,IACIpwD,EAEEsE,EAAU,CACZ+C,aAAa,EACb1C,QAAQ,EACR8C,WAAY,CACR,CACEpH,GAAI,EACJpD,KAAM2tB,KAAKqC,GAAG,UAAU5R,WACxBkZ,OAAQ,IACRv0B,MAAOA,KAIjBo5D,gBACI,mBACA,UACA,CAAE79D,MAAO8mE,GAAU1/D,OAAQ2B,GAC3B,CACI+vB,MAAO,KACPE,OAAQ,IACR8kC,QAASzuC,KAAK8N,YAhIQ,+BAqIlC,WACI,IAAI0qC,EAAUC,gBAAgBhB,KAAa,GACvCiB,EAA+B,GAEnC,GAAIF,EAAQ9qE,OAAS,GAAK8qE,EAAQ,GAAGpjE,MAAM1H,OAAS,EAChD,IAAK,IAAIF,EAAI,EAAGA,EAAIgrE,EAAQ,GAAGpjE,MAAM1H,OAAQF,IAAI,CAC7C,IAAI0L,EAAOs/D,EAAQ,GAAGpjE,MAAM5H,GACxB2iE,EAAyB,CACzBr1D,KAAM5B,EAAK4B,KACX1H,MAAO8F,EAAK9F,MACZ2D,MAAOmC,EAAK9F,MACZsE,UAAU,GAGdghE,EAAW1qE,KAAKmiE,GAIxBnwC,KAAK23C,aAAe,CAChBhiE,YAAa+iE,EAAW,GAAG59D,KAC3B/D,MAAO2hE,EAAW,GAAGtlE,SAzJK,0BAiKlC,SAAaA,GACT4sB,KAAK23C,aAAevkE,EAAM,KAlKI,yFAyKlC,yGACUiX,EAAQnI,QAAsBA,QAAgB8d,KAAKrd,QACnD4H,EAAQrI,QAAsBA,QAAgB8d,KAAKnd,MACrDmd,KAAK23C,aAHb,gCAIczjE,OAAegnB,WAAW8E,KAAKqC,GAAG,mBAAmB5R,YAJnE,iCAKe,GALf,UAOYuP,KAAK23C,aAAajiE,aAAesqB,KAAKvmB,KAAK/D,WAPvD,kCAQcxB,OAAegnB,WAAW8E,KAAKqC,GAAG,qBAAqB5R,YARrE,kCASe,GATf,WAW2B,KAAfuP,KAAKrd,MAXjB,kCAYczO,OAAegnB,WAAW8E,KAAKqC,GAAG,oBAAoB5R,YAZpE,kCAae,GAbf,WAeyB,KAAbuP,KAAKnd,IAfjB,kCAgBc3O,OAAegnB,WAAW8E,KAAKqC,GAAG,oBAAoB5R,YAhBpE,kCAiBe,GAjBf,aAmBapG,EAAQE,GAnBrB,kCAoBcrW,OAAegnB,WAAW8E,KAAKqC,GAAG,yBAAyB5R,YApBzE,kCAqBe,GArBf,kCA4Be,GA5Bf,iDAzKkC,mFA+MlC,SAAapG,EAAaE,MA/MQ,8EAgOlC,2HACcyV,KAAK24C,oBADnB,iDACqE,KAA3B34C,KAAK23C,aAAa5gE,MAD5D,gCAEYipB,KAAK23C,aAAajiE,YAmCdxI,EAAO,CACPwI,WAAYsqB,KAAKvmB,KAAK/D,WACtBkjE,cAAe54C,KAAK23C,aAAajiE,WACjC2iB,eAAwC,IAAzB2H,KAAK22C,eAAwB,KAAO32C,KAAK22C,eACxD/D,OAAQ5yC,KAAK82C,UACbljD,UAAWoM,KAAK+2C,OAChB7wD,QAAS8Z,KAAKg3C,KACdx5C,UAAWwC,KAAKvmB,KAAK/D,YAEzBsqB,KAAKoa,IAAI,CAAEhgB,WAAYltB,IAAQoE,KAA/B,0DAAoC,WAAO4G,GAAP,qFAC7BA,EAD6B,gCAEtBhE,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAFvB,OAG5B,EAAKooD,mBAAmB,EAAKp/D,KAAK/D,YACjCpE,MAAK,SAAC4G,GACH,EAAK6/D,MAAQ7/D,EAAI4lB,eAAevoB,KAAI,SAAAC,GAChC,wCACOA,EAAE4kB,YADT,IAEI5T,SAAS,UARO,sCActBtS,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAd5B,2CAApC,kCAAAuP,KAAA,gBAiBC1c,MAjBD,0DAiBO,WAAOvS,GAAP,iGACGmD,OAAegnB,WAAW,EAAKmH,GAAG,kBAAkB5R,WAAa,QAAU1f,EAAIqB,SADlF,2CAjBP,kCAAA4tB,KAAA,iBA3CA/qB,QAAIozD,mBAAmBroC,KAAK23C,aAAa5gE,OAAOzF,MAAK,SAAC4G,GAClD,EAAKy/D,aAAajiE,WAAawC,EAAI9C,MAAM,GAAGM,WAE5C,IAAIxI,EAAO,CACPwI,WAAY,EAAK+D,KAAK/D,WACtBkjE,cAAe,EAAKjB,aAAajiE,WACjC2iB,eAAwC,IAAzB,EAAKs+C,eAAwB,KAAO,EAAKA,eACxD/D,OAAQ,EAAKkE,UACbljD,UAAW,EAAKmjD,OAChB7wD,QAAS,EAAK8wD,KACdx5C,UAAW,EAAK/jB,KAAK/D,YAEzB,EAAK0kC,IAAI,CAAEhgB,WAAYltB,IAAQoE,KAA/B,0DAAoC,WAAO4G,GAAP,qFAC7BA,EAD6B,gCAEtBhE,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAFvB,OAG5B,EAAKooD,mBAAmB,EAAKp/D,KAAK/D,YACjCpE,MAAK,SAAC4G,GACH,EAAK6/D,MAAQ7/D,EAAI4lB,eAAevoB,KAAI,SAAAC,GAChC,wCACOA,EAAE4kB,YADT,IAEI5T,SAAS,UARO,sCActBtS,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAd5B,2CAApC,kCAAAuP,KAAA,gBAiBC1c,MAjBD,0DAiBO,WAAOvS,GAAP,iGACGmD,OAAegnB,WAAW,EAAKmH,GAAG,kBAAkB5R,WAAa,QAAU1f,EAAIqB,SADlF,2CAjBP,kCAAA4tB,KAAA,mBAfhB,wCAqEc9rB,OAAegnB,WAAW8E,KAAKqC,GAAG,gCAAgC5R,YArEhF,iDAhOkC,gJA6SlC,kIAAsBqoD,EAAtB,gCAAkD1lE,EAAlD,gCACac,OAAe20D,aAAa7oC,KAAKqC,GAAG,qBAAqB5R,YADtE,kCAEYqoD,EA2BA94C,KAAKu4C,cAAcr+D,QAAO,SAAC1E,GAAD,OAAuC,IAAdA,EAAEgR,WAAkBzN,SAAQ,SAACq+D,EAAW/4D,EAAK6L,GAC5F,IAAMhd,EAAO,CACTotB,IAAK88C,EAAU98C,IACf5kB,WAAY,EAAK+D,KAAK/D,YAE1B,EAAKykC,OAAO,CAAE/f,WAAYltB,IAAQoE,KAAlC,0DAAuC,WAAO4G,GAAP,oFAChCmG,IAAQ6L,EAAMxc,OAAQ,EADU,oBAE5BwK,EAF4B,gCAGrBhE,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAHxB,OAI3B,EAAKooD,mBAAmB,EAAKp/D,KAAK/D,YACjCpE,MAAK,SAAC4G,GACH,EAAK6/D,MAAQ7/D,EAAI4lB,eAAevoB,KAAI,SAAAC,GAChC,wCACOA,EAAE4kB,YADT,IAEI5T,SAAS,UATM,sCAerBtS,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAf7B,2CAAvC,kCAAAuP,KAAA,oBA/BE9yB,EAAO,CACTotB,IAAKlnB,EACLsC,WAAYsqB,KAAKvmB,KAAK/D,YAE1BsqB,KAAKma,OAAO,CAAE/f,WAAYltB,IAAQoE,KAAlC,0DAAuC,WAAO4G,GAAP,qFAChCA,EADgC,gCAEzBhE,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAFpB,OAG/B,EAAKooD,mBAAmB,EAAKp/D,KAAK/D,YACjCpE,MAAK,SAAC4G,GACH,EAAK6/D,MAAQ7/D,EAAI4lB,eAAevoB,KAAI,SAAAC,GAChC,wCACOA,EAAE4kB,YADT,IAEI5T,SAAS,UARU,sCAczBtS,OAAegnB,WAAW,EAAKmH,GAAG,gBAAgB5R,YAdzB,2CAAvC,kCAAAuP,KAAA,gBAiBC1c,MAjBD,0DAiBO,WAAOvS,GAAP,iGACGmD,OAAegnB,WAAW,EAAKmH,GAAG,kBAAkB5R,WAAa,QAAU1f,EAAIqB,SADlF,2CAjBP,kCAAA4tB,KAAA,iBAPZ,gDA7SkC,8EA4WlC,SAAQ5sB,GACJ,OAAO8O,QAAwB,aAAcA,QAAgB9O,MA7W/B,uBAoXlC,SAAUA,GACN,OAAO4sB,KAAK43C,QAAQp+D,MAAK,SAAChE,EAAG6I,GAAJ,OAAYA,IAAQjL,OArXf,gCA4XlC,SAAmBA,GAAa,MAC5B,OAAO,UAAA4sB,KAAK+4C,QAAQv/D,MAAK,SAAAhE,GAAC,OAAIA,EAAE6iB,gBAAkBjlB,YAA3C,eAAmDwjE,kBAAmB52C,KAAKqC,GAAG,QAAQ5R,aA7X/D,uBAqYlC,SAAU9N,EAAeE,GACrB,IAAM4K,EAAQ,IAAIjK,KACZ6G,EAAQnI,QAAgBS,GACxB4H,EAAQrI,QAAgBW,GAC9B,OAAG4K,EAAQpD,EACA2V,KAAKqC,GAAG,gCAAgC5R,WAE3CvO,QAAsBuL,EAAOpD,EAAOE,GACjCyV,KAAKqC,GAAG,MAAM5R,WAEjBhD,EAAQlD,EACLyV,KAAKqC,GAAG,MAAM5R,gBADpB,IA/YyB,4BA0ZlC,SAAe9N,EAAeE,GAC1B,IAAM4K,EAAQ,IAAIjK,KACZ6G,EAAQnI,QAAgBS,GACxB4H,EAAQrI,QAAgBW,GAC9B,OAAG4K,EAAQpD,EACA,mBAEHnI,QAAsBuL,EAAOpD,EAAOE,GACjC,gBAEHkD,EAAQlD,EACL,uBADN,IApayB,wBA8alC,SAAW7I,EAAYlR,GACnB,IAAMwoE,EAAU92D,QAAwB,aAAcA,QAAsBR,IAC5E,OAAOlR,GACH,IAAK,QACDwvB,KAAKrd,MAAQq2D,EACb,MACJ,IAAK,MACDh5C,KAAKnd,IAAMm2D,EACX,SAtbsB,qBAkclC,WAAO,WACH1L,gBAAep5D,OAAQujE,GAAWz3C,KAAKwtC,mBACvC,IAAMjW,EAAQv3B,KACdA,KAAKi5C,oBAAoB,CAAEnkE,QAASkrB,KAAKvmB,KAAK3E,QAASY,WAAYsqB,KAAKvmB,KAAK/D,aAC7EsqB,KAAK64C,mBAAmB74C,KAAKvmB,KAAK/D,YAC7BpE,MAAK,SAAC4G,GACHq/C,EAAMwgB,MAAQ7/D,EAAI4lB,eAAevoB,KAAI,SAAAC,GACjC,wCACOA,EAAE4kB,YADT,IAEI5T,SAAS,UAGlBlV,MAAK,WACJ,EAAKmD,SAAQ,QA/cS,2BAmdlC,WACIg5D,gBAAev5D,OAAQujE,GAAWz3C,KAAKwtC,uBApdT,GAAShvC,QAA1Bk5C,GAAiB,gBA9BrC12C,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACA+E,eAEJn+B,SAAU,kBACHC,eAAW,CACVznB,KAAMgzB,QACNtQ,gBAAiB9nB,QACjB+F,KAAM/F,QACNg9B,YAAa5E,WAGrBrI,QAAS,iCACFC,eAAW,CACV40C,oBAAqB5kE,QACrBwkE,mBAAoBxkE,QACpB+lC,IAAK/lC,QACL8lC,OAAQ9lC,QACRI,QAASJ,WAEViwB,eAAa,QAIHozC,cC5C6T,MCO9U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCSMwB,GAAa,wDAAlC,iD,0BAOE,EAAAz1C,OAAgB,EAAKpB,GAAG,UAAU5R,WAPpC,EAAkC,8CA8BhC,WACEuP,KAAKvrB,SAAQ,OA/BiB,GAAS+pB,QAAtB06C,GAAa,gBApBjCl4C,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAid,sBAEJtzC,QAAS,kBACFC,eAAW,CACb5vB,QAASJ,WAGZ4sB,SAAU,kBACLC,eAAW,CACZrM,UAAWxgB,cAIA6kE,cC3ByT,MCO1U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIn5C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,0BAA0BiC,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,OAAS,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QAC3b,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACA,EAAG,QAAQ,CAACiB,YAAY,gBAAgBZ,YAAY,CAAC,MAAQ,SAAS,CAACL,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,QAAQJ,EAAG,QAAQ,CAACA,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqBlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAACiB,YAAY,SAASb,MAAM,CAAC,KAAO,WAAW,YAAcR,EAAIy9B,mBAAmBr9B,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,cAAc,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,KAAK,CAACA,EAAG,QAAQ,CAACiB,YAAY,SAASb,MAAM,CAAC,KAAO,WAAW,YAAcR,EAAIy9B,0BACroB,GAAkB,GCcD2b,GAAoB,wDAAzC,iD,0BAOI,EAAA3b,YAAqB,EAAKn7B,GAAG,iBAAiB5R,WAPlD,EAAyC,0BAAS+N,QAA7B26C,GAAoB,gBAVxCn4C,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,gBAGa8e,cCfgU,MCOjV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCHMC,GAAgB,wDAArC,iD,0BAOI,EAAA31C,OAAgB,EAAKpB,GAAG,cAAc5R,WAP1C,EAAqC,0BAAS+N,QAAzB46C,GAAgB,gBAVpCp4C,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACA0e,4BAGaC,cCf4T,MCO7U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIr5C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,OAAOzB,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAClkD,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,YAAYswB,MAAM,CAAC,YAAcR,EAAIu1C,mBAAkBlzC,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QACvlB,GAAkB,GCDlB,GAAS,WAAa,IAAIrC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,QAAQ,CAACiB,YAAY,gBAAgBb,MAAM,CAAC,MAAQ,SAAS,CAACJ,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,SAASA,EAAG,mBAAmB,CAACM,GAAG,CAAC,OAAS,SAAUrtB,GAAS,OAAO2sB,EAAI7D,UAAUA,UAAY9oB,IAAUs6C,MAAM,CAACt6C,MAAO2sB,EAAI7D,UAAmB,UAAEyxB,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI7D,UAAW,YAAaiX,IAAMlP,WAAW,0BAA0B,MACxf,GAAkB,GCDlB,GAAS,WAAa,IAAIlE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAmB,gBAAEkE,WAAW,oBAAoB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIs5C,iBAAiBt5C,EAAIgT,GAAGhT,EAAIs5C,gBAAgB,OAAO,EAAGt5C,EAAmB,iBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIs5C,gBAAgBpmC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIs5C,gBAAgBrmC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIs5C,gBAAgBrmC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIs5C,gBAAgBnmC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAW,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAqB,kBAAEkE,WAAW,sBAAsB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIu5C,mBAAmBv5C,EAAIgT,GAAGhT,EAAIu5C,kBAAkB,OAAO,EAAGv5C,EAAqB,mBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIu5C,kBAAkBrmC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIu5C,kBAAkBtmC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIu5C,kBAAkBtmC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIu5C,kBAAkBpmC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAW,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAoB,iBAAEkE,WAAW,qBAAqB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIw5C,kBAAkBx5C,EAAIgT,GAAGhT,EAAIw5C,iBAAiB,OAAO,EAAGx5C,EAAoB,kBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIw5C,iBAAiBtmC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIw5C,iBAAiBvmC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIw5C,iBAAiBvmC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIw5C,iBAAiBrmC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,iBAAiB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAuB,oBAAEkE,WAAW,wBAAwB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIy5C,qBAAqBz5C,EAAIgT,GAAGhT,EAAIy5C,oBAAoB,OAAO,EAAGz5C,EAAuB,qBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIy5C,oBAAoBvmC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIy5C,oBAAoBxmC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIy5C,oBAAoBxmC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIy5C,oBAAoBtmC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAA8B,2BAAEkE,WAAW,+BAA+B1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI05C,4BAA4B15C,EAAIgT,GAAGhT,EAAI05C,2BAA2B,OAAO,EAAG15C,EAA8B,4BAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI05C,2BAA2BxmC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAI05C,2BAA2BzmC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAI05C,2BAA2BzmC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAI05C,2BAA2BvmC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAsB,mBAAEkE,WAAW,uBAAuB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI25C,oBAAoB35C,EAAIgT,GAAGhT,EAAI25C,mBAAmB,OAAO,EAAG35C,EAAsB,oBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI25C,mBAAmBzmC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAI25C,mBAAmB1mC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAI25C,mBAAmB1mC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAI25C,mBAAmBxmC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAkB,eAAEkE,WAAW,mBAAmB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI45C,gBAAgB55C,EAAIgT,GAAGhT,EAAI45C,eAAe,OAAO,EAAG55C,EAAkB,gBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI45C,eAAe1mC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAI45C,eAAe3mC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAI45C,eAAe3mC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAI45C,eAAezmC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAU,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAA0B,uBAAEkE,WAAW,2BAA2B1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI65C,wBAAwB75C,EAAIgT,GAAGhT,EAAI65C,uBAAuB,OAAO,EAAG75C,EAA0B,wBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI65C,uBAAuB3mC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAI65C,uBAAuB5mC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAI65C,uBAAuB5mC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAI65C,uBAAuB1mC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,gBAAgB,YACvvL,GAAkB,GCoBDw3C,GAAY,+KAwC7B,WACI,OAAO75C,KAAK5sB,MAAMopB,mBAzCO,IA4C7B,SAAoBppB,GAChB4sB,KAAK5sB,MAAMopB,kBAAoBppB,EAC/B4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SA9CP,6BAiD7B,WACI,OAAO4sB,KAAK5sB,MAAMqpB,qBAlDO,IAqD7B,SAAsBrpB,GAClB4sB,KAAK5sB,MAAMqpB,oBAAsBrpB,EACjC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAvDP,4BA0D7B,WACI,OAAO4sB,KAAK5sB,MAAMspB,oBA3DO,IA8D7B,SAAqBtpB,GACjB4sB,KAAK5sB,MAAMspB,mBAAqBtpB,EAChC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAhEP,0BAmE7B,WACI,OAAO4sB,KAAK5sB,MAAMupB,kBApEO,IAuE7B,SAAmBvpB,GACf4sB,KAAK5sB,MAAMupB,iBAAmBvpB,EAC9B4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAzEP,+BA4E7B,WACI,OAAO4sB,KAAK5sB,MAAMwpB,uBA7EO,IAgF7B,SAAwBxpB,GACpB4sB,KAAK5sB,MAAMwpB,sBAAwBxpB,EACnC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAlFP,sCAqF7B,WACI,OAAO4sB,KAAK5sB,MAAMypB,8BAtFO,IAyF7B,SAA+BzpB,GAC3B4sB,KAAK5sB,MAAMypB,6BAA+BzpB,EAC1C4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SA3FP,8BA8F7B,WACI,OAAO4sB,KAAK5sB,MAAMmpB,sBA/FO,IAkG7B,SAAuBnpB,GACnB4sB,KAAK5sB,MAAMmpB,qBAAuBnpB,EAClC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SApGP,kCAuG7B,WACE,OAAO4sB,KAAK5sB,MAAM0pB,0BAxGS,IA2G7B,SAA2B1pB,GACvB4sB,KAAK5sB,MAAM0pB,yBAA2B1pB,EACtC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SA7GP,qBA4H7B,cA5H6B,qBAgI7B,WACIY,QAAQ4M,IAAIof,KAAK5sB,WAjIQ,GAASorB,QAQdqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,6BARPksE,GAAY,gBAdhC74C,eAAU,CACR3uB,KAAM,eACN8xB,WAAY,GACZlD,SAAU,kBACFC,eAAW,KAGnBkD,QAAS,iCACDC,eAAW,KAEXC,eAAa,QAIHu1C,cCrB4T,MCO7U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCEMA,GAAY,wDAAjC,iD,0BAOI,EAAAxnE,KAAe,EAAKgwB,GAAG,WAAW5R,WAPtC,EAAiC,2CAkC7B,WACIuP,KAAKs1C,YAAY7B,YAAc,IAAIjwD,KACnCwc,KAAKq2C,YAAY,CAAEnpE,KAAM8yB,KAAKs1C,YAAa17C,SAAS,IACnDtoB,MAAK,mBArCmB,GAASktB,QAcdqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,mCAdPksE,GAAY,gBAbhC74C,eAAU,CACPmD,WAAW,CAACR,cAAYu2B,eAAa52B,cAAY62B,cAAYM,6BAA0BJ,YAASyf,qBAC/F74C,SAAQ,kBACFC,eAAW,CACVhF,UAAW7nB,WAGlB+vB,QAAO,kBACDC,eAAW,CACdgyC,YAAahiE,cAIAwlE,cCpBwT,MCOzU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI95C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACI,MAAM,CAAC,KAAOR,EAAI1tB,OAAO,CAAC8tB,EAAG,QAAQ,CAACiB,YAAY,gBAAgBb,MAAM,CAAC,MAAQ,SAAS,CAACJ,EAAG,WAAW,CAACA,EAAG,MAAM,CAACI,MAAM,CAAC,MAAQ,SAASJ,EAAG,SAASA,EAAG,sBAAsB,CAACM,GAAG,CAAC,OAAS,SAAUrtB,GAAS,OAAO2sB,EAAI7D,UAAUA,UAAY9oB,IAAUs6C,MAAM,CAACt6C,MAAO2sB,EAAI7D,UAAmB,UAAEyxB,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI7D,UAAW,YAAaiX,IAAMlP,WAAW,0BAA0B,MAC3f,GAAkB,GCDlB,GAAS,WAAa,IAAIlE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAqB,kBAAEkE,WAAW,sBAAsB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIg6C,mBAAmBh6C,EAAIgT,GAAGhT,EAAIg6C,kBAAkB,OAAO,EAAGh6C,EAAqB,mBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIg6C,kBAAkB9mC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIg6C,kBAAkB/mC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIg6C,kBAAkB/mC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIg6C,kBAAkB7mC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAW,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAuB,oBAAEkE,WAAW,wBAAwB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIi6C,qBAAqBj6C,EAAIgT,GAAGhT,EAAIi6C,oBAAoB,OAAO,EAAGj6C,EAAuB,qBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIi6C,oBAAoB/mC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIi6C,oBAAoBhnC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIi6C,oBAAoBhnC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIi6C,oBAAoB9mC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,WAAW,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAsB,mBAAEkE,WAAW,uBAAuB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIk6C,oBAAoBl6C,EAAIgT,GAAGhT,EAAIk6C,mBAAmB,OAAO,EAAGl6C,EAAsB,oBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIk6C,mBAAmBhnC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIk6C,mBAAmBjnC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIk6C,mBAAmBjnC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIk6C,mBAAmB/mC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,iBAAiB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAyB,sBAAEkE,WAAW,0BAA0B1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIm6C,uBAAuBn6C,EAAIgT,GAAGhT,EAAIm6C,sBAAsB,OAAO,EAAGn6C,EAAyB,uBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIm6C,sBAAsBjnC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIm6C,sBAAsBlnC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIm6C,sBAAsBlnC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIm6C,sBAAsBhnC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAgC,6BAAEkE,WAAW,iCAAiC1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIo6C,8BAA8Bp6C,EAAIgT,GAAGhT,EAAIo6C,6BAA6B,OAAO,EAAGp6C,EAAgC,8BAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIo6C,6BAA6BlnC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIo6C,6BAA6BnnC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIo6C,6BAA6BnnC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIo6C,6BAA6BjnC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAwB,qBAAEkE,WAAW,yBAAyB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIq6C,sBAAsBr6C,EAAIgT,GAAGhT,EAAIq6C,qBAAqB,OAAO,EAAGr6C,EAAwB,sBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIq6C,qBAAqBnnC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIq6C,qBAAqBpnC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIq6C,qBAAqBpnC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIq6C,qBAAqBlnC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,qBAAqB,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAoB,iBAAEkE,WAAW,qBAAqB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIs6C,kBAAkBt6C,EAAIgT,GAAGhT,EAAIs6C,iBAAiB,OAAO,EAAGt6C,EAAoB,kBAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIs6C,iBAAiBpnC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIs6C,iBAAiBrnC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIs6C,iBAAiBrnC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIs6C,iBAAiBnnC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,UAAU,SAASlC,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,QAAQ,CAACA,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAA4B,yBAAEkE,WAAW,6BAA6B1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAIu6C,0BAA0Bv6C,EAAIgT,GAAGhT,EAAIu6C,yBAAyB,OAAO,EAAGv6C,EAA4B,0BAAGU,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAIu6C,yBAAyBrnC,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,IAAIrT,EAAIu6C,yBAAyBtnC,EAAIK,OAAO,CAACF,KAAYC,GAAK,IAAIrT,EAAIu6C,yBAAyBtnC,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAWrT,EAAIu6C,yBAAyBpnC,MAASnT,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIsC,GAAG,gBAAgB,YACv4L,GAAkB,GCoBDk4C,GAAmB,iLAwCpC,WACI,OAAOv6C,KAAK5sB,MAAM4pB,qBAzCc,IA4CpC,SAAsB5pB,GAClB4sB,KAAK5sB,MAAM4pB,oBAAsB5pB,EACjC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SA9CA,+BAiDpC,WACI,OAAO4sB,KAAK5sB,MAAM6pB,uBAlDc,IAqDpC,SAAwB7pB,GACpB4sB,KAAK5sB,MAAM6pB,sBAAwB7pB,EACnC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAvDA,8BA0DpC,WACI,OAAO4sB,KAAK5sB,MAAM8pB,sBA3Dc,IA8DpC,SAAuB9pB,GACnB4sB,KAAK5sB,MAAM8pB,qBAAuB9pB,EAClC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAhEA,4BAmEpC,WACI,OAAO4sB,KAAK5sB,MAAM+pB,oBApEc,IAuEpC,SAAqB/pB,GACjB4sB,KAAK5sB,MAAM+pB,mBAAqB/pB,EAChC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAzEA,iCA4EpC,WACI,OAAO4sB,KAAK5sB,MAAMgqB,yBA7Ec,IAgFpC,SAA0BhqB,GACtB4sB,KAAK5sB,MAAMgqB,wBAA0BhqB,EACrC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SAlFA,wCAqFpC,WACI,OAAO4sB,KAAK5sB,MAAMiqB,gCAtFc,IAyFpC,SAAiCjqB,GAC7B4sB,KAAK5sB,MAAMiqB,+BAAiCjqB,EAC5C4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SA3FA,gCA8FpC,WACI,OAAO4sB,KAAK5sB,MAAM2pB,wBA/Fc,IAkGpC,SAAyB3pB,GACrB4sB,KAAK5sB,MAAM2pB,uBAAyB3pB,EACpC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SApGA,oCAuGpC,WACE,OAAO4sB,KAAK5sB,MAAMkqB,4BAxGgB,IA2GpC,SAA6BlqB,GACzB4sB,KAAK5sB,MAAMkqB,2BAA6BlqB,EACxC4sB,KAAKiC,MAAM,eAAgBjC,KAAK5sB,SA7GA,qBA6HpC,cA7HoC,qBAiIpC,WACIY,QAAQ4M,IAAIof,KAAK5sB,WAlIe,GAASorB,QAQrBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,6BARP4sE,GAAmB,gBAdvCv5C,eAAU,CACR3uB,KAAM,kBACN8xB,WAAY,GACZlD,SAAU,kBACFC,eAAW,KAGnBkD,QAAS,iCACDC,eAAW,KAEXC,eAAa,QAIHi2C,cCrB+T,MCOhV,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCSMC,GAAe,wDAApC,iD,0BAOI,EAAAnoE,KAAc,EAAKgwB,GAAG,YAAY5R,WAPtC,EAAoC,2CAqChC,WAAI,WACAuP,KAAKs1C,YAAY7B,YAAc,IAAIjwD,KACnCwc,KAAKq2C,YAAY,CAAEnpE,KAAM8yB,KAAKs1C,YAAa17C,SAAS,IACnDtoB,KADD,0DACM,WAAO4G,GAAP,qFACEA,EADF,gCAEQhE,OAAegnB,WAAW,EAAKmH,GAAG,WAAW5R,YAFrD,6CAKQvc,OAAegnB,WAAW,EAAKmH,GAAG,uBAAuB5R,YALjE,2CADN,kCAAAuP,KAAA,kBAvC4B,qBAkDhC,WACIhsB,QAAQ4M,IAAI,cAAeof,KAAKs1C,iBAnDJ,GAAS92C,QAcjBqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,mCAdP6sE,GAAe,gBApBnCx5C,eAAU,CACPmD,WAAW,CACPR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAJ,YACAkgB,wBACHt5C,SAAQ,kBACFC,eAAW,CACVhF,UAAW7nB,WAGlB+vB,QAAO,kBACGC,eAAW,CACdgyC,YAAahiE,cAIJmmE,cC3B2T,MCO5U,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCWMC,GAAS,wDAA9B,iD,0BAQE,EAAAnF,YAAgC,GAChC,EAAA7xC,OAAiB,EAAKpB,GAAG,SAAS5R,WATpC,EAA8B,sDAiB5B,WACE,MAAO,CAACopD,GAAcW,MAlBI,wBAoC5B,WACE,IAAMhf,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,YAvCsB,qBAgD1B,WAAO,WACL17B,KAAKvrB,SAAQ,GACburB,KAAK02C,OAAOplE,MAAK,SAAC4G,GACd,EAAKo9D,YAAcp9D,EAAIgkB,UACpB,EAAKo5C,aACN,EAAK7gE,SAAQ,UArDK,GAAS+pB,QAAlBi8C,GAAS,gBAtB7Bz5C,eAAU,CACPmD,WAAW,CACTR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAof,gBACAW,oBAEFp2C,QAAS,kBACJC,eAAW,CACZqyC,KAAMriE,QACNI,QAASJ,WAGb4sB,SAAU,kBACLC,eAAW,CACZrM,UAAWxgB,cAIEomE,cC7BqT,MCOtU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,kCClBX,GAAS,WAAa,IAAI16C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,4BAA4B,CAACmB,YAAYvB,EAAIwB,GAAG,CAAC,CAAC7tB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACI,MAAM,CAAC,OAASR,EAAI0D,YAAYrB,OAAM,GAAM,CAAC1uB,IAAI,UAAU8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,IAAI,CAACiB,YAAY,eAAe,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,sBAAsBlC,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,sCAAsCtC,EAAI0B,GAAI1B,EAAqB,mBAAE,SAAS63B,EAAIv7C,GAAO,OAAO8jB,EAAGy3B,EAAI,CAAC7zB,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,OAAQ2sB,EAAIlL,UAAWoP,WAAW,eAAevwB,IAAI2I,EAAMmtB,IAAI,WAAW6xB,UAAS,EAAKprD,IAAI,YAAYswB,MAAM,CAAC,KAAOR,EAAItmB,aAAY2oB,OAAM,GAAM,CAAC1uB,IAAI,SAAS8tB,GAAG,WAAW,MAAO,CAACrB,EAAG,cAAc,CAACM,GAAG,CAAC,KAAOV,EAAIu7B,WAAW,OAAS,SAAS15B,GAAQ,OAAO7B,EAAIkC,MAAM,gBAAgBG,OAAM,QAC31B,GAAkB,GCkCDs4C,GAAW,wDAAhC,iD,0BAQE,EAAAC,aAA8B,KAE9B,EAAAl3C,OAAgB,EAAKpB,GAAG,QAAQ5R,WAVlC,EAAgC,sDAE9B,WACE,MAAO,CAACmqD,MAHoB,wBAkB9B,WACE,IAAMpf,EAAUx7B,KAAKiyB,MAAMwJ,SAC3BD,EAAQziD,SAAQ,SAACvD,GACfA,EAAEkmD,cArBwB,GAASl9B,QAApBk8C,GAAW,gBArB/B15C,eAAU,CACTmD,WAAY,CACVR,cACAu2B,eACA52B,cACA62B,cACAM,6BACAmgB,gBAEFx2C,QAAS,kBACJC,eAAW,CACb5vB,QAASJ,WAGZ4sB,SAAU,kBACLC,eAAW,CACZznB,KAAMgzB,QACN5X,UAAWxgB,cAIIqmE,cCnCuT,MCOxU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI36C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,QAAQ,CAACqJ,IAAI,QAAQhJ,YAAY,CAAC,QAAU,QAAQD,MAAM,CAAC,KAAO,OAAO,GAAK,YAAY,OAAS,WAAWE,GAAG,CAAC,OAASV,EAAI86C,kBAAkB16C,EAAG,QAAQ,CAACiB,YAAY,wCAAwCb,MAAM,CAAC,IAAM,cAAc,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,YAAYlC,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,YAAYJ,EAAG,SAAS,CAACiB,YAAY,wCAAwCb,MAAM,CAAC,KAAO,UAAUE,GAAG,CAAC,MAAQV,EAAI+6C,cAAc,CAAC/6C,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,kBAAkBlC,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,MAAM,CAACiB,YAAY,2CAA2Cb,MAAM,CAAC,GAAK,YAAY,CAACJ,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMR,EAAIg7C,QAAUh7C,EAAIg7C,QAAWh7C,EAAI46C,aAAe56C,EAAI46C,aAAe,yCAA0C,GAAK,aAAa,IAAM,mBACv5B,GAAkB,GCODC,I,8BAAW,wDAAhC,iD,0BAQE,EAAA/nC,MAAoB,KACpB,EAAAkoC,QAAsB,KACtB,EAAAnP,SAAmB,gBACnB,EAAA+O,aAA8B,KAC9B,EAAAK,SAAqB,IAAIC,SAZ3B,EAAgC,kDAqB9B,SAAYnqE,GACV,OAAGA,IACEA,EAAIw7B,cAAc4uC,WAAW,SAAWpqE,EAAIw7B,cAAc4uC,WAAW,UAC/DpqE,EAGJ,OA3BqB,4BA8B9B,SAAexB,GACb0wB,KAAK6S,MAAQvjC,EAAEuB,OAAOgiC,MAAM,GAC5B7S,KAAK+6C,QAAU7mC,IAAIC,gBAAgB7kC,EAAEuB,OAAOgiC,MAAM,IAElD7S,KAAK4rC,SAAWt8D,EAAEuB,OAAOgiC,MAAM,GAAGxgC,KAGlC2tB,KAAKg7C,SAASG,OAAO,UAAWn7C,KAAKvmB,KAAK3E,SAC1CkrB,KAAKg7C,SAASG,OAAO,aAAcn7C,KAAKvmB,KAAK/D,YAC7CsqB,KAAKg7C,SAASG,OAAO,QAASn7C,KAAK6S,OACnC7S,KAAKg7C,SAASG,OAAO,QAASn7C,KAAKvmB,KAAK1C,SAxCZ,6BA2C9B,SAAgBikE,GACd,OAAO/lE,QAAI+iB,OAAOojD,wBAAwBJ,KA5Cd,yBA+C9B,WACEh7C,KAAKg7C,SAAW,IAAIC,SACpBj7C,KAAKg7C,SAASG,OAAO,UAAWn7C,KAAKvmB,KAAK3E,SAC1CkrB,KAAKg7C,SAASG,OAAO,aAAcn7C,KAAKvmB,KAAK/D,YAC7CsqB,KAAKg7C,SAASG,OAAO,QAASn7C,KAAKvmB,KAAK1C,OACxCipB,KAAK6S,MAAQ,KACb7S,KAAK26C,aAAe,KACpB36C,KAAK+6C,QAAU,KACf/6C,KAAK4rC,SAAW,kBAvDY,uBA0D9B,WAC4B,MAAvB5rC,KAAKvmB,KAAKtD,YACX6pB,KAAK26C,aAAe36C,KAAKvmB,KAAKtD,aA5DJ,kBAgE9B,WACE6pB,KAAKq7C,gBAAgBr7C,KAAKg7C,UAAU1pE,KAApC,0DAAyC,WAAO4G,GAAP,qFAC5B,GAARA,EADoC,gCAE/BhE,OAAegnB,WAAW,cAFK,6CAI/BhnB,OAAegnB,WAAW,WAJK,2CAAzC,kCAAA8E,KAAA,kBAjE4B,qBA+E9B,WACEA,KAAKs7C,YAEmB,MAArBt7C,KAAK26C,eACN36C,KAAK4rC,SAAW5rC,KAAKvmB,KAAK/D,WAAa,YAnFb,GAAS8oB,SAafqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BAbLitE,GAAW,gBAD/B55C,eAAU,KACU45C,cCRuT,MCOxU,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCuCMW,GAAe,wDAApC,iD,0BAeI,EAAA/hB,QAAsB,GACtB,EAAAE,UAAwB,GACxB,EAAA74B,UAAoB,WAjBxB,EAAoC,oDA0BhC,WACIb,KAAK25B,cAAc35B,KAAK05B,aA3BI,qBAoChC,SAAQtkD,GACJ4qB,KAAKw5B,QAAUpkD,EACf4qB,KAAKw7C,sBAtCuB,+BAyChC,WAAiB,WACT5hD,GAAkB,EACtBoG,KAAKw5B,QAAQhgD,MAAK,SAACiiE,GACZA,EAAK/jE,UAAY+jE,EAAKpiE,WACrB,EAAKqgD,UAAY+hB,EAAKpiE,aAG9B2mB,KAAK05B,UAAU3gD,SAAQ,SAACrG,GACjBA,EAAEgF,WAGFkiB,GAAU,MAGdA,IACCoG,KAAK05B,UAAU,GAAGhiD,UAAW,KAxDL,2BA4DhC,SAActC,GACV,MAAmBA,EAAMoE,MAAK,SAAChM,GAC3B,GAAGA,EAAEkK,SACD,OAAOlK,KAFPqS,EAAR,EAAQA,GAKJA,IACAmgB,KAAKa,UAAYhhB,EAAGxN,QAnEI,kBAuEhC,SAAKqpE,GACD17C,KAAKa,UAAY66C,IAxEW,oBA2EhC,WACI17C,KAAKw5B,QAAQzgD,SAAQ,SAACtG,GACN,OAATA,EAAEJ,KACDI,EAAEiF,UAAW,EAEbjF,EAAEiF,UAAW,EAEdjF,EAAE4G,UACD5G,EAAE4G,SAASN,SAAQ,SAACrG,GAChBA,EAAEgF,UAAW,QAKzBi5B,QAAYtP,UAzFgB,qBAiGhC,WAAO,WAIH,GAHArB,KAAKw5B,QAAUmiB,EAAQ,QAAU34C,QAG7BC,QAAQjD,KAAKY,MAAMxtB,MAAMwoE,YAAa,CACtC,IAAIv/D,EAAQ2jB,KAAKw5B,QAAQh/C,WAAU,SAAAhF,GAAC,OAAGA,EAAEnD,MAAQ,EAAKgwB,GAAG,cAAc5R,cAEnEpU,GAAS,GACb2jB,KAAKw5B,QAAQ5qD,OAAOyN,EAAO,GAG/B2jB,KAAKw7C,wBA5GuB,GAASh9C,QA0BzCqE,gBADC0G,eAAM,cACP,mCA1BiBgyC,GAAe,gBAhCnCv6C,eAAU,CACPmD,WAAY,CACRuM,mBACAopB,gBACA,SAAWyB,GACX,YAAcmf,GACd,OAASpd,GACT,OAAU6G,GACV,OAASc,GACT,UAAYkC,GACZ,KAAOsI,GACP,OAASM,GACT,aAAea,GACf,UAAYE,GACZ,SAAWgB,GACX,QAAUI,GACV,aAAemD,GACf,eAAiBzB,GACjB,QAAU6C,GACV,kBAAoByC,GACpB,uBAAyBE,GACzB,QAAW1K,GACX,UAAc+L,GACd,aAAiBlH,IAGrBtyC,SAAU,kBACHC,eAAW,CACVN,MAAOvsB,cAIEknE,cCzDmS,MCOpT,GAAY,eACd,GACAz7C,EACAa,GACA,EACA,KACA,KACA,MAIa,U,6LChBA,GAEbk7C,uBAFa,WAGX,OAAO5mE,OAAIjC,IAAS,CAClB4oC,IAAK,uCAuDTkgC,kBA3Da,SA2DKv+D,EAAkBqe,EAAck6B,GAChD,OAAO7gD,OACJ0mC,KAAuC,CACtCC,IAAK,+CACL1uC,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,WACP,CAAEA,IAAK,WACP,CAAEA,IAAK,UACP,CAAEA,IAAK,cACP,CAAEA,IAAK,WACP,CAAEA,IAAK,OAAQqpC,OAAQ,QACvB,CAAErpC,IAAK,OAAQqpC,OAAQ,UAAW4Y,GAAI,WACtC,CACEjiD,IAAK,kBACLqpC,OAAQ,aACR4Y,GAAI,QAEN,CACEjiD,IAAK,kBACLqpC,OAAQ,UACR4Y,GAAI,QAEN,CAAEjiD,IAAK,kBACP,CAAEA,IAAK,cACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,cAETmtC,QAAS,CACP,CACEntC,IAAK,SACLN,MAAO,QACP2tC,UAAWg7B,OAAiBC,YAGhCnmB,SAAUj6B,EACVk6B,OAAQA,EACRv4C,SAAUA,EACV0+D,sBAAsB,EACtBzrE,KAAM,kBAGTc,MAAK,SAAC8D,GAKL,OAJAA,EAAMA,MAAQA,EAAMA,MAAMG,KAAI,SAAC2D,GAAD,sBAAC,kBAC1BA,GADyB,IAE5BgjE,SAAS,OAEJ9mE,MASb+mE,WApHa,SAoHF79D,EAAe89D,GAOxB,OANK99D,GAAsB,IAAfA,EAAI5Q,QACdsG,QAAQjC,MAAR,yCAEGqqE,GACHpoE,QAAQjC,MAAR,yDAEKkD,OAAI0mC,KAAc,CACvBC,IAAK,6BACL1uC,KAAM,CACJoR,MACA89D,0BAKNC,SApIa,SAoIJprE,GACP,OAAIA,EACOgE,OAAIjC,IAAI,CACX4oC,IAAK,eAAF,OAAiB3qC,KAGjBxB,QAAQC,QAAQ,KAG7B4sE,mBA7Ia,SA6IMpvE,GACjB,OAAO+H,OACJ0mC,KAAuC,CACtCC,IAAK,0CACL1uC,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,WACP,CAAEA,IAAK,WACP,CAAEA,IAAK,UACP,CAAEA,IAAK,cACP,CAAEA,IAAK,WACP,CAAEA,IAAK,OAAQqpC,OAAQ,QACvB,CAAErpC,IAAK,OAAQqpC,OAAQ,UAAW4Y,GAAI,WACtC,CACEjiD,IAAK,kBACLqpC,OAAQ,aACR4Y,GAAI,QAEN,CACEjiD,IAAK,kBACLqpC,OAAQ,UACR4Y,GAAI,QAEN,CAAEjiD,IAAK,kBACP,CAAEA,IAAK,cACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,cAtBH,sBAuBDxG,EAAKwX,SAEVm8B,QAAS3zC,EAAK2zC,QACdtjC,SAAUrQ,EAAKqQ,SACfs4C,SAAU3oD,EAAK2oD,SACfC,OAAQ5oD,EAAK4oD,OACbx2C,MAAOpS,EAAKoS,MACZ28D,qBAAsB/uE,EAAK+uE,qBAC1BM,MAAO,SACP/rE,KAAM,kBAIVc,MAAK,SAAC8D,GAML,OAJAA,EAAMA,MAAQA,EAAMA,MAAMG,KAAI,SAAC2D,GAAD,sBAAC,kBAC1BA,GADyB,IAE5BgjE,SAAS,OAEJ9mE,MAGXonE,aA/LW,SA+LEtvE,GACb,OAAO+H,OACJ0mC,KAAuC,CACtCC,IAAK,0CACL1uC,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,WACP,CAAEA,IAAK,WACP,CAAEA,IAAK,UACP,CAAEA,IAAK,cACP,CAAEA,IAAK,WACP,CAAEA,IAAK,OAAQqpC,OAAQ,QACvB,CAAErpC,IAAK,OAAQqpC,OAAQ,UAAW4Y,GAAI,WACtC,CACEjiD,IAAK,kBACLqpC,OAAQ,aACR4Y,GAAI,QAEN,CACEjiD,IAAK,kBACLqpC,OAAQ,UACR4Y,GAAI,QAEN,CAAEjiD,IAAK,kBACP,CAAEA,IAAK,cACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,cAtBH,sBAuBDxG,EAAKwX,SAEVm8B,QAAS3zC,EAAK2zC,QACdtjC,SAAUrQ,EAAKqQ,SACfs4C,SAAU3oD,EAAK2oD,SACfC,OAAQ5oD,EAAK4oD,OACbx2C,MAAOpS,EAAKoS,MACZ9O,KAAM,kBAGTc,MAAK,SAAC8D,GAML,OALAA,EAAMmI,SAAWrQ,EAAKqQ,SACtBnI,EAAMA,MAAQA,EAAMA,MAAMG,KAAI,SAAC2D,GAAD,sBAAC,kBAC1BA,GADyB,IAE5BgjE,SAAS,OAEJ9mE,MAGbgI,gBA9Oa,SA8OG3H,EAAYgnE,GAC1B,OAAOxnE,OAAI0mC,KAAc,CACvBC,IAAK,uBACL1uC,KAAM,CACJwX,OAAQ,CAAC,CAAEhR,IAAK,SAAUN,MAAOqpE,IACjChnE,GAAIA,EACJjF,KAAM,mBAKZksE,eAzPa,SAyPEjnE,GACb,OAAOR,OACJ0mC,KAAU,CACTC,IAAK,uBACL1uC,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CACEA,IAAK,cACLqpC,OAAQ,2CACR8D,QAAS,CACP,CACEntC,IAAK,WACLN,OAAO,EACP0tC,SAAU,SAKlB7V,OAAQx1B,EACRjF,KAAM,kBAGTc,MAAK,SAAC4G,GACL,OAAOA,EAAIgB,KAAK6L,gBAItB43D,kBArRa,SAqRKlnE,EAAYmnE,GAC5B,OAAO3nE,OAAI8sC,OAAgB,CACzBnG,IAAK,sBACL1uC,KAAM,CACJ+9B,OAAQx1B,EACRonE,cAAeD,MAUrBE,aAAc,SAASrnE,GACrB,IAAKA,EACH,MAAM,IAAIzE,MAAM,iCAElB,IAAI9D,EAAO,CACTwX,OAAQ,CAAC,CAAEhR,IAAK,WAChBu3B,OAAQx1B,EACRjF,KAAM,gBAER,OAAOyE,OACJ0mC,KAAU,CACTC,IAAK,uBACL1uC,KAAMA,IAEPoE,MAAK,SAAS4G,GACb,OAAOA,EAAIgB,QAEZ5H,MAAK,SAAS4H,GACb,MAAuB,SAAhBA,EAAKgE,WASlBpB,KA/Ta,SA+TRrG,EAAYxE,EAAcqM,GAC7B,OAAOrI,OAAI0mC,KAAa,CACtBC,IAAK,6BACL1uC,KAAM,CACJuI,KACA6H,SACArM,WAINoM,UAzUa,SAyUH5H,GACR,OAAOR,OACJ0mC,KAAU,CACTC,IAAK,uBACL1uC,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,WACP,CAAEA,IAAK,WACP,CAAEA,IAAK,cACP,CAAEA,IAAK,UACP,CAAEA,IAAK,cACP,CAAEA,IAAK,yBAA0BiiD,GAAI,WACrC,CAAEjiD,IAAK,oBACP,CAAEA,IAAK,kBAAmBqpC,OAAQ,cAClC,CACErpC,IAAK,kBACLqpC,OAAQ,aACR4Y,GAAI,QAEN,CACEjiD,IAAK,kBACLqpC,OAAQ,UACR4Y,GAAI,QAEN,CAAEjiD,IAAK,OAAQqpC,OAAQ,sBACvB,CACErpC,IAAK,eACLqpC,OAAQ,qBACR4Y,GAAI,MAEN,CACEjiD,IAAK,eACLqpC,OAAQ,qBACR4Y,GAAI,MAEN,CACEjiD,IAAK,gBACLqpC,OAAQ,qBACR4Y,GAAI,OAEN,CACEjiD,IAAK,yBACLiiD,GAAI,YAEN,CACEjiD,IAAK,8BACLiiD,GAAI,gBAEN,CACEjiD,IAAK,cACLqpC,OAAQ,2CACR8D,QAAS,CACP,CACEntC,IAAK,WACLN,OAAO,EACP0tC,SAAU,SAKlB7V,OAAQx1B,EACRjF,KAAM,kBAGTc,MAAK,SAAC4G,GACL,OAAOA,EAAIgB,SAIjB6jE,QA/Ya,SA+YLtnE,GACN,IAAKA,EACH,MAAM,IAAIzE,MAAM,iCAElB,OAAOiE,OACJjC,IAAc,CACb4oC,IAAK,sBACLU,OAAQ,CACNrR,OAAQx1B,KAGXnE,MAAK,SAACinB,GACL,OAAOA,EAAQhjB,KAAI,SAACtD,GAClB,IAAI+qE,EAAeC,KAAKhrE,GACpBirE,EAAOC,mBAAmBH,GAC9B,OAAOE,QAGV5rE,MAAK,SAAS8rE,GACb,OAAOA,EAAMhvB,KAAK,QAIxBivB,cAtaa,SAsaC5nE,EAAYs7D,GACxB,IAAI7jE,EAAO,CACTwX,OAAQ,CACN,CACEhR,IAAK,aACLN,MAAO29D,IAGXt7D,GAAIA,EACJjF,KAAM,gBAGR,OAAOyE,OAAI0mC,KAAc,CACvBC,IAAK,uBACL1uC,UASJ60C,OA7ba,SA6bNroC,GAKL,OAAOzE,OAAI0mC,KAAc,CACvBC,IAAK,+BACL1uC,KAAMwM,KAIV4jE,KAxca,SAwcRvmE,GACH,IAAKA,EACH,MAAM,IAAI/F,MAAM,oCAElB,OAAOiE,OAAI0mC,KAAU,CACnBC,IAAK,wBACL1uC,KAAM6J,KAIVwmE,YAlda,SAkdD9nE,GACV,OAAOR,OACJ0mC,KAAU,CACTC,IAAK,uBACL1uC,KAAM,CACJwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CACEA,IAAK,OACLqpC,OAAQ,qBACR4Y,GAAI,QAEN,CAAEjiD,IAAK,WACP,CAAEA,IAAK,WACP,CAAEA,IAAK,UACP,CAAEA,IAAK,cACP,CACEA,IAAK,kBACLqpC,OAAQ,aACR4Y,GAAI,QAEN,CACEjiD,IAAK,kBACLqpC,OAAQ,UACR4Y,GAAI,QAEN,CAAEjiD,IAAK,kBACP,CAAEA,IAAK,cACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,cAETu3B,OAAQx1B,EACRjF,KAAM,kBAGTc,MAAK,SAAC4G,GACL,OAAOA,EAAIgB,SAIjBskE,sBA1fa,SA0fSvyC,EAAgBwyC,EAAsBC,GAC1D,OAAOzoE,OAAIjC,IAAY,CACnB4oC,IAAK,sCACLU,OAAQ,CACNrR,OAAQA,EACRwyC,aAAcA,EACdC,IAAKA,MAKbC,eArgBa,SAqgBEC,GACb,OAAO3oE,OAAIjC,IAAyB,CAChC4oC,IAAK,wBACLU,OAAQ,CACNshC,MAAOA,OCpgBF,G,UAAA,CAEb/B,uBAFa,WAGX,OAAO5mE,OAAIjC,IAAS,CAClB4oC,IAAK,uCAITiiC,eARa,WASX,OAAO5oE,OAAIjC,IAAY,CACrB4oC,IAAK,yBACLU,OAAQ,CAAE9+B,OAAQ,YAItBC,cAfa,SAeCF,GACZ,IAAMrQ,EAAmC,CACvCwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,cAAeiiD,GAAI,QAC1B,CAAEjiD,IAAK,uBACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,eACP,CAAEA,IAAK,cACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,mBAAoBiiD,GAAI,eAEjC9U,QAAS,CACP,CACEntC,IAAK,cACLN,MAAO,WACP2tC,UAAWg7B,OAAiBC,WAE9B,CACEtoE,IAAK,iBACLN,MAAO,QACP2tC,UAAWg7B,OAAiBC,YAGhCz+D,SAAUA,GAAY,KACtByjC,oBAAqB88B,OAAoBC,cACzCvtE,KAAM,UAGR,OAAOyE,OACJ0mC,KAAwC,CACvCC,IAAK,wBACL1uC,KAAMA,IAEPoE,MAAK,SAAC4G,GACL,IAAI8lE,EAAU,iCACT9lE,GADM,IAET9C,MAAO8C,EAAI9C,MACR8E,QAAO,SAAC1E,GACP,MAAiC,eAA1BA,EAAEg2D,uBAEVj2D,KACD,SAAC2D,GAAD,sBAAC,kBAEMA,GAFP,IAGI1I,KAAM,SACN6I,SAAU,KACV8E,YAAajF,EAAK0Q,iBAAmB,SAI7C,OAAOo0D,MAIbv8B,UAvEa,SAuEHhsC,GACR,IAAMvI,EAAmC,CACvCwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,cAAeiiD,GAAI,QAC1B,CAAEjiD,IAAK,uBACP,CAAEA,IAAK,eACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,mBAAoBiiD,GAAI,eAEjC1qB,OAAQx1B,EACRjF,KAAM,UAER,OAAOyE,OACJ0mC,KAAK,CACJC,IAAK,uBACL1uC,KAAMA,IAEPoE,MAAK,SAAC4G,GAAD,OAAcA,EAAIgB,SAG5B+kE,iBA7Fa,SA8FX1gE,GAEA,IAAMrQ,EAAmC,CACvCwX,OAAQ,CACN,CAAEhR,IAAK,MACP,CAAEA,IAAK,oBACP,CAAEA,IAAK,cAAeiiD,GAAI,QAC1B,CAAEjiD,IAAK,uBACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,eACP,CAAEA,IAAK,kBACP,CAAEA,IAAK,mBAAoBiiD,GAAI,eAEjC9U,QAAS,CACP,CACEntC,IAAK,cACLN,MAAO,WACP2tC,UAAWg7B,OAAiBC,WAE9B,CACEtoE,IAAK,iBACLN,MAAO,QACP2tC,UAAWg7B,OAAiBC,YAGhCz+D,SAAUA,GAAY,KAEtB/M,KAAM,UAGR,OAAOyE,OACJ0mC,KAAwC,CACvCC,IAAK,wBACL1uC,KAAMA,IAEPoE,MAAK,SAAC4G,GACL,IAAI8lE,EAAU,iCACT9lE,GADM,IAET9C,MAAO8C,EAAI9C,MAAMG,KACf,SAAC2D,GAAD,sBAAC,kBAEMA,GAFP,IAGI1I,KAAM,SACN6I,SAAU,KACV8E,YAAajF,EAAK0Q,iBAAmB,SAI7C,OAAOo0D,MAObE,YAAa,SAASxkE,GACpB,IAAMxM,EAAmC,CACvCwX,OAAQ,CAAC,CAAEhR,IAAK,mBAAoBN,MAAOsG,EAAQsc,aACnDvgB,GAAIiE,EAAQjE,GACZjF,KAAM,UAER,OAAOyE,OAAI0mC,KAAK,CACdC,IAAK,uBACL1uC,KAAMA,KAQVw+D,YArKa,SAqKDptD,EAAe89D,GAOzB,OANK99D,GAAsB,IAAfA,EAAI5Q,QACdsG,QAAQjC,MAAR,yCAEGqqE,GACHpoE,QAAQjC,MAAR,yDAEKkD,OAAI0mC,KAAc,CACvBC,IAAK,uBACL1uC,KAAM,CACJoR,MACA89D,4BCrLO,GACX+B,aADW,WAEP,OAAOlpE,OAAIjC,IAA6B,CACpC4oC,IAAK,sBAERtqC,MAAK,SAAC8D,GACH,OACEA,EAEG8E,QAAO,SAAC1E,GAAD,MAAkB,WAAXA,EAAEhF,aCPlB,QACX2M,OACAK,SACAga,a,oCCPJ,W,sDCAA,W,2DCAA,IAAIsI,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,SAAS,CAACJ,EAAG,MAAM,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,OAAO2xB,QAAQ,SAAS5wB,MAAO2sB,EAAQ,KAAEkE,WAAW,SAAS7C,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,OAAOA,EAAG,OAAOA,EAAG,OAAOA,EAAG,SAASA,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIq+C,wBAClWz9C,EAAkB,G,4GCyBDuD,EAAY,yKA8C7B,cA9C6B,qBAkD7B,gBAlD6B,GAAS1F,QAOEqE,gBAAvCC,eAAK,CAACtyB,KAAMyyB,QAASD,SAAS,KAAS,2BACIH,gBAA3CC,eAAK,CAACtyB,KAAMuyB,OAAQC,QAAS,cAAc,qCAR3BkB,EAAY,gBAjBhClD,eAAU,CACPmD,WAAY,GAEZlD,SAAQ,kBACDC,eAAW,KAIlBkD,QAAS,iCACFC,eAAW,KAGXC,eAAa,QAKHJ,WC1BwQ,I,wBCQzRrD,EAAY,eACd,EACAf,EACAa,GACA,EACA,KACA,KACA,MAIa,OAAAE,E,6CCnBf,W,4CCAe,kBACb,MAAO,CACLnU,IADK,SACDhZ,EAAaN,GACV4sB,KAAKq+C,eAIVntB,aAAaH,QAAQr9C,EAAKqI,KAAKE,UAAU7I,KAG3CJ,IATK,SASDU,GACF,GAAKssB,KAAKq+C,cAAV,CAIA,IAAMjrE,EAAQ89C,aAAaC,QAAQz9C,GAEnC,OAAON,EAAQ2I,KAAKC,MAAM5I,GAAS,OAGrC+mC,OAnBK,SAmBEzmC,GACAssB,KAAKq+C,eAIVntB,aAAaF,WAAWt9C,IAG1B2qE,YA3BK,WA4BH,MAA0B,qBAAZnM,UA7BL,I,8iJC2CMoM,eAAc,4VAAnC,+M,+BAqCI,EAAAvnE,MAA8B,CAC1B2L,QAAS,GACT7C,GAAI,GACJC,GAAI,GACJC,IAAK,GACL6E,KAAM,GACNG,YAAa,GACbw5D,WAAW,EACXttE,KAAM,GACNujB,WAAY,GACZvR,WAAY,SACZu7D,SAAU,SACVC,WAAY,IAGhB,EAAAvlE,KAA8B,CAC1BqE,SAAU,GACVgW,gBAAgB,EAChB3O,KAAM,GACND,SAAU,GACVjC,QAAS,GACT8Q,OAAQ,KACR7N,gBAAiB,SACjB8N,qBAAsB,EACtBC,iBAAkB,GAClBC,WAAY,KACZ7O,UAAW,GACXD,WAAY,GACZ5T,KAAM,GACNujB,WAAY,GACZvR,WAAY,SACZwR,aAAa,EACbC,aAAa,EACb3R,eAAe,EACf4R,eAAe,EACfhS,MAAOT,qDAAwB,aAAc,IAAIsB,MACjDX,IAAKX,qDAAwB,aAAc,IAAIsB,MAC/CZ,UAAW,GACXE,QAAS,GACTE,kBAAmB,GACnBE,kBAAmB,GACnB0R,aAAa,EACb5P,2BAA4B,IAGhC,EAAAwoC,WAAqB,GAErB,EAAAkxB,oBAA8B,EAC9B,EAAAC,kBAA4B,EAC5B,EAAAC,oBAA8B,EAC9B,EAAAC,kBAA4B,EAC5B,EAAAC,sBAAgC,EAChC,EAAAC,iBAA2B,EAC3B,EAAAC,gBAA0B,EAG1B,EAAA1xB,iBAA+B,KAC/B,EAAA2xB,cAAwB,GA9F5B,EAAmC,yYAwG/B,WAA4B7rE,GAA5B,qFACQA,EADR,gCAEcc,OAAegnB,WAAW9nB,GAFxC,OAGQ4sB,KAAKk/C,gBAAgB,IAH7B,gDAxG+B,oFA+G/B,SAAap0D,GACTkV,KAAK9mB,KAAK0J,UAAYkI,EACtBkV,KAAK4+C,oBAAqB,IAjHC,wBAoH/B,SAAW9zD,GACPkV,KAAK9mB,KAAK4J,QAAUgI,EACpBkV,KAAK6+C,kBAAmB,IAtHG,uBAyH/B,SAAUrhE,GACNwiB,KAAK9mB,KAAKqE,SAAWC,EAAO/H,GAC5BuqB,KAAKwtB,WAAahwC,EAAO7H,YACzBqqB,KAAK++C,iBAAkB,IA5HI,4BA+H/B,SAAeI,GAGXn/C,KAAKstB,iBAAmB6xB,IAlIG,yBAqI/B,SAAYrxB,GACR9tB,KAAK9mB,KAAK8L,2BAA6B8oC,EACvC9tB,KAAKg/C,gBAAiB,IAvIK,uBA0I/B,SAAAnT,UAAUz4D,OACNgsE,KAAK,cAAgBhsE,MAAQ,aA3IF,6BA+I/B,SAAgBgH,GACZ,OACQ,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM7E,KAAI,SAACtC,GAAD,MAAQ,CACdZ,KAAMY,EAAE6H,KACRqI,QAASlQ,EAAEG,MACX4C,SAAU/C,EAAEsgD,gBACZ79C,WAAYzC,EAAEyC,iBACX,KAtJgB,iNA0J/B,8GACSsqB,KAAK9mB,KAAKqE,SADnB,gCAEcrJ,OAAegnB,WAAW8E,KAAKqC,GAAG,6BAA6B5R,YAF7E,iCAGe,GAHf,cAKU4uD,EALV,+LAKmB,mHACLz6B,EADK,qJAEJ,EAAK1rC,MAEZ0rC,EAAQ//B,WAAa,EAAK3L,KAAK2L,WAE/B+/B,EAAQjiC,MAAQiiC,EAAQjiC,MAAMqI,MAAM,KAAK,GACzC45B,EAAQ/hC,IAAM+hC,EAAQ/hC,IAAImI,MAAM,KAAK,GAEhC9W,OAAeorE,gBAChB16B,EAAQhgC,KAAQ1Q,OAAeorE,cAAcC,eAG7C36B,EAbO,qBAeFA,EAAQngC,OACkB,cAA3BmgC,EAAQj/B,iBACmB,aAA3Bi/B,EAAQj/B,iBACRi/B,EAAQ//B,WAAWmP,kBAEnB4wB,EAAQj/B,gBAAkB,mBAG1Bi/B,EAAQ7hC,gBACR6hC,EAAQhiC,UAAY,WACpBgiC,EAAQ9hC,QAAU,WAGdyH,EAAQrI,qDAAgB0iC,EAAQ/hC,KACpC0H,EAAMpE,QAAQoE,EAAMnE,UAAY,GAEhCw+B,EAAQ/hC,IAAMX,qDAAwB,aAAcqI,IAGxDq6B,EAAQ1xB,UAAY,CAChB7gB,KAAM,EAAKmgD,KAAK78C,YAChBwN,QAAS,EAAKqvC,KAAKz7C,OAErB6tC,EAAgBlvC,WAAa,EAAK88C,KAAK98C,WAErC4X,MAAMzG,OAAO+9B,EAAQrnC,aACrBqnC,EAAQngC,OAAQ,GAGhBmgC,EAAQ//B,YAAc+/B,EAAQ//B,WAAW+O,YACzCgxB,EAAQ//B,WAAW+O,UAAY1R,qDAC3B0iC,EAAQ//B,WAAW+O,WACrB,IAGFgxB,EAAQ//B,YAAc+/B,EAAQ//B,WAAWqB,UACzC0+B,EAAQ//B,WAAWqB,QAAUhE,qDAA4B0iC,EAAQ//B,WAAWqB,SAAS,IAMzF0+B,EAAQ5hC,kBAAoB,EAAKw8D,gBAAgB,EAAKzoE,MAAM8I,IAC5D+kC,EAAQ1hC,kBAAoB,EAAKs8D,gBAAgB,EAAKzoE,MAAM+I,KAGxD,EAAKwtC,iBA7DF,qBA+DC1I,EAAQ//B,WAAWmP,gBA/DpB,kCAgEO9f,OAAegnB,WAAY,EAAKmH,GAAG,8BAA8B5R,YAhExE,kCAkEQ,GAlER,WAqEqC,GAApCm0B,EAAQ5hC,kBAAkBtV,OArE3B,kCAsEOwG,OAAegnB,WAAY,EAAKmH,GAAG,0BAA0B5R,YAtEpE,kCAwEQ,GAxER,QA2ECmD,EAAYgxB,EAAQjiC,MAAMqI,MAAM,KAAK,GACrCy0D,EAAY76B,EAAQhiC,UACpBsD,EAAU0+B,EAAQ/hC,IAAImI,MAAM,KAAK,GACjC00D,EAAU96B,EAAQ9hC,QAGO,GAAzB8hC,EAAQ7hC,gBAIR08D,EAAY,WACZv5D,EAAU0N,EACV8rD,EAAU,YAGdzqE,iDAAI+3C,mBAAmBJ,oCAAoC,CACvDL,iBAAkB,KAClBozB,kBAAiB,UAAU,EAAKryB,wBAAf,aAAU,EAAuB35B,WAClDisD,cAAe,IAAIp8D,KAAJ,UAAYoQ,EAAZ,YAAyB6rD,IACxCI,YAAa,IAAIr8D,KAAJ,UAAY0C,EAAZ,YAAuBw5D,IACpCI,gBAAiB,OAClBxuE,KANH,+LAMQ,WAAM/C,GAAN,oFACU,GAAVA,EADA,gCAEM2F,OAAegnB,WAAW,2BAFhC,iCAGO,GAHP,OAKA,EAAK6kD,YAAY,CAAE7mE,KAAM0rC,IACzB,EAAKxK,MAAM9oC,MAAK,SAAC4G,GACTA,GAEA,EAAK8nE,iBATb,2CANR,uDA1FG,+BA+GH,EAAKD,YAAY,CAAE7mE,KAAM0rC,IA/GtB,kBAgHI,EAAKxK,MAAM9oC,MAAK,SAAC4G,GAChBA,GACA,EAAKu1B,QAAQz/B,KAAK,CAAEsS,KAAM,uBAlH/B,4CALnB,uEAgIc++D,IAhId,OAiIQr/C,KAAKigD,gBAjIb,qDAmIQjsE,QAAQjC,MAAR,MAnIR,0DA1J+B,kFAmS/B,WAAW,eAaD6yC,EAAU,qJACT5kB,KAAK9mB,MAGR0a,EAAYgxB,EAAQjiC,MAAMqI,MAAM,KAAK,GACrCy0D,EAAY76B,EAAQhiC,UACpBsD,EAAU0+B,EAAQ/hC,IAAImI,MAAM,KAAK,GACjC00D,EAAU96B,EAAQ9hC,QAuCO,GAAzB8hC,EAAQ7hC,gBAIR08D,EAAY,WACZv5D,EAAU0N,EACV8rD,EAAU,YAGd,IAAI18D,EAAoBgd,KAAKw/C,gBAAgBx/C,KAAKjpB,MAAM8I,IACpDqD,EAAoB8c,KAAKw/C,gBAAgBx/C,KAAKjpB,MAAM+I,IAExD9L,QAAQ4M,IAAI,oBAAqBoC,GAEjC,IAAIk9D,EAAiBl9D,EAAkBzN,KAAI,SAAC2D,GACxC,IAAIinE,GAAe,EAGnB,OAFIjnE,EAAK7G,MAAQ6G,EAAKlD,WAAUmqE,GAAe,GAExC,CACHzqE,WAAYwD,EAAKxD,WACjB0qE,YAAY,EACZD,aAAcA,MAIlBE,EAAyBn9D,EAAkB3N,KAAI,SAAC2D,GAChD,IAAIinE,GAAe,EAGnB,OAFIjnE,EAAK7G,MAAQ6G,EAAKlD,WAAUmqE,GAAe,GAExC,CACHzqE,WAAYwD,EAAKxD,WACjB0qE,YAAY,EACZD,aAAcA,MAIhBG,EAAO,UAAItgD,KAAKstB,wBAAT,aAAI,EAAuB33C,YAEpC4qE,EAAY,CACZC,qBAAsB,KACtBb,kBAAiB,UAAE3/C,KAAKstB,wBAAP,aAAE,EAAuB35B,WAC1Ctd,MAAO2pB,KAAK9mB,KAAKwJ,QACjBkC,KAAMob,KAAK9mB,KAAK0L,KAChB67D,SAAUzgD,KAAK9mB,KAAKqa,eAAiByM,KAAK9mB,KAAKjI,KAAO,GACtDyvE,aAAa,EACb9sD,UAAWA,EACX6rD,UAAWA,EACXv5D,QAASA,EACTw5D,QAASA,EACTiB,kBAAmB3gD,KAAKwyB,KAAK98C,WAC7BkrE,UAAU,EACVC,eAAgB,EAChB9oE,OAAQ,KACR+oE,QAAS,GAAF,6JAAMZ,GAAN,sJAAyBG,IAChCU,aAAeT,GAkBnBrrE,iDAAI+3C,mBAAmBR,qBAAqB+zB,GAAWjvE,MAAK,SAAA/C,GACxD,IAAIyyE,EAAYzyE,EAEhB,GADAyF,QAAQ4M,IAAI,SAAUrS,GAClByyE,EAAY,EAAG,OAEX9zE,EAAO,CACPq/C,iBAAkBy0B,EAClBrB,kBAAiB,UAAE,EAAKryB,wBAAP,aAAE,EAAuB35B,WAC1CstD,eAAgB,EAAKhC,eAEzBhqE,iDAAI+3C,mBAAmBZ,gCAAgCl/C,GAAMoE,KAA7D,+LAAkE,WAAM/C,GAAN,6FAC1DA,EAD0D,uBAEtD2yE,EAAM,EAAK7+C,GAAG,iBAAiB5R,WAEnC,UAAI,EAAK68B,wBAAT,OAAI,EAAuB6zB,cAGvBD,GAAO,KAAJ,OAAS,EAAK7+C,GAAG,yBAAyB5R,aAPS,SASpDvc,OAAegnB,WAAWgmD,GAT0B,6CAWpDhtE,OAAegnB,WAAY,EAAKmH,GAAG,oBAAoB5R,YAXH,OAc9D,EAAKgd,QAAQz/B,KAAK,CAAEsS,KAAM,mBAdoC,4CAAlE,2DAiBL8gE,SAAQ,iBAjcgB,kBAuc/B,WAAI,WACIC,EAAW,IAAI79D,KACnB69D,EAAS/vD,WAAW+vD,EAAS91D,aAAe,IAC5C,IAAI5a,EAA+B,CAC/BgS,MAAOT,qDAAwB,qBAAsBm/D,GACrDx+D,IAAKX,qDAAwB,qBAAsBm/D,GACnDt+D,eAAe,GAKfu+D,EAAU,KACVC,EAAS5wE,EAET6wE,EAAQ,GAIZ,GAFA7zE,OAAO2W,OAAOk9D,EAAOxhD,KAAK9mB,MAEtBqoE,EAAQ,CACR,IAAIxuB,EAA6BwuB,EACjCC,EAAQ,uSACDA,GACAzuB,GAgBX,IARIyuB,EAAM7+D,QAAuC,GAA7B6+D,EAAM7+D,MAAM/G,QAAQ,OAA2C,GAA7B4lE,EAAM7+D,MAAM/G,QAAQ,OACtE4lE,EAAM5+D,UAAYV,qDAA4Bs/D,EAAM7+D,OAAO,KAG3D6+D,EAAM3+D,MAAmC,GAA3B2+D,EAAM3+D,IAAIjH,QAAQ,OAAyC,GAA3B4lE,EAAM3+D,IAAIjH,QAAQ,OAChE4lE,EAAM1+D,QAAUZ,qDAA4Bs/D,EAAM3+D,KAAK,IAGxB,kBAAxB2+D,EAAMz+D,gBACby+D,EAAMz+D,cAAiD,SAAhCy+D,EAAMz+D,cAEzBy+D,EAAMz+D,eAAe,CACrB,IAAIwH,EAAQrI,qDAAgBs/D,EAAM3+D,KAClC0H,EAAMpE,QAAQoE,EAAMnE,UAAY,GAChCo7D,EAAM3+D,IAAMX,qDAAwB,aAAcqI,GAS1D,OANAi3D,EAAM38D,WAAW+O,UAAY4tD,EAAM7+D,MAAQ,GAC3C6+D,EAAM38D,WAAWqB,QAAUhE,qDACvB,aACAA,qDAAkB,GAAIA,qDAAgBs/D,EAAM7+D,SAGxC6+D,EAAM77D,iBACV,IAAK,SACD67D,EAAM38D,WAAWgP,uBAAwB,EACzC2tD,EAAM38D,WAAWiP,mBAAoB,EACrC0tD,EAAM38D,WAAWkP,wBAAyB,EAC1CytD,EAAM38D,WAAWmP,iBAAkB,EACnC,MACJ,IAAK,kBACDwtD,EAAM38D,WAAWgP,uBAAwB,EACzC2tD,EAAM38D,WAAWiP,mBAAoB,EACrC0tD,EAAM38D,WAAWkP,wBAAyB,EAC1CytD,EAAM38D,WAAWmP,iBAAkB,EACnC,MACJ,IAAK,aACL,IAAK,YACDwtD,EAAM38D,WAAWgP,uBAAwB,EACzC2tD,EAAM38D,WAAWiP,mBAAoB,EACrC0tD,EAAM38D,WAAWkP,wBAAyB,EAC1CytD,EAAM38D,WAAWmP,iBAAkB,EACnC,MAQRgM,KAAK9mB,KAAL,uSACO8mB,KAAK9mB,MACLsoE,GAGP,IAAMC,EAAM,OAAH,OAAUj+D,KAAK2+C,OA+BxB,GA9BAniC,KAAK9mB,KAAKjI,KAAV,mBAA6B+uB,KAAKwyB,KAAK/8C,GAAvC,YAA6CgsE,GAC7CzhD,KAAK9mB,KAAKsb,WAAa,CAACwL,KAAKwyB,KAAK19C,QAAS,WAAYkrB,KAAKwyB,KAAKz7C,MAAO0qE,GAGzD,MAAXH,GAA8B,SAAXA,EACnBrsE,iDAAImO,aAAaC,WAAW/R,MAAK,SAAC4G,GAC9B,EAAKgB,KAAKwa,iBAAV,CACI,CAAE5Y,KAAM,OAAQ1H,MAAO,OAD3B,6JAEO8E,EACEgC,QAAO,SAAC1E,GAAD,OAAkB,GAAXA,EAAE81D,SAChB/1D,KAAI,SAACC,GACN,MAAO,CAAEsF,KAAMtF,EAAEnD,KAAMe,MAAOoC,EAAE2N,cAGxC,EAAKjK,KAAK0b,aAAc,KAI5B3f,iDAAI63C,YAAY1H,wBAAwB,CAAE7C,KAAM,OAAQjxC,MAAK,SAAC4G,GAC1D,EAAKgB,KAAKwa,iBAAV,CACI,CAAE5Y,KAAM,OAAQ1H,MAAO,OAD3B,6JAEO8E,EAAI3C,KAAI,SAACC,GACR,MAAO,CAAEsF,KAAMtF,EAAEG,YAAavC,MAAOoC,EAAEC,SAG/C,EAAKyD,KAAK0b,aAAc,KAK7BoL,KAAK6R,OAAOp2B,MAAMimE,OAAQ,CACzB,IAAIC,EAAW3hD,KAAK6R,OAAOp2B,MAAMimE,OAE9BC,IACC3hD,KAAK9mB,KAAO6C,KAAKC,MAAMmhE,mBAAmBwE,QA/jBvB,oBAokB/B,WACI3hD,KAAKigD,gBACLjgD,KAAKyN,QAAQz/B,KAAK,CAAEsS,KAAM,qBAtkBC,8BAykB/B,SAAiB7K,GACbuqB,KAAKi/C,cAAgBxpE,IA1kBM,qBAmlB/B,WACI63D,iDAAep5D,OAAQ,iBAAkB8rB,KAAKuC,QAC9C+qC,iDAAep5D,OAAQ,sBAAuB8rB,KAAK4hD,kBAEnD5hD,KAAK9mB,KAAKyJ,MAAQT,qDAA4B8d,KAAK9mB,KAAKyJ,OAAO,GAC/Dqd,KAAK9mB,KAAK2J,IAAMX,qDAA4B8d,KAAK9mB,KAAK2J,KAAK,GAE3Dmd,KAAK02C,SA1lBsB,2BA6lB/B,WACIjJ,iDAAev5D,OAAQ,iBAAkB8rB,KAAKuC,QAC9CkrC,iDAAev5D,OAAQ,sBAAuB8rB,KAAK4hD,sBA/lBxB,gBAASpjD,wCAwGxCqE,kDADC0G,kEAAM,iBACP,uDAxGiB+0C,eAAc,kDA/BlCt9C,kEAAU,CACPmD,WAAY,CACR0pB,sFACAg0B,iEACAC,qEACAC,mEACAC,kEACAC,uEACAC,qEACAC,oEAEJlhD,SAAU,qJACHC,gDAAW,CACVsxB,KAAM/lB,wDACNpZ,aAAchf,yDACd+tE,YAAa/tE,0DACbguE,iBAAkBhuE,4DAG1B+vB,QAAS,uSACFC,gDAAW,CACV+V,IAAK/lC,4DAENiwB,gDAAa,CACZy7C,YAAa1rE,yDACbiuE,aAAcjuE,yDACd6qE,gBAAiB7qE,yDACjB4rE,cAAehsB,6DAINqqB,yD,oCC3CrB,W,6DCAA,W,oCCAA,kPAAMh+D,EAAO,QAEAiiE,EAAgB,GAAH,OAAMjiE,EAAN,kBACbkiE,EAAe,GAAH,OAAMliE,EAAN,gBACZmiE,EAAmB,GAAH,OAAMniE,EAAN,qBAChBoiE,EAAqB,GAAH,OAAMpiE,EAAN,uBAClBqiE,EAAe,GAAH,OAAMriE,EAAN,iBACZsiE,EAAc,GAAH,OAAMtiE,EAAN,iBACXuiE,EAAc,GAAH,OAAMviE,EAAN,kB,2kBCClB,SAAUwiE,EACZC,GAIC,IAEGC,EALJC,EAGC,uDAHkB,GACnBvpE,EAEC,uDAF0B,CACvBwpE,aAAa,GAKjB,OAAO,WAA2D,2BAAnBC,EAAmB,yBAAnBA,EAAmB,gBAC9D,IAAM9tC,EAAUrV,KAEVojD,EAAU,WACZJ,OAAY1wE,EACPoH,EAAQwpE,aACTH,EAAK10E,MAAMgnC,EAAS8tC,IAItBE,EAAgB3pE,EAAQwpE,kBAA6B5wE,IAAd0wE,OAE3B1wE,IAAd0wE,GACAhxE,aAAagxE,GAGjBA,EAAYzwE,WAAW6wE,EAASH,GAE5BI,GACAN,EAAK10E,MAAMgnC,EAAS8tC,I,ICxBjBG,E,WACb,oCAIA,KAAAp2E,KAA0BS,OAAO8F,OAAO,MAHtCusB,KAAKujD,iBAAmBT,EAAS9iD,KAAKtT,K,0CAOxC,SAAIhZ,EAAaN,GACf4sB,KAAK9yB,KAAKwG,GAAON,M,KAMfowE,E,wDACJ,wD,0CAIA,SAAIzsE,GAAa,WACXs6C,EAASrxB,KAAK9yB,KAAK6J,GACvB,OAAIs6C,EACK5hD,QAAQC,QAAQ2hD,GAEhBoyB,OAAW/mC,QAAQT,YAAYllC,GAAOzF,MAAK,SAACsqC,GAQjD,OAJEA,EAHGA,EAGG8nC,eAAc9nC,GAFd,yBAIR5nC,QAAQ4M,IAAI,QAASg7B,GACrB,EAAKlvB,IAAI3V,EAAO6kC,GACTA,O,wBAKb,SAAWO,GAAe,WACxB,OAAOsnC,OAAW/mC,QAAQR,mBAAmBC,GAAO7qC,MAAK,SAAC4G,GAExD,OADAA,EAAIa,SAAQ,SAAC7J,GAAD,OAAO,EAAKwd,IAAIxd,EAAEwG,WAAYxG,EAAEiH,cACrC+B,S,GA1BoBorE,GAmCpBp0B,EAAe,CAC1BmC,OAAQ,IAAImyB,G,oGCjEd,IAAI1jD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,WAAW,CAACJ,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,MAAM,CAACiB,YAAY,0BAA0B,CAACjB,EAAG,IAAI,CAACiB,YAAY,iBAAiBb,MAAM,CAAC,GAAK,eAAeE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI4jD,iBAAiB,QAAQ,CAACxjD,EAAG,IAAI,CAACiB,YAAY,mBAAmBjB,EAAG,KAAK,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,QAAQX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI6jD,cAAc,CAACzjD,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,6CAA6CJ,EAAG,MAAM,CAACiB,YAAY,4BAA4B,CAACjB,EAAG,KAAK,CAACiB,YAAY,cAAcrB,EAAI0B,GAAI1B,EAAa,WAAE,SAAS07C,GAAM,OAAOt7C,EAAG,KAAK,CAACzsB,IAAI+nE,EAAKjqC,OAAOpQ,YAAY,WAAW,CAACjB,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAI8jD,WAAWpI,MAAS,CAACt7C,EAAG,OAAO,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG25C,EAAKpjC,eAAgBojC,EAAKt9D,aAA+B,aAAhBs9D,EAAKqI,QAAwB3jD,EAAG,MAAM,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,yBAAyB,CAACI,MAAM,CAAC,UAAYk7C,EAAKpiE,SAAS,UAAY,GAAGonB,GAAG,CAAC,SAAW,SAAUvnB,GAAQ,OAAO6mB,EAAI8jD,WAAW3qE,QAAa,GAAqB,IAAjBuiE,EAAKsI,SAAgB5jD,EAAG,MAAM,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMk7C,EAAKsI,cAAchkD,EAAIe,OAAOX,EAAG,MAAM,CAACiB,YAAY,sBAAsBrB,EAAIe,UAAS,KAAKX,EAAG,MAAM,CAACiB,YAAY,2BAA2B,CAACjB,EAAG,KAAK,CAACiB,YAAY,yBAAyB,CAACjB,EAAG,KAAK,CAACA,EAAG,IAAI,CAACyD,MAAQ7D,EAAIikD,cAAgB,eAAiB,GAAKzjD,MAAM,CAAC,GAAK,kBAAkBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkkD,gBAAgB,QAAQ,CAAC9jD,EAAG,IAAI,CAACiB,YAAY,sBAAsBjB,EAAG,IAAI,CAACiB,YAAY,WAAWwC,MAAQ7D,EAAIikD,cAAgB,GAAK,eAAiBzjD,MAAM,CAAC,GAAK,mBAAmBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkkD,gBAAgB,QAAQ,CAAC9jD,EAAG,IAAI,CAACiB,YAAY,uBAAuBjB,EAAG,KAAK,CAACA,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQV,EAAImkD,WAAW,CAAC/jD,EAAG,IAAI,CAACiB,YAAY,8BAA8BjB,EAAG,KAAK,CAACA,EAAG,IAAI,CAACE,MAAON,EAAIokD,qBAAuB,YAAc,GAAIvgD,MAAQ7D,EAAIqkD,gBAAkB,eAAiB,GAAK7jD,MAAM,CAAC,GAAK,oBAAoBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIskD,kBAAkB,QAAQ,CAAClkD,EAAG,IAAI,CAACiB,YAAY,oBAAoBjB,EAAG,IAAI,CAACiB,YAAY,WAAWwC,MAAQ7D,EAAIqkD,gBAAkB,GAAK,eAAiB7jD,MAAM,CAAC,GAAK,qBAAqBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIskD,kBAAkB,QAAQ,CAAClkD,EAAG,IAAI,CAACiB,YAAY,uBAAuBjB,EAAG,KAAK,CAACA,EAAG,IAAI,CAACyD,MAAQ7D,EAAIukD,gBAAkB,eAAiB,GAAK/jD,MAAM,CAAC,GAAK,oBAAoBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIwkD,cAAc,QAAQ,CAACpkD,EAAG,IAAI,CAACiB,YAAY,oBAAoBjB,EAAG,IAAI,CAACiB,YAAY,WAAWwC,MAAQ7D,EAAIukD,gBAAkB,GAAK,eAAiB/jD,MAAM,CAAC,GAAK,qBAAqBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIwkD,cAAc,QAAQ,CAACpkD,EAAG,IAAI,CAACiB,YAAY,uBAAuBjB,EAAG,KAAK,CAACK,YAAY,CAAC,QAAU,SAAS,CAACL,EAAG,IAAI,CAACyD,MAAQ7D,EAAIykD,iBAAmB,eAAiB,GAAKjkD,MAAM,CAAC,GAAK,qBAAqBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI0kD,mBAAmB,QAAQ,CAACtkD,EAAG,IAAI,CAACiB,YAAY,uBAAuBjB,EAAG,IAAI,CAACiB,YAAY,WAAWwC,MAAQ7D,EAAIykD,iBAAmB,GAAK,eAAiBjkD,MAAM,CAAC,GAAK,sBAAsBE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI0kD,mBAAmB,QAAQ,CAACtkD,EAAG,IAAI,CAACiB,YAAY,uBAAwBrB,EAAW,QAAEI,EAAG,KAAK,CAACJ,EAAI6N,GAAG,KAAK7N,EAAIe,KAAKX,EAAG,KAAK,CAACA,EAAG,KAAK,CAACiB,YAAY,aAAa,CAACjB,EAAG,KAAK,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,MAAM,CAACJ,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMR,EAAIsR,YAAY53B,KAAKtD,UAAU,QAAU,iDAAiDgqB,EAAG,IAAI,CAACiB,YAAY,gCAAgCjB,EAAG,MAAM,CAACiB,YAAY,iBAAiB,CAACjB,EAAG,KAAK,CAACA,EAAG,KAAK,CAACA,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQV,EAAI4pC,YAAY,CAAC5pC,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,2BAA2BlC,EAAG,KAAK,CAACA,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQV,EAAI2kD,eAAe,CAAC3kD,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,yCAA0CtC,EAAiB,cAAEI,EAAG,YAAY,CAACI,MAAM,CAAC,eAAiBR,EAAI4kD,gBAAgBlkD,GAAG,CAAC,YAAc,SAAUmB,GAAU,OAAO7B,EAAI6kD,YAAYhjD,OAAc7B,EAAIe,KAAMf,EAAmB,gBAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,cAAgBR,EAAI8kD,eAAepkD,GAAG,CAAC,aAAe,SAAUvnB,GAAQ,OAAO6mB,EAAI+kD,eAAe5rE,IAAS,gBAAkB,SAAS0oB,GAAQ,OAAO7B,EAAIglD,wBAAwBhlD,EAAIe,KAAMf,EAAmB,gBAAEI,EAAG,cAAc,CAACI,MAAM,CAAC,cAAgBR,EAAIilD,eAAevkD,GAAG,CAAC,yBAA2B,SAAUvnB,GAAQ,OAAO6mB,EAAIklD,yBAAyB/rE,IAAS,gBAAkB,SAAUA,GAAQ,OAAO6mB,EAAImlD,gBAAgBhsE,OAAY6mB,EAAIe,KAAMf,EAAoB,iBAAEI,EAAG,eAAe,CAACI,MAAM,CAAC,eAAiBR,EAAIolD,eAAe,cAAgBplD,EAAIqlD,eAAe3kD,GAAG,CAAC,iBAAmB,SAAUvnB,GAAQ,OAAO6mB,EAAIslD,iBAAiBnsE,IAAS,uBAAyB,SAAS0oB,GAAQ,OAAO7B,EAAIulD,0BAA0B,yBAA2B,SAAUC,GAAmB,OAAOxlD,EAAIylD,yBAAyBD,OAAuBxlD,EAAIe,KAAMf,EAAkB,eAAEI,EAAG,aAAa,CAACI,MAAM,CAAC,aAAeR,EAAI0lD,aAAa,SAAW1lD,EAAIqY,UAAU3X,GAAG,CAAC,iBAAmB,SAAU9vB,GAAS,OAAOovB,EAAI4jD,iBAAiBhzE,IAAU,eAAiB,SAAU+0E,GAAW,OAAO3lD,EAAI4lD,eAAeD,OAAe3lD,EAAIe,MAAM,IAC9sKH,EAAkB,CAAC,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,8BAA8B,OAAS,oBAAoB,CAACJ,EAAG,IAAI,CAACiB,YAAY,yB,4RCD5M,EAAS,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,eAAeb,MAAM,CAAC,GAAK,YAAY,CAACJ,EAAG,MAAM,CAACiB,YAAY,qBAAqB,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,gBAAgBrB,EAAI0B,GAAI1B,EAAgB,cAAE,SAAS6lD,GAAS,OAAOzlD,EAAG,MAAM,CAACzsB,IAAIkyE,EAAQp0C,OAAOpQ,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG8jD,EAAQvtC,eAAgButC,EAAmB,YAAEzlD,EAAG,KAAK,CAACiB,YAAY,gBAAgBrB,EAAI0B,GAAImkD,EAAgB,UAAE,SAASC,GAAM,OAAO1lD,EAAG,KAAK,CAACzsB,IAAImyE,EAAKr0C,QAAQ,CAACrR,EAAG,OAAO,CAACiB,YAAY,yBAAyB,CAACjB,EAAG,IAAI,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIkC,MAAM,WAAY4jD,MAAS,CAAC9lD,EAAI4B,GAAG5B,EAAI+B,GAAG+jD,EAAKxtC,aAAcwtC,EAAgB,YAAE1lD,EAAG,IAAI,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,eAAeX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAI+lD,gBAAgBD,EAAKr0C,cAAczR,EAAIe,OAAQ+kD,EAAgB,YAAE1lD,EAAG,MAAM,CAACiB,YAAY,YAAYb,MAAM,CAAC,GAAK,iBAAmBslD,EAAKr0C,SAAS,CAACrR,EAAG,KAAKJ,EAAI0B,GAAIokD,EAAa,UAAE,SAASE,GAAO,OAAO5lD,EAAG,KAAK,CAACzsB,IAAIqyE,EAAMv0C,QAAQ,CAACrR,EAAG,OAAO,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIkC,MAAM,WAAY8jD,MAAU,CAAChmD,EAAI4B,GAAG5B,EAAI+B,GAAGikD,EAAM1tC,oBAAmB,KAAKtY,EAAIe,UAAS,GAAGf,EAAIe,UAAS,KAAKX,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,cAAc,QAAU,uBAC94C,EAAkB,CAAC,WAAa,IAAIR,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,IAAI,CAACiB,YAAY,oBAAoBb,MAAM,CAAC,QAAU,mBAAmB,CAACJ,EAAG,IAAI,CAACiB,YAAY,2BCG/P4kD,EAAO,iLAGxB,SAAgBx0C,GACZ,IAAIy0C,EAAYl2E,SAASy9B,eAAe,iBAAmBgE,QACzCl/B,IAAd2zE,GAAyC,OAAdA,IACI,QAA3BA,EAAUriD,MAAMqqB,QAChBg4B,EAAUriD,MAAMqqB,QAAU,GAG1Bg4B,EAAUriD,MAAMqqB,QAAU,YAVd,GAASzvB,QACVqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,mCADN01D,EAAO,gBAD3BhlD,QACoBglD,WCJ2R,I,YCO5SnlD,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAId,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,UAAU,CAACjB,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,QAAQ,CAACiB,YAAY,SAASb,MAAM,CAAC,KAAO,OAAO,GAAK,eAAe,YAAcR,EAAIy9B,aAAa/8B,GAAG,CAAC,MAAQ,SAAUmB,GAAU,OAAO7B,EAAIkC,MAAM,cAAeL,OAAczB,EAAG,IAAI,CAACiB,YAAY,wBAAwBjB,EAAG,MAAM,CAACiB,YAAY,uBAAuB,CAACjB,EAAG,KAAK,CAACiB,YAAY,cAAcrB,EAAI0B,GAAI1B,EAAkB,gBAAE,SAASttB,GAAG,OAAO0tB,EAAG,KAAK,CAACzsB,IAAIjB,EAAEiD,YAAY,CAACyqB,EAAG,MAAM,CAACiB,YAAY,+BAA+B,CAACjB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM9tB,EAAE0D,UAAU,QAAU,iDAAiDgqB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAGrvB,EAAEyzE,eAAe/lD,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGrvB,EAAEuD,UAAU,MAAM+pB,EAAI+B,GAAGrvB,EAAE6D,cAAc6pB,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAmB,IAAfrvB,EAAE2E,UAAkB3E,EAAE2E,UAAY,MAAQ,IAAK,IAAI2oB,EAAI+B,GAAGrvB,EAAEwE,qBAAoB,QAC3/B,EAAkB,GCGDkvE,EAAS,wDAA9B,iD,0BAcI,EAAA3oB,YAAsB,EAAKn7B,GAAG,oBAAoB5R,WAdtD,EAA8B,0BAAS+N,QAOXqE,gBAAvBC,eAAM,CAAEtyB,KAAM8f,SAAS,qCAPP61D,EAAS,gBAD7BnlD,QACoBmlD,WCJ6R,ICO9S,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,oBClBX,EAAS,WAAa,IAAIpmD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,SAASb,MAAM,CAAC,GAAK,gBAAgB,CAACJ,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,kBAAkBlC,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,KAAK,CAACiB,YAAY,oBAAoBrB,EAAI0B,GAAI1B,EAAiB,eAAE,SAASttB,GAAG,OAAO0tB,EAAG,KAAK,CAACzsB,IAAIjB,EAAE8+B,YAAY,CAACpR,EAAG,MAAM,CAACiB,YAAY,8BAA8B,CAACjB,EAAG,IAAI,CAACiB,YAAY,gCAAgCX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,kBAAmBxvB,MAAM,CAAC0tB,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,OAAO,CAACE,MAAwB,MAAjB5tB,EAAE2zE,YAAsB,mCAAqC,qCAAsC,CAACjmD,EAAG,IAAI,CAACE,MAAwB,MAAjB5tB,EAAE2zE,YAAsB,oBAAsB,uBAAwBjmD,EAAG,MAAM,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,KAAK,CAACiB,YAAY,4BAA4B,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGrvB,EAAE4zE,aAA4B,IAAd5zE,EAAE6zE,SAAgBnmD,EAAG,MAAM,CAACiB,YAAY,yBAAyB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAGrvB,EAAE6zE,aAAavmD,EAAIe,SAASX,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,+BAA+BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,2BAA4BxvB,MAAM,CAAC0tB,EAAG,IAAI,CAACiB,YAAY,4BAA2B,QACvyC,EAAkB,GCGDmlD,EAAW,qJAAS/nD,QACdqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,oCADNi2D,EAAW,gBAD/BvlD,QACoBulD,WCJ+R,ICOhT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIxmD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,cAAcb,MAAM,CAAC,GAAK,aAAa,CAACJ,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,MAAM,CAACiB,YAAY,kBAAkB,CAACjB,EAAG,MAAM,CAACiB,YAAY,4CAA4CrB,EAAI0B,GAAI1B,EAAkB,gBAAE,SAASymD,GAAO,OAAOrmD,EAAG,MAAM,CAACzsB,IAAI8yE,EAAMC,YAAYrlD,YAAY,SAAS,CAACjB,EAAG,KAAK,CAACiB,YAAY,oBAAoB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG0kD,EAAMnwE,UAAU8pB,EAAG,MAAM,CAACiB,YAAY,YAAaolD,EAAiB,YAAErmD,EAAG,KAAKJ,EAAI0B,GAAI+kD,EAAgB,YAAE,SAASE,GAAS,OAAOvmD,EAAG,KAAK,CAACzsB,IAAIgzE,EAAQD,aAAa,CAACtmD,EAAG,OAAO,CAACiB,YAAY,uBAAuBjB,EAAG,IAAI,CAACM,GAAG,CAAC,MAAQ,SAAUimD,GAAW,OAAO3mD,EAAIkC,MAAM,mBAAoBykD,MAAc,CAAC3mD,EAAI4B,GAAG5B,EAAI+B,GAAG4kD,EAAQrwE,eAAc,GAAG0pB,EAAIe,UAAS,GAAGX,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,gCAAgCX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,6BAA6B,CAAC9B,EAAG,IAAI,CAACiB,YAAY,6BAA6BjB,EAAG,MAAM,CAACiB,YAAY,mBAAmBrB,EAAI0B,GAAI1B,EAAiB,eAAE,SAAS5f,GAAM,OAAOggB,EAAG,IAAI,CAACzsB,IAAIyM,EAAKsmE,YAAYhmD,GAAG,CAAC,MAAQ,SAAUtgB,GAAQ,OAAO4f,EAAIkC,MAAM,mBAAoB9hB,MAAW,CAACggB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMpgB,EAAKwmE,YAAYxmD,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG3hB,EAAK9J,eAAc,UACn4C,EAAkB,G,wBCIhBuwE,EAAwB,wBAGTC,EAAY,4LAI7B,WACI,IAAI1B,EAA2B1M,eAAgBmO,GAC3CE,OAAoCx0E,IAAnB6yE,GAAmD,OAAnBA,GAA2BA,EAAez3E,OAAS,EAAKy3E,EAAe/2B,KAAK,KAAO,GACxIpuB,KAAKiC,MAAM,2BAA4B6kD,KAPd,qBAU7B,WACIxZ,eAAep5D,OAAQ0yE,EAAuB5mD,KAAK+mD,8BAX1B,2BAc7B,WACItZ,eAAev5D,OAAQ0yE,EAAuB5mD,KAAK+mD,gCAf1B,GAASvoD,QAChBqE,gBAArBC,eAAK,CAAEtyB,KAAK8f,SAAS,qCACAuS,gBAArBC,eAAK,CAAEtyB,KAAK8f,SAAS,oCAFLu2D,EAAY,gBADhC7lD,QACoB6lD,WCRgS,ICOjT,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAI9mD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,SAASb,MAAM,CAAC,GAAK,YAAY,CAACJ,EAAG,MAAM,CAACiB,YAAY,yBAAyB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACJ,EAAI4B,GAAG,MAAMxB,EAAG,OAAO,CAACiB,YAAY,yBAAyB,CAACrB,EAAI4B,GAAG5B,EAAI+B,QAA0BxvB,IAAtBytB,EAAI8kD,eAAqD,OAAtB9kD,EAAI8kD,cAA0B9kD,EAAI8kD,cAAcn3E,OAAS,UAAUyyB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,SAAS,CAACiB,YAAY,+BAA+BX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,sBAAsB,CAAC9B,EAAG,IAAI,CAACiB,YAAY,yBAAyBjB,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,KAAK,CAACiB,YAAY,kCAAkC,CAACjB,EAAG,KAAK,CAACE,MAA2B,IAApBN,EAAIinD,aAAqB,SAAW,IAAK,CAAC7mD,EAAG,IAAI,CAACiB,YAAY,WAAWb,MAAM,CAAC,cAAc,OAAOE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIknD,kBAAkB,OAAO,CAAClnD,EAAI4B,GAAG,UAAUxB,EAAG,KAAK,CAACE,MAA2B,MAApBN,EAAIinD,aAAuB,SAAW,IAAK,CAAC7mD,EAAG,IAAI,CAACiB,YAAY,WAAWb,MAAM,CAAC,cAAc,OAAOE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIknD,kBAAkB,SAAS,CAAClnD,EAAI4B,GAAG,UAAUxB,EAAG,KAAK,CAACE,MAA2B,MAApBN,EAAIinD,aAAuB,SAAW,IAAK,CAAC7mD,EAAG,IAAI,CAACiB,YAAY,WAAWb,MAAM,CAAC,cAAc,OAAOE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIknD,kBAAkB,SAAS,CAAClnD,EAAI4B,GAAG,YAAYxB,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,KAAK,CAACiB,YAAY,oBAAoBrB,EAAI0B,GAAI1B,EAAiB,eAAE,SAASttB,GAAG,OAAO0tB,EAAG,KAAK,CAACzsB,IAAIjB,EAAEy0E,QAAQtjD,MAA4B,IAApB7D,EAAIinD,cAAsBjnD,EAAIinD,cAAgBv0E,EAAE00E,UAAa,GAAK,gBAAiB,CAAChnD,EAAG,MAAM,CAACiB,YAAY,8BAA8B,CAACjB,EAAG,IAAI,CAACiB,YAAY,6CAA6CX,GAAG,CAAC,MAAQ,SAAUvnB,GAAQ,OAAO6mB,EAAIkC,MAAM,eAAgBxvB,MAAQ,CAACstB,EAAI6N,GAAG,GAAE,GAAMzN,EAAG,MAAM,CAACiB,YAAY,mBAAmB,CAACjB,EAAG,MAAM,CAACiB,YAAY,8BAA8B,CAACjB,EAAG,OAAO,CAACiB,YAAY,mBAAmB,CAACrB,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIqnD,gBAAgB30E,EAAE00E,eAAepnD,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAGrvB,EAAE40E,WAAW,OAAOlnD,EAAG,MAAM,CAACiB,YAAY,+BAA+B,CAACjB,EAAG,IAAI,CAACiB,YAAY,kBAAkBrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAGrvB,EAAE60E,gBAAgB,KAAKnnD,EAAG,OAAO,CAACiB,YAAY,yCAAyCrB,EAAI4B,GAAG,IAAI5B,EAAI+B,GAAG/B,EAAIwnD,iBAAiB90E,EAAE+0E,aAAa,kBAAiB,YACtyE,GAAkB,CAAC,WAAa,IAAIznD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,SAAS,CAACjB,EAAG,OAAO,CAACiB,YAAY,oCAAoC,CAACjB,EAAG,IAAI,CAACiB,YAAY,4BCGrMqmD,I,UAAW,wDAAhC,iD,0BAEI,EAAAT,aAAuB,GAF3B,EAAgC,wDAI5B,SAAkBA,GACdhnD,KAAKgnD,aAAeA,IALI,6BAQ5B,SAAgBG,GACZ,IAAIO,EAAU,GACd,OAAOP,GACH,IAAK,KACDO,EAAU1nD,KAAKqC,GAAG,cAAc5R,WAChC,MACJ,IAAK,KACDi3D,EAAU1nD,KAAKqC,GAAG,MAAM5R,WACxB,MAER,OAAOi3D,IAlBiB,8BAqB5B,SAAiBF,GACb,IAAIG,EAAc,GACdC,EAAQ,IAAIpkE,KACZqkE,EAAW,IAAIrkE,KAAKgkE,GASxB,OAPIG,EADAE,EAASC,cAAc1zE,MAAM,EAAG,KAAOwzE,EAAME,cAAc1zE,MAAM,EAAG,IACtD,CAAEyzE,EAASv8D,WAAa,EAAIu8D,EAASv8D,WAAa,IAAMu8D,EAASv8D,WAC/Du8D,EAASt8D,aAAe,EAAIs8D,EAASt8D,aAAe,IAAMs8D,EAASt8D,cAAe6iC,KAAK,OAGzFy5B,EAASC,cAAc1zE,MAAM,EAAG,IAG3CuzE,MAjCiB,GAASnpD,SACdqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,qCADNm3D,GAAW,gBAD/BzmD,QACoBymD,cCJ+R,MCOhT,GAAY,eACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIa,M,kCCwBMtsC,GAAmB,wDAAxC,iD,0BAEE,EAAA4sC,UAAuC,GACvC,EAAAtC,aAA0C,GAC1C,EAAAjtC,eAA4C,GAC5C,EAAAmsC,eAAwC,GACxC,EAAAE,cAAoC,GACpC,EAAAG,cAAoC,GACpC,EAAAG,eAAsC,GACtC,EAAAC,cAAqC,GACrC,EAAA4C,SAAmB,EACnB,EAAAtyE,WAAqB,GACrB,EAAAZ,QAAkB,GAClB,EAAAsjC,SAAmB,GACnB,EAAAzgC,eAAyB,GACzB,EAAAhC,YAAsB,GACtB,EAAAsyE,QAAkB,GAClB,EAAAC,aAAuB,GAGvB,EAAA/D,sBAAgC,EAGhC,EAAAH,eAAyB,EACzB,EAAAI,iBAA2B,EAC3B,EAAAE,iBAA2B,EAC3B,EAAAE,kBAA4B,EAC5B,EAAA2D,gBAA0B,EA3B5B,EAAwC,mDA8BtC,WACEnoD,KAAK+b,WA/B+B,sBAkCtC,WACE3C,OAAWgvC,WAnCyB,8BAsCtC,SAAiBz3E,GACfqvB,KAAKgkD,eAAgB,EACrBhkD,KAAKokD,iBAAkB,EACvBpkD,KAAKskD,iBAAkB,EACvBtkD,KAAKmoD,eAA0B,KAATx3E,EACtBqvB,KAAKwkD,kBAAmB,IA3CY,wBA+CtC,SAAWtrE,GAELA,IACFjE,OAAIozE,IAAIC,WAAW,CAAC92C,OAAQt4B,EAAKs4B,OAAQ97B,WAAYsqB,KAAKqR,YAAY53B,KAAK/D,WAAYZ,QAASkrB,KAAKqR,YAAY53B,KAAK3E,QAASyzE,YAAarvE,EAAKm/B,WACxH/mC,MAAK,SAAC4G,OAG3BgB,EAAKohC,UACPlB,OAAW9+B,KAAKpB,GAEZA,EAAKiF,aAAejF,EAAKG,SAAS3L,OAAS,GAAKwL,EAAKG,SAAS,GAAGihC,WACnElB,OAAW9+B,KAAKpB,EAAKG,SAAS,OA1DA,qFA+DtC,WAAqBqsE,GAArB,qFACMA,EAAQprC,UADd,gBAEIta,KAAK2jD,iBAAiB,KACtBvqC,OAAW9+B,KAAKorE,GAHpB,4BAMQA,EAAQvnE,aAAeunE,EAAQrsE,SAAS3L,OAAS,GAAKg4E,EAAQrsE,SAAS,GAAGihC,WANlF,iBAOMta,KAAK2jD,iBAAiB,KACtBvqC,OAAW9+B,KAAKorE,EAAQrsE,SAAS,IARvC,yCAWYnF,OAAegnB,WAAW8E,KAAKqC,GAAG,iBAAiB5R,YAX/D,iDA/DsC,uFAgFtC,SAAgB9f,GACdqvB,KAAKgkD,cAAyB,KAATrzE,EACrBqvB,KAAKokD,iBAAkB,EACvBpkD,KAAKskD,iBAAkB,EACvBtkD,KAAKwkD,kBAAmB,EACxBxkD,KAAKmoD,gBAAiB,EAET,KAATx3E,IAEFqvB,KAAK2kD,eAAiB,MAzFY,kFA8FtC,WAAkBh0E,GAAlB,mGACMA,GAAOA,EAAMgyB,iBACb6lD,EAA+Bz4E,SAASy9B,eAAe,gBAAiBp6B,MAE1D,SAAdzC,EAAMM,KAJZ,oBAK4B,IAApBu3E,EAAUpa,OALlB,gCAMYl6D,OAAegnB,WAAW,eANtC,OAO0BnrB,SAASy9B,eAAe,gBAAiBimB,QAPnE,8CAaQ+0B,EAAU96E,QAAU,GAClBoH,EAAUkrB,KAAKqR,YAAY53B,KAAK3E,QACpCG,OAAIozE,IAAII,mBAAmBD,EAAW1zE,GAASxD,MAAK,SAAC4G,GAEjD,EAAKysE,eADHzsE,GAGoB,OAI1B8nB,KAAK2kD,eAAiB,GAvB5B,iDA9FsC,yFA2HtC,SAAkBh0E,GAChBqvB,KAAKgkD,eAAgB,EACrBhkD,KAAKokD,gBAA2B,KAATzzE,EACvBqvB,KAAKskD,iBAAkB,EACvBtkD,KAAKwkD,kBAAmB,EACxBxkD,KAAKmoD,gBAAiB,EAET,KAATx3E,GAEFqvB,KAAK0oD,sBApI6B,sCAyItC,WAAwB,WACtBzzE,OAAIozE,IAAIM,uBAAuB3oD,KAAKtqB,WAAYsqB,KAAKlrB,SAASxD,MAAK,SAAC4G,GAClE,EAAKisE,qBAAuBjsE,EAAM,OA3IA,+BAgJtC,WAAiB,WACfjD,OAAIozE,IAAIO,gBAAgB5oD,KAAKtqB,WAAYsqB,KAAKlrB,SAASxD,MAAK,SAAC4G,GACvDA,GACF,EAAK2sE,cAAgB3sE,EACrB,EAAKisE,sBAAuB,IAE5B,EAAKU,cAAgB,GACrB,EAAKV,sBAAuB,QAvJI,4BA6JtC,SAAe0E,GAA8B,WAEf,IAAxBA,EAAaC,SACf9oD,KAAK+oD,aAAaF,EAAaC,QAASD,EAAaxB,UAAW,KAAM,KAGxEpyE,OAAIozE,IAAIW,sBAAsBH,EAAa3B,SAAS,GAAM51E,MAAK,SAAC4G,GAC9D,GAAIA,GAAO,EAAG,CAEZ,IAAI+wE,EAAO,EAAKpE,cAAcrqE,WAAU,SAAChF,GAAD,OAAOA,EAAE0xE,SAAW2B,EAAa3B,WACrE+B,GAAQ,GAAG,EAAKpE,cAAcj2E,OAAOq6E,EAAM,GACd,GAA7B,EAAKpE,cAAcn3E,SAAa,EAAKy2E,sBAAuB,SAxKhC,wFA8KtC,6GACMnkD,KAAKmkD,qBADX,gCAEcjwE,OAAe20D,aAAa,sBAF1C,kCAGM5zD,OAAIozE,IAAIa,yBAAyBlpD,KAAKtqB,WAAYsqB,KAAKlrB,SAASxD,KAAhE,yDAAqE,WAAO4G,GAAP,sFAC/DA,GAAO,GADwD,gCAE3DhE,OAAegnB,WAAW,aAFiC,OAIjE,EAAK2pD,cAAgB,GACrB,EAAKV,sBAAuB,EALqC,sCAO3DjwE,OAAegnB,WAAW,iBAPiC,2CAArE,uDAHN,gDA9KsC,oFAgMtC,SAAcvqB,GACZqvB,KAAKgkD,eAAgB,EACrBhkD,KAAKokD,iBAAkB,EACvBpkD,KAAKskD,gBAA2B,KAAT3zE,EACvBqvB,KAAKwkD,kBAAmB,EACxBxkD,KAAKmoD,gBAAiB,EAET,KAATx3E,GACFqvB,KAAKmpD,sBAxM6B,+BA6MtC,WAAiB,WACfl0E,OAAIozE,IAAIe,gBAAgBppD,KAAKtqB,WAAYsqB,KAAKlrB,SAASxD,MAAK,SAAC4G,GAEzD,EAAK8sE,cADH9sE,GAGmB,QAlNW,6BAwNtC,SAAgBmxE,GACd,GAA4B,IAAxBA,EAAaP,QACf,OAAQO,EAAaC,UACnB,IAAK,KACH,IAAI1tC,EACFytC,EAAaP,SACW,GAAvBO,EAAap+C,OAAc,WAAao+C,EAAap+C,OAAS,IACjEl7B,SAAS4U,SAAS/U,KAAOgsC,EACzB,MACF,IAAK,KACH5b,KAAK+oD,aAAaM,EAAaP,QAASO,EAAahD,SAAU,KAAM,KACrE,SAnO8B,+FAyOtC,WAA+BgD,GAA/B,4GACYn1E,OAAe20D,aAAa,cADxC,kCAEI5zD,OAAIozE,IACDkB,eAAeF,EAAa93C,WAAYvR,KAAKtqB,WAAYsqB,KAAKlrB,SAC9DxD,KAFH,yDAEQ,WAAO4G,GAAP,4FACAA,GAAO,GADP,gCAEIhE,OAAegnB,WAAW,aAF9B,OAGE+tD,EAAO,EAAKjE,cAAcxqE,WAAU,SAAChF,GAAD,OAAOA,EAAE+7B,YAAc83C,EAAa93C,cACxE03C,GAAQ,GACV,EAAKjE,cAAcp2E,OAAOq6E,EAAM,GALhC,sCAQI/0E,OAAegnB,WAAW,iBAR9B,2CAFR,uDAFJ,gDAzOsC,0FA4PtC,SAAmBvqB,GACjBqvB,KAAKgkD,eAAgB,EACrBhkD,KAAKokD,iBAAkB,EACvBpkD,KAAKskD,iBAAkB,EACvBtkD,KAAKwkD,iBAA4B,KAAT7zE,EACxBqvB,KAAKmoD,gBAAiB,IAjQc,gCAqQtC,WAAkB,WAChBlzE,OAAIozE,IAAImB,qBAAqBxpD,KAAKtqB,WAAYsqB,KAAKlrB,QAASkrB,KAAKroB,eAAgBqoB,KAAKrqB,YAAaqqB,KAAKioD,QAASjoD,KAAKkoD,aAAc,KAAK52E,MAAK,SAAC4G,GAC7I,GAAIA,EAAK,CACP,IAAIuxE,EAAyCvxE,EAC7C,EAAKitE,eAAiBsE,EAAkBvvE,QAAO,SAAC1E,GAAD,MAAqB,KAAdA,EAAEk0E,YACxD,EAAKtE,cAAgBqE,EAAkBvvE,QAAO,SAAC1E,GAAD,MAAqB,KAAdA,EAAEk0E,iBAEvD,EAAKvE,eAAiB,GACtB,EAAKC,cAAgB,QA7QW,8BAmRtC,SAAiBuE,MAnRqB,oCAsRtC,WACE,IAAI/tC,EAAM,oBACV5b,KAAK+oD,aAAantC,EAAK,aAAc,IAAK,OAxRN,sCA4RtC,SAAyBguC,GAAyB,WAChD30E,OAAIozE,IACDwB,uBAAuB7pD,KAAKtqB,WAAYsqB,KAAKlrB,QAAS80E,GACtDt4E,KAFH,yDAEQ,WAAO4G,GAAP,sFACAA,GAAO,GADP,gCAEIhE,OAAegnB,WAAW,aAF9B,OAGF,EAAK4uD,qBAHH,sCAKI51E,OAAegnB,WAAW,0BAL9B,2CAFR,yDA7RoC,sBA0StC,WACEszC,eACE,MACA,UACA,CAAE79D,MAAO,WAAYoH,OAAQ,CAAEO,UAAU,EAAOsE,QAAQ,EAAO7C,QAAQ,IACvE,CACE0vB,MAAO,KACPE,OAAQ,IACR8kC,QAASzuC,KAAK8N,YAlTkB,0BAuTtC,SAAa8N,EAAavlC,EAAeozB,EAAeE,GACtD,GAAW,IAAPiS,EAAW,CACb,IAAImuC,EAAStgD,GAAgB,KACzBugD,EAAUrgD,GAAkB,IAC5BsgD,GAASC,OAAOzgD,MAAQsgD,GAAU,EAClCI,GAAQD,OAAOvgD,OAASqgD,GAAW,EACnCl2E,EACF,QACAm2E,EACA,QACAE,EACA,WACAJ,EACA,UACAC,EACA,0CAEF91E,OAAOitB,KAAKya,EAAKvlC,EAAOvC,MAxUU,4BA6UtC,SACEs2E,EACAlxE,EACAowE,GAEA,IAFgB,sBAEP97E,GACP,IAAI8rC,IACW,KAAZgwC,IAAyBc,EAAW58E,GAAG68E,eACxC,EAAK7xC,eAAeh/B,MAAK,SAAChE,GAAD,OAAOA,EAAEC,IAAM20E,EAAW58E,GAAGgkC,WAIpD8H,GAAgB8wC,EAAW58E,GAAG2Q,aAChC,EAAKmsE,eAAeF,EAAW58E,GAAG6L,SAAU+wE,EAAW58E,GAAI87E,GAGpD,GAAL97E,IACF0L,EAAKG,SAAW,GAChBH,EAAKiF,aAAc,GAEjBm7B,GACFpgC,EAAKG,SAASrL,KAAKo8E,EAAW58E,KAhBzBA,EAAI,EAAGA,EAAI48E,EAAW18E,OAAQF,IAAK,EAAnCA,GAoBL0L,EAAKG,SAAS3L,OAAS,IACzBwL,EAAKiF,aAAc,KAvWe,uBA2WtC,WACEwyB,QAAYzN,KAAK,CAAErC,UAAW0pD,QAAiBC,OAAO,EAAMp3E,MAAO,CAAEq3E,IAAK,WA5WtC,qBA+WtC,WAAO,WACGhP,EAASz7C,KAAK0qD,YAAdjP,KACF3nB,EAAU,CAAC,QACjB9zB,KAAKwY,eAAiBxY,KAAKqR,YAAYuJ,YAAY16B,OAGnD8f,KAAKgoD,WACHhoD,KAAKqR,YAAYuJ,YAAY+vC,eAAgB3qD,KAAKqR,YAAYuJ,YAAYgwC,kBAG5E5qD,KAAKtqB,WAAasqB,KAAKqR,YAAY53B,KAAK/D,WACxCsqB,KAAKlrB,QAAUkrB,KAAKqR,YAAY53B,KAAK3E,QACrCkrB,KAAKroB,eAAiBqoB,KAAKqR,YAAY53B,KAAK9B,eAE5C,IAdK,eAcInK,GACP,IAAIq9E,EAAiCpP,EAAKrmE,MAAM5H,GAExB,GAAtBq9E,EAAMR,cACY,QAAlBQ,EAAMC,UACN,EAAKtyC,eAAeh/B,MAAK,SAAChE,GAAD,OAAOA,EAAEC,IAAMo1E,EAAMr5C,YAE9C,EAAKu2C,UAAU/5E,KAAK68E,GAChBA,EAAM1sE,aACR,EAAKmsE,eAAeO,EAAMxxE,SAAUwxE,EAAO,OAK5C/2B,EAAQ96C,SAAS6xE,EAAMC,WACxB,EAAKtyC,eAAeh/B,MAAK,SAAChE,GAAD,OAAOA,EAAEC,IAAMo1E,EAAMr5C,YAE9C,EAAKi0C,aAAaz3E,KAAK68E,GACnBA,EAAM1sE,aACR,EAAKmsE,eAAeO,EAAMxxE,SAAUwxE,EAAO,OAnBxCr9E,EAAI,EAAGA,EAAIiuE,EAAKrmE,MAAM1H,OAAQF,IAAK,EAAnCA,GAyBTwyB,KAAKoY,SAAWpY,KAAKqR,YAAYwJ,WAAWve,SAG5C0D,KAAK+qD,2BAGL/qD,KAAK8pD,yBA5Z+B,GAAStrD,QAA5B2c,GAAmB,gBAvBvCna,eAAU,CACTmD,WAAY,CACVkM,kBACA26C,8BACA7E,YACAH,UACAiF,kBACA1E,cACAM,eACAY,eACA8C,yBAEFtpD,SAAU,kBACLC,eAAW,CACZmQ,YAAa6J,UAGjB9W,QAAS,kBACJC,eAAW,CACZ0X,OAAQtP,aAIO0O,cC1CuS,MCOxT,GAAY,eACd,GACArb,EACAa,GACA,EACA,KACA,KACA,MAIa,gB,6CClBf,W,oDCAA,W,4KCAA,G,wCAAKzsB,SAAWnE,SACd,MAAM,IAAIiB,MAAM,oDAkBE,WAAlB,eAAO5B,IACPA,GAC0B,WAA1B,eAAOA,EAAOD,WAQd+E,OAAO6jC,KAAOA,OASQ,oBAAXmzC,QAAyBA,WAClCA,OAAO,OAAQ,IAAI,WACjB,OAAOnzC,W,2DCxCb,W,+ECWM73B,EAAqB,CACvB,CACI7N,KAAM2nB,OAAK3mB,EAAE,sBAAsBod,WACnC/Y,UAAU,EACV2B,SAAU,CACR,CAAEhH,KAAM2nB,OAAK3mB,EAAE,oBAAoBod,WAAY/Y,UAAU,EAAMmI,GAAI,CAAExN,KAAM,aAC3E,CAAEA,KAAM2nB,OAAK3mB,EAAE,QAAQod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,kBAItE,CACIA,KAAM2nB,OAAK3mB,EAAE,UAAUod,WACvB/Y,UAAU,EACV2B,SAAU,CACR,CAAEhH,KAAM2nB,OAAK3mB,EAAE,QAAQod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,WAChE,CAAEA,KAAM2nB,OAAK3mB,EAAE,MAAMod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,cAC9D,CAAEA,KAAM2nB,OAAK3mB,EAAE,mBAAmBod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,SAC3E,CAAEA,KAAM2nB,OAAK3mB,EAAE,YAAYod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,WACpE,CAAEA,KAAM2nB,OAAK3mB,EAAE,UAAUod,WAAY/Y,UAAU,EAAOmI,GAAG,CAAExN,KAAM,WACjE,CAAEA,KAAM2nB,OAAK3mB,EAAE,wBAAwBod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,iBAGhF,CAAEA,KAAM2nB,OAAK3mB,EAAE,sBAAsBod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,cAIpF,CACIA,KAAM2nB,OAAK3mB,EAAE,MAAMod,WACnB/Y,UAAU,EACV2B,SAAU,CACR,CAAEhH,KAAM2nB,OAAK3mB,EAAE,QAAQod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,mBAItE,CACIA,KAAM2nB,OAAK3mB,EAAE,cAAcod,WAC3B/Y,UAAU,EACV2B,SAAU,CACR,CAAEhH,KAAM2nB,OAAK3mB,EAAE,cAAcod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,YACtE,CAAEA,KAAM2nB,OAAK3mB,EAAE,UAAUod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,sBAClE,CAAEA,KAAM2nB,OAAK3mB,EAAE,SAASod,WAAY/Y,UAAU,EAAOmI,GAAI,CAAExN,KAAM,iBAK5D6N,gB,iLCrDX8rD,EAAU2P,EAAQ,QAEP,QAIb/gB,cAJa,SAICllD,GACZ,OAAOT,OAAIjC,IAAsB,CAC/B4oC,IAAK,8BACLU,OAAQ,CACN5mC,WAAYA,MAQlBglB,cAhBa,SAgBCxhB,GACZ,OAAOjE,OAAI0mC,KAAa,CACtBC,IAAK,8BACL1uC,KAAMgM,KAOVujD,eA1Ba,SA0BE3nD,EAAiBY,GAC9B,OAAOT,OAAIjC,IAAuB,CAChC4oC,IAAK,8BACLU,OAAQ,CACNxnC,QAASA,EACTY,WAAYA,MAQlBmnD,eAvCa,SAuCE3jD,GACb,OAAOjE,OAAI0mC,KAAa,CACtBC,IAAK,8BACL1uC,KAAMgM,KAOVyhB,6BAjDa,WAkDX,OAAO1lB,OAAIjC,IAAiC,CAC1C4oC,IAAK,iCAOT/gB,wBA1Da,SA0DW3hB,GACtB,OAAOjE,OAAI0mC,KAAa,CACtBC,IAAK,yCACL1uC,KAAMgM,KAOV0hB,wBApEa,SAoEWllB,GACtB,OAAOT,OAAI0mC,KAA2B,CACpCC,IAAK,sCACL1uC,KAAM,CACJkY,WAAY1P,MAQlB4xD,yBAhFa,SAgFYpuD,GACvB,OAAOjE,OAAI0mC,KAAa,CACtBC,IAAK,0CACL1uC,KAAM,CACJwI,WAAYwD,EAAKxD,WACjB0vD,WAAYlsD,EAAKksD,eAOvBf,OAAQ,WACN,OAAOpvD,OAAIjC,IAAmB,CAC5B4oC,IAAK,qCAOT6mB,OAAQ,SAACvpD,GACP,OAAOjE,OAAI0mC,KAAa,CACtBC,IAAK,kCACL1uC,KAAMgM,KAOV6vD,SAAU,WACR,OAAO9zD,OAAIjC,IAAgC,CACzC4oC,IAAK,wBAOT+zB,SAAU,SAACz2D,GACT,OAAOjE,OAAI0mC,KAAc,CACvBC,IAAK,qBACL1uC,KAAM,CACJu6D,MAAOvuD,MAQbozD,cAAe,WACb,OAAOr3D,OAAIjC,IAAoB,CAC7B4oC,IAAK,+BAIT9gB,iBA1Ia,SA0II5tB,GACf,OAAO+H,OAAI0mC,KAAK,CACdC,IAAK,gCACL1uC,KAAM,CACJs0C,SAAUt0C,EAAKs0C,SACf7+B,MAAOzV,EAAKyV,MACZE,IAAK3V,EAAK2V,QAKhBoY,WArJa,SAqJF/tB,GACT,OAAOi+E,IAAM,CACX7tE,OAAQ,OACRs+B,IAAK8nC,eAAc,8BACnB0H,aAAc,cACdl+E,KAAM,CACJs0C,SAAUt0C,EAAKs0C,SACf7+B,MAAOzV,EAAKyV,MACZE,IAAK3V,EAAK2V,OAEXvR,MAAK,SAAU+5E,IAGmB,GAA/Bn+E,EAAK0+D,SAAShwD,QAAQ,OACxB1O,EAAK0+D,UAAY,QAGnB,IAAM1+B,EAAO,IAAIo+C,KAAK,CAACD,EAASn+E,MAAO,CAAEsD,KAAM,oBAC/C,GAAI0D,OAAO6/B,WAAc7/B,OAAO6/B,UAAkBC,iBAC9C9/B,OAAO6/B,UAAkBC,iBAAiB9G,EAAMhgC,EAAK0+D,cAClD,CACL,IAAM33B,EAAOlkC,SAASQ,cAAc,KACpC0jC,EAAKrkC,KAAOsE,OAAOggC,IAAIC,gBAAgBjH,GACvC+G,EAAKX,SAAL,UAAmBpmC,EAAK0+D,UACxB33B,EAAKtE,QACLq8B,EAAQuf,UAAS,kBAAMt3C,EAAKkG,iBAKlC4H,OAnLa,SAmLNroC,GACL,OAAOzE,OAAI0mC,KAAc,CACvBC,IAAK,wBACL1uC,KAAMwM,KAUVgyD,YAhMa,SAgMDptD,EAAe89D,GAOzB,OANK99D,GAAsB,IAAfA,EAAI5Q,QACdsG,QAAQjC,MAAR,yCAEGqqE,GACHpoE,QAAQjC,MAAR,yDAEKkD,OAAI0mC,KAAc,CACvBC,IAAK,uBACL1uC,KAAM,CACJoR,MACA89D,0BAKA/T,mBAhNO,SAgNYtxD,GAAa,6JACvB9B,OACVjC,IAAkB,CACjB4oC,IAAK,0BACLU,OAAQ,CACNvlC,MAAOA,KAGVzF,MAAK,SAAC4G,GACL,OAAOA,KATyB,sFAkBtCiiB,kBAlOa,SAkOKzkB,GAChB,OAAOT,OACJ0mC,KAA4B,CAC3BC,IAAK,2CACL1uC,KAAM,CACJkY,WAAY1P,KAGfpE,MAAK,SAAC4G,GAAD,OAASA,MAQnBmiB,aAlPa,SAkPA1lB,GACX,OAAOM,OACJ0mC,KAAc,CACbC,IAAK,6BACL1uC,KAAMyH,IAEPrD,MAAK,SAAC4G,GAAD,OAASA,MAQnBqiB,gBAhQa,SAgQG5lB,GACd,OAAOM,OACJ0mC,KAAc,CACbC,IAAK,6BACL1uC,KAAMyH,IAEPrD,MAAK,SAAC4G,GAAD,OAASA,MAUnBgiB,mBAhRa,SAgRMplB,EAAiBY,GAA0C,IAArBqkB,EAAqB,uDAAD,EAC3E,OAAO9kB,OACJ0mC,KAA6B,CAC5BC,IAAK,wCACL1uC,KAAM,CACJu1C,QAAS3tC,EACTsQ,WAAY1P,EACZ81E,UAAWzxD,KAGdzoB,MAAK,SAAC4G,GAEL,OAAOA,MAObupC,UAnSa,WAoSX,OAAOxsC,OACJjC,IAAsB,CACrB4oC,IAAK,oBAENtqC,MAAK,SAAC4G,GACL,OAAOA,MAObk9D,gBAhTa,SAgTG1/D,GACd,OAAOT,OAAI0mC,KAAuB,CAChCC,IAAK,+BACL1uC,KAAM,CACJkY,WAAY1P,MAQlBy/D,gBA5Ta,SA4TGjoE,GACd,OAAO+H,OAAI0mC,KAAc,CACvBC,IAAK,kCACL1uC,KAAMA,KAOV8kE,gBAtUa,WAuUX,OAAO/8D,OAAIjC,IAAwB,CACjC4oC,IAAK,uBAOTi2B,eA/Ua,SA+UEb,GACb,OAAO/7D,OAAIw2E,IAAI,CACb7vC,IAAK,oBACL1uC,KAAM,CACJmF,KAAM2+D,EAAS3+D,KACfyO,MAAOkwD,EAASlwD,MAChBkV,WAAYg7C,EAASh7C,eAQ3B47C,eA7Va,SA6VEZ,GACb,OAAO/7D,OAAI0mC,KAAK,CACdC,IAAK,oBACL1uC,KAAM,CACJuI,GAAIu7D,EAASv7D,GACbpD,KAAM2+D,EAAS3+D,KACfyO,MAAOkwD,EAASlwD,MAChBkV,WAAYg7C,EAASh7C,eAkB3Bq7C,eAtXa,SAsXE57D,GAEb,OADAzB,QAAQ4M,IAAI,MAAOnL,GACZR,OAAI0mC,KAAK,CACdC,IAAK,+BAAF,OAAiCnmC,MAOxCkkB,aAhYa,WAiYX,OAAO1kB,OACJjC,IAAsB,CACrB4oC,IAAK,wBAENtqC,MAAK,SAAC4G,GAAD,OAASA,MAOnB2hB,gBA5Ya,SA4YG3sB,GACd,OAAO+H,OAAI0mC,KAAc,CACvBC,IAAK,iCACL1uC,KAAMA,KAQV4sB,aAvZa,SAuZA5sB,GACX,OAAO+H,OAAI0mC,KAAc,CACvBC,IAAK,8BACL1uC,KAAMA,KAKVilE,iBA/Za,WAgaV,OAAOl9D,OAAIjC,IAAqB,CAC9B4oC,IAAI,wBAKT83B,aAtaa,SAsaAxmE,GACX,OAAO+H,OAAI0mC,KAAc,CACvBC,IAAK,qBACL1uC,KAAMA,KAIVgpD,oBA7aa,SA6aOxgD,GAClB,OAAOT,OAAIjC,IAAI,CACX4oC,IAAK,4BACLU,OAAQ,CACJ5mC,iBAKVg2E,0BAtba,SAsbah2E,EAAoBX,GAC1C,OAAOE,OAAIjC,IAAI,CACX4oC,IAAK,yDAAF,OAA2DlmC,EAA3D,qBAAkFX,MAmB7FqmE,wBA3ca,SA2cWJ,GACtB,OAAO/lE,OAAI0mC,KAAK,CACZC,IAAK,mCACL1uC,KAAM8tE,EACN2Q,QAAQ,CACN,QAAW,sBACX,eAAgB,4B,+GCtd1B,IAAI7rD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,aAAa,KAAO,WAAW,CAAGR,EAAI6rD,SAA4LzrD,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,OAAO,MAAQR,EAAI3sB,SAAnO+sB,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,SAAS,MAAQR,EAAI3sB,MAAM,SAAW2sB,EAAIkjC,SAAS,UAAYljC,EAAImjC,WAAWziC,GAAG,CAAC,MAAQ,SAAUrtB,GAAS,OAAO2sB,EAAIkC,MAAM,QAAS7uB,QAAwE,IAAI,MACjeutB,EAAkB,G,wHCaD2tB,EAAS,wDAA9B,iD,0BAME,EAAA2U,SAAoC,CAClCG,SAAS,EACTC,QAAQ,EACR15B,OAAQ,QAKV,EAAAu5B,UAAsC,CACpCc,aAAc,IACdC,KAAM,SAhBV,EAA8B,8CAmB5B,WACEjkC,KAAKkjC,UAAUe,KAAOjkC,KAAKqR,YAAYwJ,WAAWve,aApBxB,GAASkC,QACAqE,gBAApCC,eAAK,CAAEtyB,KAAMuyB,OAAQC,QAAS,MAAM,4BACIH,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,+BAFtBsrB,EAAS,gBAR7BttB,eAAU,CACTmD,WAAY,CACV+/B,kBAEFjjC,SAAUC,eAAW,CACnBmQ,YAAa5E,YAGI6hB,WCd6R,I,wBCQ9SztB,EAAY,eACd,EACAf,EACAa,GACA,EACA,KACA,WACA,MAIa,OAAAE,E,6ECjBA,oBAEVxsB,QAFL,SAEyBQ,EAAQkD,GACzBlD,EAAOG,OAAOX,OAAoB0D,MCF1C,yBACG1D,QADH,SACwBC,GACpB,OAAOA,EAAMssB,SAFjB,iBAKGvsB,QALH,SAKgBC,GACZ,OAAOA,EAAMu3E,SANjB,iBASGx3E,QATH,SASuBC,GACnB,OAAOA,EAAMqqB,KAAKjb,WAVtB,iBAaGrP,QAbH,SAauBC,GACnB,OAAOA,EAAMw3E,WAdjB,iBAiBGz3E,QAjBH,SAiB4BC,GACxB,OAAOA,EAAMy3E,oBAlBjB,GCAA,yBACG13E,QADH,SACwBC,EAAOK,GAC3BL,EAAMssB,MAAQjsB,KAFlB,iBAKGN,QALH,SAKgBC,EAAOK,GACnBL,EAAMu3E,MAAQl3E,KANlB,iBASGN,QATH,SASuBC,EAAOK,GAC1BL,EAAMqqB,KAAKjb,QAAU/O,KAVzB,iBAaGN,QAbH,SAauBC,EAAOyD,GAC1BzD,EAAMw3E,QAAU/zE,KAdpB,iBAiBG1D,QAjBH,SAiB4BC,EAAO4E,GAC/B5E,EAAMy3E,iBAAmB7yE,KAlB7B,G,wBCKA8yE,iBAAmB,WACjB7tD,OAAMnpB,OAAOX,QAAa,MAI5B,IAAMC,EAAoC,CACxCssB,MAAO,KACPkrD,QAAS,KACTC,iBAAkB,KAClBF,OAAO,EACPltD,KAAM,CACJjb,QAAS/V,OAAO8F,OAAO,QAIZ,QACba,QACAwI,UACAC,UACAC,c,oCC3BF,W,oDCAA,oKAEMivE,EAAM,WAEC3e,EAAiB,SAC5Bva,EACAm5B,EACAv+B,GAEKoF,EAAIo5B,WACPp5B,EAAIo5B,SAAW,IAAI3tD,QAErBxqB,QAAQ4M,IAAI,iBAAkBsrE,EAAWn5B,EAAIo5B,UAC7Cp5B,EAAIo5B,SAASC,IAAIF,EAAWv+B,IAGjB8f,EAAiB,SAC5B1a,EACAm5B,EACAv+B,GAEKoF,EAAIo5B,WACPp5B,EAAIo5B,SAAW,IAAI3tD,QAErBxqB,QAAQ4M,IAAI,iBAAkBsrE,EAAWn5B,EAAIo5B,UAC7Cp5B,EAAIo5B,SAASE,KAAKH,EAAWv+B,IAGlBxoC,EAAmB,SAC9B4tC,EACAm5B,EACAh/E,GAEA,IACE,GAAI6lD,EAAIo5B,SAAU,CAChBn4E,QAAQ4M,IAAI,gBAAiBsrE,EAAWn5B,EAAIo5B,UAC5C,IAAIG,EAAUx7B,OAAQ99C,IAAIi5E,IAAQ,GAClCK,EAAQJ,GAAah/E,EACrB4jD,OAAQpkC,IAAIu/D,EAAKK,GAEjBv5B,EAAIo5B,SAASlqD,MAAMiqD,EAAWh/E,IAEhC,MAAOoC,GAEP0E,QAAQjC,MAAM,qBAAsBzC,KAe3BmpE,EAAkB,SAC7ByT,GAEA,IAAII,EAAUx7B,OAAQ99C,IAAIi5E,IAAQ,GAClC,OAAOK,EAAQJ,K,kCC/DjB,IAAIpsD,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAQ,KAAEI,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACrB,EAAIyC,GAAG,YAAY,GAAGzC,EAAIe,MACvKH,EAAkB,G,oFCGDyC,EAAK,qJAAS5E,QAOUqE,gBAAxCC,eAAK,CAAEtyB,KAAMyyB,QAASD,SAAS,KAAS,2BAPxBI,EAAK,gBADzBpC,eAAU,KACUoC,WCJ6Q,I,YCO9RvC,EAAY,eACd,EACAf,EACAa,GACA,EACA,KACA,KACA,MAIa,OAAAE,E,uTCZT0rD,EAAYr4E,OAAO6/B,UAAkBy4C,iBAY3C,SAASC,EACPC,EACAC,EACAC,EACAC,EACA56E,GAEA,IAAI66E,EAAgB,QAEhBJ,EAAQ1sE,KAAK5L,MAAO04E,EAAgB,QAC/BJ,EAAQ1sE,KAAK+sE,SAAUD,EAAgB,WACvCJ,EAAQ1sE,KAAKgtE,cAAaF,EAAgB,eAEnD76E,EAAMg7E,aAAaP,EAAQ1sE,KAAK8sE,GAAeH,EAAWC,EAASC,IAGrE,IAAMK,EAA8B,CAClCr1C,UAAW,QACXs1C,gBAAgB,EAChBC,oBAAqB,EACrBx1C,YAAY,EACZy1C,kBAAmB,OACnBC,0BAA2B,IAC3BC,qBAAsB,GACtB9xE,MAAO,GACPkwE,QAAS,GACT6B,iBAAiB,EACjBC,WAAY,KACZC,wBAAyB,KACzBpwE,OAAQ,YACRqwE,WAAY,MACZC,aAAc,OACdC,6BAA6B,EAC7BC,uBAAuB,EACvBj9E,OAAQ,IACRinC,YAAY,EACZi2C,yBAA0B,KAC1BC,gBAAiB,EACjBC,mBAAoB,KACpBC,gBAAiB,CAAC,IAAK,IAAK,IAAK,IAAK,KACtCC,gBAAiB,CAAC,IAAK,IAAK,KAC5BC,uBAAuB,EACvBC,WAAY,KACZC,WAAY7B,GAgCD10C,EAAb,WAsDE,WAAYw2C,GAAyC,WAAtB17C,EAAsB,uDAAF,GAOjD,GAPmD,uBAvBrD,KAAA27C,SAAwBtB,EAOxB,KAAAqB,KAAoB5gF,OAAO8F,OAAO,MAQlC,KAAAwT,OAAiC,GAS/BjT,QAAQ4M,IAAI,uBAAwB2tE,GACpCvuD,KAAKgY,QACa,qBAAT9L,MACS,qBAATo/C,MACa,qBAAb32C,aACJ22C,KAAK19E,UAAUwG,SAAWk3E,KAAK19E,UAAUo/E,eAAiB1B,KAAK19E,UAAUm/E,WAAY,GACrF/sD,KAAKgY,QAAV,CAGAhY,KAAKyuD,iBACH,SAAS9vB,KAAKzqD,OAAO6/B,UAAU26C,YAC/B,UAAU/vB,KAAKzqD,OAAO6/B,UAAU26C,YAChC,OAAO/vB,KAAKzqD,OAAO6/B,UAAU26C,WAC/B1uD,KAAKuuD,KAAOx2C,EAAK42C,OAAO,GAAI3uD,KAAKwuD,SAAUD,GAAQ5gF,OAAO8F,OAAO,OAGjE,IAAMm7E,EAAsB5uD,KAAKuuD,KAAK9tD,GACtCouD,OAAe91E,SAAQ,SAACpI,GACjBi+E,EAAoBj+E,IACzB,EAAK8vB,GAAG9vB,EAAOi+E,EAAoBj+E,GAAOgD,KAAKi7E,OAEjD5uD,KAAK6S,MAAQA,GA5EjB,6CA0FU,SAAOliC,GAETqvB,KAAKuuD,KAAKH,uBACZz9E,EAAMmoC,kBAERnoC,EAAMgyB,iBACN,IAAImsD,EAAen+E,EAAMm+E,aACrBA,EAAa15E,OAAS05E,EAAa15E,MAAM,IAAM05E,EAAa15E,MAAM,GAAG25E,iBACvE/uD,KAAKgvD,uBAAuBr+E,GAE5BqvB,KAAKkY,SAAS42C,EAAaj8C,MAAOliC,KApGxC,0BA6GU,SAAaA,GAEnBA,EAAMgyB,mBA/GV,gBA2IE,SAAGhyB,EAAeg9C,GAChBh9C,EAAQA,EAAM27B,cACTtM,KAAK/Y,OAAOpZ,eAAe8C,KAC9BqvB,KAAK/Y,OAAOtW,GAAS,IAEvBqvB,KAAK/Y,OAAOtW,GAAO3C,KAAK2/C,KAhJ5B,iBAyJE,SAAIh9C,EAAe6wB,QACHlvB,IAAV3B,GACFA,EAAQA,EAAM27B,mBACHh6B,IAAPkvB,EACExB,KAAK/Y,OAAOpZ,eAAe8C,IAC7BonC,EAAKk3C,YAAYjvD,KAAK/Y,OAAOtW,GAAQ6wB,UAGhCxB,KAAK/Y,OAAOtW,IAGrBqvB,KAAK/Y,OAAS,KApKpB,kBAgLE,SAAKtW,GAA0B,kCAAXwyE,EAAW,iCAAXA,EAAW,kBAE7BA,EAAO7yD,MAAM1iB,UAAUwG,MAAMtG,KAAKm7B,WAClCt4B,EAAQA,EAAM27B,cACd,IAAI3J,GAAiB,EAcrB,OAbI3C,KAAK/Y,OAAOpZ,eAAe8C,IAC7BonC,EAAKm3C,KACHlvD,KAAK/Y,OAAOtW,IACZ,SAACg9C,GACChrB,GAAyD,IAAxCgrB,EAASt/C,MAAM,EAAM80E,EAAK/uE,MAAM,KAAiBuuB,IAEpE3C,MAGS,YAATrvB,IACFwyE,EAAKgM,QAAQ,YACbxsD,GAAwD,IAAvC3C,KAAKovD,KAAK/gF,MAAM2xB,KAAMmjD,IAA0BxgD,IAE3DA,IAlMZ,oCAyME,SAAuBhyB,GAAU,WAE3B0+E,EAAQ1+E,EAAMm+E,aAAa15E,MAAM1H,OACjCmlC,EAAgB,GAMdy8C,EAAgB,SAAhBA,EAAiBC,GACrB,IAAMC,EAAkB,SAACC,GACnBA,EAAQ/hF,QACV2hF,GAASI,EAAQ/hF,OACjBqqC,EAAKm3C,KAAKO,GAAS,SAACC,GAClB,GAAIA,EAAMC,OAAQ,CAChB,IAAIC,EAAWF,EAAME,SACrBF,EAAM1vE,MAAK,SAACA,GACV6vE,EAAgB7vE,EAAM4vE,KACrBE,QACMJ,EAAMK,aACfT,EAAcI,EAAMM,mBAGxBV,EAAcC,IAEdU,KAGJV,EAAOW,YAAYV,EAAiBM,IAGhCD,EAAkB,SAAC7vE,EAAmB4vE,GAC1C,IAAK5vE,EAAM,MAAM,IAAIhP,MAAM,yBAE3BgP,EAAKmwE,aAAeP,EAASxjD,UAAU,GACvCyG,EAAM7kC,KAAKgS,GACXiwE,KAGIH,EAAY,SAACM,GAEjB,MADAH,IACMG,GAGFH,EAAY,WACD,KAATZ,GACJ,EAAKn3C,SAASrF,EAAOliC,IAIzBonC,EAAKm3C,KAAKv+E,EAAMm+E,aAAa15E,OAAO,SAAC8D,GACnC,IAAIw2E,EAAQx2E,EAAK61E,mBACZW,EAKDA,EAAMC,OAERE,EAAgB32E,EAAKm3E,YAAaX,EAAME,UAExCN,EAAcI,EAAMM,gBARpBC,SA9PR,sCAiRE,SAAyBjwE,GACvB,IAAIswE,EAAStwD,KAAKuuD,KAAKR,yBACvB,GAAsB,oBAAXuC,EACT,OAAOA,EAAOtwE,GAEhB,IAAMmiD,EAAM,IAAI3+C,KAGZ2sE,EACFnwE,EAAKmwE,cAAgBnwE,EAAKuwE,oBAAsBvwE,EAAK4rD,UAAY5rD,EAAK3N,KAExE,OACE8vD,EAAIllB,UACJ,IACAj9B,EAAK4b,KACL,IACAu0D,EAAahlE,QAAQ,+BAAgC,MAjS3D,6BA2SE,SAAgBqlE,GAAmB,WAI7Bj3E,GAAQ,EACZ,GAAIymB,KAAKuuD,KAAKV,8BACZ91C,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrB,OAAKA,EAAKywE,QAAUzwE,EAAK0wE,OAAOhjF,QAAsC,YAA5BsS,EAAK0wE,OAAO,GAAGl9D,UACvDxT,EAAK0wE,OAAO,GAAGpT,OACf/jE,GAAQ,GACD,IAGNyG,EAAKywE,QACNzwE,EAAK0wE,OAAOhjF,OAAS,GAC4B,YAAjDsS,EAAK0wE,OAAO1wE,EAAK0wE,OAAOhjF,OAAS,GAAG8lB,UAEpCxT,EAAK0wE,OAAO1wE,EAAK0wE,OAAOhjF,OAAS,GAAG4vE,OACpC/jE,GAAQ,GACD,QAPT,KAUEA,GACF,OAAOA,EAmBX,GAdAw+B,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GAUrB,GATKA,EAAKywE,QACR14C,EAAKm3C,KAAKlvE,EAAK0wE,QAAQ,SAACz+E,GACtB,GAAuB,YAAnBA,EAAMuhB,SAGR,OAFAvhB,EAAMqrE,OACN/jE,GAAQ,GACD,KAITA,EACF,OAAO,KAGPA,EACF,OAAO,EAIT,IAAIo3E,GAAc,EAgBlB,OAfA54C,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrB,GAAKA,EAAawT,QAAkC,WAAvBxT,EAAawT,aAGrC,IAAKxT,EAAK4wE,aAEb,OADAD,GAAc,GACP,KAGNA,GAAgBH,GAEnBz4C,EAAK84C,OAAM,WACT,EAAKzB,KAAK,cACTpvD,OAEE,IA1WX,uCAiXE,SAA0B8wD,EAA+BC,GAAgB,WACnED,aAAoBE,UACtBF,EAAW,CAACA,IAGd/4C,EAAKm3C,KACH4B,GACA,SAACG,GACCA,EAAQvvB,iBAAiB,QAAzB,yDAAkC,WAAOwvB,GAAP,gGAC1Br+C,EAAQ,EAAKA,MAAM34B,QAAO,SAAC1E,GAAD,OAAOA,EAAEkC,cACrCm7B,EAAMnlC,OAAS,GAFa,iCAGbmlC,GAHa,IAG9B,2BAAS7yB,EAAe,QACtB,EAAKm4B,WAAWn4B,GAJY,oEAOxB9L,OAAegnB,WAAW61D,GAPF,2CAAlC,yDAWF/wD,QApYN,0BAoZE,SACE8wD,EACAf,EACAn4C,EACAu5C,GAAmB,WAEfL,aAAoBE,UACtBF,EAAW,CAACA,IAGd/4C,EAAKm3C,KACH4B,GACA,SAACG,GACC,IAAIG,EACoB,UAApBH,EAAQ9xB,SAAwC,SAAjB8xB,EAAQzgF,KACzC4gF,EAAQH,GAERG,EAAQrhF,SAASQ,cAAc,SAC/B6gF,EAAMt/E,aAAa,OAAQ,QAE3BimC,EAAK42C,OAAOyC,EAAMxtD,MAAO,CACvBC,WAAY,SACZisB,SAAU,WACVrmB,MAAO,MACPE,OAAQ,QAGVsnD,EAAQ5/E,YAAY+/E,GAKpBH,EAAQvvB,iBACN,SACA,WACE0vB,EAAMzhD,WAER,IAGC,EAAK4+C,KAAK32C,YAAeA,GAC5Bw5C,EAAMt/E,aAAa,WAAY,YAE7Bi+E,GACFqB,EAAMt/E,aAAa,kBAAmB,mBAExCimC,EAAKm3C,KAAKiC,GAAY,SAAC/9E,EAAeM,GACpC09E,EAAMt/E,aAAa4B,EAAKN,MAI1Bg+E,EAAM1vB,iBACJ,UACA,SAACpyD,GAAU,MACT,UAAIA,EAAEuB,cAAN,OAAI,EAAUuC,QACZ,EAAK8kC,SAAL,eAAkB5oC,EAAEuB,OAAOgiC,OAAQvjC,GACnCA,EAAEuB,OAAOuC,MAAQ,OAGrB,KAGJ4sB,QAldN,wBA2dE,SAAW8wD,GAA6B,IAClCO,EADkC,OAGpCA,EAD4C,qBAAlCP,EAAuBpjF,OACzB,CAACojF,GAEDA,EAEVO,EAAMt4E,SAAQ,SAACk4E,GACbA,EAAQvvB,iBAAiB,WAAY,EAAK4vB,cAAc,GACxDL,EAAQvvB,iBAAiB,YAAa,EAAK4vB,cAAc,GACzDL,EAAQvvB,iBAAiB,OAAQ,EAAK6vB,OAAO59E,KAAK,IAAO,QAre/D,0BA8eE,SAAam9E,GAA6B,IACpCO,EADoC,OAGtCA,EAD4C,qBAAlCP,EAAuBpjF,OACzB,CAACojF,GAEDA,EAEV/4C,EAAKm3C,KACHmC,GACA,SAACJ,GACCA,EAAQO,oBAAoB,WAAY,EAAKF,cAC7CL,EAAQO,oBAAoB,YAAa,EAAKF,cAC9CL,EAAQO,oBAAoB,OAAQ,EAAKD,UAE3CvxD,QA5fN,yBAsgBE,WACE,IAAIyxD,GAAY,EAOhB,OANA15C,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrB,GAAIA,EAAK0xE,cAEP,OADAD,GAAY,GACL,KAGJA,IA9gBX,+BAshBE,WACE,IAAIv/D,EAAM,EACNy/D,GAAS,EACTvE,EAAsBptD,KAAKuuD,KAAKnB,oBAapC,OAZAr1C,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrB+3B,EAAKm3C,KAAKlvE,EAAK0wE,QAAQ,SAACz+E,GACtB,GAAuB,cAAnBA,EAAMuhB,WACRtB,IACIA,GAAOk7D,GAET,OADAuE,GAAS,GACF,QAMRA,GAAUz/D,IAtiBrB,oBA6iBE,WAAM,WAEA9T,EAAM4hB,KAAK4xD,oBACf,IAAY,IAARxzE,EAAJ,CAIA4hB,KAAKovD,KAAK,eAEV,IADA,IAAIyC,GAAU,EACL3/D,EAAM,EAAGA,GAAO8N,KAAKuuD,KAAKnB,oBAAsBhvE,EAAK8T,IAC5D2/D,EAAU7xD,KAAK8xD,iBAAgB,IAASD,EAErCA,GACH95C,EAAK84C,OAAM,WACT,EAAKzB,KAAK,cACTpvD,SA5jBT,oBAokBE,WACE+X,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GAChBA,EAAawT,QAAkC,WAAvBxT,EAAawT,QAGhCxT,EAAK4wE,cACb5wE,EAAK+xE,cA1kBb,mBAmlBE,WACEh6C,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrBA,EAAKgyE,aArlBX,oBA6lBE,WACE,IAAK,IAAIxkF,EAAIwyB,KAAK6S,MAAMnlC,OAAS,EAAGF,GAAK,EAAGA,IAC1CwyB,KAAK6S,MAAMrlC,GAAG+0B,WA/lBpB,sBAymBE,WACE,IAAI0vD,EAAY,EACZr9C,EAAY,EAMhB,OAJAmD,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrBiyE,GAAajyE,EAAKs1B,WAAat1B,EAAK4b,KACpCgZ,GAAa50B,EAAK4b,QAEbgZ,EAAY,EAAIq9C,EAAYr9C,EAAY,IAjnBnD,qBA0nBE,SAAQ50B,EAAYrP,GAClBqvB,KAAKkY,SAAS,CAACl4B,GAAOrP,KA3nB1B,sBAooBE,SAASuhF,EAAkBvhF,GAAU,WAS/BkiC,EAAoB,GACyB,GAA7C7S,KAAKovD,KAAK,cAAe8C,EAAUvhF,KAGvCuhF,EAASn5E,SAAQ,SAACiH,GAEhB,KACIusE,GAAaA,GAAYvsE,EAAK4b,KAAO,KACrC5b,EAAK4b,KAAO,OAAS,GAAoB,MAAd5b,EAAK3N,MAAkC,MAAlB2N,EAAK4rD,UACvD,CACA,IAAIj5B,EAAmB,EAAKo7C,yBAAyB/tE,GACrD,GAAI,EAAKuuE,KAAKT,wBAA0B,EAAKqE,wBAAwBx/C,GAAmB,CACtF,IAAI9kB,EAAI,IAAIukE,OAAS,EAAMpyE,EAAM2yB,GAC7B,EAAKy8C,KAAK,YAAavhE,EAAGld,IAC5BkiC,EAAM7kC,KAAK6f,QAKfmS,KAAKovD,KAAK,aAAcv8C,EAAOliC,KACjCkiC,EAAM95B,SAAQ,SAACiH,GACT,EAAKuuE,KAAK32C,YAAc,EAAK/E,MAAMnlC,OAAS,GAC9C,EAAKyqC,WAAW,EAAKtF,MAAM,IAE7B,EAAKA,MAAM7kC,KAAKgS,MAElBggB,KAAKovD,KAAK,iBAAkBv8C,EAAOliC,OAvqBzC,wBAgrBE,SAAWqP,GACT,IAAK,IAAIxS,EAAIwyB,KAAK6S,MAAMnlC,OAAS,EAAGF,GAAK,EAAGA,IACtCwyB,KAAK6S,MAAMrlC,KAAOwS,IACpBggB,KAAK6S,MAAMjkC,OAAOpB,EAAG,GACrBwS,EAAKqyE,QACLryD,KAAKovD,KAAK,cAAepvE,MArrBjC,qCAgsBE,SAAwB2yB,GACtB,IAAIv0B,GAA0B,EAM9B,OALA25B,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACjBA,EAAK2yB,mBAAqBA,IAC5Bv0B,EAAM4B,MAGH5B,IAvsBX,qBA+sBE,WACE,IAAIw2B,EAAY,EAIhB,OAHAmD,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrB40B,GAAa50B,EAAK4b,QAEbgZ,IAptBX,0BA4tBE,WACE,IAAIhZ,EAAO,EAIX,OAHAmc,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GACrB4b,GAAQ5b,EAAKg1B,kBAERpZ,IAjuBX,2BA0uBE,WACE,IAAI02D,EAAY,EACZC,EAAe,EAOnB,OANAx6C,EAAKm3C,KAAKlvD,KAAK6S,OAAO,SAAC7yB,GAChBA,EAAKywE,QAAWzwE,EAAKjO,QACxBugF,GAAatyE,EAAK4b,KAAO5b,EAAKg1B,eAC9Bu9C,GAAgBvyE,EAAKuyE,iBAGrBD,IAAcC,EACT1rE,OAAO2rE,kBAEXF,GAAcC,EAGZxmE,KAAKsD,MAAMijE,EAAYC,GAFrB,KAvvBb,0BAuwBE,SAAmBroE,EAAY9W,GAC7B,IAAIiJ,EAAQ6N,EAAMtO,QAAQxI,GACtBiJ,GAAS,GACX6N,EAAMtb,OAAOyN,EAAO,KA1wB1B,sBAoxBE,SAAgBnP,GAAyB,2BAAXi2E,EAAW,iCAAXA,EAAW,kBAMvC,MALoB,oBAATj2E,IAETi2E,EAAO7yD,MAAM1iB,UAAUwG,MAAMtG,KAAKm7B,WAClC/7B,EAAOA,EAAKmB,MAAM,KAAM80E,EAAK/uE,MAAM,KAE9BlH,IA1xBX,mBAkyBE,SAAas0B,EAAS6T,GACpB9iC,WAAWivB,EAAG7tB,KAAK0hC,GAAU,KAnyBjC,oBA8yBE,SAAco9C,GAAwB,2BAAXtP,EAAW,iCAAXA,EAAW,kBAQpC,OAPAprC,EAAKm3C,KAAKjmD,WAAkB,SAAC8pB,GACvBA,IAAQ0/B,GACV16C,EAAKm3C,KAAKn8B,GAAK,SAAC3/C,EAAYM,GAC1B++E,EAAI/+E,GAAON,QAIVq/E,IAtzBX,kBAg0BE,SAAY1/B,EAAUpF,EAAetY,GAInC,IAAI3hC,EAHJ,GAAKq/C,EAML,GAA0B,qBAAfA,EAAIrlD,QACb,IAAKgG,EAAM,EAAGA,EAAMq/C,EAAIrlD,OAAQgG,IAC9B,IAA8C,IAA1Ci6C,EAAS7/C,KAAKunC,EAAS0d,EAAIr/C,GAAMA,GACnC,YAIJ,IAAKA,KAAOq/C,EACV,GAAIA,EAAIllD,eAAe6F,KAAkD,IAA1Ci6C,EAAS7/C,KAAKunC,EAAS0d,EAAIr/C,GAAMA,GAC9D,WAh1BV,KA01BSqkC,WAAWq6C,OAMXr6C,YAAY26C,OAMZ36C,UAAkB,kB,oCCn8B3B,IAAIjY,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACiB,YAAY,cAAc,CAACjB,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAa,QAAE6wB,WAAW,kBAAkB1D,MAAM,CAAC,KAAO,OAAO,YAAcP,KAAKqC,GAAG,gBAAgB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAI3sB,MAAa,SAAGqtB,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAI3sB,MAAO,UAAWwuB,EAAO/wB,OAAOuC,eAAe+sB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,yBAAyB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAImtB,oBAAoB/sB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,yBAAyB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,4BAA4BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI3sB,MAAMwP,sBAAsBud,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,sBAAsB,CAACjB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,uBAAuB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIotB,kBAAkBhtB,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,uBAAuB,CAAC9B,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,0BAA0BlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI3sB,MAAM0P,oBAAoBqd,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,MAAM,CAACiB,YAAY,YAAY,CAACjB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,2BAA2BlC,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACjB,EAAG,QAAQ,CAACiB,YAAY,UAAU,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAmB,cAAE6wB,WAAW,wBAAwB1D,MAAM,CAAC,KAAO,YAAYiF,SAAS,CAAC,QAAUlV,MAAMwiB,QAAQ/S,EAAI3sB,MAAM2P,eAAegd,EAAIgT,GAAGhT,EAAI3sB,MAAM2P,cAAc,OAAO,EAAGgd,EAAI3sB,MAAmB,eAAGqtB,GAAG,CAAC,OAAS,SAASmB,GAAQ,IAAIoR,EAAIjT,EAAI3sB,MAAM2P,cAAckwB,EAAKrR,EAAO/wB,OAAOqiC,IAAID,EAAKzsB,QAAuB,GAAG8J,MAAMwiB,QAAQE,GAAK,CAAC,IAAIG,EAAI,KAAKC,EAAIrT,EAAIgT,GAAGC,EAAIG,GAAQF,EAAKzsB,QAAS4sB,EAAI,GAAIrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,gBAAiB4/B,EAAIK,OAAO,CAACF,KAAaC,GAAK,GAAIrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,gBAAiB4/B,EAAI5+B,MAAM,EAAEg/B,GAAKC,OAAOL,EAAI5+B,MAAMg/B,EAAI,UAAYrT,EAAIwL,KAAKxL,EAAI3sB,MAAO,gBAAiB8/B,OAAU/S,EAAG,OAAO,CAACiB,YAAY,2BAA2BjB,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQV,EAAIqtB,YAAY,CAA4B,UAA1BrtB,EAAI3sB,MAAMshB,aAAwD,mBAA7BqL,EAAI3sB,MAAMuS,gBAAsCwa,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,YAAYlC,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIstB,oCAAoCltB,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,2BAA2B,CAAGlC,EAAIutB,iBAA6EntB,EAAG,IAAI,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIutB,iBAAiBC,kBAAkB,MAAMxtB,EAAI+B,GAAG/B,EAAIutB,iBAAiB33C,gBAAzLwqB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,kCAAgLlC,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,QAAQ,CAACjB,EAAG,QAAQ,CAAC4D,WAAW,CAAC,CAAC1xB,KAAK,QAAQ2xB,QAAQ,UAAU5wB,MAAO2sB,EAAI3sB,MAAc,SAAE6wB,WAAW,mBAAmB1D,MAAM,CAAC,KAAO,OAAO,YAAcP,KAAKqC,GAAG,uBAAuB5R,YAAY+U,SAAS,CAAC,MAASzF,EAAI3sB,MAAc,UAAGqtB,GAAG,CAAC,MAAQ,SAASmB,GAAWA,EAAO/wB,OAAOo8C,WAAqBltB,EAAIwL,KAAKxL,EAAI3sB,MAAO,WAAYwuB,EAAO/wB,OAAOuC,eAAe+sB,EAAG,MAAM,CAACiB,YAAY,eAAe,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,sBAAsB,CAAGlC,EAAI3sB,MAAMmK,SAAiD4iB,EAAG,IAAI,CAACK,YAAY,CAAC,MAAQ,SAAS,CAACT,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIytB,eAAhGrtB,EAAG,IAAI,CAACJ,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,cAAsFlC,EAAG,kBAAkB,CAACI,MAAM,CAAC,KAAO,KAAK,MAAQP,KAAKqC,GAAG,SAAS5R,WAAW,MAAQsP,EAAIhpB,OAAO0pB,GAAG,CAAC,OAAS,SAAUgtB,GAAQ,OAAQ1tB,EAAIhpB,MAAM8I,GAAK4tC,IAAUC,MAAM,CAACt6C,MAAO2sB,EAAIhpB,MAAQ,GAAE42C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAIhpB,MAAO,KAAMo8B,IAAMlP,WAAW,cAAc9D,EAAG,kBAAkB,CAACI,MAAM,CAAC,KAAO,KAAK,MAAQP,KAAKqC,GAAG,SAAS5R,WAAW,MAAQsP,EAAIhpB,OAAO0pB,GAAG,CAAC,OAAS,SAAUgtB,GAAQ,OAAQ1tB,EAAIhpB,MAAM+I,GAAI2tC,IAAUC,MAAM,CAACt6C,MAAO2sB,EAAIhpB,MAAQ,GAAE42C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAIhpB,MAAO,KAAMo8B,IAAMlP,WAAW,cAAc9D,EAAG,MAAM,CAACiB,YAAY,aAAa,CAACrB,EAAI6N,GAAG,GAAGzN,EAAG,MAAM,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,YAAa,qBAAqB,CAAGlC,EAAI3sB,MAAM4R,2BAAmGmb,EAAG,IAAI,CAACI,MAAM,CAAC,GAAK,aAAa,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI6tB,iBAA3HztB,EAAG,IAAI,CAACI,MAAM,CAAC,GAAK,aAAa,CAACR,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAIsC,GAAG,oBAAyFlC,EAAG,YAAY,CAACutB,MAAM,CAACt6C,MAAO2sB,EAAI3sB,MAAU,KAAEu6C,SAAS,SAAUxa,GAAMpT,EAAIwL,KAAKxL,EAAI3sB,MAAO,OAAQ+/B,IAAMlP,WAAW,iBAAiB,IAC38JtD,EAAkB,CAAC,WAAa,IAAIZ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,iBAAiB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,mBAAmB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,qBAAqB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,mBAAmB,WAAa,IAAIrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,kB,8OCiB7gCysB,EAAS,6KAkC1B,WACI,OAAO3rC,OAAwB,aAAcA,OAAgB8d,KAAK5sB,MAAMuP,UAnClD,uBAsC1B,WACI,OAAOT,OAAwB,aAAcA,OAAgB8d,KAAK5sB,MAAMyP,QAvClD,wBA0C1B,WACI,IAAIirC,EAAS9tB,KAAK5sB,MAAM4R,4BAA8B,EACtD,OAAc,KAAX8oC,EACQ9tB,KAAKqC,GAAG,WAAY,CAACyrB,OAAQ,IAAIr9B,WAEzB,OAAXq9B,EACG9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQ,IAAIr9B,WAExB,OAAXq9B,EACG9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQ,IAAIr9B,WAExB,OAAXq9B,EACG9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQ,IAAIr9B,WAEnCq9B,EAAS,GACN9tB,KAAKqC,GAAG,UAAW,CAACyrB,OAAQA,IAASr9B,gBAD3C,IAxDiB,uCAgEzB,WAA+B,IACxBkiE,EACAC,EAFwB,OAIxB5yD,KAAK5sB,MAAMwP,WAAaod,KAAK5sB,MAAMwP,UAAUlV,OAAS,IACtDilF,EAAoB3yD,KAAK5sB,MAAMwP,UAAUorC,OAAO,EAAGhuB,KAAK5sB,MAAMwP,UAAUlV,OAAS,IAEjFsyB,KAAK5sB,MAAM0P,SAAWkd,KAAK5sB,MAAM0P,QAAQpV,OAAS,IAClDklF,EAAkB5yD,KAAK5sB,MAAM0P,QAAQkrC,OAAO,EAAGhuB,KAAK5sB,MAAM0P,QAAQpV,OAAS,IAG/E,IAAIugD,EAAkB,GAECjuB,KAAK5sB,MAAMga,iBAAiBpC,MAAM,KAAK,GAU9D,GACKgV,KAAK5sB,MAAMshB,aAAoD,SAAtCsL,KAAK5sB,MAAMshB,YAAYjE,YACnB,mBAA9BuP,KAAK5sB,MAAMuS,gBAEX,GAAkC,cAA9Bqa,KAAK5sB,MAAMuS,iBAAiE,aAA9Bqa,KAAK5sB,MAAMuS,gBACzDsoC,EAAUjuB,KAAK5sB,MAAMowC,4BAGpB,CACD,IACIuK,EADA8kC,EAAoB7yD,KAAK5sB,MAAMyR,WAAW+O,UAAU5I,MAAM,KAAK,GAMnE,GAJqC,MAAjCgV,KAAK5sB,MAAMyR,WAAWqB,UACtB6nC,EAAkB/tB,KAAK5sB,MAAMyR,WAAWqB,QAAQ8E,MAAM,KAAK,IAGjB,GAA1CgV,KAAK5sB,MAAMyR,WAAWoP,iBAElBg6B,EADiC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QACZ,GAAH,OAAM2sE,EAAN,eAA8B9kC,EAA9B,iBAAsD/tB,KAAK5sB,MAAMyR,WAAWyP,SAA5E,kBAA8Fq+D,EAA9F,cAAqHC,EAArH,QAEG,GAAH,OAAMC,EAAN,iBAAgC7yD,KAAK5sB,MAAMyR,WAAWyP,SAAtD,kBAAwEq+D,EAAxE,cAA+FC,EAA/F,aAIV,GAA8C,GAA1C5yD,KAAK5sB,MAAMyR,WAAWoP,iBAAuB,CAClD,IAAIi6B,EAAWhsC,OAAuB,CAClC8d,KAAKqC,GAAG,qBAAqB5R,WAC7BuP,KAAKqC,GAAG,qBAAqB5R,WAC7BuP,KAAKqC,GAAG,sBAAsB5R,WAC9BuP,KAAKqC,GAAG,wBAAwB5R,WAChCuP,KAAKqC,GAAG,uBAAuB5R,WAC/BuP,KAAKqC,GAAG,qBAAqB5R,WAC7BuP,KAAKqC,GAAG,uBAAuB5R,aAGnCqiE,EAAkB5kC,EACjBh0C,QAAO,SAAC1E,GAAD,aAA2E,IAA/D,YAAKpC,MAAMyR,WAAWuP,0BAAtB,eAA0CxY,QAAQpG,EAAEpC,WACvEmC,KAAI,SAACC,GACN,OAAOA,EAAEsF,QAERszC,KAAK,KAEFH,EADiC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QACZ,GAAH,OAAM2sE,EAAN,eAA8B9kC,EAA9B,gBAAqD/tB,KAAK5sB,MAAMyR,WAAWyP,SAA3E,eAA0Fw+D,EAA1F,YAA6GH,EAA7G,cAAoIC,EAApI,QAEG,GAAH,OAAMC,EAAN,gBAA+B7yD,KAAK5sB,MAAMyR,WAAWyP,SAArD,eAAoEw+D,EAApE,YAAuFH,EAAvF,cAA8GC,EAA9G,aAIoC,GAA1C5yD,KAAK5sB,MAAMyR,WAAWoP,iBAEvBg6B,EADiC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QACZ,GAAH,OAAM2sE,EAAN,eAA8B9kC,EAA9B,kBAAuD/tB,KAAK5sB,MAAMyR,WAAWyP,SAA7E,gBAA6F0L,KAAK5sB,MAAMyR,WAAWkjC,WAAnH,cAAmI4qC,EAAnI,cAA0JC,EAA1J,QAEG,GAAH,OAAMC,EAAN,kBAAiC7yD,KAAK5sB,MAAMyR,WAAWyP,SAAvD,gBAAuE0L,KAAK5sB,MAAMyR,WAAWkjC,WAA7F,cAA6G4qC,EAA7G,cAAoIC,EAApI,QAIoC,GAA1C5yD,KAAK5sB,MAAMyR,WAAWoP,mBAEvBg6B,EADiC,MAAjCjuB,KAAK5sB,MAAMyR,WAAWqB,QACZ,GAAH,OAAM2sE,EAAN,eAA8B9kC,EAA9B,kBAAuD/tB,KAAK5sB,MAAMyR,WAAWqP,WAA7E,aAA4F8L,KAAK5sB,MAAMyR,WAAWkjC,WAAlH,eAAmI4qC,EAAnI,cAA0JC,EAA1J,QAEG,GAAH,OAAMC,EAAN,kBAAiC7yD,KAAK5sB,MAAMyR,WAAWqP,WAAvD,aAAsE8L,KAAK5sB,MAAMyR,WAAWkjC,WAA5F,eAA6G4qC,EAA7G,cAAoIC,EAApI,SAQvB,OAHK5yD,KAAK5sB,MAAMqR,QACZub,KAAK5sB,MAAMowC,wBAA0ByK,GAElCA,IA1Je,uBAmQ1B,WACIjuB,KAAKquB,eAAeruB,KAAK5sB,OACzB4sB,KAAKyN,QAAQz/B,KAAK,CAAEsS,KAAM,sBAAwB7E,MAAO,CAAEhG,GAAIuqB,KAAK5sB,MAAMqC,UArQpD,GAAS+oB,QAOXqE,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,4BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,iCACAF,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,uCAVPkgD,EAAS,gBAX7B7sB,eAAU,CACPmD,WAAY,CACRmqB,iBACAC,wBAEJnqB,QAAS,kBACFE,eAAa,CACZ+pB,eAAgBh6C,cAIPw5C,WClB6R,I,YCO9ShtB,EAAY,eACd,EACAf,EACAa,GACA,EACA,KACA,KACA,MAIa,OAAAE,E,oLCbMkyD,EAAY,sKAW7B,SAAKC,GACD,IAAIC,EAAa,CACjBA,KAAa,QACbA,EAAMC,YAAcF,EACpBhzD,KAAKmzD,aAAap3E,KAAKE,UAAUg3E,MAfR,mFAkB7B,WAAmB/lF,GAAnB,kGAEagH,OAAek/E,mBACfl/E,OAAek/E,mBAAmBlmF,IAE/B6lD,EAAMh3C,KAAKC,MAAM9O,GACf+mC,EAAOlkC,SAASQ,cAAc,KACpC0jC,EAAKrkC,KAAO,OAASmjD,EAAImgC,YACzBj/C,EAAKtE,QACJq8B,EAAgBuf,UAAS,kBAAMt3C,EAAKkG,aATjD,kEAYcjmC,OAAegnB,WAAf,MAZd,wDAlB6B,+DAASsD,QAObqE,gBAAxBC,eAAK,CAAEtyB,KAAMyyB,WAAW,2BACDJ,gBAAvBC,eAAK,CAAEtyB,KAAM7C,UAAU,2BACAk1B,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,kCATPgwD,EAAY,gBAFhC/xD,eAAU,KAEU+xD,c,4GCLrB,W,iMCKAv0D,OAAIC,IAAI40D,QAED,IAAMr5D,EAAO,IAAIq5D,OAAQ,IAK1BC,EAAkB,CAAC,MAEnB,SAAUC,EAAgB/tB,EAAcguB,GAA8B,MACtEC,EAAY13E,KAAKE,UAAUu3E,GAC/Bx/E,QAAQ4M,IAAI4C,KAAK2+C,MAAO,UACxBsxB,EAAYA,EAAUtoE,QAAQ,cAAc,OAAOA,QAAQ,SAAS,OACpE,IAAIuoE,EAAO33E,KAAKC,MAAMy3E,GAOtB,OANAz5D,EAAK25D,iBAAiBnuB,EAAMkuB,GAC5B1/E,QAAQ4M,IAAI4C,KAAK2+C,MAAO,SACxBnoC,EAAKC,OAASurC,EACd2lB,IAAMqD,SAAS7C,QAAQ3zD,OAAO,mBAAqBwtC,EACnD,UAAAz1D,SAASsnC,cAAc,eAAvB,SAAgCvlC,aAAa,OAAQ0zD,GAChD8tB,EAAgBt6E,SAASwsD,IAAO8tB,EAAgBtlF,KAAKw3D,GACnDA,I,6DCzBT,W,oDCAA,4IAAMhX,EAAO,QAEAolC,EAAkB,GAAH,OAAMplC,EAAN,oBACfqlC,EAAe,GAAH,OAAMrlC,EAAN,iBACZslC,EAAc,GAAH,OAAMtlC,EAAN,SACXulC,EAAe,GAAH,OAAMvlC,EAAN,kB,yRCiBnB,SAAUwlC,EAAwBp4C,GACtC,IAAIq4C,EAAY,kBAAItmF,OAAO8F,OAAO,OAC9BygF,EAAWt4C,EAAI5wB,MAAM,KACzB,GAAsB,GAAnBkpE,EAASxmF,OAGR,IAFA,IAAIymF,EAAOD,EAAS,GAAGlpE,MAAM,KACzBopE,EAAM,GACF5mF,EAAI,EAAIA,EAAI2mF,EAAKzmF,OAAQF,IAC7B4mF,EAAMD,EAAK3mF,GAAGwd,MAAM,KACH,GAAdopE,EAAI1mF,SAEHumF,EAAUG,EAAI,GAAG3jE,YAAc2jE,EAAI,IAI/C,OAAOH,ECJF,IAAMzlB,EAAY,SACvB/4D,EACAmmC,EACA1uC,EACAwM,EACA26E,EACAlI,GAEAvwC,EAAM04C,EAAiB14C,EAAK1uC,GAC5B,IAGIqnF,EAHE3wD,EAAQ4wD,EAAW96E,GACnBq0B,GAAqC,IAA5Br0B,EAAQ+6E,gBAA2B74C,EAAM8nC,eAAc9nC,GAItE,GAHA5nC,QAAQ4M,IAAI,YAAamtB,EAAQnK,IAGV,KAAZ,OAAPlqB,QAAO,IAAPA,OAAA,EAAAA,EAASknB,QAAmB1sB,OAAewgF,gBAC7CH,EAAargF,OAAewgF,gBAAgB3mD,EAA/B,UAA0Ct4B,GAAMmuB,QAE1D,GAAGlqB,EAAQ+0D,QAAQ,CAGtB8lB,EAAargF,OAAeygF,iBAAiB5mD,EAAhC,gBAAiDt4B,GAAMiE,GACpE,IAAIk7E,EAAgB,WAClB,OAAOriF,YAAW,WACX2B,OAAei6B,cAClBn8B,aAAaJ,GACTyiF,GACFA,KAGFziF,EAAUgjF,MAEX,KAEDhjF,EAAUgjF,SAEX,GAAGl7E,EAAQm7E,SACdlkD,OAAYzN,KAAK,CAAErC,UAAWnnB,EAAQm7E,SAAUrK,OAAO,EAAMp3E,MAAO,gDAAI4gF,EAAwBp4C,IAASliC,EAAQo7E,eAA/C,IAA8D,MAASp7E,EAAQ+vB,MAAO,OAAU/vB,EAAQiwB,eAEvK,OACH4qD,EAAYrgF,OAAOitB,KAAK4M,EAAZ,UAAuBt4B,GAAMmuB,GAChC,QAAT,EAAA2wD,SAAA,SAAW9gC,QAOb,GAAI8gC,EACF,CAAIK,EAAgB,WAClB,OAAOriF,YAAW,WAAK,QACR,QAAT,EAAAgiF,SAAA,SAAWF,QAAX,UAAqBE,SAArB,OAAqB,EAAWpmD,cAClCn8B,aAAaJ,GACTyiF,GACFA,KAGFziF,EAAUgjF,MAEX,KAEDhjF,EAAUgjF,IAZd,IAcIG,EAAc,SAAdA,IACF,OAAOxiF,YAAW,WACb45E,EACEoI,EAAUpI,UACXhnE,eAAiBovE,EAAWpI,EAASz4E,IAAKy4E,EAAS/4E,OACnDpB,aAAagjF,IAGbA,EAAaD,IAIf/iF,aAAagjF,KAEd,KAEDA,EAAaD,IAGnB,OAAOR,GAGHD,EAAmB,SAAC14C,EAAangC,GACrCzH,QAAQ4M,IAAI,mBAAoBg7B,EAAKngC,GAErC,IAMIo5C,EANAj7B,GAAU,EAOd,OANGgiB,EAAI5iC,SAAS,MAAQ4iC,EAAI5iC,SAAS,UACnC4gB,GAAU,GAKRne,IAAUo5C,EAAOlnD,OAAOknD,KAAKp5C,IAAQ/N,OAAS,GAChDkuC,GAAOhiB,EAAU,IAAM,IACfgiB,EAAOiZ,EACZt/C,KAAI,SAAC7B,GACJ,IAAIN,EAAQqI,EAAM/H,GAIlB,MAHqB,WAAjB,eAAON,KACTA,EAAQ2I,KAAKE,UAAU7I,IAEzB,UAAUM,EAAV,YAAiB0hD,mBAAmBhiD,OAErCg7C,KAAK,MAEDxS,GAQL44C,EAAa,SAAC96E,GAClB,IAAMu7E,EAA+B,CACnCxrD,MAAO,IACPE,OAAQ,IACRurD,WAAY,MACZC,UAAW,GAEPC,EAAY,iCACbH,GACAv7E,GAGCuwE,EAAQ/1E,OAAOmhF,QAAUnhF,OAAOohF,WAAa,EAAIF,EAAa3rD,MAAS,EACvE0gD,EAAOj2E,OAAOqhF,QAAUrhF,OAAOshF,YAAc,EAAIJ,EAAazrD,OAAU,EAK9E,GAHAyrD,EAAal2C,KAAO+qC,EACpBmL,EAAajnB,IAAMgc,EAEfzwE,EAAQknB,MACV,OAAOjzB,OAAOknD,KAAKugC,GAChB7/E,KAAI,SAAC7B,GAAD,gBAAYA,EAAZ,aAAqB0hF,EAAqB1hF,GAA1C,QACJ06C,KAAK,IAER,IAAMxqB,EAAQj2B,OAAOknD,KAAKugC,GACvB7/E,KAAI,SAAC7B,GAAD,gBAAYA,EAAZ,cAAsB0hF,EAAqB1hF,GAA3C,QACJ06C,KAAK,KACR,OAAOxqB,I,2DC5KX,W,iECGY6xD,EAWAC,EAWAC,E,6OAtBZ,SAAYF,GAEVA,aAEAA,aAEAA,aAEAA,cARF,CAAYA,MAAa,KAWzB,SAAYC,GAEVA,iBAEAA,qBAEAA,eAEAA,iBARF,CAAYA,MAAa,KAWzB,SAAYC,GAEVA,mBAEAA,yBAEAA,iBAEAA,yBARF,CAAYA,MAAmB,K,cCzBzBC,EAAc,CAClBC,IADkB,SACdv1E,GACF,MAAO,8CAA8Cq+C,KAAKr+C,KAI/Cs1E,I,YCETE,E,WAAN,+CAuIE,KAAAC,kBAAoB,SAACvlF,GAAD,OAAyB,EAAKirE,KAAKrmE,MAAMoE,MAAK,SAAChE,GAAD,OAAOA,EAAEs1E,WAAat6E,MAwGhF,KAAAwlF,kBAAoB,SAACp6C,EAAangC,GAExC,IAAIo5C,EACJ,OAFA7gD,QAAQ4M,IAAI,mBAAoBg7B,EAAKngC,GAEjCA,IAAUo5C,EAAOlnD,OAAOknD,KAAKp5C,IAAQ/N,OAAS,GAC5CkuC,EAAIhgC,QAAQ,KAAO,EAAGggC,GAAO,IAC5BA,GAAO,IACZA,GAAOiZ,EACJt/C,KAAI,SAAC7B,GACJ,IAAIN,EAAQqI,EAAM/H,GAIlB,MAHqB,WAAjB,eAAON,KACTA,EAAQ2I,KAAKE,UAAU7I,IAEzB,UAAUM,EAAV,YAAiB0hD,mBAAmBhiD,OAErCg7C,KAAK,KACDxS,GAEAA,G,0CAzPX,WACE,OAAOpd,OAAI5wB,UAAU88E,c,gBAGvB,WACE,OAAO1qD,KAAKkvB,MAAMusB,O,qBAepB,SAAQjqC,EAAgBykD,GACjBA,IAAYA,EAAaj2D,KAAKy7C,KAAKrmE,OADoB,uBAEtC6gF,GAFsC,IAE5D,2BAAmC,KAA1BC,EAA0B,QACjC,GAAIA,EAAU1kD,SAAWA,EAAQ,OAAO0kD,EACnC,GAAIA,EAAU/3E,YAAa,CAC9B,IAAM5E,EAAQymB,KAAKm2D,QAAQ3kD,EAAQ0kD,EAAU78E,UAC7C,GAAIE,EAAO,OAAOA,IANsC,8BAS5D,OAAO,O,4BAGT,SACE9D,EACAjF,EACAylF,GAEKA,IAAYA,EAAaj2D,KAAKy7C,KAAKrmE,OAFF,uBAGhB6gF,GAHgB,IAGtC,2BAAmC,KAA1BC,EAA0B,QACjC,GAAIA,EAAUz8C,WAAahkC,GAAMygF,EAAUE,WAAa5lF,EAAM,OAAO0lF,EAChE,GAAIA,EAAU/3E,YAAa,CAC9B,IAAM5E,EAAQymB,KAAKq2D,eAAe5gF,EAAIjF,EAAM0lF,EAAU78E,UACtD,GAAIE,EAAO,OAAOA,IAPgB,8BAUtC,OAAO,O,6BAIT,SAAgBi4B,GACd,IAAIU,EAA2ClS,KAAKm2D,QAAQ3kD,GAE5D,GAAIU,EAAU,CACZ,GAA6B,GAAzBA,EAASiH,aACX,OAAOjH,EAEP,IAAI9yB,GAAoB,EACxB,MAAOA,EACD8yB,GACFA,EAAWlS,KAAKm2D,QAAQjkD,EAASiH,cAC7BjH,EAC2B,GAAzBA,EAASiH,eACX/5B,GAAW,GAGbA,GAAW,GAGbA,GAAW,EAGf,OAAO8yB,EAGX,OAAO,O,+BAIT,SAAkBV,GAChB,IAAI8kD,EAAc,IAAIhmE,MACtB,GAAIkhB,GAAoB,GAAVA,EAAY,CACxB,IAAI+kD,GAAkB,EACtB,MAAMA,EAAO,CACX,IAAIrkD,OAAwC,EAC5CA,EAAWlS,KAAKm2D,QAAQ3kD,GACpBU,GACFokD,EAAYtoF,KAAKkkC,EAASV,QAC1BA,EAASU,EAASiH,aACJ,GAAV3H,IACF+kD,GAAS,IAIXA,GAAS,GAIf,OAAOD,EAAY57E,Y,0BAIrB,SAAa82B,GACX,IACIU,EADAskD,EAAoB,GAEpBC,EAAYjlD,GAAkB,EAClC,GAAiB,GAAbilD,EAAgB,CAClB,IAAIF,GAAkB,EACtBC,EAAQxoF,KAAKyoF,GAEb,MAAOF,EAAQ,CACb,GAAiB,GAAbE,EAAgB,OAAO,EAEb,MAAd,GADAvkD,EAAWlS,KAAKm2D,QAAQM,GACpBvkD,EAC4B,IAAlB,QAAR,EAAAA,SAAA,eAAUiH,cACZo9C,GAAS,GAETC,EAAQxoF,KAAKkkC,EAASiH,cACtBs9C,EAAYvkD,EAASiH,mBAGvBo9C,GAAS,EAGb,OAAOC,GAAWA,EAAQ9oF,OAAS,EAAI8oF,EAAQA,EAAQ9oF,OAAS,GAAK,EAEvE,OAAO,I,kBAKT,SAAKwL,EAA+BoB,GAClC,IAAIwpE,GAAW5qE,EAAK4qE,SAAW,IAAIx3C,cAC/BhsB,GAAQpH,EAAKohC,WAAa,IAAI8zB,OAAO9hC,cAErC7wB,EAAyB,CAAEs2B,OAAQ74B,EAAKs4B,QAM5C,GAJIt4B,EAAKugC,WAAUh+B,EAAMi7E,MAAQx9E,EAAKugC,UAIhB,OAAlBvgC,EAAKk9E,SAAmB,CAC1B,GAAIp2D,KAAK22D,YAAY7S,EAASxjE,GAC5B,OAAIpH,EAAK4xE,WAAa4K,EAAckB,KAAaC,OAAO7oF,KAAK,CAAEsS,SACnD0f,KAAK82D,OAAO59E,EAAMuC,GAE9B,IAAIi2B,EAAe/sB,SAASqtB,SAAS1F,cACrC,GAAIoF,EAAawpC,WAAW,QAC1Bl7C,KAAK82D,OAAO59E,EAAMuC,OACb,CACL,IAAImgC,EAAM5b,KAAKg2D,kBAAkB11E,EAAM7E,GACvC,OAAQqoE,EAAQx3C,eACd,IAAK,QACL,IAAK,YACL,IAAK,GACHw3C,EAAU,MACV,MAEJ5vE,OAAOyQ,SAAS/U,KAA+Ck0E,EAAUloC,OAGxE,CAGL,IAAIt7B,EAoCF,MAAM,IAAItP,MAAM,iDAlChB,IAAI+lF,GAA0B,EAQ9B,IAPIz2E,EAAKtH,SAAS,YAAcsH,EAAKtH,SAAS,aAC5C+9E,GAAiB,EACjBz2E,EAAOA,EAAK6K,QAAQ,UAAW,WAC/B7K,EAAOA,EAAK6K,QAAQ,SAAU,WAI5B7Q,EAAM,OAAOA,EAAK,CAAEgG,OAAM7E,UAE5B,GAAIukB,KAAK22D,YAAY7S,EAASxjE,GAAO,CAGnC,GAAIpH,EAAK4xE,WAAa4K,EAAckB,KAAM,OAAOC,OAAO7oF,KAAK,CAAEsS,SAE7D,GAAIvQ,SAASinF,WAAaryE,SAAS/U,KAC7B6L,EAAQ,iCAAIA,GAAP,IAAc+mB,GAAIhf,KAAK2+C,QAElC,OAAI40B,EAAuBF,OAAO7oF,KAAK,CAAEsS,OAAM7E,UACnCo7E,OAAO7oF,KAAK,CAAEsS,SAI5B,IAAIs7B,EAAM,GACUA,EAAhBm7C,EAAsB/2D,KAAKg2D,kBAAkB11E,EAAM7E,GAC5C6E,EAEXs7B,EAA8CkoC,EAAUloC,EAEpD1iC,EAAK+9E,QAAS/iF,OAAOitB,KAAKya,GACzB1nC,OAAOyQ,SAAS/U,KAAOgsC,K,oBAS9B,SAAO1iC,EAA+BuC,GAC5C,OAAOo7E,OAAO7oF,KAAK,CACjBqE,KAAM,aACNoJ,Y,yBAII,SAAYqoE,EAAiBxjE,GAGnC,GAAIs1E,EAAYC,IAAIv1E,GAAO,OAAO,EAIhC,IAAM42E,EAAcvyE,SAASqtB,SAAS1F,cAEtC,SAAIw3C,GAAsB,IAAXA,IACNoT,EAAYhc,WAAW4I,K,oBAsCpC,SAAOxpE,GACL,IAAM68E,EAAWn3D,KAAK+1D,kBAAkBL,EAAckB,MACtD,IAAIO,EAGF,MAAM,IAAInmF,MAAJ,0EAFNgvB,KAAK1lB,KAAK68E,EAAU78E,K,0BAMxB,SAAamhE,EAAiC/+B,GAC5C,IAAIqrC,EAAuCtM,EAE3C,OADAz7C,KAAKo3D,UAAUrP,EAAWrrC,GACnBqrC,I,uBAGD,SAAU3yE,EAAkCsnC,GAClD,IAAI,IAAIlvC,EAAI,EAAGA,EAAI4H,EAAM1H,OAAQF,IAAI,CACnC,MAAgC4H,EAAM5H,GAA9B8sC,EAAR,EAAQA,UAAW+8C,EAAnB,EAAmBA,SACnBjiF,EAAM5H,GAAG8sC,UAAaA,EAAYta,KAAKs3D,YAAYh9C,EAAWoC,GAAW,GACzEtnC,EAAM5H,GAAG6pF,SAAYA,EAAWr3D,KAAKs3D,YAAYD,EAAU36C,GAAW,GAElEtnC,EAAM5H,GAAG2Q,aAAe/I,EAAM5H,GAAG6L,SAAS3L,OAAS,GACrDsyB,KAAKo3D,UAAUhiF,EAAM5H,GAAG6L,SAAUqjC,M,yBAKhC,SAAYd,EAAac,GAI/B,OAHId,GACFjuC,OAAOknD,KAAKnY,GAAS3jC,SAAQ,SAAArF,GAAG,OAAIkoC,EAAMA,EAAIzwB,QAAJ,WAAgBzX,EAAhB,KAAwB6jF,eAAW5pF,OAAO+uC,GAAShpC,QAExFkoC,M,KAILxC,EAAa,IAAI08C,EAER18C,U,6DCvTf,IAAItZ,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,MAAM,CAACiB,YAAY,eAAe,CAAErB,EAAIsxB,OAAc,QAAElxB,EAAG,MAAM,CAACI,MAAM,CAAC,IAAM,qCAAqCE,GAAG,CAAC,MAAQV,EAAIhuB,SAASouB,EAAG,MAAM,CAACqJ,IAAI,YAAYjJ,MAAM,CAAC,IAAMR,EAAIsxB,OAAOzV,KAAKnb,GAAG,CAAC,MAAQV,EAAIy3D,mBAC9V72D,EAAkB,G,gGCMD82D,EAAY,wDAAjC,iD,0BAME,EAAApmC,OAAS,CACPzV,IAAK,GACLnnC,SAAS,GARb,EAAiC,+CAiB/B,SAASsC,GAAc,WACjBA,IAAgC,GAAvBA,EAAM6E,QAAQ,OACzBokB,KAAKqxB,OAAO58C,SAAU,EACtBy6C,OAAMmC,OAAOr+C,IAAI+D,GAAOzF,MAAK,SAACsqC,GAC5B,EAAKyV,OAAOzV,IAAMA,EAClB,EAAKyV,OAAO58C,SAAU,QAtBG,mBA2B/B,SAAMnF,GACJ,IAAI4gC,EAAO5gC,EAAE0iD,WACb9hB,EAAKp/B,IAAM,sCA7BkB,wBAgC/B,SAAWxB,GACT,IAAI4gC,EAAO5gC,EAAE0iD,WACb9hB,EAAKp/B,IAAM,qCAlCkB,GAAS0tB,QAArBi5D,EAAY,gBAJhCz2D,eAAU,CACTmD,WAAY,MAGOszD,WCPwQ,I,YCOzR52D,EAAY,eACd,EACAf,EACAa,GACA,EACA,KACA,KACA,MAIa,OAAAE,E,6CClBf,IAAIf,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACiB,YAAY,eAAeZ,YAAY,CAAC,QAAU,SAASD,MAAM,CAAC,GAAK,YAAY,CAACJ,EAAG,MAAM,CAACiB,YAAY,qBAAqB,CAACjB,EAAG,MAAM,CAACiB,YAAY,gBAAgB,CAACjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,MAAM,CAACiB,YAAY,oBAAoB,CAACjB,EAAG,QAAQ,CAACiB,YAAY,2BAA2Bb,MAAM,CAAC,GAAK,mBAAmB,KAAO,OAAO,YAAcR,EAAIsC,GAAG,cAAc5B,GAAG,CAAC,QAAU,SAASmB,GAAQ,OAAIA,EAAOpxB,KAAKoL,QAAQ,QAAQmkB,EAAI4F,GAAG/D,EAAOgE,QAAQ,QAAQ,GAAGhE,EAAOluB,IAAI,SAAkB,KAAcqsB,EAAI23D,sBAAsBv3D,EAAG,IAAI,CAACiB,YAAY,aAAaX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAI23D,qBAAqB,CAACv3D,EAAG,IAAI,CAACiB,YAAY,0BAA0BjB,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,IAAI,CAACiB,YAAY,oBAAoBX,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,mBAAoB,QAAQ,CAAC9B,EAAG,IAAI,CAACiB,YAAY,yBAAyBjB,EAAG,MAAM,CAACiB,YAAY,gBAAgBrB,EAAI0B,GAAI1B,EAAgB,cAAE,SAAS6lD,GAAS,OAAOzlD,EAAG,MAAM,CAACzsB,IAAIkyE,EAAQp0C,OAAOpQ,YAAY,eAAewC,MAAO7D,EAAI43D,YAAY/R,EAAS,IAAK,CAACzlD,EAAG,MAAM,CAACiB,YAAY,WAAW,CAACjB,EAAG,KAAK,CAACA,EAAG,IAAI,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIkC,MAAM,iBAAkB2jD,MAAY,CAAC7lD,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI63D,cAAchS,WAAkBA,EAAQznE,aAAkC,aAAnBynE,EAAQ9B,QAAwB3jD,EAAG,KAAK,CAACiB,YAAY,gBAAgBrB,EAAI0B,GAAImkD,EAAgB,UAAE,SAASC,GAAM,OAAO1lD,EAAG,KAAK,CAACzsB,IAAImyE,EAAKr0C,OAAO5N,MAAO7D,EAAI43D,YAAY9R,EAAM,IAAK,CAAC1lD,EAAG,OAAO,CAACiB,YAAY,yBAAyB,CAACjB,EAAG,IAAI,CAACiB,YAAY,OAAOX,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIkC,MAAM,iBAAkB4jD,MAAS,CAAC9lD,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI63D,cAAc/R,OAA0M9lD,EAAIe,OAAQ+kD,EAAgB,YAAE1lD,EAAG,MAAM,CAACiB,YAAY,YAAYb,MAAM,CAAC,GAAK,iBAAmBslD,EAAKr0C,SAAS,CAACrR,EAAG,KAAKJ,EAAI0B,GAAIokD,EAAa,UAAE,SAASE,GAAO,OAAO5lD,EAAG,KAAK,CAACzsB,IAAIqyE,EAAMv0C,OAAO5N,MAAO7D,EAAI43D,YAAY5R,EAAO,IAAK,CAAC5lD,EAAG,OAAO,CAACiB,YAAY,QAAQ,CAACjB,EAAG,IAAI,CAACiB,YAAY,OAAOb,MAAM,CAAC,MAAQR,EAAI63D,cAAc7R,IAAQtlD,GAAG,CAAC,MAAQ,SAASmB,GAAiC,OAAzBA,EAAOkX,kBAAyB/Y,EAAIkC,MAAM,iBAAkB8jD,MAAU,CAAChmD,EAAI4B,GAAG5B,EAAI+B,GAAG/B,EAAI63D,cAAc7R,cAAiB,KAAKhmD,EAAIe,UAAS,GAAGf,EAAIe,UAAS,KAAKX,EAAG,MAAM,CAACK,YAAY,CAAC,QAAU,SAASD,MAAM,CAAC,GAAK,eAAeE,GAAG,CAAC,MAAQ,SAASmB,GAAQ,OAAO7B,EAAIkC,MAAM,mBAAoB,YAChlFtB,EAAkB,G,oFCGDsqD,EAAU,wDAA/B,iD,0BAGI,EAAA4M,kBAA4B,GAHhC,EAA+B,sDAK3B,SAAgBrmD,GACZ,IAAIy0C,EAAYl2E,SAASy9B,eAAe,iBAAmBgE,QACzCl/B,IAAd2zE,GAAyC,OAAdA,IACI,QAA3BA,EAAUriD,MAAMqqB,QAChBg4B,EAAUriD,MAAMqqB,QAAU,GAG1Bg4B,EAAUriD,MAAMqqB,QAAU,UAZX,2BAiB3B,SAAc/b,GACV,OAAQlS,KAAKoY,UAA6B,SAAjBpY,KAAKoY,SAAsBlG,EAASmG,SAAWnG,EAASoG,aAlB1D,6BAqB3B,WAEItY,KAAK63D,kBAAuC9nF,SAASy9B,eAAe,oBAAqBp6B,QAvBlE,yBA2B3B,SAAY8+B,EAAmC4lD,GAE3C,MAA8B,IAA1B93D,KAAK63D,mBAID3lD,EAASmG,UACLrY,KAAK+3D,gBAAgB7lD,EAAU4lD,GAJhC,GAUJ,iBAxCgB,6BA2C3B,SAAgB5lD,EAAmC8lD,GAC/C,GAAmC,SAA/Bh4D,KAAKoY,SAAS9L,cAA4B4F,EAASmG,SAASz8B,QAAQokB,KAAK63D,oBAAsB,EACzD3lD,EAASoG,WAAW18B,QAAQokB,KAAK63D,oBAAsB,EAE7F,OAAO,EAEN,GAAIG,EAAY,GAAK9lD,EAAS/zB,aAAe+zB,EAAS74B,SAAS3L,OAAS,EAEzE,IAAI,IAAIF,EAAI,EAAGA,EAAI0kC,EAAS74B,SAAS3L,OAAQF,IAAI,CAC7C,IAAIyqF,EAAWj4D,KAAK+3D,gBAAgB7lD,EAAS74B,SAAS7L,GAAIwqF,EAAY,GACtE,GAAIC,EAAU,OAAO,EAI7B,OAAO,MAzDgB,GAASz5D,QACbqE,gBAAtBC,eAAK,CAAEtyB,KAAM8f,SAAS,mCACCuS,gBAAvBC,eAAK,CAAEtyB,KAAMuyB,UAAU,+BAyBxBF,gBADC0G,eAAM,sBACP,gCA3BiB0hD,EAAU,gBAD9BjqD,QACoBiqD,WCJ8V,I,wBCQ/WpqD,EAAY,eACd,EACAf,EACAa,GACA,EACA,KACA,KACA,MAIa,OAAAE,E,+DCnBf,W,kgBCAMq3D,EAAQ,CACVC,GAAI,GACJC,GAAI,GACJC,eAAgB,CAACC,GAAI,GAAIC,GAAI,GAAIC,GAAI,IACrCC,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAClD/kF,IAAK,+CACLglF,KAAM,CAAC,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,KAGrLC,EAAG,CAAC,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,EAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAC9/CC,GAAI,CAAC,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAG//CC,GAAI,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WACz/FC,GAAI,CAAC,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WACz/FC,GAAI,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WACz/FC,GAAI,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAGz/FC,GAAI,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,EAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACz/FC,GAAI,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACz/FC,GAAI,CAAC,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,EAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACz/FC,GAAI,CAAC,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,WAAY,SAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,SAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,EAAY,WAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,YAGz/FC,GAAI,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACz/FC,GAAI,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACz/FC,GAAI,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,SAAY,UAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YACz/FC,GAAI,CAAC,EAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,UAAY,SAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,UAAY,UAAY,SAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UAAY,UAAY,U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","file":"assets/js/app.f2747531.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"assets/js/\" + ({\"account\":\"account\",\"appbase\":\"appbase\",\"board~calendar~contact~home~workflow\":\"board~calendar~contact~home~workflow\",\"board\":\"board\",\"calendar\":\"calendar\",\"contact\":\"contact\",\"home\":\"home\",\"workflow\":\"workflow\",\"gnb\":\"gnb\",\"orgmap\":\"orgmap\"}[chunkId]||chunkId) + \".\" + {\"account\":\"8b600f3c\",\"appbase\":\"b00f0d4d\",\"board~calendar~contact~home~workflow\":\"c9645131\",\"board\":\"c7d16a36\",\"calendar\":\"e93d19b2\",\"contact\":\"30bcad0a\",\"home\":\"5219fc9b\",\"workflow\":\"09b41b2d\",\"chunk-2d0bd423\":\"da8d513e\",\"gnb\":\"785a611e\",\"orgmap\":\"5084597f\"}[chunkId] + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"account\":1,\"appbase\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"assets/css/\" + ({\"account\":\"account\",\"appbase\":\"appbase\",\"board~calendar~contact~home~workflow\":\"board~calendar~contact~home~workflow\",\"board\":\"board\",\"calendar\":\"calendar\",\"contact\":\"contact\",\"home\":\"home\",\"workflow\":\"workflow\",\"gnb\":\"gnb\",\"orgmap\":\"orgmap\"}[chunkId]||chunkId) + \".\" + {\"account\":\"f8fa071c\",\"appbase\":\"d5ad9d3e\",\"board~calendar~contact~home~workflow\":\"31d6cfe0\",\"board\":\"31d6cfe0\",\"calendar\":\"31d6cfe0\",\"contact\":\"31d6cfe0\",\"home\":\"31d6cfe0\",\"workflow\":\"31d6cfe0\",\"chunk-2d0bd423\":\"31d6cfe0\",\"gnb\":\"31d6cfe0\",\"orgmap\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 = \"/mobile/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// https://vuex.vuejs.org/kr/guide/actions.html#%EC%95%A1%EC%85%98\r\nimport { ActionTree } from 'vuex';\r\n\r\nexport default >{};\r\n","import { GetterTree } from 'vuex';\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.SIDEBAR_VISIBLE](state) {\r\n return state.showSidebar\r\n },\r\n\r\n [types.CURRENT_MENU](state) {\r\n return state.currentMenu\r\n },\r\n\r\n [types.GLOBAL_BUSY](state) {\r\n return state.loading\r\n },\r\n\r\n [types.CURRENT_PAGE](state) {\r\n return state.currentPage\r\n },\r\n}","import { MutationTree } from 'vuex';\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.SIDEBAR_VISIBLE](state, payload: boolean) {\r\n state.showSidebar = payload\r\n },\r\n\r\n [types.CURRENT_MENU](state, payload: string) {\r\n state.currentMenu = payload\r\n },\r\n\r\n [types.GLOBAL_BUSY](state, busy: boolean) {\r\n state.loading = busy;\r\n },\r\n\r\n [types.CURRENT_PAGE](state, payload: string) {\r\n state.currentPage = payload\r\n },\r\n};\r\n","import { ActionTree } from 'vuex'\r\nimport api from '../api'\r\nimport { ContactsStoredType } from '@orgmap/types/enums'\r\nimport { OrgMemberListMutationPayload } from './mutations'\r\nimport * as types from './types'\r\nimport Vue from 'vue'\r\n\r\nexport interface OrgMemberListActionPayload {\r\n comCode: string\r\n deptCode: string\r\n}\r\n\r\nexport default >{\r\n //\r\n // ──────────────────────────────────────────── I ──────────\r\n // :::::: H R : : : : : : : :\r\n // ──────────────────────────────────────────────────────\r\n //\r\n\r\n async [types.ORG_MEMBER_LIST](action, payload: OrgMemberListActionPayload) {\r\n const { comCode, deptCode } = payload\r\n action.commit(types.ORG_MEMBER_SELECT_ALL, false)\r\n const { items, totalCount } = await api.hr.getEmployeeList({ deptCode, comCode })\r\n const members = items.map((x) => {\r\n return {\r\n id: x.personCode,\r\n name: x.displayName,\r\n nameEn: x.displayNameEng || '',\r\n nameChi: x.displayNameChi || '',\r\n deptCode: x.deptCode,\r\n deptName: x.deptName,\r\n deptNameEn: x.deptNameEn || '',\r\n photo: x.photoPath,\r\n titleCode: x.titleCode,\r\n title: x.titleName || '',\r\n titleEn: x.titleNameEn || '',\r\n positionCode: x.positionCode,\r\n positionName: x.positionName,\r\n positionNameEn: x.positionNameEn,\r\n roleCode: x.roleCode,\r\n roleName: x.roleName,\r\n roleNameEn: x.roleNameEn,\r\n email: x.email,\r\n mobile: x.mobileTel || '',\r\n tel: (x.officeExtTel == null ? x.officeTel : x.officeExtTel) || '', //내선번호가 없으면 회사번호 노출\r\n officeFax: x.officeFax || '',\r\n company: x.companyName || '',\r\n companyEn: x.companyNameEng || '',\r\n personCode: x.personCode,\r\n selected: false,\r\n employeeNumber: x.employeeNumber || '',\r\n homeAddress: x.homeAddress || ''//2022.08.11 YSJ ADD 신청인 기안자가 변경 가능하도록 수정(집주소 추가)\r\n }\r\n })\r\n action.commit(types.ORG_MEMBER_LIST, {\r\n items: members,\r\n totalCount,\r\n selectedAll: false,\r\n } as OrgMemberListMutationPayload)\r\n },\r\n\r\n async [types.ORG_MEMBER_SEARCH](\r\n action,\r\n payload: { option: orgmap.SearchOptions; comCode: string }\r\n ) {\r\n const { items, totalCount } = await api.hr.searchOrg(payload.option, payload.comCode)\r\n const members = items.map((x) => {\r\n return {\r\n id: x.id,\r\n name: x.displayName,\r\n nameEn: x.displayNameEng,\r\n nameChi: x.displayNameChi || '',\r\n deptCode: x.deptCode,\r\n deptName: x.deptName,\r\n deptNameEn: x.deptNameEn || '',\r\n photo: x.photoPath,\r\n titleCode: x.titleCode,\r\n title: x.titleName || '',\r\n titleEn: x.titleNameEn || '',\r\n positionCode: x.positionCode,\r\n positionName: x.positionName,\r\n positionNameEn: x.positionNameEn,\r\n roleCode: x.roleCode,\r\n roleName: x.roleName,\r\n roleNameEn: x.roleNameEn,\r\n email: x.email,\r\n mobile: x.mobileTel || '',\r\n tel: (x.officeExtTel == null ? x.officeTel : x.officeExtTel) || '', //내선번호가 없으면 회사번호 노출\r\n officeFax: x.officeFax || '',\r\n company: x.companyName || '',\r\n companyEn: x.companyNameEng || '',\r\n personCode: x.id,\r\n employeeNumber: x.employeeNumber || '',\r\n selected: false,\r\n }\r\n })\r\n action.commit(types.ORG_MEMBER_LIST, {\r\n items: members,\r\n totalCount,\r\n selectedAll: false,\r\n } as OrgMemberListMutationPayload)\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: P U B L I C : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n async [types.ORG_PUBLIC_FOLDER_LIST](action, payload: orgmap.DLGroupApiOption) {\r\n return await api.publics.getPublicContactsList(payload).then((res) => res)\r\n },\r\n\r\n async [types.ORG_PUBLIC_MEMBER_LIST](action, payload: orgmap.DLGroupApiOption) {\r\n action.commit(types.ORG_MEMBER_SELECT_ALL, false)\r\n const { items, totalCount } = await api.publics.getPublicContactsMembersList(payload)\r\n const members = items.map((x: any) => {\r\n return {\r\n id: x.id,\r\n name: x.displayName,\r\n nameEn: x.displayNameEng,\r\n deptCode: x.deptCode,\r\n deptName: x.deptName,\r\n deptNameEn: x.deptNameEn || '',\r\n photo: x.photoPath,\r\n title: x.titleName,\r\n titleEn: x.titleNameEn || '',\r\n email: x.email,\r\n mobile: x.mobileTel || '',\r\n tel: (x.officeExtTel == null ? x.officeTel : x.officeExtTel) || '', //내선번호가 없으면 회사번호 노출\r\n company: x.companyName || '',\r\n personCode: x.identity,\r\n selected: false,\r\n }\r\n })\r\n\r\n action.commit(types.ORG_MEMBER_LIST, {\r\n items: members,\r\n totalCount,\r\n selectedAll: false,\r\n } as OrgMemberListMutationPayload)\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: P E R S O N A L : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async [types.ORG_PERSONAL_FOLDER_LIST](action) {\r\n var funcArr = [\r\n api.personal.getBasicContactFolder(),\r\n api.personal.getContactTree(),\r\n api.local.getContactTree(),\r\n ]\r\n return await Promise.all(funcArr).then((res: Array) => {\r\n return res.flat()\r\n })\r\n },\r\n\r\n async [types.ORG_PERSONAL_MEMBER_LIST](\r\n action,\r\n payload: { data: orgmap.api.DynamicApiOptions; type: ContactsStoredType }\r\n ) {\r\n const { data, type } = payload\r\n action.commit(types.ORG_MEMBER_SELECT_ALL, false)\r\n const { items, totalCount } = await api.personal.getContactsList(data, type)\r\n const members = items.map((x: any) => {\r\n return {\r\n id: x.id,\r\n name: x.displayName,\r\n nameEn: x.displayNameEng,\r\n deptCode: x.department,\r\n deptName: x.department,\r\n deptNameEn: x.department,\r\n photo: x.photoPath,\r\n title: x.jobTitle,\r\n titleEn: x.jobTitle,\r\n email: x.email,\r\n mobile: x.mobileTel || '',\r\n tel: (x.officeExtTel == null ? x.officeTel : x.officeExtTel) || '', //내선번호가 없으면 회사번호 노출\r\n company: x.companyName || '',\r\n personCode: '',\r\n selected: false,\r\n type: x.itemClass || x.type,\r\n }\r\n })\r\n\r\n action.commit(types.ORG_MEMBER_LIST, {\r\n items: members,\r\n totalCount,\r\n selectedAll: false,\r\n } as OrgMemberListMutationPayload)\r\n\r\n members.forEach((x) => {\r\n if (['IPM.DistList', 'G'].includes(x.type || '')) {\r\n action.dispatch(types.ORG_PERSONAL_GROUPMEMBER_LIST, { item: x, type: type })\r\n }\r\n })\r\n },\r\n\r\n async [types.ORG_PERSONAL_GROUPMEMBER_LIST](\r\n action,\r\n payload: { item: orgmap.TMemberItem; type: ContactsStoredType }\r\n ) {\r\n const { item, type } = payload\r\n const { items, totalCount } = await api.group.getGroupMembers(item.id, type)\r\n const children = items.map((x: any) => {\r\n return {\r\n id: x.id,\r\n name: x.displayName,\r\n nameEn: x.displayNameEng,\r\n deptCode: x.department,\r\n deptName: x.department,\r\n deptNameEn: x.department,\r\n photo: x.photoPath,\r\n title: x.jobTitle,\r\n titleEn: x.jobTitle,\r\n email: x.email,\r\n mobile: x.mobileTel || '',\r\n tel: (x.officeExtTel == null ? x.officeTel : x.officeExtTel) || '', //내선번호가 없으면 회사번호 노출\r\n company: x.companyName || '',\r\n personCode: x.targetPersonCode || '',\r\n selected: false,\r\n type: x.type,\r\n }\r\n })\r\n\r\n const found = action.state.members.items.find((x) => x.id === item.id)\r\n if (found) {\r\n found.children = children\r\n }\r\n },\r\n}\r\n","import { GetterTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.ORG_ME](state) {\r\n return state.user\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ORG_OPTION_GET](state) {\r\n return state.options;\r\n },\r\n\r\n [types.ORG_MEMBER_LIST](state) {\r\n return state.members\r\n },\r\n\r\n //\r\n // ────────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: W I T H C O N T A I N E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ORG_CONTAINER_REGISTER](state) {\r\n return state.wish\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M O B I L E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ORG_USER_SELECT](state) {\r\n return state.selections.users\r\n },\r\n}\r\n","import { MutationTree } from 'vuex'\r\nimport * as types from './types'\r\nimport api from '@orgmap/api'\r\nimport { uGetWeekEndDate } from '@/modules/@appbase/util'\r\nimport { TWishContainerValueType } from '@orgmap/types/enums';\r\n\r\nexport type TWishContainerSelectPayload = {\r\n id: number\r\n item: orgmap.TWishContainerItem\r\n}\r\nexport type TWishContainerSelectAllPayload = {\r\n id: number\r\n select: boolean\r\n}\r\n\r\nexport type TOrgContainerItemAddMutationPayload = {\r\n containerId: number\r\n}\r\n\r\nexport type TOrgContainerItemDelMutationPayload = {\r\n containerId: number\r\n}\r\n\r\nexport type TOrgContainerActivateMutationPayload = {\r\n containerId: number\r\n}\r\n \r\nexport interface OrgMemberListMutationPayload extends orgmap.TMemberList { }\r\n\r\nexport type OrgMemberSelectMutationPayload = {\r\n select: boolean\r\n items: orgmap.TMemberItem[]\r\n}\r\n\r\nexport default >{\r\n\r\n\r\n\r\n\r\n [types.ORG_ME](state, user: orgmap.TUser) {\r\n state.user = user\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ORG_OPTION_SET](state, payload: orgmap.TWishContainerOptions) {\r\n state.options = payload;\r\n },\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E M B E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ORG_MEMBER_LIST](state, payload: OrgMemberListMutationPayload) {\r\n state.members = payload\r\n },\r\n\r\n [types.ORG_MEMBER_SELECT](state, payload: OrgMemberSelectMutationPayload) {\r\n const { select, items } = payload\r\n if (state.options.single) {\r\n state.members.items.forEach((x) => x.selected = false);\r\n }\r\n items.forEach((item) => {\r\n const found = state.members.items.find((x) => x.id === item.id && x.deptCode === item.deptCode && x.roleCode === item.roleCode)\r\n if (found) {\r\n found.selected = select\r\n if (state.options.single) {\r\n if (state.wish?.length) {\r\n var container = state.wish[0];\r\n if (container) {\r\n const selItems = state.members.items\r\n .filter((x) => {\r\n return (\r\n // 선택된 아이템\r\n x.selected\r\n )\r\n });\r\n\r\n const flatten = function (list: Array): Array {\r\n const stack = [...list];\r\n const res: Array = [];\r\n while (stack.length) {\r\n const next = stack.pop();\r\n if (next) {\r\n if (['IPM.DistList', 'G'].includes(next.type || '')) {\r\n next.children?.forEach(x => {\r\n if (res.findIndex(a => a.email === x.email) < 0) { res.push(x); }\r\n });\r\n }\r\n else {\r\n if (res.findIndex(a => a.email === next.email) < 0) { res.push(next); }\r\n }\r\n }\r\n }\r\n return res.reverse();\r\n }\r\n\r\n const flattened = flatten(selItems);\r\n const newItems = [\r\n ...flattened\r\n .filter((a) => {\r\n return (\r\n // 중복 제거\r\n container.items.findIndex((y) => (y.value === a.email || y.id === a.id)) < 0\r\n )\r\n })\r\n .map((x: any) => ({\r\n ...x,\r\n text: x.name,\r\n value: x.email,\r\n selected: false,\r\n })),\r\n ]\r\n container.items = newItems\r\n evalContainerSelectAll(container)\r\n }\r\n }\r\n }\r\n }\r\n })\r\n\r\n evalMembersSelectAll(state.members)\r\n },\r\n\r\n [types.ORG_MEMBER_SELECT_ALL](state, payload: boolean) {\r\n state.members.items = state.members.items.map((x) => ({ ...x, selected: payload }))\r\n state.members.selectedAll = payload\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: W I S H C O N T A I N E R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ORG_CONTAINER_REGISTER](state, payload: orgmap.TWishContainerOptionItem) {\r\n\r\n \r\n\r\n if (state.wish.findIndex((x) => x.id === payload.id) < 0) {\r\n \r\n const containerItem = payload.items?.filter( (item)=>{\r\n return item.valueType == null\r\n })\r\n \r\n const newContainer: orgmap.TWishContainer = {\r\n ...payload,\r\n selectedAll: false,\r\n items: containerItem?.map(x => ({ ...x, selected: x.selected })) || [],\r\n activated: payload.id === 0,\r\n }\r\n\r\n\r\n const hasValueTypeItem = payload.items?.filter( (item)=>{\r\n return item.valueType != null\r\n })\r\n\r\n if(hasValueTypeItem && hasValueTypeItem.length> 0){\r\n let apiArr = [] as any[]\r\n\r\n hasValueTypeItem.forEach(item =>{\r\n \r\n //API 분기 필요 함\r\n //우선 /api/hr/department/search? 로 커버\r\n if(item.valueType == TWishContainerValueType.email){ //이메일\r\n // apiArr.push(api.hr.getUserInfo(item.value))\r\n\r\n }else if(item.valueType == TWishContainerValueType.personCode){ //personCode\r\n // apiArr.push(api.publics.getPersonInfo(item.value))\r\n }\r\n else if(item.valueType ==TWishContainerValueType.deptCode){ //부서코드\r\n\r\n }\r\n // includeAllFlag: false\r\n // query: \"fl_mark\"\r\n // retiredFlag: false\r\n\r\n apiArr.push(api.hr.searchOrg({\r\n includeAllFlag : false,\r\n query : item.value,\r\n retiredFlag : false\r\n },\"FL\"))\r\n \r\n\r\n })\r\n Promise.all(apiArr).then(result =>{\r\n \r\n result.forEach(r =>{\r\n var idxNo = result.indexOf(r)\r\n \r\n if(r.items.length > 0) newContainer.items.push({\r\n ...r.items[0],\r\n text: r.items[0].displayName,\r\n selected: hasValueTypeItem[idxNo].selected,\r\n personCode : hasValueTypeItem[idxNo].valueType == 2 ? \"\" : r.items[0].id,\r\n value : r.items[0].email,\r\n title : r.items[0].titleName\r\n })\r\n })\r\n //state.wish = [...state.wish, newContainer]\r\n })\r\n\r\n } \r\n \r\n state.wish = [...state.wish, newContainer]\r\n \r\n \r\n }\r\n },\r\n\r\n [types.ORG_CONTAINER_UPDATE](state, payload: orgmap.TWishContainerOptionItem) {\r\n if (state.wish.findIndex((x) => x.id === payload.id) > -1) {\r\n var container = state.wish.find((x) => x.id === payload.id);\r\n if (container) {\r\n\r\n const newContainer: orgmap.TWishContainer = {\r\n ...container,\r\n items: payload.items?.map(x => ({ ...x, selected: false })) || [],\r\n }\r\n\r\n state.wish = state.wish.map(a => {\r\n if (a.id === newContainer.id) {\r\n return newContainer;\r\n }\r\n else { return a; }\r\n })\r\n }\r\n }\r\n },\r\n\r\n [types.ORG_CONTAINER_ITEM_SELECT](state, payload: TWishContainerSelectPayload) {\r\n const { id, item } = payload\r\n const container = state.wish.find((c) => c.id === id)\r\n if (container) {\r\n container.items = container.items.map((x) => {\r\n if (x.id === item.id) { // value 로 비교시 부서의 경우 고유키가 되지 못함\r\n return {\r\n ...x,\r\n selected: !x.selected,\r\n }\r\n } else return x\r\n })\r\n evalContainerSelectAll(container)\r\n }\r\n },\r\n \r\n\r\n [types.ORG_CONTAINER_ITEM_SELECT_ALL](state, payload: TWishContainerSelectAllPayload) {\r\n const { id, select } = payload\r\n const container = state.wish.find((c) => c.id === id)\r\n if (container) {\r\n container.items = container.items.map((c) => ({ ...c, selected: select }))\r\n evalContainerSelectAll(container)\r\n }\r\n },\r\n\r\n [types.ORG_CONTAINER_CLEAR](state){\r\n state.wish = []\r\n },\r\n\r\n [types.ORG_CONTAINER_ITEM_MOVE_UP](state, id: number) {\r\n const container = state.wish.find((c:any) => c.id === id)\r\n if (container) {\r\n var selectedItems = container.items.filter((x: any) => x.selected);\r\n if (selectedItems.length == 1) {\r\n for (var i=0; i= 0) {\r\n var temp = JSON.parse(JSON.stringify(container.items[i - 1]));\r\n var clone = JSON.parse(JSON.stringify(item));\r\n container.items[i] = temp;\r\n container.items[i - 1] = clone;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n [types.ORG_CONTAINER_ITEM_MOVE_DOWN](state, id: number) {\r\n const container = state.wish.find((c:any) => c.id === id)\r\n if (container) {\r\n var selectedItems = container.items.filter((x: any) => x.selected);\r\n if (selectedItems.length == 1) {\r\n for (var i=0; i c.id === payload)\r\n // if (container) {\r\n // container.items = [\r\n // ...container.items,\r\n // {\r\n // text: 'test' + container.items.length + 1,\r\n // value: 'test' + container.items.length + '@test.com',\r\n // selected: false,\r\n // },\r\n // ]\r\n // evalContainerSelectAll(container)\r\n // }\r\n // },\r\n\r\n // [types.ORG_CONTAINER_ITEM_DEL](\r\n // state,\r\n // payload: { containerId: number; item?: orgmap.TWishContainerItem }\r\n // ) {\r\n // const container = state.wish.find((c) => c.id === payload.containerId)\r\n // if (container) {\r\n // if (payload.item) {\r\n // // 삭제 대상을 특정하는 경우\r\n // container.items = container.items.filter((c) => c.value !== payload.item?.value)\r\n // } else {\r\n // container.items = container.items.filter((c) => !c.selected)\r\n // }\r\n // evalContainerSelectAll(container)\r\n // }\r\n // },\r\n\r\n [types.ORG_CONTAINER_DEPT_ITEM_ADD](state, payload: orgmap.TWishContainerItem) {\r\n const container = state.wish.find((c) => c.activated === true);\r\n\r\n if (container) {\r\n if (container.items.findIndex(x => x.id === payload.id) < 0) { // 중복 제거\r\n const newItems = [\r\n ...container.items,\r\n payload,\r\n ];\r\n container.items = newItems;\r\n evalContainerSelectAll(container)\r\n\r\n }\r\n }\r\n },\r\n\r\n [types.ORG_CONTAINER_ITEM_ADD](state, { containerId }: TOrgContainerItemAddMutationPayload) {\r\n const container = state.wish.find((c) => c.id === containerId)\r\n if (container) {\r\n const selItems = state.members.items\r\n .filter((x) => {\r\n return (\r\n // 선택된 아이템\r\n x.selected &&\r\n // 중복 제거\r\n container.items.findIndex((y) => (y.value === x.email || y.id === x.id)) < 0\r\n )\r\n });\r\n\r\n const flatten = function (list: Array): Array {\r\n const stack = [...list];\r\n const res: Array = [];\r\n while (stack.length) {\r\n const next = stack.pop();\r\n if (next) {\r\n if (['IPM.DistList', 'G'].includes(next.type || '')) {\r\n next.children?.forEach(x => {\r\n if (res.findIndex(a => a.email === x.email) < 0) { res.push(x); }\r\n });\r\n }\r\n else {\r\n if (res.findIndex(a => a.email === next.email) < 0) { res.push(next); }\r\n }\r\n }\r\n }\r\n return res.reverse();\r\n }\r\n\r\n const flattened = flatten(selItems);\r\n const newItems = [\r\n ...container.items,\r\n ...flattened\r\n .filter((a) => {\r\n return (\r\n // 중복 제거\r\n container.items.findIndex((y) => (y.value === a.email || y.id === a.id)) < 0\r\n )\r\n })\r\n .map((x: any) => ({\r\n ...x,\r\n text: x.name,\r\n value: x.email,\r\n selected: false,\r\n })),\r\n ]\r\n container.items = newItems\r\n evalContainerSelectAll(container)\r\n state.members.items = state.members.items.map((x) => ({ ...x, selected: false }))\r\n evalMembersSelectAll(state.members)\r\n }\r\n },\r\n\r\n [types.ORG_CONTAINER_ITEM_DEL](state, { containerId }: TOrgContainerItemDelMutationPayload) {\r\n const container = state.wish.find((c) => c.id === containerId)\r\n if (container) {\r\n container.items = container.items.filter((x) => !x.selected)\r\n evalContainerSelectAll(container)\r\n }\r\n },\r\n\r\n [types.ORG_CONTAINER_ACTIVATE](state, { containerId }: TOrgContainerActivateMutationPayload) {\r\n const container = state.wish.find((c) => c.id === containerId)\r\n if (container) {\r\n state.wish = state.wish.map(x => {\r\n if (x === container) {\r\n return {\r\n ...x,\r\n activated: true\r\n }\r\n }\r\n else {\r\n return {\r\n ...x,\r\n activated: false\r\n }\r\n }\r\n })\r\n }\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M O B I L E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ORG_USER_SELECT](state, payload: orgmap.TUser) {\r\n var personId = payload.personId\r\n var index = state.selections.users.findIndex(user => user.personId == personId)\r\n if (index > -1)\r\n state.selections.users.splice(index, 1)\r\n else\r\n state.selections.users.push(payload)\r\n },\r\n\r\n [types.ORG_USER_SELECT_CLEAR](state) {\r\n state.selections.users = []\r\n },\r\n}\r\n\r\nconst evalMembersSelectAll = (members: orgmap.TMemberList) => {\r\n const stateItems = members.items\r\n members.selectedAll =\r\n stateItems.length > 0 && stateItems.filter((x) => x.selected).length === stateItems.length\r\n}\r\n\r\nconst evalContainerSelectAll = (container: orgmap.TWishContainer) => {\r\n container.selectedAll =\r\n container.items.length > 0 &&\r\n container.items.filter((x) => x.selected).length === container.items.length\r\n}\r\n","import actions from './actions'\r\nimport getters from './getters'\r\nimport mutations from './mutations'\r\n\r\n// initial state\r\nconst state: orgmap.state.OrgmapState = {\r\n user: Object.create(null),\r\n wish: [],\r\n members: {\r\n items: [],\r\n selectedAll: false,\r\n totalCount: 0,\r\n },\r\n selections: {\r\n dept: null,\r\n users: [],\r\n },\r\n departments: [],\r\n options: {\r\n addableDept: false,\r\n single: false,\r\n move: false,\r\n personal: true,\r\n selectFixedComcode : '',\r\n public: true,\r\n containers: [],\r\n }\r\n}\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n}\r\n","import Vue from 'vue';\r\nimport { ActionTree } from 'vuex';\r\nimport * as types from './types';\r\nimport api from '@mail/api'\r\n\r\n\r\nexport default >{\r\n [types.EMAIL_CURRENT](action, selection: mail.EmailSelectionInfo) {\r\n if (selection.email?.isRead == 'False') {\r\n api.mail.changeReadState(selection.id, true)\r\n }\r\n action.commit(types.EMAIL_CURRENT, selection);\r\n },\r\n\r\n [types.EMAIL_DETAIL](action, id: string): Promise {\r\n if (!id && typeof id !== 'string') {\r\n throw Error('The ID parameter value only accepts string.');\r\n }\r\n return api.mail.getDetail(id).then((email) => {\r\n // if (\r\n // // popup인 경우 currentEmail이 null\r\n // !action.state.currentEmail ||\r\n // // 상세 내용을 조회 하는 중 다른 아이템을 클릭할 경우 무시\r\n // action.state.currentEmail?.id === email.id\r\n // ) {\r\n action.dispatch(types.EMAIL_CURRENT, {\r\n id: id,\r\n method: 'none',\r\n email: email,\r\n } as mail.EmailSelectionInfo);\r\n //}\r\n return email;\r\n });\r\n },\r\n\r\n [types.FOLDER_LOAD](action, parentId?: string) {\r\n return api.folder.getFolderTree(parentId).then((folders) => {\r\n action.commit(types.FOLDER_LOAD, {\r\n parentId: parentId,\r\n listData: folders,\r\n });\r\n });\r\n },\r\n}\r\n","import { GetterTree } from 'vuex'\r\nimport * as types from './types';\r\n\r\nexport default >{\r\n [types.EMAIL_CURRENT](state: mail.state.MailState) {\r\n return state.currentEmail;\r\n },\r\n\r\n [types.EMAIL_SELECT](state: mail.state.MailState) {\r\n return state.selections;\r\n },\r\n\r\n [types.FOLDER_LIST](state) {\r\n return state.folders.items;\r\n },\r\n}\r\n","import { MutationTree } from 'vuex'\r\nimport * as types from './types';\r\n\r\nconst getEmailById = function(\r\n items?: ItemList,\r\n id?: string\r\n): mail.EmailMessage | undefined {\r\n return items ? items.find((email) => email.id === id) : undefined;\r\n};\r\n\r\nconst orderBy = function(favorites: ItemList, name: string = 'name') {\r\n return favorites.sort((a: any, b: any) => {\r\n if (a[name] < b[name]) {\r\n return -1;\r\n }\r\n if (a[name] > b[name]) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n};\r\n\r\nconst getFolderById = function(\r\n folders: ItemList,\r\n id: string\r\n): mail.MailboxFolder | undefined {\r\n if (id) {\r\n for (var i = 0; i < folders.length; i++) {\r\n const folder = folders[i];\r\n if (folder.id === id) {\r\n return folder;\r\n } else if (folder.hasChildren) {\r\n const ret = getFolderById(folder.children || [], id);\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nexport default >{\r\n [types.EMAIL_SELECT](state, id: string) {\r\n const idx = state.selections.indexOf(id);\r\n if (idx < 0) {\r\n state.selections.push(id);\r\n } else {\r\n state.selections.splice(idx, 1);\r\n }\r\n },\r\n\r\n [types.EMAIL_SELECT_ALL](state, ids: string[]) {\r\n if (ids.length === state.selections.length) {\r\n state.selections = []\r\n } else {\r\n state.selections = ids\r\n }\r\n },\r\n\r\n [types.EMAIL_SELECT_CLEAR](state) {\r\n state.selections = []\r\n },\r\n\r\n [types.EMAIL_CURRENT](state, selection: mail.EmailSelectionInfo) {\r\n const { id, method, email } = selection;\r\n let found = email;\r\n if (!found && state.emails) {\r\n found = getEmailById(state.emails.items, id);\r\n }\r\n\r\n if (found) {\r\n // 선택 항목 중 하나라도 선택이 해제되면 전체선택도 함께 해제 처리\r\n if (state.selections.includes(found.id)) {\r\n state.selectAll = false;\r\n }\r\n\r\n switch (method) {\r\n case 'none':\r\n state.currentEmail = found;\r\n //state.selections = [found.id];\r\n state.selectionFrom = found.id;\r\n // 이메일 하나를 클릭한 경우 전체 선택 상태 해제\r\n state.selectAll = false;\r\n break;\r\n\r\n case 'ctrl':\r\n const idxCtrl = state.selections.indexOf(found.id);\r\n if (idxCtrl < 0) {\r\n state.selections.push(found.id);\r\n state.selectionFrom = found.id;\r\n } else {\r\n // 선택이 한개 이상일 경우에만 선택 해제(최소한 한개 선택은 유지)\r\n if (state.selections.length > 1) {\r\n state.selections.splice(idxCtrl, 1);\r\n }\r\n }\r\n break;\r\n\r\n case 'shift':\r\n if (state.selectionFrom) {\r\n const items = state.emails?.items || [];\r\n const idxFrom = items.findIndex(\r\n (m) => m.id === state.selectionFrom\r\n );\r\n const idxTo = items.findIndex(\r\n (m) => m.id === selection.id\r\n );\r\n const addSelections: string[] = [];\r\n if (idxFrom < idxTo)\r\n for (var i = idxFrom; i <= idxTo; i++) {\r\n addSelections.push(items[i].id);\r\n }\r\n else {\r\n for (var i = idxFrom; i >= idxTo; i--) {\r\n addSelections.push(items[i].id);\r\n }\r\n }\r\n state.selections = addSelections;\r\n }\r\n break;\r\n\r\n case 'toggle':\r\n const idx = state.selections.indexOf(found.id);\r\n if (idx < 0) {\r\n state.selections.push(found.id);\r\n } else {\r\n state.selections.splice(idx, 1);\r\n }\r\n break;\r\n }\r\n }\r\n },\r\n\r\n [types.FOLDER_LOAD](\r\n state,\r\n data: { parentId?: string; listData: PagedItemList }\r\n ) {\r\n const { parentId, listData } = data;\r\n const folder = getFolderById(state.folders.items, parentId || '');\r\n const applyAddtionalProps = (\r\n folders: ItemList\r\n ): ItemList => {\r\n return orderBy(\r\n folders.map((folder) => {\r\n folder.nodeStatus = null;\r\n if (folder.children) {\r\n folder.children = applyAddtionalProps(folder.children);\r\n }\r\n return folder;\r\n })\r\n );\r\n };\r\n listData.items = applyAddtionalProps(listData.items);\r\n if (folder) {\r\n folder.children = listData.items;\r\n } else {\r\n state.folders = listData;\r\n }\r\n },\r\n}\r\n","import actions from './actions'\r\nimport getters from './getters'\r\nimport mutations from './mutations'\r\n\r\n// initial state\r\nconst state: mail.state.MailState = {\r\n folders: {\r\n items: [],\r\n totalCount: 0,\r\n moreAvailable: false,\r\n nextPageOffset: 0,\r\n },\r\n favorites: [],\r\n emails: null,\r\n selections: [],\r\n selectionFrom: null,\r\n /**\r\n * 전체 선택 여부\r\n */\r\n selectAll: false,\r\n currentEmail: null,\r\n search: {\r\n isAll: false,\r\n isSearch: false,\r\n query: '',\r\n unreadOnly: false,\r\n sorts: undefined,\r\n pattern: null,\r\n },\r\n toolbar: {\r\n orientation: 'vertical',\r\n },\r\n write: {\r\n visibles: {\r\n sender: false,\r\n to: true,\r\n cc: true,\r\n bcc: false,\r\n file: false,\r\n bigfile: false,\r\n },\r\n },\r\n}\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n}\r\n","import api from '@calendar/api'\r\n\r\nexport interface MenuInfo {\r\n name: string\r\n id: string\r\n icon?: string\r\n select: boolean\r\n expand: boolean\r\n child?: MenuInfo[]\r\n path?: string\r\n type: string\r\n color?: string\r\n folder?: calendar.Folder | null\r\n}\r\n\r\nconst menues: MenuInfo[] = [\r\n {\r\n name: '일정 조회',\r\n id: '',\r\n icon: 'home2',\r\n select: false,\r\n expand: false,\r\n child: [],\r\n path: 'calendar-main',\r\n type: 'router-link',\r\n },\r\n {\r\n name: '내 일정',\r\n id: '0',\r\n icon: 'box',\r\n select: false,\r\n expand: false,\r\n child: [],\r\n type: ''\r\n },\r\n {\r\n name: '회사 일정',\r\n id: '1',\r\n icon: 'box',\r\n select: false,\r\n expand: false,\r\n child: [],\r\n type: ''\r\n },\r\n {\r\n name: '부서 일정',\r\n id: '2',\r\n icon: 'box',\r\n select: false,\r\n expand: false,\r\n child: [],\r\n type: ''\r\n }\r\n]\r\n\r\nconst colorArray = [\r\n '#ff4b09',\r\n '#ffc609',\r\n '#e0ff03',\r\n '#bdff09',\r\n '#29e1bf',\r\n '#0942ff',\r\n '#241eb4',\r\n '#c609ff',\r\n '#ff119a',\r\n '#c9dbdb',\r\n]\r\n\r\nexport default menues\r\n\r\nconst getMyFolderList = function() {\r\n var myFolder = menues.find(x => x.name == '내 일정')?.child\r\n api.ews_folder.getMyFolderItems('').then((folders) => {\r\n folders.map((folder: calendar.Folder, index) => {\r\n console.log(index)\r\n var folderItem: MenuInfo = {\r\n name: '',\r\n id: '',\r\n select: false,\r\n expand: false,\r\n type: '',\r\n color: '',\r\n folder: null\r\n }\r\n folderItem.name = folder.displayName\r\n folderItem.id = folder.id\r\n folderItem.color = !folder.colorCode || folder.colorCode == 'none' ? colorArray[index] : folder.colorCode\r\n folderItem.folder = folder\r\n\r\n myFolder?.push(folderItem)\r\n })\r\n })\r\n}\r\n\r\nconst getCompanyList = function() {\r\n var myFolder = menues.find(x => x.name == '회사 일정')?.child\r\n api.db_main.getCompanyFolderList('').then((folders) => {\r\n console.log('folders', folders)\r\n folders.map((folder: calendar.Folder, index) => {\r\n var folderItem: MenuInfo = {\r\n name: '',\r\n id: '',\r\n select: false,\r\n expand: false,\r\n type: '',\r\n color: '',\r\n folder: null\r\n }\r\n folderItem.name = folder.displayName\r\n folderItem.id = folder.id\r\n folderItem.folder = folder\r\n\r\n myFolder?.push(folderItem)\r\n })\r\n })\r\n}\r\n\r\nconst getDeptFolderList = function() {\r\n var myFolder = menues.find(x => x.name == '부서 일정')?.child\r\n api.db_main.getDeptFolderList('').then((folders) => {\r\n folders.map((folder: calendar.Folder) => {\r\n var folderItem: MenuInfo = {\r\n name: '',\r\n id: '',\r\n select: false,\r\n expand: false,\r\n type: '',\r\n color: '',\r\n folder: null\r\n }\r\n folderItem.name = folder.displayName\r\n folderItem.id = folder.id\r\n folderItem.folder = folder\r\n\r\n myFolder?.push(folderItem)\r\n })\r\n })\r\n}\r\n\r\ngetMyFolderList()\r\ngetCompanyList()\r\ngetDeptFolderList()","import { ActionTree } from 'vuex';\r\nimport * as types from './types';\r\nimport * as gtypes from '@/store/types'\r\nimport api from '@/modules/calendar/api';\r\n//types\r\nimport { EnumCalendarViewType } from '@/modules/calendar/types';\r\nimport * as dateutil from '@/util/date-helper';\r\nimport accountState from '@account/store'\r\nimport colorArray from '@calendar/components/menu'\r\nimport { dispatchEventBus } from '@/util';\r\n\r\n\r\nconst batchCalendars: number[] = [1, 3, 4];\r\n/**\r\n * 선택된 날짜가 데이터 리로드가 필요한 범위인지 검사합니다\r\n * @param state 일정 옵션 상태\r\n */\r\nconst isValidReloadFromChangedDate = function (state: calendar.state.CalendarState, forceType?: EnumCalendarViewType): boolean {\r\n let flag: boolean = false;\r\n\r\n const backDate: Date = state.backupDate.date;\r\n const curDate: Date = state.currentDate.date;\r\n const vmode: EnumCalendarViewType = forceType || state.calendarMode;\r\n\r\n switch (vmode) {\r\n case EnumCalendarViewType.Month:\r\n let mStart = dateutil.uGetMonthStartDate(backDate);\r\n let mEnd = dateutil.uGetMonthEndDate(backDate);\r\n flag = dateutil.uGetIsInDate(curDate, mStart, mEnd);\r\n break;\r\n case EnumCalendarViewType.Week:\r\n let wStart = dateutil.uGetWeekStartDate(backDate);\r\n let wEnd = dateutil.uGetWeekEndDate(backDate);\r\n flag = dateutil.uGetIsInDate(curDate, wStart, wEnd);\r\n break;\r\n case EnumCalendarViewType.Daily:\r\n flag = dateutil.uGetIsInDate(curDate, backDate, backDate);\r\n break;\r\n }\r\n\r\n return flag;\r\n}\r\n/**\r\n * 일정을 등록하거나 수정할 때 유효성을 검사합니다\r\n * @param item 일정 관련 저장 변수\r\n */\r\nconst validEvent = function (item: calendar.CalendarItem | null): string {\r\n let errMessage: string = '';\r\n\r\n if (!item?.subject) {\r\n errMessage = '제목이 비어있습니다';\r\n }\r\n else if (!item?.start) {\r\n errMessage = '시작기한이 비어있습니다';\r\n }\r\n else if (!item?.starttime) {\r\n errMessage = '시작시간이 비어있습니다';\r\n }\r\n else if (!item?.end) {\r\n errMessage = '완료기한이 비어있습니다';\r\n }\r\n else if (!item?.endtime) {\r\n errMessage = '완료시간이 비어있습니다';\r\n }\r\n else if (item.isAllDayEvent === false) {\r\n if (item.start == item.end && item.starttime == item.endtime) {\r\n errMessage = '시작일과 종료일이 동일할 수 없습니다';\r\n }\r\n\r\n if (dateutil.IEDate(item.start + ' ' + item.starttime) > dateutil.IEDate(item.end + ' ' + item.endtime)) {\r\n errMessage = '시작일이 종료일보다 클 수 없습니다';\r\n }\r\n }\r\n else if (!item.requiredAttendees && !item.requiredAttendees) {\r\n errMessage = \"필수참석자를 선택해 주세요\";\r\n }\r\n\r\n if (!item?.importance) {\r\n errMessage = '중요도를 선택해주십시오';\r\n }\r\n else if (item.requiredAttendees.length || item.optionalAttendees.length) {\r\n if ([...item.requiredAttendees, ...item.optionalAttendees].filter((x) => !x.address || x.address.indexOf('@') == -1).length) {\r\n errMessage = '참석자 메일주소가 잘못된 형식입니다';\r\n }\r\n }\r\n\r\n\r\n return errMessage;\r\n}\r\n\r\nconst getCheckedFolderArr = function (folders: calendar.Folder[]): string[] {\r\n var returnArr: string[] = [];\r\n\r\n folders.forEach(f => {\r\n if(f.checked)\r\n returnArr.push(f.id);\r\n\r\n if(f.items) {\r\n var childArrs = getCheckedFolderArr(f.items as calendar.Folder[]);\r\n returnArr = [\r\n ...returnArr,\r\n ...childArrs\r\n ];\r\n }\r\n });\r\n\r\n return returnArr;\r\n}\r\n\r\nconst findFolder = function (folders: calendar.Folder[], id: string): calendar.Folder | undefined {\r\n if (id) {\r\n for (let folder of folders) {\r\n if (folder.id === id) {\r\n return folder;\r\n } else if (folder.childFolderCount && folder.childFolderCount > 0) {\r\n let foundFolder = findFolder(folder.items || [], id);\r\n if (foundFolder) {\r\n return foundFolder;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default >{\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 새로 회의실 목록, 미니캘린더, 캘린더 이벤트를 로드합니다\r\n * @param action \r\n */\r\n [types.COMMON_REFRESH](action) {\r\n action.dispatch(types.COMMON_ROOM_LOAD); \r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST);\r\n },\r\n\r\n /**\r\n * 회의실 목록을 불러옵니다\r\n * @param action \r\n */\r\n [types.COMMON_ROOM_LOAD](action) {\r\n return api.ews_resource.getRooms().then((res) => {\r\n action.commit(types.COMMON_ROOM_LOAD, res);\r\n action.commit(types.ADD_ACTION, 'ROOMS' as types.ACTION_TYPE);\r\n }).catch((err) => {\r\n debugger;\r\n });\r\n },\r\n\r\n /**\r\n * 현재 선택된 날짜의 상태에 따른 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_SELECT](action, item: calendar.DateItem) {\r\n console.log('dateItem', item);\r\n action.commit(types.COMMON_DATE_SELECT, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date);\r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n //action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n //action.commit(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n action.commit(types.CALENDAR_DATE_MATRIX_LOAD); \r\n }\r\n\r\n return action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n },\r\n\r\n //20201112\r\n [types.COMMON_CHANGE_DATE](action, item: calendar.DateItem) {\r\n action.commit(types.COMMON_CHANGE_DATE, item);\r\n //action.state.monthDate = dateutil.IEDate(action.state.currentDate.date); \r\n },\r\n\r\n /**\r\n * '오늘'을 클릭할 경우 해당 날의 일별 이벤트를 불러옵니다\r\n * @param action \r\n */\r\n [types.COMMON_DATE_SELECT_TODAY](action) {\r\n action.state.currentDate.date = new Date();\r\n action.state.currentCalendarDate.date = new Date();\r\n action.state.monthDate = new Date();\r\n action.dispatch(types.CALENDAR_MONTH_MATRIX_LOAD); \r\n return Promise.all([\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST),\r\n action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST)\r\n ]); \r\n },\r\n\r\n [types.CALENDAR_MAININIT](action) {\r\n action.state.currentDate.date = new Date();\r\n action.state.currentCalendarDate.date = new Date();\r\n action.state.monthDate = new Date();\r\n action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST)\r\n },\r\n\r\n /**\r\n * 월별보기에서 왼쪽화살표를 클릭 시 전 월의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_MONTH_PREV](action, item: calendar.DateItem) {\r\n action.commit(types.COMMON_DATE_MONTH_PREV, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date);\r\n\r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n return action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n //action.commit(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n //action.commit(types.CALENDAR_DATE_MATRIX_LOAD);\r\n return action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n }\r\n },\r\n /**\r\n * 월별보기에서 오른쪽화살표를 클릭 시 다음 월의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_MONTH_NEXT](action, item: calendar.DateItem) { \r\n action.commit(types.COMMON_DATE_MONTH_NEXT, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date);\r\n \r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n return action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n //action.commit(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n //action.commit(types.CALENDAR_DATE_MATRIX_LOAD);\r\n return action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n }\r\n },\r\n\r\n /**\r\n * 일정 뷰에서 왼쪽화살표를 클릭 시 다음 월의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_CALENDAR_PREV](action, item: calendar.DateItem) { \r\n const mode = action.state.calendarMode\r\n if (mode === EnumCalendarViewType.Month) {\r\n action.commit(types.COMMON_DATE_MONTH_PREV, item)\r\n } else if (mode === EnumCalendarViewType.Week) {\r\n action.commit(types.COMMON_DATE_WEEK_PREV, item)\r\n } else if (mode === EnumCalendarViewType.Daily) {\r\n action.commit(types.COMMON_DATE_DATE_PREV, item)\r\n }\r\n \r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date);\r\n \r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n return action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n return action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n }\r\n },\r\n\r\n /**\r\n * 일정 뷰에서 오른쪽화살표를 클릭 시 다음 월의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_CALENDAR_NEXT](action, item: calendar.DateItem) { \r\n const mode = action.state.calendarMode\r\n if (mode === EnumCalendarViewType.Month) {\r\n action.commit(types.COMMON_DATE_MONTH_NEXT, item)\r\n } else if (mode === EnumCalendarViewType.Week) {\r\n action.commit(types.COMMON_DATE_WEEK_NEXT, item)\r\n } else if (mode === EnumCalendarViewType.Daily) {\r\n action.commit(types.COMMON_DATE_DATE_NEXT, item)\r\n }\r\n \r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date);\r\n \r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n return action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n return action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n }\r\n },\r\n\r\n /**\r\n * 월 선택 시 해당 월과 관련된 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_SELECT_MONTH](action, item: calendar.DateItem) {\r\n action.commit(types.COMMON_DATE_SELECT_MONTH, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date);\r\n //action.commit(types.MINI_CALENDAR_MONTH_MATRIX_LOAD);\r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n return action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); \r\n }\r\n else {\r\n return action.commit(types.CALENDAR_MONTH_MATRIX_LOAD); \r\n }\r\n\r\n },\r\n /**\r\n * 주별보기에서 왼쪽화살표를 클릭하면 전 주의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_WEEK_PREV](action, item: calendar.DateItem) {\r\n action.commit(types.COMMON_DATE_WEEK_PREV, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date); \r\n\r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n //action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n action.commit(types.CALENDAR_WEEK_MATRIX_LOAD); \r\n }\r\n },\r\n /**\r\n * 주별보기에서 오른쪽화살표를 클릭하면 다음 주의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_WEEK_NEXT](action, item: calendar.DateItem) {\r\n action.commit(types.COMMON_DATE_WEEK_NEXT, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date); \r\n\r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n //action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n action.commit(types.CALENDAR_WEEK_MATRIX_LOAD); \r\n }\r\n },\r\n /**\r\n * 일별보기에서 왼쪽 화살표를 클릭하면 다음 날의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_DATE_PREV](action, item: calendar.DateItem) {\r\n action.commit(types.COMMON_DATE_DATE_PREV, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date); \r\n\r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n return action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n // action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n //action.commit(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n action.commit(types.CALENDAR_DATE_MATRIX_LOAD);\r\n return action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n }\r\n },\r\n /**\r\n * 일별보기에서 오른쪽 화살표를 클릭하면 다음 날의 이벤트를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.COMMON_DATE_DATE_NEXT](action, item: calendar.DateItem) {\r\n\r\n action.commit(types.COMMON_DATE_DATE_NEXT, item);\r\n action.state.monthDate = dateutil.IEDate(action.state.currentDate.date); \r\n\r\n if (!isValidReloadFromChangedDate(action.state)) {\r\n return action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); // 선택 날짜가 변경되면 이벤트 데이터 다시 불러오기 \r\n }\r\n else {\r\n //action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n //action.commit(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n action.commit(types.CALENDAR_DATE_MATRIX_LOAD);\r\n return action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n }\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: F O L D E R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n /**\r\n * 폴더 선택에 따른 이벤트 데이터를 불러옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.FOLDER_SELECT](action, item: calendar.Folder) {\r\n action.commit(types.FOLDER_SELECT, item);\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST);\r\n action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n },\r\n\r\n /**\r\n * 폴더와 관련된 내용과 이벤트(일정)를 불러옵니다\r\n * @param action \r\n * @param parentId \r\n */\r\n [types.FOLDER_LOAD_TREE](action, parentId?: string) {\r\n var personCode = accountState.state.current?.user == null ? '' : accountState.state.current.user.personCode;\r\n var comCode = accountState.state.current?.user == null ? '' : accountState.state.current.user.comCode; \r\n\r\n let funcArr = [\r\n api.ews_folder.getMyFolderItems(parentId),\r\n api.ews_folder.getSharedFolders(),\r\n api.db_main.getCompanyFolderList({ personCode: personCode, comCode: comCode }),\r\n api.db_main.getDeptFolderList({ personCode: personCode })\r\n ] as Array>;\r\n //action.commit(types.COMMON_LOADDING, true);\r\n return Promise.all(funcArr).then((resultArray) => {\r\n let itemList = [];\r\n let rootIdx = 0;\r\n for (let i = 0; i < resultArray.length; i++) {\r\n const items = resultArray[i];\r\n\r\n for (let j = 0; j < items.length; j++) {\r\n const item = items[j];\r\n item.root_index = rootIdx;\r\n itemList.push(item);\r\n rootIdx++;\r\n }\r\n }\r\n\r\n var data = {\r\n items: itemList,\r\n parentId: parentId\r\n };\r\n //action.commit(types.COMMON_LOADDING, false);\r\n action.commit(types.FOLDER_LOAD_TREE, data);\r\n action.commit(types.ADD_ACTION, 'FOLDERS' as types.ACTION_TYPE); \r\n }).catch((e) => {\r\n console.log(e)\r\n //action.commit(types.COMMON_LOADDING, false);\r\n });\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C A L E N D A R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n // \r\n\r\n /**\r\n * 선택된 캘린더\r\n * @param action \r\n * @param eventId \r\n */\r\n [types.CALENDAR_EVENT_SELECT_ID](action, eventId: string) {\r\n action.commit(types.CALENDAR_EVENT_SELECT_ID, eventId);\r\n action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n action.dispatch(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n action.dispatch(types.CALENDAR_DATE_MATRIX_LOAD);\r\n },\r\n\r\n [types.CALENDAR_DATE_SELECT](action, item: calendar.DateItem) { \r\n action.commit(types.CALENDAR_DATE_SELECT, item); \r\n action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST);\r\n action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n action.dispatch(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n action.dispatch(types.CALENDAR_DATE_MATRIX_LOAD);\r\n },\r\n\r\n /** 2\r\n * 캘린더의 월 매트릭스를 불러온다\r\n * @param action \r\n */\r\n [types.CALENDAR_MONTH_MATRIX_LOAD](action) { \r\n action.commit(types.CALENDAR_MONTH_MATRIX_LOAD);\r\n return action.state.calendarMonthMatrix;\r\n },\r\n /**\r\n * 뷰 모드가 주별보기로 바뀔 경우 주 매트릭스를 불러온다\r\n * @param action \r\n */\r\n [types.CALENDAR_WEEK_MATRIX_LOAD](action) {\r\n if (action.state.calendarMode == EnumCalendarViewType.Week) {\r\n action.commit(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n }\r\n return action.state.calendarWeekMatrix;\r\n },\r\n /**\r\n * 뷰 모드가 일별보기로 바뀔 경우 일 매트릭스를 불러옵니다\r\n * @param action \r\n */\r\n [types.CALENDAR_DATE_MATRIX_LOAD](action) {\r\n if (action.state.calendarMode == EnumCalendarViewType.Daily) {\r\n action.commit(types.CALENDAR_DATE_MATRIX_LOAD);\r\n }\r\n return action.state.calendarDateMatrix;\r\n },\r\n /**\r\n * 캘린더에서 뷰 모드가 변경되면 미니달력과 이벤트 리스트를 갱신합니다\r\n * @param action \r\n * @param viewType 캘린더 뷰 모드( 일 | 주 | 월 )\r\n */\r\n [types.CALENDAR_VIEWMODE_CHANGE](action, viewType: EnumCalendarViewType) { \r\n if (viewType != EnumCalendarViewType.Month) {\r\n Object.assign(action.state.currentDate, action.state.currentCalendarDate);\r\n }\r\n\r\n action.commit(types.CALENDAR_VIEWMODE_CHANGE, viewType);\r\n return action.dispatch(types.FOLDER_LOAD_TREE)\r\n .then(res => { \r\n var promiseArr = [\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST)\r\n ];\r\n \r\n if(viewType === EnumCalendarViewType.Daily) {\r\n promiseArr.push(action.dispatch(types.CALENDAR_DAILY_EVENT_LOAD_LIST));\r\n }\r\n\r\n return Promise.all(promiseArr);\r\n }); \r\n },\r\n /**\r\n * 캘린더에 이벤트(일정)를 추가합니다\r\n * @param action \r\n */\r\n [types.CALENDAR_EVENT_ADD](action) {\r\n\r\n if (!action.state.newCalendar) {\r\n return;\r\n }\r\n \r\n const newCalendar = action.state.newCalendar;\r\n const { item } = newCalendar; \r\n let errMessage: string = validEvent(item);\r\n\r\n if (item && !errMessage) {\r\n action.commit(types.COMMON_ERROR_CLEAR);\r\n\r\n if (item.isEWS) {\r\n const fields: mail.api.FieldOption[] = [\r\n { key: 'Importance', value: item.importance },\r\n { key: 'Subject', value: item.subject },\r\n { key: 'Location', value: item.location },\r\n { key: 'Start', value: item.start + 'T' + item.starttime },\r\n { key: 'End', value: item.end + 'T' + item.endtime },\r\n { key: 'IsAllDayEvent', value: item.isAllDayEvent },\r\n { key: 'Body', value: item.body },\r\n { key: 'RequiredAttendees', value: item.requiredAttendees },\r\n { key: 'OptionalAttendees', value: item.optionalAttendees },\r\n { key: 'Recurrence', value: item.recurrence },\r\n { key: 'Resources', value: item.resources },\r\n { key: 'Attachments', value: item.attachments },\r\n { key: 'AttachmentKey', value: item.code },\r\n { key: 'ReminderMinutesBeforeStart', value: item.reminderMinutesBeforeStart },\r\n ];\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: fields,\r\n parentId: item.parentId,\r\n type: 'Calendar'\r\n };\r\n //action.commit(types.COMMON_LOADDING, true);\r\n return api.ews_calendar.createEvent(data)\r\n .then(async (res) => {\r\n //action.commit(types.COMMON_LOADDING, false);\r\n if (res) {\r\n dispatchEventBus(window, 'calendar-add-result', res)\r\n action.dispatch(types.FOLDER_LOAD_TREE);\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); \r\n return true;\r\n }\r\n return res;\r\n }).catch((err) => {\r\n //action.commit(types.COMMON_LOADDING, false);\r\n return false;\r\n });\r\n } else {\r\n (item as any).PersonCode = action.rootState.$account?.current?.user.personCode;\r\n //action.commit(types.COMMON_LOADDING, true);\r\n return api.db_calendar.createCalendarEvent(item)\r\n .then(async (res) => {\r\n //action.commit(types.COMMON_LOADDING, false);\r\n if (res) {\r\n action.dispatch(types.FOLDER_LOAD_TREE);\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST); \r\n return true;\r\n }\r\n }).catch((err) => {\r\n //action.commit(types.COMMON_LOADDING, false);\r\n return false;\r\n })\r\n }\r\n } else {\r\n action.commit(types.COMMON_ERROR_MESSAGE, errMessage);\r\n \r\n return false;\r\n }\r\n },\r\n /**\r\n * 캘린더 이벤트(일정)를 수정합니다\r\n * @param action \r\n */\r\n [types.CALENDAR_EVENT_EDIT](action, item: calendar.CalendarItem) { \r\n let errMessage: string = validEvent(item);\r\n console.log('errMessage', errMessage);\r\n if (!errMessage) {\r\n action.commit(types.COMMON_ERROR_CLEAR);\r\n if (item.isEWS) {\r\n const fields: mail.api.FieldOption[] = [\r\n //{ key: 'ParentFolderId', value: item.parentId },\r\n { key: 'Importance', value: item.importance },\r\n { key: 'Subject', value: item.subject },\r\n { key: 'Location', value: item.location },\r\n { key: 'Start', value: item.start + 'T' + item.starttime },\r\n { key: 'End', value: item.end + 'T' + item.endtime },\r\n { key: 'IsAllDayEvent', value: item.isAllDayEvent },\r\n { key: 'Body', value: item.body },\r\n { key: 'RequiredAttendees', value: item.requiredAttendees },\r\n { key: 'OptionalAttendees', value: item.optionalAttendees },\r\n { key: 'Recurrence', value: item.recurrence },\r\n { key: 'Attachments', value: item.attachments },\r\n { key: 'Resources', value: item.resources },\r\n { key: 'AttachmentKey', value: item.code },\r\n { key: 'ReminderMinutesBeforeStart', value: item.reminderMinutesBeforeStart },\r\n ];\r\n\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: fields,\r\n id: item.id,\r\n type: 'Calendar'\r\n };\r\n //action.commit(types.COMMON_LOADDING, true);\r\n return api.ews_calendar.editEvent(data)\r\n .then(async (res) => {\r\n //action.commit(types.COMMON_LOADDING, false);\r\n if (res) {\r\n action.dispatch(types.FOLDER_LOAD_TREE);\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST);\r\n return true;\r\n }\r\n return res;\r\n }).catch((err) => {\r\n //return //action.commit(types.COMMON_LOADDING, false); \r\n });\r\n } else {\r\n //action.commit(types.COMMON_LOADDING, true);\r\n (item as any).PersonCode = action.state.currentUser.id;\r\n return (item.appointmentType == 'Exception' ? api.db_calendar.updateRCalendarEvent(item) : api.db_calendar.updateCalendarEvent(item))\r\n .then(async (res) => {\r\n //action.commit(types.COMMON_LOADDING, false);\r\n \r\n if (res) {\r\n action.dispatch(types.FOLDER_LOAD_TREE);\r\n action.dispatch(types.CALENDAR_EVENT_LOAD_LIST);\r\n }\r\n\r\n return res;\r\n }).catch((err) => {\r\n //return //action.commit(types.COMMON_LOADDING, false); \r\n });\r\n }\r\n } else {\r\n return action.commit(types.COMMON_ERROR_MESSAGE, errMessage); \r\n }\r\n },\r\n \r\n /**\r\n * 해당 날짜와 관련된 이벤트 리스트를 불러옵니다\r\n * @param action \r\n */\r\n [types.CALENDAR_DAILY_EVENT_LOAD_LIST](action) {\r\n if (action.state.calendarHideShow == true) {\r\n if (action.state.recursionFlags.CALENDAR_DAILY_EVENT_LOAD_LIST == 0 || true) {\r\n action.state.recursionFlags.CALENDAR_DAILY_EVENT_LOAD_LIST = 1;\r\n action.state.calendarDailyEvents = [];\r\n const currentDate = action.state.currentCalendarDate;\r\n const { date } = currentDate;\r\n\r\n let funcArr = [] as Array>;\r\n // for (let i = 0; i < action.state.folders.mylist.items.length; i++) {\r\n // const folder = action.state.folders.mylist.items[i];\r\n // if (folder.checked) {\r\n // funcArr.push(api.ews_calendar.getCalendarDailyEvents(folder.id, date));\r\n // }\r\n // }\r\n\r\n let endDate: Date = new Date(date);\r\n endDate.setDate(endDate.getDate() + 1);\r\n\r\n funcArr.push(api.ews_calendar.getCalendarEventListWithRecurrence({\r\n EwsFolderIDArray: action.state.folders.mylist.items.filter((x) => x.checked).map((x) => x.id),\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', date),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', endDate),\r\n } as calendar.SearchOptions));\r\n\r\n let edate = new Date(date);\r\n edate.setDate(edate.getDate() + 1);\r\n //회사폴더와 관련된 아이템\r\n for (let i = 0; i < action.state.folders.companylist.items.length; i++) {\r\n const folder = action.state.folders.companylist.items[i];\r\n if (folder.checked) {\r\n if(batchCalendars.indexOf(Number(folder.id)) >= 0) {\r\n // funcArr.push(api.db_main.getCompanyDailyEventList({\r\n // FolderID: folder.id,\r\n // StartDate: dateutil.uGetDateOnly(date),\r\n // EndDate: dateutil.uGetDateOnly(endDate)\r\n // }));\r\n } else {\r\n funcArr.push(api.db_main.getCalendarDailyEventList({\r\n FolderID: folder.id,\r\n StartDate: dateutil.uGetDateOnly(date),\r\n EndDate: dateutil.uGetDateOnly(endDate),\r\n }));\r\n } \r\n }\r\n }\r\n\r\n //부서폴더와 관련된 아이템\r\n for (let i = 0; i < action.state.folders.deptlist.items.length; i++) {\r\n const folder = action.state.folders.deptlist.items[i];\r\n if (folder.checked) {\r\n funcArr.push(api.db_main.getCalendarDailyEventList({\r\n FolderID: folder.id,\r\n StartDate: dateutil.uGetDateOnly(date),\r\n EndDate: dateutil.uGetDateOnly(endDate),\r\n }));\r\n }\r\n }\r\n\r\n let events = [] as ItemList;\r\n return Promise.all(funcArr).then((resultArray) => { \r\n return api.ews_calendar.getCalendarEventListWithRecurrence({\r\n EwsFolderIDArray: action.state.folders.sharedlist.items.filter((x) => x.checked).map((x) => x.id),\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', date),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', endDate),\r\n } as calendar.SearchOptions).then((res) => {\r\n for (let data of resultArray) { \r\n for (let calendar of data) { \r\n const existID = events.find((e) => (calendar.id != null && calendar.id == e.id) && (calendar.appointmentType != 'Occurrence' && calendar.appointmentType != 'Exception'));\r\n let parentFolder: calendar.Folder | undefined = [\r\n ...action.state.folders.mylist.items,\r\n ...action.state.folders.companylist.items,\r\n ...action.state.folders.deptlist.items\r\n ].find((e) => calendar.parentFolderId == e.id) as calendar.Folder;\r\n \r\n // if(calendar.target === 'VC') \r\n // parentFolder = findFolder(action.state.folders.viplist.items, calendar.parentFolderId);\r\n\r\n if (existID || !parentFolder) {\r\n continue;\r\n }\r\n\r\n let event = calendar;\r\n event.target = parentFolder.target;\r\n event.parentName = parentFolder.displayName;\r\n event.isEWS = parentFolder.isEWS;\r\n event.color = !parentFolder.colorCode || parentFolder.colorCode == 'none' ? colorArray[parentFolder.root_index] : parentFolder.colorCode;\r\n events.push(event); \r\n }\r\n }\r\n\r\n for (let calendar of res) {\r\n const existID = events.find((e) => calendar.id == e.id && (calendar.appointmentType != 'Occurrence' && calendar.appointmentType != 'Exception'));\r\n let parentFolder = [\r\n ...action.state.folders.sharedlist.items\r\n ].find((e) => calendar.parentFolderId == e.id) as calendar.Folder;\r\n if (existID || !parentFolder) {\r\n if (parentFolder && parentFolder.isShared) {\r\n\r\n } else {\r\n continue;\r\n }\r\n }\r\n\r\n if (dateutil.uGetDateFormat('yyyy-MM-DD H:i:00', dateutil.IEDate(calendar.end)) == dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', endDate)) {\r\n continue;\r\n }\r\n let event = calendar;\r\n event.target = parentFolder.target;\r\n event.isEWS = parentFolder.isEWS;\r\n event.color = !parentFolder.colorCode || parentFolder.colorCode == 'none' ? colorArray[parentFolder.root_index] : parentFolder.colorCode;\r\n events.push(event);\r\n }\r\n\r\n const sortFn = function (a: any, b: any): number {\r\n return a == b ? 0 : a < b ? -1 : 1;\r\n }\r\n\r\n events.sort((a, b) =>\r\n sortFn(Number(dateutil.IEDate(a.start)), Number(dateutil.IEDate(b.start))) ||\r\n sortFn(Number(a.dateTimeCreated), Number(b.dateTimeCreated))\r\n );\r\n \r\n action.commit(types.CALENDAR_DAILY_EVENT_LOAD_LIST, events);\r\n action.commit(types.ADD_ACTION, 'DAILYEVENTS' as types.ACTION_TYPE);\r\n return events;\r\n });\r\n })\r\n }\r\n }\r\n },\r\n /** \r\n * 이벤트(일정) 리스트를 불러옵니다\r\n * @param action \r\n * @param forceViewMode 캘린더 뷰 모드\r\n */\r\n [types.CALENDAR_EVENT_LOAD_LIST](action, forceViewMode?: EnumCalendarViewType) {\r\n if (action.state.recursionFlags.CALENDAR_EVENT_LOAD_LIST == 0 || true) {\r\n action.state.recursionFlags.CALENDAR_EVENT_LOAD_LIST = 1;\r\n action.state.calendarEvents = [];\r\n const currentDate = action.state.currentDate;\r\n const { date } = currentDate;\r\n //캘린더 뷰 타입에 따른 시작날짜를 불러옵니다\r\n const _getCurrentStartDate = function (date: Date, mdate: Date, viewType: EnumCalendarViewType) {\r\n switch (viewType) {\r\n case EnumCalendarViewType.Daily:\r\n return dateutil.uGetWeekStartPrev(date);\r\n //return date;\r\n case EnumCalendarViewType.Week:\r\n return dateutil.uGetWeekStartDate(date);\r\n case EnumCalendarViewType.Month:\r\n //console.log('monArrStart', dateutil.uGetDaysInMonth(mdate)[0]);\r\n return dateutil.uGetMonthStartPrev(mdate);\r\n }\r\n return date;\r\n }\r\n //캘린더 뷰 타입에 따른 끝날짜를 불러옵니다\r\n const _getCurrentEndDate = function (date: Date, mdate: Date, viewType: EnumCalendarViewType) {\r\n switch (viewType) {\r\n case EnumCalendarViewType.Daily:\r\n return dateutil.uGetWeekEndNext(date);\r\n //return date;\r\n case EnumCalendarViewType.Week:\r\n let edate = dateutil.IEDate(date);\r\n edate.setDate(edate.getDate() + 2);\r\n return edate;\r\n case EnumCalendarViewType.Month:\r\n var endDate = dateutil.uGetMonthEndNext(mdate);\r\n return endDate;\r\n }\r\n return date;\r\n }\r\n let funcArr = [] as Array>;\r\n\r\n const start = dateutil.IEDate(_getCurrentStartDate(date, action.state.monthDate, forceViewMode || action.state.calendarMode));\r\n const end = dateutil.IEDate(_getCurrentEndDate(date, action.state.monthDate, forceViewMode || action.state.calendarMode));\r\n end.setDate(end.getDate() + 1);\r\n\r\n funcArr.push(api.ews_calendar.getCalendarEventListWithRecurrence({\r\n EwsFolderIDArray: action.state.folders.mylist.items.filter((x) => x.checked).map((x) => x.id),\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', start),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', end),\r\n } as calendar.SearchOptions));\r\n\r\n for (let i = 0; i < action.state.folders.companylist.items.length; i++) {\r\n const folder = action.state.folders.companylist.items[i];\r\n if (folder.checked) {\r\n if(batchCalendars.indexOf(Number(folder.id)) >= 0) {\r\n funcArr.push(\r\n api.db_main.getCalendarEventList({\r\n // api.db_main.getCompanyEventList({\r\n FolderID: folder.id,\r\n StartDate: start,\r\n EndDate: end,\r\n })\r\n )\r\n } else {\r\n funcArr.push(api.db_main.getCalendarEventList({\r\n FolderID: folder.id,\r\n StartDate: start,\r\n EndDate: end\r\n }));\r\n } \r\n }\r\n }\r\n\r\n for (let i = 0; i < action.state.folders.deptlist.items.length; i++) {\r\n const folder = action.state.folders.deptlist.items[i];\r\n if (folder.checked) {\r\n funcArr.push(api.db_main.getCalendarEventList({\r\n FolderID: folder.id,\r\n StartDate: start,\r\n EndDate: end\r\n }));\r\n }\r\n }\r\n\r\n let events = [] as ItemList;\r\n return Promise.all(funcArr).then((resultArray) => {\r\n api.ews_calendar.getCalendarEventListWithRecurrence({\r\n EwsFolderIDArray: action.state.folders.sharedlist.items.filter((x) => x.checked).map((x) => x.id),\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', start),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', end),\r\n } as calendar.SearchOptions).then((res) => { \r\n for (let data of resultArray) { \r\n for (let calendar of data) {\r\n const existID = events.find((e) => ((calendar.id == e.id) && (calendar.id != null)) && (calendar.appointmentType != 'Occurrence' && calendar.appointmentType != 'Exception'));\r\n let parentFolder: calendar.Folder | undefined = [\r\n ...action.state.folders.mylist.items\r\n , ...action.state.folders.companylist.items\r\n , ...action.state.folders.deptlist.items\r\n ].find((e) => calendar.parentFolderId === e.id) as calendar.Folder; \r\n\r\n // if(calendar.target === 'VC') \r\n // parentFolder = findFolder(action.state.folders.viplist.items, calendar.parentFolderId);\r\n\r\n if (existID || !parentFolder) {\r\n continue;\r\n }\r\n\r\n let event = calendar;\r\n event.target = parentFolder.target;\r\n event.isEWS = parentFolder.isEWS;\r\n event.color = !parentFolder.colorCode || parentFolder.colorCode == 'none' ? types.COMMON_COLOR_ARRAY_GET(parentFolder.root_index) : parentFolder.colorCode;\r\n events.push(event);\r\n }\r\n }\r\n\r\n for (let calendar of res) {\r\n const existID = events.find((e) => calendar.id == e.id && calendar.appointmentType != 'Occurrence');\r\n let parentFolder = [\r\n ...action.state.folders.sharedlist.items\r\n ].find((e) => calendar.parentFolderId == e.id) as calendar.Folder;\r\n if (existID || !parentFolder) {\r\n if (parentFolder && parentFolder.isShared) {\r\n\r\n } else {\r\n continue;\r\n }\r\n }\r\n let event = calendar;\r\n event.target = parentFolder.target;\r\n event.isEWS = parentFolder.isEWS;\r\n event.color = !parentFolder.colorCode || parentFolder.colorCode == 'none' ? types.COMMON_COLOR_ARRAY_GET(parentFolder.root_index) : parentFolder.colorCode;\r\n events.push(event);\r\n }\r\n const sortFn = function (a: any, b: any): number {\r\n return a == b ? 0 : a < b ? -1 : 1;\r\n }\r\n\r\n events.sort((a, b) =>\r\n sortFn(Number(dateutil.IEDate(a.start)), Number(dateutil.IEDate(b.start))) ||\r\n sortFn(Number(a.dateTimeCreated), Number(b.dateTimeCreated))\r\n );\r\n\r\n action.commit(types.CALENDAR_EVENT_LOAD_LIST, events); \r\n action.commit(types.ADD_ACTION, 'EVENTS' as types.ACTION_TYPE);\r\n action.dispatch(types.CALENDAR_MONTH_MATRIX_LOAD); // 선택 날짜가 변경되면 큰달력 Matrix 데이터 다시 불러오기 \r\n if (action.state.calendarMode == EnumCalendarViewType.Week) {\r\n action.dispatch(types.CALENDAR_WEEK_MATRIX_LOAD);\r\n } else if (action.state.calendarMode == EnumCalendarViewType.Daily) {\r\n action.dispatch(types.CALENDAR_DATE_MATRIX_LOAD);\r\n }\r\n return events;\r\n });\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * 검색한 캘린더 일정을 가져옵니다\r\n * @param action \r\n * @param item \r\n */\r\n [types.CALENDAR_SEARCH_LOAD](action, keyword: string) {\r\n\r\n let funcArr = [];\r\n let resultOption = {\r\n ...action.state.toolbar.search,\r\n Keyword: keyword\r\n } as calendar.SearchOptions;\r\n\r\n if (typeof resultOption.ParentFolderID === typeof '') {\r\n funcArr.push(api.ews_calendar.searchCalendarEventList(resultOption));\r\n }\r\n else if (typeof resultOption.ParentFolderID === typeof 0) {\r\n funcArr.push(api.db_main.searchCalendarEventList(resultOption));\r\n }\r\n else {\r\n resultOption.ParentFolderID = null;\r\n funcArr.push(api.ews_calendar.searchCalendarEventList(resultOption));\r\n funcArr.push(api.db_main.searchCalendarEventList(resultOption));\r\n }\r\n\r\n let events = [] as ItemList;\r\n let parentFolderArray = [\r\n ...action.state.folders.mylist.items\r\n , ...action.state.folders.companylist.items\r\n , ...action.state.folders.deptlist.items\r\n ];\r\n //action.commit(types.COMMON_LOADDING, true);\r\n return Promise.all(funcArr).then((resultArray) => { \r\n for (let data of resultArray) {\r\n for (let calendar of data as any) {\r\n const existID = events.find((e) => calendar.id === e.id);\r\n let parentFolder = parentFolderArray.find((e) => calendar.parentFolderId === e.id) as calendar.Folder;\r\n if (existID || !parentFolder) {\r\n continue;\r\n }\r\n let event = calendar;\r\n event.parentName = parentFolder.displayName;\r\n event.target = parentFolder.target;\r\n event.isEWS = parentFolder.isEWS;\r\n event.color = !parentFolder.colorCode || parentFolder.colorCode == 'none' ? types.COMMON_COLOR_ARRAY_GET(parentFolder.root_index) : parentFolder.colorCode;\r\n events.push(event);\r\n }\r\n }\r\n\r\n const sortFn = function (a: any, b: any): number {\r\n return a == b ? 0 : a < b ? -1 : 1;\r\n }\r\n\r\n events.sort((a, b) =>\r\n sortFn(Number(dateutil.IEDate(a.start)), Number(dateutil.IEDate(b.start))) ||\r\n sortFn(Number(a.dateTimeCreated), Number(b.dateTimeCreated))\r\n );\r\n\r\n //action.commit(types.COMMON_LOADDING, false);\r\n action.commit(types.CALENDAR_SEARCH_LOAD, events);\r\n action.commit(types.ADD_ACTION, 'SEARCHEVENTS' as types.ACTION_TYPE);\r\n }).catch((e) => {\r\n //action.commit(types.COMMON_LOADDING, false);\r\n });\r\n },\r\n\r\n /**\r\n * 반복일정 팝업 모달을 표시\r\n * @param action \r\n * @param flag \r\n */\r\n [types.CALENDAR_RECURRING_SHOW](action, flag: boolean) {\r\n action.commit(types.CALENDAR_RECURRING_SHOW, flag);\r\n },\r\n\r\n [types.COMMON_TOGGLE_CONTENTMASK](action, flag: boolean) {\r\n action.commit(types.COMMON_TOGGLE_CONTENTMASK, flag);\r\n }\r\n};\r\n","import { GetterTree } from 'vuex';\r\nimport * as types from './types';\r\n\r\nexport default >{\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.COMMON_SHOW_CONTENTMASK](state) {\r\n return state.showContentMask;\r\n },\r\n\r\n [types.SIDEBAR_CURRENT](state){\r\n return state.folders.currentFolder;\r\n },\r\n\r\n [types.COMMON_ROOM_LIST](state){\r\n return state.myRooms;\r\n }, \r\n\r\n [types.SIDEBAR_CONTEXT_STATE](state) { \r\n return state.currentContextState;\r\n },\r\n\r\n [types.COMMON_DATE_CURRENT](state) {\r\n return state.currentDate;\r\n },\r\n\r\n [types.COMMON_ERROR_MESSAGE](state) {\r\n return state.currentError;\r\n },\r\n\r\n [types.COMMON_CURRNT_USER](state) {\r\n return state.currentUser;\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: F O L D E R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.FOLDER_LIST_TREE](state){ \r\n return state.folders;\r\n },\r\n\r\n [types.FOLDER_ROOT](state) {\r\n return state.folders.mylist.items[0];\r\n },\r\n \r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C A L E N D A R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n [types.CALENDAR_CURRENT_APPOINTMENT](state) {\r\n return state.setAppointment;\r\n },\r\n \r\n [types.CALENDAR_DATE_NEXT](state) {\r\n return state.calendarDateMatrix;\r\n },\r\n\r\n [types.CURRENT_CALENDAR_ITEM] (state) {\r\n return state.currentCalendarItem;\r\n },\r\n\r\n [types.CALENDAR_PRINT_LIST] (state) {\r\n return state.calendarPrintEvents;\r\n },\r\n\r\n [types.CALENDAR_HIDE_SHOW] (state) {\r\n return state.calendarHideShow;\r\n },\r\n\r\n [types.CALENDAR_DATE_CURRENT](state) {\r\n return state.currentCalendarDate;\r\n },\r\n\r\n [types.CALENDAR_DATETIME_CURRENT](state) {\r\n return state.currentCalendarTime;\r\n },\r\n\r\n [types.CALENDAR_EVENT_SELECT_ID](state) {\r\n return state.calendarSelectedEventID;\r\n },\r\n\r\n [types.CALENDAR_DAILY_EVENT_LIST](state) {\r\n return state.calendarDailyEvents;\r\n },\r\n\r\n [types.CALENDAR_MONTH_MATRIX_LIST](state) {\r\n return state.calendarMonthMatrix;\r\n },\r\n \r\n [types.CALENDAR_NEXT](state) {\r\n return state.calendarNextMonthMatrix;\r\n },\r\n\r\n [types.CALENDAR_WEEK_MATRIX_LIST](state) {\r\n return state.calendarWeekMatrix;\r\n },\r\n\r\n [types.CALENDAR_DATE_MATRIX_LIST](state) {\r\n return state.calendarDateMatrix;\r\n },\r\n\r\n [types.CALENDAR_VIEWMODE](state) {\r\n return state.calendarMode;\r\n },\r\n \r\n [types.CALENDAR_EVENT_ADD](state) {\r\n return state.newCalendar;\r\n },\r\n\r\n [types.CALENDAR_EVENT_EDIT](state) {\r\n return state.editCalendar;\r\n },\r\n\r\n [types.CALENDAR_SEARCH_OPTION](state) {\r\n return state.toolbar.search;\r\n },\r\n\r\n [types.CALENDAR_SHARED_SHOW](state) {\r\n return state.toolbar.showDetailShareOption;\r\n },\r\n\r\n [types.CALENDAR_SEARCH_SHOW](state) {\r\n return state.toolbar.showDetailSearchOption;\r\n },\r\n\r\n [types.CALENDAR_RECURRING_SHOW](state) {\r\n return state.showRecurringOption;\r\n },\r\n\r\n [types.CALENDAR_SEARCH_LIST](state) {\r\n return state.searchEvents;\r\n },\r\n\r\n [types.GET_ACTION](state) {\r\n return state.loadedActions;\r\n }, \r\n\r\n [types.CALENDAR_CURRENT_RECURRING](state) {\r\n return state.currentRecurringItem;\r\n },\r\n\r\n [types.CALENDAR_TODAY_MODE](state) {\r\n return state.todayMode;\r\n }\r\n};\r\n","import { MutationTree } from 'vuex';\r\nimport * as types from './types';\r\nimport accountState from '@account/store'\r\nimport { EnumCalendarViewType } from '@/modules/calendar/types';\r\n\r\nimport api from '../api';\r\n\r\nimport * as dateutil from '@/util/date-helper';\r\nimport lsh from '@/util/local-storage-helper';\r\nimport { dispatchEventBus } from '@/util/eventBus';\r\n\r\n// common func\r\nconst findFolder = function (folders: calendar.Folder[], id: string): calendar.Folder | undefined {\r\n if (id) {\r\n for (let folder of folders) {\r\n if (folder.id === id) {\r\n return folder;\r\n } else if (folder.childFolderCount && folder.childFolderCount > 0) {\r\n let foundFolder = findFolder(folder.items || [], id);\r\n if (foundFolder) {\r\n return foundFolder;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst findFolderAll = function (folders: any, id: string): calendar.Folder | undefined {\r\n let folder: calendar.Folder | undefined;\r\n folder = findFolder(folders.mylist.items as calendar.Folder[], id);\r\n if (!folder) {\r\n folder = findFolder(folders.companylist.items as calendar.Folder[], id);\r\n }\r\n\r\n if (!folder) {\r\n folder = findFolder(folders.deptlist.items as calendar.Folder[], id);\r\n }\r\n\r\n if (!folder) {\r\n folder = findFolder(folders.sharedlist.items as calendar.Folder[], id);\r\n }\r\n return folder;\r\n}\r\n\r\n// folder func\r\nconst validChecking = function (items: calendar.Folder[], savIdxArr: Array): void {\r\n if (items) {\r\n for (let i = 0; i < items.length; i++) {\r\n if (savIdxArr.indexOf(items[i].index) != -1) {\r\n items[i].checked = true;\r\n }\r\n }\r\n\r\n if (savIdxArr.length == 0) {\r\n let flag: boolean = false;\r\n for (let item of items) {\r\n if (item.checked) {\r\n flag = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n// folder func\r\nconst validCheckingAll = function (folders: any): void {\r\n if (folders) {\r\n let flag = false;\r\n let array = [\r\n ...folders.mylist.items, \r\n ...folders.companylist.items, \r\n ...folders.deptlist.items, \r\n ...folders.sharedlist.items \r\n ];\r\n for(let folder of array) {\r\n folder.selected = false;\r\n //folder.checked = true;\r\n }\r\n for (let folder of array) {\r\n if (folder.checked) {\r\n flag = true;\r\n break;\r\n }\r\n }\r\n \r\n if (!flag && array.length > 0) {\r\n array[0].checked = true;\r\n }\r\n }\r\n}\r\n\r\nconst getContainsMonthEvents = function (idx: number, date: Date, events: ItemList): ItemList {\r\n let resultEvents = [];\r\n\r\n for (let i = 0; i < events.length; i++) {\r\n const event = events[i];\r\n\r\n var sDate = dateutil.IEDate(event.ui_month_start || event.start);\r\n var eDate = dateutil.IEDate(event.ui_month_end || event.end);\r\n\r\n if (dateutil.uGetIsInDate(date, sDate, eDate)) {\r\n if (!event.ui_month_jump_date || dateutil.uGetDateOnly(date) >= event.ui_month_jump_date) {\r\n if(event.isAllDayEvent) {\r\n if(dateutil.uGetDateFormat(\"yyyy-MM-dd H:i:s\", date) === event.end)\r\n continue; \r\n }\r\n\r\n let newEvent: calendar.CalendarItem = Object.create(null);\r\n Object.assign(newEvent, event);\r\n newEvent.index = i;\r\n resultEvents.push(newEvent as calendar.CalendarItem);\r\n }\r\n }\r\n }\r\n return resultEvents;\r\n}\r\n\r\nconst getContainsWeekEvents = function (idx: number, date: Date, events: ItemList): ItemList {\r\n let resultEvents = [];\r\n\r\n for (let i = 0; i < events.length; i++) {\r\n const event = events[i];\r\n\r\n var strDate = (event.ui_week_start || event.start) + '';\r\n\r\n var time = dateutil.DateAndTimeSplitor(strDate)[1];\r\n var tarr = time.split(':');\r\n\r\n var last = tarr[tarr.length - 2];\r\n\r\n if (!(last == '00' || last == '30')) {\r\n let min = Number(last);\r\n if (min < 30) {\r\n strDate = strDate.replace(time, `${tarr[0]}:00:00`);\r\n } else {\r\n strDate = strDate.replace(time, `${tarr[0]}:30:00`);\r\n } \r\n }\r\n\r\n var sDate = dateutil.IEDate(strDate.split('+')[0]);\r\n\r\n if (sDate.getFullYear() == date.getFullYear() &&\r\n sDate.getMonth() == date.getMonth() &&\r\n sDate.getDate() == date.getDate() &&\r\n sDate.getHours() == date.getHours() &&\r\n sDate.getMinutes() == date.getMinutes()) {\r\n let newEvent: calendar.CalendarItem = Object.create(null);\r\n Object.assign(newEvent, event);\r\n newEvent.index = i;\r\n resultEvents.push(newEvent as calendar.CalendarItem);\r\n }\r\n }\r\n return resultEvents;\r\n}\r\n\r\nconst getContainsWeekCalcEvents = function (date: Date, events: ItemList): ItemList {\r\n let resultEvents = [];\r\n\r\n for (let i = 0; i < events.length; i++) {\r\n const event = events[i];\r\n\r\n var sDate = dateutil.IEDate(event.ui_week_start || event.start);\r\n\r\n if (sDate.getFullYear() == date.getFullYear() &&\r\n sDate.getMonth() == date.getMonth() &&\r\n sDate.getDate() == date.getDate()) {\r\n // let newEvent: calendar.CalendarItem = Object.create(null);\r\n // Object.assign(newEvent, event);\r\n resultEvents.push(event);\r\n }\r\n }\r\n return resultEvents;\r\n}\r\n\r\nconst getTargetFolderList = function (list: calendar.Folder[], target: string): calendar.Folder[] {\r\n let result = [];\r\n for (let i = 0; i < list.length; i++) {\r\n const folder = list[i];\r\n if (folder.target == target) {\r\n result.push(folder);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nconst addPrintEvent = function(state: calendar.state.CalendarState, item: calendar.CalendarItem) {\r\n if (item && item.id) {\r\n if (!state.calendarPrintEvents) {\r\n state.calendarPrintEvents = [];\r\n }\r\n\r\n if (!state.calendarPrintEvents.filter((x) => x.id == item.id).length) {\r\n let newObj:calendar.CalendarItem = Object.create(null);\r\n Object.assign(newObj, item);\r\n state.calendarPrintEvents.push(newObj);\r\n }\r\n }\r\n}\r\n\r\nconst buildFolderTree = function(roots: calendar.Folder[], folders: calendar.Folder[]) {\r\n folders.forEach(f => {\r\n f.target = 'VC';\r\n var found = roots.find(r => Number(r.id) == Number(f.parentFolderId));\r\n\r\n if(found) {\r\n if(found.items && found.childFolderCount) {\r\n found.items.push(f); \r\n found.childFolderCount += 1; \r\n } else {\r\n found.items = []; \r\n found.items.push(f);\r\n found.childFolderCount = 1;\r\n }\r\n } else {\r\n roots.forEach(r => {\r\n if(r.items) {\r\n buildFolderTree(r.items, folders);\r\n }\r\n });\r\n }\r\n });\r\n}\r\n\r\nconst getTreeFolderId = function(folders: calendar.Folder[]): number[] {\r\n var returnArr: number[] = [];\r\n\r\n folders.forEach(f => {\r\n returnArr.push(Number(f.id));\r\n\r\n if(f.items) {\r\n var childArr = getTreeFolderId(f.items);\r\n returnArr = [...returnArr, ...childArr];\r\n }\r\n });\r\n\r\n return returnArr;\r\n}\r\n\r\nexport default >{\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ADD_ACTION](state, value: types.ACTION_TYPE) {\r\n if (state.loadedActions.indexOf(value) == -1) {\r\n state.loadedActions.push(value);\r\n }\r\n },\r\n \r\n /**\r\n * 회의실 목록을 불러옵니다\r\n * @param state \r\n * @param res \r\n */\r\n [types.COMMON_ROOM_LOAD](state, res: any) {\r\n return api.ews_resource.getRooms().then((res) => {\r\n state.myRooms = res;\r\n }).catch((err) => {\r\n debugger;\r\n });\r\n },\r\n\r\n [types.COMMON_DATE_SELECT](state, item: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n state.currentDate = item;\r\n Object.assign(state.currentCalendarDate, item);\r\n },\r\n\r\n [types.COMMON_CHANGE_DATE](state, item: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n state.currentDate = item;\r\n Object.assign(state.currentCalendarDate, item);\r\n },\r\n\r\n // 월 선택시 \r\n [types.COMMON_DATE_SELECT_MONTH](state, currentDate: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n const curDateItem = currentDate;\r\n let newdate = dateutil.IEDate(curDateItem.date);\r\n let savMonth = newdate.getMonth();\r\n newdate.setMonth(savMonth);\r\n curDateItem.date = newdate;\r\n\r\n state.currentDate = curDateItem;\r\n Object.assign(state.currentCalendarDate, curDateItem);\r\n },\r\n\r\n [types.COMMON_DATE_MONTH_PREV](state, currentDate: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n const curDateItem = currentDate;\r\n let newdate = dateutil.IEDate(curDateItem.date);\r\n let savMonth = newdate.getMonth();\r\n newdate.setMonth(savMonth - 1);\r\n\r\n if (newdate.getMonth() == savMonth) // 31 지정상태에서 이전달이 30으로 끝나는 경우 변동없음 방지\r\n {\r\n newdate.setDate(0);\r\n }\r\n\r\n curDateItem.date = newdate;\r\n\r\n state.currentDate = curDateItem;\r\n Object.assign(state.currentCalendarDate, curDateItem);\r\n },\r\n\r\n [types.COMMON_DATE_MONTH_NEXT](state, currentDate: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n const curDateItem = currentDate;\r\n let newdate = dateutil.IEDate(curDateItem.date);\r\n let savMonth = newdate.getMonth();\r\n newdate.setMonth(savMonth + 1);\r\n\r\n if (Math.abs(savMonth - newdate.getMonth()) == 2) // 31지정 상태에서 다음달이 30으로 끝나는 경우 +2 된것 방지\r\n {\r\n newdate.setDate(0);\r\n }\r\n\r\n curDateItem.date = newdate;\r\n\r\n state.currentDate = curDateItem;\r\n Object.assign(state.currentCalendarDate, curDateItem);\r\n },\r\n\r\n [types.COMMON_DATE_WEEK_PREV](state, currentDate: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n const curDateItem = currentDate;\r\n let newdate = dateutil.IEDate(curDateItem.date);\r\n\r\n const sDate = dateutil.uGetWeekStartDate(newdate);\r\n sDate.setDate(sDate.getDate() - 1);\r\n\r\n curDateItem.date = sDate;\r\n state.currentDate = curDateItem;\r\n Object.assign(state.currentCalendarDate, curDateItem);\r\n },\r\n\r\n [types.COMMON_DATE_WEEK_NEXT](state, currentDate: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n const curDateItem = currentDate;\r\n let newdate = dateutil.IEDate(curDateItem.date);\r\n const eDate = dateutil.uGetWeekEndDate(newdate);\r\n\r\n eDate.setDate(eDate.getDate() + 1);\r\n curDateItem.date = eDate;\r\n\r\n curDateItem.date = eDate;\r\n state.currentDate = curDateItem;\r\n Object.assign(state.currentCalendarDate, curDateItem);\r\n },\r\n\r\n [types.COMMON_DATE_DATE_PREV](state, currentDate: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n const curDateItem = currentDate;\r\n let newdate = dateutil.IEDate(curDateItem.date);\r\n newdate.setDate(newdate.getDate() - 1);\r\n\r\n curDateItem.date = newdate;\r\n state.currentDate = curDateItem;\r\n Object.assign(state.currentCalendarDate, curDateItem);\r\n },\r\n\r\n [types.COMMON_DATE_DATE_NEXT](state, currentDate: calendar.DateItem) {\r\n Object.assign(state.backupDate, state.currentDate);\r\n const curDateItem = currentDate;\r\n let newdate = dateutil.IEDate(curDateItem.date);\r\n newdate.setDate(newdate.getDate() + 1);\r\n\r\n curDateItem.date = newdate;\r\n state.currentDate = curDateItem;\r\n Object.assign(state.currentCalendarDate, curDateItem);\r\n },\r\n\r\n // 현재 사용자 정보 가져오기\r\n [types.COMMON_CURRNT_USER](state, user: account.User) {\r\n //return accountState.state.user;\r\n return ''\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: F O L D E R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.FOLDER_SELECT](state, item: calendar.Folder) {\r\n item.checked = !item.checked;\r\n \r\n let listStr: 'mylist' | 'companylist' | 'deptlist' | 'sharedlist' = 'mylist';\r\n\r\n if (item.dbType == 'CM') {\r\n listStr = 'companylist';\r\n }\r\n\r\n if (item.dbType == 'DC') {\r\n listStr = 'deptlist';\r\n }\r\n\r\n if (item.target == 'SHARE') {\r\n listStr = 'sharedlist';\r\n }\r\n\r\n var arrIdx = state.folders[listStr].checkedIdxArray.indexOf(item.index);\r\n if (item.checked) {\r\n if (arrIdx == -1) {\r\n state.folders[listStr].checkedIdxArray.push(item.index);\r\n }\r\n } else {\r\n if (arrIdx != -1) {\r\n state.folders[listStr].checkedIdxArray.splice(arrIdx, 1);\r\n }\r\n }\r\n\r\n validChecking(state.folders[listStr].items, state.folders[listStr].checkedIdxArray);\r\n validCheckingAll(state.folders);\r\n item.selected = true;\r\n state.folders.currentFolder = item; \r\n if(state.folders.currentFolder.isEWS){\r\n state.toolbar.folderShare.FolderID = item.id; \r\n state.toolbar.folderShare.FolderName = item.displayName;\r\n }\r\n state.toolbar.folderShare.SharedList = [];\r\n\r\n let chkArray = [state.folders.mylist.checkedIdxArray,\r\n state.folders.companylist.checkedIdxArray, \r\n state.folders.deptlist.checkedIdxArray, \r\n state.folders.sharedlist.checkedIdxArray];\r\n\r\n if(accountState.state.current?.user != null) {\r\n lsh.set(types.FOLDER_SELECT + accountState.state.current.user.personCode, chkArray);\r\n } \r\n },\r\n\r\n [types.FOLDER_EDIT_NAME](state, data: { id: string, displayName: string }) {\r\n const { id, displayName } = data;\r\n const folder = findFolderAll(state.folders, id);\r\n if (folder) {\r\n folder.displayName = displayName;\r\n }\r\n },\r\n\r\n [types.FOLDER_EDIT_COLOR](state, data: { id: string, colorCode: string }) {\r\n const { id, colorCode } = data;\r\n const folder = findFolderAll(state.folders, id);\r\n if (folder) {\r\n folder.colorCode = colorCode;\r\n }\r\n },\r\n\r\n [types.FOLDER_LOAD_TREE](state: any, data: { items: calendar.Folder[], parentId?: string }) {\r\n console.log('FolderLoadTree')\r\n let mylist: calendar.Folder[] = [];\r\n let companylist: calendar.Folder[] = [];\r\n let deptlist: calendar.Folder[] = [];\r\n let sharedlist: calendar.Folder[] = [];\r\n\r\n for (let i = 0; i < data.items.length; i++) {\r\n const item = data.items[i];\r\n if (item.isEWS) {\r\n if (item.isShared) {\r\n item.target = 'SHARE';\r\n sharedlist.push(item);\r\n } else {\r\n item.target = 'MY';\r\n mylist.push(item);\r\n }\r\n } else {\r\n if (item.dbType == 'CM') {\r\n item.target = 'CM';\r\n companylist.push(item);\r\n }\r\n\r\n if (item.dbType == 'DC') {\r\n deptlist.push(item);\r\n } \r\n }\r\n } \r\n \r\n var personCode = accountState.state.current?.user == null ? '' : accountState.state.current.user.personCode;\r\n let chkArray = lsh.get(types.FOLDER_SELECT + personCode);\r\n\r\n const id = data.parentId || '';\r\n const myfolder = findFolder(state.folders.mylist.items, id);\r\n if (myfolder) {\r\n myfolder.items = mylist;\r\n } else {\r\n state.folders.mylist.items = mylist;\r\n }\r\n\r\n if (chkArray && chkArray.length) {\r\n state.folders.mylist.checkedIdxArray = chkArray[0];\r\n }\r\n\r\n validChecking(state.folders.mylist.items, state.folders.mylist.checkedIdxArray);\r\n\r\n \r\n state.folders.sharedlist.items = sharedlist; \r\n if (chkArray && chkArray.length) {\r\n state.folders.sharedlist.checkedIdxArray = chkArray[3];\r\n } \r\n validChecking(state.folders.sharedlist.items, state.folders.sharedlist.checkedIdxArray);\r\n\r\n if (!state.toolbar.search.ParentFolderID && mylist.length) {\r\n state.toolbar.search.ParentFolderID = mylist[0].id;\r\n }\r\n\r\n if (state.folders.mylist.items.length) {\r\n state.folders.currentFolder = state.folders.mylist.items[0];\r\n }\r\n\r\n const companyfolder = findFolder(state.folders.companylist.items, id);\r\n if (companyfolder) {\r\n companyfolder.items = companylist;\r\n } else {\r\n state.folders.companylist.items = companylist;\r\n }\r\n if (chkArray && chkArray.length) {\r\n state.folders.companylist.checkedIdxArray = chkArray[1];\r\n }\r\n validChecking(state.folders.companylist.items, state.folders.companylist.checkedIdxArray);\r\n\r\n const deptfolder = findFolder(state.folders.deptlist.items, id);\r\n if (deptfolder) {\r\n deptfolder.items = deptlist;\r\n } else {\r\n state.folders.deptlist.items = deptlist;\r\n }\r\n if (chkArray && chkArray.length) {\r\n state.folders.deptlist.checkedIdxArray = chkArray[2];\r\n }\r\n validChecking(state.folders.deptlist.items, state.folders.deptlist.checkedIdxArray);\r\n\r\n validCheckingAll(state.folders);\r\n dispatchEventBus(window, 'calendar-folder-loaded', null);\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C A L E N D A R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n [types.CALENDAR_CURRENT_APPOINTMENT](state, item: any){\r\n state.setAppointment = item;\r\n },\r\n\r\n [types.CURRENT_CALENDAR_ITEM](state, item: calendar.CalendarItem) {\r\n state.currentCalendarItem = item;\r\n//         state.currentCalendarItem = {\r\n//             ...state.currentCalendarItem,\r\n//             ...item\r\n//         };\r\n    },\r\n\r\n [types.CALENDAR_HIDE_SHOW](state) {\r\n state.calendarHideShow = !state.calendarHideShow;\r\n },\r\n\r\n [types.CALENDAR_DATE_SELECT](state, item: calendar.DateItem) {\r\n //Object.assign(state.backupDate, state.currentDate);\r\n state.currentCalendarDate = item;\r\n },\r\n\r\n [types.CALENDAR_DATETIME_SELECT](state, item: calendar.DateItem) {\r\n //Object.assign(state.backupDate, state.currentDate);\r\n state.currentCalendarTime = item;\r\n },\r\n\r\n [types.CALENDAR_EVENT_SELECT_ID](state, eventId: string) {\r\n state.calendarSelectedEventID = eventId;\r\n },\r\n\r\n //3번\r\n [types.CALENDAR_MONTH_MATRIX_LOAD](state) {\r\n state.calendarMonthMatrix = [];\r\n\r\n let copyEvents = [] as ItemList;\r\n let allEvents = [] as ItemList;\r\n const limitCount = 3;\r\n\r\n let current_h_idx_flags = [] as Array;\r\n Object.assign(copyEvents, state.calendarEvents); \r\n\r\n const sortFn = function (a: any, b: any): number {\r\n return a == b ? 0 : a < b ? -1 : 1;\r\n }\r\n\r\n //원본이벤트를 뷰에 보여지는 용도로 정렬 후 Copy\r\n copyEvents.sort((a, b) =>\r\n sortFn(\r\n Number(dateutil.IEDate(b.ui_month_end || b.end)) - Number(dateutil.IEDate(b.ui_month_start || b.start)),\r\n Number(dateutil.IEDate(a.ui_month_end || a.end)) - Number(dateutil.IEDate(a.ui_month_start || a.start)))\r\n || sortFn(Number(dateutil.IEDate(a.ui_month_start || a.start)), Number(dateutil.IEDate(b.ui_month_start || b.start)))\r\n || sortFn(Number(a.dateTimeCreated), Number(b.dateTimeCreated))\r\n );\r\n\r\n\r\n //Month View가 아닐 경우 계산\r\n Object.assign(allEvents, state.calendarEvents);\r\n if (state.calendarMode != EnumCalendarViewType.Month) {\r\n for (let i = 0; i < copyEvents.length; i++) {\r\n const event = copyEvents[i];\r\n let removeFlag = false;\r\n let IsAtLeastOneDate = false;\r\n if (event.scheduleDuration) {\r\n let dayCount = Number(event.scheduleDuration.split('.')[0]);\r\n if (dayCount == 0 || isNaN(dayCount)) {\r\n removeFlag = true;\r\n } else {\r\n IsAtLeastOneDate = true;\r\n }\r\n }\r\n if (!IsAtLeastOneDate) {\r\n if ((event.isAllDayEvent as any) == 'False' || event.isAllDayEvent == false) {\r\n removeFlag = true;\r\n }\r\n }\r\n\r\n // let weekStart = dateutil.uGetDateOnly(dateutil.uGetWeekStartDate(state.currentDate.date));\r\n // let weekEnd = dateutil.uGetDateOnly(dateutil.uGetWeekEndDate(state.currentDate.date));\r\n\r\n // let eventStart = dateutil.uGetDateOnly(dateutil.IEDate(event.start));\r\n // let eventEnd = dateutil.uGetDateOnly(dateutil.IEDate(event.end));\r\n // let inWeeks = eventStart >= weekStart && eventStart <= weekEnd &&\r\n // eventEnd >= weekStart && eventEnd <= weekEnd;\r\n if (removeFlag) {\r\n copyEvents.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n\r\n let matrix = [] as Array>;\r\n let Rows = [];\r\n let today = new Date();\r\n let daysList = [] as Date[];\r\n\r\n //뷰에 따라서 날짜 범위계산에서 값 카피\r\n if (state.calendarMode == EnumCalendarViewType.Month) {\r\n daysList = dateutil.uGetDaysInMonth(state.monthDate, true, 0);\r\n }\r\n else if (state.calendarMode == EnumCalendarViewType.Week) {\r\n //debugger;\r\n daysList = dateutil.uGetDaysInWeek(state.currentDate.date, 0);\r\n } else if (state.calendarMode == EnumCalendarViewType.Daily) {\r\n for (let di = 0; di < 7; di++) {\r\n daysList.push(dateutil.uGetDateOnly(state.currentDate.date)); \r\n }\r\n }\r\n\r\n //필터조건으로 시작날짜, 종료날짜 설정\r\n for (let i = 0; i < copyEvents.length; i++) {\r\n const event = copyEvents[i];\r\n if (dateutil.IEDate(event.start) < daysList[0]) {\r\n event.ui_month_start = dateutil.uGetDateFormat('yyyy-MM-DD', daysList[0]) + ' ' + dateutil.uGetDateFormat('H:i:s', dateutil.IEDate(event.start));\r\n }\r\n\r\n if (dateutil.IEDate(event.end) > daysList[daysList.length - 1]) {\r\n event.ui_month_end = dateutil.uGetDateFormat('yyyy-MM-DD', daysList[daysList.length - 1]) + ' ' + dateutil.uGetDateFormat('H:i:s', dateutil.IEDate(event.end));\r\n }\r\n }\r\n\r\n\r\n for (let i = 0; i < daysList.length; i++) {\r\n let date = daysList[i];\r\n let isWeekStart = dateutil.uGetWeekStartDate(date, 0 || 0).getDate() == date.getDate();\r\n\r\n if (isWeekStart) {\r\n for (let f = 0; f < limitCount; f++) {\r\n current_h_idx_flags[f] = dateutil.IEDate(0);\r\n }\r\n } \r\n\r\n let isToday =\r\n date.getFullYear() == today.getFullYear() &&\r\n date.getMonth() == today.getMonth() &&\r\n date.getDate() == today.getDate();\r\n\r\n let isSelected =\r\n date.getFullYear() == state.currentCalendarDate.date.getFullYear() &&\r\n date.getMonth() == state.currentCalendarDate.date.getMonth() &&\r\n date.getDate() == state.currentCalendarDate.date.getDate();\r\n\r\n let isDisplayArea = false;\r\n if (state.calendarMode == EnumCalendarViewType.Month) {\r\n if (state.currentCalendarDate.date.getMonth() == date.getMonth()) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Week) {\r\n let weekStartDate = dateutil.uGetWeekStartDate(state.currentCalendarDate.date, 0);\r\n let weekEndDate = dateutil.uGetWeekEndDate(state.currentCalendarDate.date, 0);\r\n\r\n if (Number(weekStartDate) <= Number(date) && Number(weekEndDate) >= Number(date)) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Daily) {\r\n if (isSelected) {\r\n isDisplayArea = true;\r\n }\r\n } \r\n\r\n let curEvents = getContainsMonthEvents(i, date, copyEvents); \r\n let curAllEvents = state.calendarMode == EnumCalendarViewType.Month ? getContainsMonthEvents(i, date, allEvents) : []; \r\n\r\n let limitedEvents = curEvents.map((item, index) => {\r\n if (index < limitCount) {\r\n return item;\r\n }\r\n }) as ItemList;\r\n\r\n for (let l = 0; l < limitedEvents.length; l++) {\r\n const litem = limitedEvents[l];\r\n\r\n if (litem == undefined) {\r\n limitedEvents.splice(l, 1);\r\n l--;\r\n continue;\r\n }\r\n\r\n litem.ui_month_hindex = l;\r\n\r\n //반복일정하나를 보여주기위해 여러개 복사\r\n if (!litem.ui_copyed) {\r\n\r\n let sdate = dateutil.uGetDateOnly(dateutil.IEDate(litem.ui_month_start || litem.start));\r\n let realEndDateTime = dateutil.IEDate(litem.end);\r\n let realAndDateOnly = dateutil.uGetDateOnly(realEndDateTime);\r\n let edate = dateutil.uGetDateOnly(dateutil.IEDate(litem.ui_month_end || litem.end));\r\n\r\n let isEndZero = realEndDateTime.getHours() == 0 && realEndDateTime.getMinutes() == 0;\r\n\r\n if (isEndZero &&\r\n dateutil.uGetDateOnly(daysList[0]) <= realAndDateOnly &&\r\n dateutil.uGetDateOnly(daysList[daysList.length - 1]) >= realAndDateOnly) {\r\n edate.setDate(edate.getDate() - 1);\r\n }\r\n\r\n let expTimes = (Number(edate) - Number(sdate));\r\n let totalDays = Math.round(expTimes / (1000 * 60 * 60 * 24)) + 1;\r\n litem.ui_month_width_count = totalDays;\r\n let dayGap = 7;\r\n \r\n let calcDay = (date.getDay() + dayGap) % 7;\r\n let copyCount = Math.floor((calcDay + totalDays - 1) / 7);\r\n\r\n if (copyCount > 0) {\r\n litem.ui_month_width_count = 7 - calcDay;\r\n }\r\n let savWCount = litem.ui_month_width_count;\r\n\r\n for (let c = 0; c < copyCount; c++) {\r\n let copyItem: calendar.CalendarItem = Object.create(null);\r\n Object.assign(copyItem, litem);\r\n let cDate = dateutil.IEDate(date);\r\n cDate.setDate(cDate.getDate() + 7 * (c + 1));\r\n copyItem.ui_month_jump_date = dateutil.uGetDateOnly(dateutil.uGetWeekStartDate(cDate, 0));\r\n if (c == 0) {\r\n copyItem.ui_month_width_count = copyCount == 1 ? (totalDays - litem.ui_month_width_count) : 7;\r\n savWCount += copyItem.ui_month_width_count;\r\n }\r\n else if (c < copyCount - 1) {\r\n copyItem.ui_month_width_count = 7;\r\n savWCount += copyItem.ui_month_width_count;\r\n }\r\n else {\r\n copyItem.ui_month_width_count = (totalDays - savWCount) > 7 ? 7 : (totalDays - savWCount);\r\n }\r\n copyItem.ui_copyed = true;\r\n if (state.calendarMode != EnumCalendarViewType.Month) {\r\n copyItem.ui_month_in_week = true;\r\n }\r\n copyEvents.push(copyItem);\r\n }\r\n }\r\n } \r\n\r\n limitedEvents.sort((a, b) => \r\n sortFn(\r\n Number(dateutil.IEDate(b.ui_month_end || b.end)) - Number(dateutil.IEDate(b.ui_month_start || b.start)), \r\n Number(dateutil.IEDate(a.ui_month_end || a.end)) - Number(dateutil.IEDate(a.ui_month_start || a.start)))\r\n || sortFn(Number(dateutil.IEDate(a.ui_month_start || a.start)), Number(dateutil.IEDate(b.ui_month_start || b.start)))\r\n || sortFn(Number(a.dateTimeCreated), Number(b.dateTimeCreated)) \r\n );\r\n\r\n let resultArray = [] as ItemList;\r\n let flagIdx = 0;\r\n let addedCount = 0;\r\n\r\n for (let l = 0; flagIdx < limitCount; l++) {\r\n const litem = limitedEvents[l];\r\n\r\n if (current_h_idx_flags[flagIdx] >= dateutil.uGetDateOnly(date) || !litem) {\r\n resultArray.push({\r\n id: 'null',\r\n color: 'null',\r\n start: '',\r\n ui_month_hindex: flagIdx,\r\n ui_month_width_count: 1,\r\n } as calendar.CalendarItem);\r\n l--;\r\n addedCount++;\r\n } else {\r\n if (litem) {\r\n litem.ui_month_hindex = flagIdx;\r\n addPrintEvent(state, litem);\r\n resultArray.push(litem);\r\n\r\n if (litem.ui_month_width_count > 1) {\r\n let idxDate = dateutil.uGetDateOnly(dateutil.IEDate(litem.ui_month_end || litem.end));\r\n if (current_h_idx_flags[flagIdx] < idxDate) { \r\n let ridxDate = dateutil.IEDate(litem.ui_month_end || litem.end); \r\n if (ridxDate.getHours() == 0 && ridxDate.getMinutes() == 0 && ridxDate.getSeconds() == 0) {\r\n idxDate.setSeconds(idxDate.getSeconds() - 1);\r\n }\r\n current_h_idx_flags[flagIdx] = idxDate;\r\n }\r\n }\r\n }\r\n\r\n if (flagIdx == 2 && dateutil.uGetDateOnly(date) > current_h_idx_flags[flagIdx]) {\r\n current_h_idx_flags[flagIdx] = dateutil.IEDate(0);\r\n }\r\n }\r\n\r\n flagIdx++;\r\n }\r\n\r\n let moreCount = curEvents.length + addedCount;\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Month) { \r\n moreCount = curAllEvents.length;\r\n } \r\n\r\n for (let e = 0; e < curEvents.length; e++) {\r\n const event = curEvents[e];\r\n copyEvents.splice(event.index - e, 1);\r\n }\r\n\r\n let dateItem = {\r\n date: date,\r\n isToday: isToday,\r\n isSelected: isSelected,\r\n isSun: date.getDay() == 0,\r\n isSat: date.getDay() == 6,\r\n isDisplayArea: isDisplayArea,\r\n MoreEventsCount: moreCount > limitCount ? moreCount - limitCount : 0,\r\n events: resultArray,\r\n } as calendar.DateItem;\r\n\r\n Rows.push(dateItem);\r\n\r\n if ((i + 1) % 7 == 0) {\r\n let NewRows = new Array;\r\n NewRows = Object.assign(NewRows, Rows);\r\n matrix.push(NewRows);\r\n Rows = [];\r\n }\r\n }\r\n state.calendarMonthMatrix = matrix;\r\n },\r\n\r\n [types.CALENDAR_WEEK_MATRIX_LOAD](state) {\r\n state.calendarWeekMatrix = [];\r\n \r\n let copyEvents = [] as ItemList;\r\n\r\n Object.assign(copyEvents, state.calendarEvents);\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Week) {\r\n for (let i = 0; i < copyEvents.length; i++) {\r\n const event = copyEvents[i];\r\n let removeFlag = false;\r\n if (event.scheduleDuration) {\r\n let dayCount = Number(event.scheduleDuration.split('.')[0]);\r\n if (dayCount > 0 && !isNaN(dayCount)) {\r\n removeFlag = true;\r\n }\r\n }\r\n\r\n if ((event.isAllDayEvent as any) == 'True' || event.isAllDayEvent == true) {\r\n removeFlag = true;\r\n }\r\n\r\n // let weekStart = dateutil.uGetDateOnly(dateutil.uGetWeekStartDate(state.currentDate.date));\r\n // let weekEnd = dateutil.uGetDateOnly(dateutil.uGetWeekEndDate(state.currentDate.date));\r\n\r\n // let eventStart = dateutil.uGetDateOnly(dateutil.IEDate(event.start));\r\n // let eventEnd = dateutil.uGetDateOnly(dateutil.IEDate(event.end));\r\n // let inWeeks = eventStart >= weekStart && eventStart <= weekEnd &&\r\n // eventEnd >= weekStart && eventEnd <= weekEnd;\r\n // if (event.isRecurring) {\r\n // removeFlag = false;\r\n // }\r\n\r\n if (removeFlag) {\r\n copyEvents.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n\r\n for (let c = 0; c < copyEvents.length; c++) {\r\n const event = copyEvents[c];\r\n if (!event.ui_copyed) {\r\n let cStart = dateutil.uGetDateOnly(dateutil.IEDate(event.start));\r\n let cEnd = dateutil.uGetDateOnly(dateutil.IEDate(event.end));\r\n\r\n if (cStart.toString() != cEnd.toString()) {\r\n let copyItem: calendar.CalendarItem = Object.create(null);\r\n event.ui_week_start = dateutil.uGetDateFormat('yyyy-MM-DD H:i:00', dateutil.IEDate(event.start));\r\n event.ui_week_end = dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', cEnd);\r\n Object.assign(copyItem, event);\r\n\r\n copyItem.ui_week_start = dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', cEnd);\r\n copyItem.ui_week_end = dateutil.uGetDateFormat('yyyy-MM-DD H:i:00', dateutil.IEDate(event.end));\r\n copyItem.ui_copyed = true;\r\n\r\n copyEvents.push(copyItem);\r\n }\r\n }\r\n }\r\n\r\n const sortFn = function (a: any, b: any): number {\r\n return a == b ? 0 : a < b ? -1 : 1;\r\n }\r\n\r\n let matrix = [] as Array>;\r\n let today = new Date();\r\n let daysList = dateutil.uGetDaysInWeek(state.currentDate.date);\r\n // debugger;\r\n let daysEventList = [];\r\n let timeList = dateutil.uGetTimeArray();\r\n let valueList = timeList.map((x) => x.value);\r\n valueList.push('24:00:00');\r\n for (let i = 0; i < daysList.length; i++) {\r\n const oDate = daysList[i];\r\n let date = new Date(oDate);\r\n let calcEvents = getContainsWeekCalcEvents(date, copyEvents);\r\n\r\n calcEvents.sort((a, b) =>\r\n sortFn(Number(dateutil.IEDate(a.ui_week_start || a.start)), Number(dateutil.IEDate(b.ui_week_start || b.start))) ||\r\n sortFn(Number(a.dateTimeCreated), Number(b.dateTimeCreated))\r\n );\r\n daysEventList[i] = calcEvents;\r\n }\r\n\r\n let timevalue = 0;\r\n let tidx = 0;\r\n let duplicateCheckArray: Array> = [];\r\n for (const timeItem of timeList) {\r\n for (let i = 0; i < daysList.length; i++) {\r\n const oDate = daysList[i];\r\n let eventArr = daysEventList[i];\r\n let date = new Date(oDate);\r\n date = new Date(dateutil.uGetDateFormat('yyyy-MM-DD', date) + 'T' + timeItem.value); // Set Time\r\n if (!duplicateCheckArray[i]) {\r\n duplicateCheckArray[i] = [];\r\n }\r\n\r\n if (!duplicateCheckArray[i][tidx]) {\r\n duplicateCheckArray[i][tidx] = 0;\r\n }\r\n\r\n for (let d = 0; d < eventArr.length; d++) {\r\n const event = eventArr[d];\r\n\r\n let date30m = dateutil.IEDate(date);\r\n date30m.setMinutes(date30m.getMinutes() + 30);\r\n if (dateutil.uGetInDateBoundary(date, date30m,\r\n dateutil.IEDate(event.ui_week_start || event.start),\r\n dateutil.IEDate(event.ui_week_end || event.end))) {\r\n duplicateCheckArray[i][tidx]++;\r\n }\r\n }\r\n\r\n }\r\n tidx++;\r\n }\r\n\r\n for (let i = 0; i < daysList.length; i++) {\r\n const oDate = daysList[i];\r\n for (let t = 0; t < daysEventList[i].length; t++) {\r\n const event = daysEventList[i][t];\r\n let sDate = dateutil.IEDate(event.ui_week_start || event.start);\r\n let eDate = dateutil.IEDate(event.ui_week_end || event.end);\r\n\r\n let TotalMins = dateutil.uGetTotalDiffMinutes(sDate, eDate);\r\n event.ui_week_height_count = Math.round(TotalMins / 30);\r\n\r\n if (event.ui_week_height_count <= 0) {\r\n event.ui_week_height_count = 1;\r\n }\r\n\r\n let svalue = dateutil.DateAndTimeSplitor((event.ui_week_start || event.start))[1];\r\n let evalue = dateutil.DateAndTimeSplitor((event.ui_week_end || event.end))[1];\r\n\r\n const virtualTime = (time: string) => {\r\n var tarr = time.split(':');\r\n var last = tarr[tarr.length - 2];\r\n if (!(last == '00' || last == '30')) {\r\n let min = Number(last);\r\n if (min < 30) {\r\n return `${tarr[0]}:00:00`;\r\n } else {\r\n return `${tarr[0]}:30:00`;\r\n } \r\n }\r\n return time;\r\n }\r\n\r\n let Vsvalue = virtualTime(svalue);\r\n let Vevalue = virtualTime(evalue); \r\n\r\n let sidx = valueList.indexOf(Vsvalue);\r\n let eidx = valueList.indexOf(Vevalue);\r\n\r\n if (sDate.getDate() != eDate.getDate() && evalue == '00:00:00') {\r\n eidx = valueList.indexOf('24:00:00');\r\n }\r\n\r\n let max = 0;\r\n for (let dp = sidx; dp <= eidx; dp++) {\r\n let num = duplicateCheckArray[i][dp];\r\n if (max < num) {\r\n max = num;\r\n }\r\n }\r\n event.ui_week_maxcount = max;\r\n } \r\n\r\n for (let x = 0; x < daysEventList[i].length; x++) {\r\n const source = daysEventList[i][x];\r\n let smax = source.ui_week_maxcount;\r\n for (let y = 0; y < daysEventList[i].length; y++) {\r\n const target = daysEventList[i][y];\r\n if (x != y) {\r\n if (dateutil.uGetInDateBoundary(\r\n dateutil.IEDate(source.ui_week_start || source.start),\r\n dateutil.IEDate(source.ui_week_end || source.end),\r\n dateutil.IEDate(target.ui_week_start || target.start),\r\n dateutil.IEDate(target.ui_week_end || target.end))) {\r\n if (smax < target.ui_week_maxcount) {\r\n source.ui_week_maxcount = target.ui_week_maxcount;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n let saveIndexArray:Array> = [];\r\n \r\n for (let x = 0; x < daysEventList[i].length; x++) {\r\n const source = daysEventList[i][x];\r\n let calcIdx = 0;\r\n for (let y = 0; y < x; y++) {\r\n let sStartNum = Number(dateutil.IEDate(source.ui_week_start || source.start));\r\n if (saveIndexArray[y]) {\r\n for (let s = 0; s < saveIndexArray[y].length; s++) {\r\n const sevent = saveIndexArray[y][s];\r\n let bStartNum = Number(dateutil.IEDate(sevent.ui_week_start || sevent.start));\r\n let bEndNum = Number(dateutil.IEDate(sevent.ui_week_end || sevent.end));\r\n if (sStartNum >= bStartNum && sStartNum < bEndNum) {\r\n calcIdx++;\r\n } \r\n }\r\n\r\n if (calcIdx == y) {\r\n break;\r\n }\r\n } \r\n }\r\n if (!saveIndexArray[calcIdx]) \r\n {\r\n saveIndexArray[calcIdx] = [];\r\n } \r\n \r\n source.ui_week_ui_index = calcIdx;\r\n\r\n saveIndexArray[calcIdx].push(source);\r\n } \r\n }\r\n\r\n let limitCount = 9;\r\n for (let x = 0; x < copyEvents.length; x++) {\r\n const event = copyEvents[x];\r\n if (event.ui_week_maxcount > limitCount) {\r\n event.ui_week_maxcount = limitCount;\r\n }\r\n\r\n if (event.ui_week_ui_index >= limitCount) {\r\n copyEvents.splice(x, 1);\r\n x--;\r\n }\r\n }\r\n\r\n tidx = 0;\r\n\r\n for (const timeItem of timeList) {\r\n if (tidx > 48) break;\r\n let Rows = [];\r\n let titleDateItem: calendar.DateItem = Object.create(null);\r\n titleDateItem.ui_days_week_time_text = dateutil.uGetZero(timevalue) as string;\r\n Rows.push(titleDateItem);\r\n for (let i = 0; i < daysList.length; i++) {\r\n let oDate = daysList[i];\r\n let date = new Date(oDate);\r\n date = new Date(dateutil.uGetDateFormat('yyyy-MM-DD', date) + 'T' + timeItem.value); // Set Time\r\n\r\n let isToday =\r\n date.getFullYear() == today.getFullYear() &&\r\n date.getMonth() == today.getMonth() &&\r\n date.getDate() == today.getDate();\r\n\r\n let isSelected =\r\n date.getFullYear() == state.currentCalendarTime.date.getFullYear() &&\r\n date.getMonth() == state.currentCalendarTime.date.getMonth() &&\r\n date.getDate() == state.currentCalendarTime.date.getDate() &&\r\n date.getHours() == state.currentCalendarTime.date.getHours() &&\r\n date.getMinutes() == state.currentCalendarTime.date.getMinutes();\r\n\r\n let isDisplayArea = false;\r\n if (state.calendarMode == EnumCalendarViewType.Month) {\r\n if (state.currentCalendarDate.date.getMonth() == date.getMonth()) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Week) {\r\n let weekStartDate = dateutil.uGetWeekStartDate(state.currentCalendarDate.date );\r\n let weekEndDate = dateutil.uGetWeekEndDate(state.currentCalendarDate.date);\r\n\r\n if (Number(weekStartDate) <= Number(date) && Number(weekEndDate) >= Number(date)) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Daily) {\r\n if (isSelected) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n let curEvents = getContainsWeekEvents(i, date, copyEvents);\r\n \r\n for (let e = 0; e < curEvents.length; e++) {\r\n const event = curEvents[e];\r\n copyEvents.splice(event.index - e, 1);\r\n }\r\n\r\n let max = 0;\r\n for (let t = 0; t < curEvents.length; t++) {\r\n const event = curEvents[t];\r\n max = event.ui_week_maxcount;\r\n }\r\n\r\n let resultEvents = [];\r\n\r\n for (let c = 0; c < max; c++) {\r\n let isAddedFlag = false;\r\n for (let f = 0; f < curEvents.length; f++) {\r\n const fevent = curEvents[f];\r\n if (fevent.ui_week_ui_index == c) {\r\n let copyEvent: calendar.CalendarItem = Object.create(null);\r\n Object.assign(copyEvent, fevent);\r\n addPrintEvent(state, copyEvent);\r\n resultEvents.push(copyEvent);\r\n isAddedFlag = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!isAddedFlag) {\r\n resultEvents.push({\r\n id: 'null',\r\n color: 'null',\r\n organizer: {\r\n name: null,\r\n },\r\n });\r\n }\r\n }\r\n\r\n let dateItem = {\r\n date: date,\r\n isToday: isToday,\r\n isSelected: isSelected,\r\n isSun: date.getDay() == 0,\r\n isSat: date.getDay() == 6,\r\n isDisplayArea: isDisplayArea,\r\n events: resultEvents,\r\n } as calendar.DateItem;\r\n\r\n Rows.push(dateItem);\r\n }\r\n let NewRows = new Array;\r\n NewRows = Object.assign(NewRows, Rows);\r\n \r\n matrix.push(NewRows);\r\n\r\n timevalue += 0.5;\r\n tidx++;\r\n }\r\n\r\n /** \r\n * 20201230 수정\r\n */\r\n let newMat = [] as any;\r\n for(let i=0; i<48; i++) {\r\n for(let j=0; j<8; j++) {\r\n if (!newMat[j]) {\r\n newMat[j] = [];\r\n }\r\n newMat[j][i] = matrix[i][j];\r\n }\r\n }\r\n newMat = newMat.slice(1,8);\r\n \r\n /**\r\n * 원래 Matrix (모바일 주별보기에서 하루씩 더 앞으로 그려짐)\r\n */\r\n // let newMat = [] as any;\r\n // for(let i=0; i<48; i++) {\r\n // for(let j=0; j<7; j++) {\r\n // if (!newMat[j]) {\r\n // newMat[j] = [];\r\n // }\r\n // newMat[j][i] = matrix[i][j];\r\n // }\r\n // }\r\n \r\n state.calendarWeekMatrix = newMat;\r\n },\r\n\r\n [types.CALENDAR_DATE_MATRIX_LOAD](state) {\r\n\r\n\r\n state.calendarDateMatrix = [];\r\n\r\n let copyEvents = [] as ItemList;\r\n\r\n Object.assign(copyEvents, state.calendarEvents);\r\n \r\n if (state.calendarMode == EnumCalendarViewType.Daily) {\r\n for (let i = 0; i < copyEvents.length; i++) {\r\n const event = copyEvents[i];\r\n let removeFlag = false;\r\n if (event.scheduleDuration) {\r\n let dayCount = Number(event.scheduleDuration.split('.')[0]);\r\n if (dayCount > 0 && !isNaN(dayCount)) {\r\n removeFlag = true;\r\n }\r\n }\r\n\r\n if ((event.isAllDayEvent as any) == 'True' || event.isAllDayEvent == true) {\r\n removeFlag = true;\r\n }\r\n\r\n // if (event.isRecurring) {\r\n // removeFlag = false;\r\n // }\r\n\r\n // let weekStart = dateutil.uGetDateOnly(dateutil.uGetWeekStartDate(state.currentDate.date));\r\n // let weekEnd = dateutil.uGetDateOnly(dateutil.uGetWeekEndDate(state.currentDate.date));\r\n\r\n // let eventStart = dateutil.uGetDateOnly(dateutil.IEDate(event.start));\r\n // let eventEnd = dateutil.uGetDateOnly(dateutil.IEDate(event.end));\r\n // let inWeeks = eventStart >= weekStart && eventStart <= weekEnd &&\r\n // eventEnd >= weekStart && eventEnd <= weekEnd;\r\n if (removeFlag) {\r\n copyEvents.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n \r\n for (let c = 0; c < copyEvents.length; c++) {\r\n const event = copyEvents[c];\r\n if (!event.ui_copyed) {\r\n let cStart = dateutil.uGetDateOnly(dateutil.IEDate(event.start));\r\n let cEnd = dateutil.uGetDateOnly(dateutil.IEDate(event.end));\r\n\r\n if (cStart.toString() != cEnd.toString()) {\r\n let copyItem: calendar.CalendarItem = Object.create(null);\r\n event.ui_week_start = dateutil.uGetDateFormat('yyyy-MM-DD H:i:00', dateutil.IEDate(event.start));\r\n event.ui_week_end = dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', cEnd);\r\n Object.assign(copyItem, event);\r\n\r\n copyItem.ui_week_start = dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', cEnd);\r\n copyItem.ui_week_end = dateutil.uGetDateFormat('yyyy-MM-DD H:i:00', dateutil.IEDate(event.end));\r\n copyItem.ui_copyed = true;\r\n\r\n copyEvents.push(copyItem);\r\n }\r\n }\r\n }\r\n\r\n const sortFn = function (a: any, b: any): number {\r\n return a == b ? 0 : a < b ? -1 : 1;\r\n }\r\n\r\n let matrix = [] as Array>;\r\n let today = new Date();\r\n let daysList = [dateutil.uGetDateOnly(state.currentDate.date)]; //dateutil.uGetDaysInWeek(state.currentDate.date);\r\n let daysEventList = [];\r\n let timeList = dateutil.uGetTimeArray();\r\n let valueList = timeList.map((x) => x.value);\r\n valueList.push('24:00:00');\r\n for (let i = 0; i < daysList.length; i++) {\r\n const oDate = daysList[i];\r\n let date = new Date(oDate);\r\n let calcEvents = getContainsWeekCalcEvents(date, copyEvents);\r\n\r\n calcEvents.sort((a, b) =>\r\n sortFn(Number(dateutil.IEDate(a.ui_week_start || a.start)), Number(dateutil.IEDate(b.ui_week_start || b.start))) ||\r\n sortFn(Number(a.dateTimeCreated), Number(b.dateTimeCreated))\r\n );\r\n daysEventList[i] = calcEvents;\r\n }\r\n\r\n let timevalue = 0;\r\n let tidx = 0;\r\n let duplicateCheckArray: Array> = [];\r\n for (const timeItem of timeList) {\r\n for (let i = 0; i < daysList.length; i++) {\r\n const oDate = daysList[i];\r\n let eventArr = daysEventList[i];\r\n let date = new Date(oDate);\r\n date = new Date(dateutil.uGetDateFormat('yyyy-MM-DD', date) + 'T' + timeItem.value); // Set Time\r\n if (!duplicateCheckArray[i]) {\r\n duplicateCheckArray[i] = [];\r\n }\r\n\r\n if (!duplicateCheckArray[i][tidx]) {\r\n duplicateCheckArray[i][tidx] = 0;\r\n }\r\n\r\n for (let d = 0; d < eventArr.length; d++) {\r\n const event = eventArr[d];\r\n\r\n let date30m = dateutil.IEDate(date);\r\n date30m.setMinutes(date30m.getMinutes() + 30);\r\n if (dateutil.uGetInDateBoundary(date, date30m,\r\n dateutil.IEDate(event.ui_week_start || event.start),\r\n dateutil.IEDate(event.ui_week_end || event.end))) {\r\n duplicateCheckArray[i][tidx]++;\r\n }\r\n }\r\n\r\n }\r\n tidx++;\r\n }\r\n\r\n for (let i = 0; i < daysList.length; i++) {\r\n const oDate = daysList[i];\r\n for (let t = 0; t < daysEventList[i].length; t++) {\r\n const event = daysEventList[i][t];\r\n let sDate = dateutil.IEDate(event.ui_week_start || event.start);\r\n let eDate = dateutil.IEDate(event.ui_week_end || event.end);\r\n\r\n let TotalMins = dateutil.uGetTotalDiffMinutes(sDate, eDate);\r\n event.ui_week_height_count = Math.round(TotalMins / 30);\r\n\r\n if (event.ui_week_height_count <= 0) {\r\n event.ui_week_height_count = 1;\r\n }\r\n\r\n let svalue = dateutil.DateAndTimeSplitor((event.ui_week_start || event.start))[1];\r\n let evalue = dateutil.DateAndTimeSplitor((event.ui_week_end || event.end))[1];\r\n\r\n const virtualTime = (time: string) => {\r\n var tarr = time.split(':');\r\n var last = tarr[tarr.length - 2];\r\n if (!(last == '00' || last == '30')) {\r\n let min = Number(last);\r\n if (min < 30) {\r\n return `${tarr[0]}:00:00`;\r\n } else {\r\n return `${tarr[0]}:30:00`;\r\n } \r\n }\r\n return time;\r\n }\r\n\r\n let Vsvalue = virtualTime(svalue);\r\n let Vevalue = virtualTime(evalue); \r\n\r\n let sidx = valueList.indexOf(Vsvalue);\r\n let eidx = valueList.indexOf(Vevalue);\r\n\r\n if (sDate.getDate() != eDate.getDate() && evalue == '00:00:00') {\r\n eidx = valueList.indexOf('24:00:00');\r\n }\r\n\r\n let max = 0;\r\n for (let dp = sidx; dp <= eidx; dp++) {\r\n let num = duplicateCheckArray[i][dp];\r\n if (max < num) {\r\n max = num;\r\n }\r\n }\r\n event.ui_week_maxcount = max;\r\n }\r\n\r\n for (let x = 0; x < daysEventList[i].length; x++) {\r\n const source = daysEventList[i][x];\r\n let smax = source.ui_week_maxcount;\r\n for (let y = 0; y < daysEventList[i].length; y++) {\r\n const target = daysEventList[i][y];\r\n if (x != y) {\r\n if (dateutil.uGetInDateBoundary(\r\n dateutil.IEDate(source.ui_week_start || source.start),\r\n dateutil.IEDate(source.ui_week_end || source.end),\r\n dateutil.IEDate(target.ui_week_start || target.start),\r\n dateutil.IEDate(target.ui_week_end || target.end))) {\r\n if (smax < target.ui_week_maxcount) {\r\n source.ui_week_maxcount = target.ui_week_maxcount;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let saveIndexArray:Array> = [];\r\n for (let x = 0; x < daysEventList[i].length; x++) {\r\n const source = daysEventList[i][x];\r\n let calcIdx = 0;\r\n\r\n for (let y = 0; y < x; y++) {\r\n let sStartNum = Number(dateutil.IEDate(source.ui_week_start || source.start));\r\n if (saveIndexArray[y]) {\r\n for (let s = 0; s < saveIndexArray[y].length; s++) {\r\n const sevent = saveIndexArray[y][s];\r\n let bStartNum = Number(dateutil.IEDate(sevent.ui_week_start || sevent.start));\r\n let bEndNum = Number(dateutil.IEDate(sevent.ui_week_end || sevent.end));\r\n if (sStartNum >= bStartNum && sStartNum < bEndNum) {\r\n calcIdx++;\r\n } \r\n }\r\n\r\n if (calcIdx == y) {\r\n break;\r\n }\r\n } \r\n }\r\n if (!saveIndexArray[calcIdx]) \r\n {\r\n saveIndexArray[calcIdx] = [];\r\n } \r\n \r\n source.ui_week_ui_index = calcIdx;\r\n\r\n saveIndexArray[calcIdx].push(source);\r\n }\r\n }\r\n\r\n\r\n tidx = 0;\r\n\r\n for (const timeItem of timeList) {\r\n if (tidx > 48) break;\r\n let Rows = [];\r\n let titleDateItem: calendar.DateItem = Object.create(null);\r\n titleDateItem.ui_days_week_time_text = dateutil.uGetZero(timevalue) as string;\r\n Rows.push(titleDateItem);\r\n for (let i = 0; i < daysList.length; i++) {\r\n let oDate = daysList[i];\r\n let date = new Date(oDate);\r\n date = new Date(dateutil.uGetDateFormat('yyyy-MM-DD', date) + 'T' + timeItem.value); // Set Time\r\n\r\n let isToday =\r\n date.getFullYear() == today.getFullYear() &&\r\n date.getMonth() == today.getMonth() &&\r\n date.getDate() == today.getDate();\r\n\r\n let isSelected =\r\n date.getFullYear() == state.currentCalendarTime.date.getFullYear() &&\r\n date.getMonth() == state.currentCalendarTime.date.getMonth() &&\r\n date.getDate() == state.currentCalendarTime.date.getDate() &&\r\n date.getHours() == state.currentCalendarTime.date.getHours() &&\r\n date.getMinutes() == state.currentCalendarTime.date.getMinutes();\r\n\r\n let isDisplayArea = false;\r\n if (state.calendarMode == EnumCalendarViewType.Month) {\r\n if (state.currentCalendarDate.date.getMonth() == date.getMonth()) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Week) {\r\n let weekStartDate = dateutil.uGetWeekStartDate(state.currentCalendarDate.date);\r\n let weekEndDate = dateutil.uGetWeekEndDate(state.currentCalendarDate.date);\r\n\r\n if (Number(weekStartDate) <= Number(date) && Number(weekEndDate) >= Number(date)) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n if (state.calendarMode == EnumCalendarViewType.Daily) {\r\n if (isSelected) {\r\n isDisplayArea = true;\r\n }\r\n }\r\n\r\n let curEvents = getContainsWeekEvents(i, date, copyEvents);\r\n\r\n for (let e = 0; e < curEvents.length; e++) {\r\n const event = curEvents[e];\r\n copyEvents.splice(event.index - e, 1);\r\n }\r\n\r\n let max = 0;\r\n for (let t = 0; t < curEvents.length; t++) {\r\n const event = curEvents[t];\r\n max = event.ui_week_maxcount;\r\n }\r\n\r\n let resultEvents = [];\r\n\r\n for (let c = 0; c < max; c++) {\r\n let isAddedFlag = false;\r\n for (let f = 0; f < curEvents.length; f++) {\r\n const fevent = curEvents[f];\r\n if (fevent.ui_week_ui_index == c) {\r\n let copyEvent: calendar.CalendarItem = Object.create(null);\r\n Object.assign(copyEvent, fevent);\r\n addPrintEvent(state, copyEvent);\r\n resultEvents.push(copyEvent);\r\n isAddedFlag = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!isAddedFlag) {\r\n resultEvents.push({\r\n id: 'null',\r\n color: 'null',\r\n organizer: {\r\n name: null,\r\n },\r\n });\r\n }\r\n }\r\n\r\n let dateItem = {\r\n date: date,\r\n isToday: isToday,\r\n isSelected: isSelected,\r\n isSun: date.getDay() == 0,\r\n isSat: date.getDay() == 6,\r\n isDisplayArea: isDisplayArea,\r\n events: resultEvents,\r\n } as calendar.DateItem;\r\n\r\n Rows.push(dateItem);\r\n }\r\n let NewRows = new Array;\r\n NewRows = Object.assign(NewRows, Rows);\r\n matrix.push(NewRows);\r\n timevalue += 0.5;\r\n tidx++;\r\n }\r\n state.calendarDateMatrix = matrix;\r\n },\r\n\r\n [types.CALENDAR_VIEWMODE_CHANGE](state, viewType: EnumCalendarViewType) {\r\n state.calendarMode = viewType;\r\n },\r\n\r\n [types.CALENDAR_EVENT_ADD](state, data: calendar.CalendarItemContainer) {\r\n const { item } = data;\r\n state.newCalendar.item = item;\r\n },\r\n\r\n [types.CALENDAR_EVENT_EDIT](state, data: calendar.CalendarItemContainer) {\r\n const { item } = data;\r\n state.editCalendar.item = item;\r\n },\r\n\r\n [types.CALENDAR_DAILY_EVENT_LOAD_LIST](state, eventsList: ItemList) {\r\n state.calendarDailyEvents = eventsList;\r\n state.recursionFlags.CALENDAR_DAILY_EVENT_LOAD_LIST = 0;\r\n },\r\n\r\n [types.CALENDAR_EVENT_LOAD_LIST](state, eventsList: ItemList) {\r\n state.calendarEvents = eventsList; \r\n state.calendarPrintEvents = [];\r\n state.recursionFlags.CALENDAR_EVENT_LOAD_LIST = 0;\r\n },\r\n\r\n [types.CALENDAR_SEARCH_LOAD](state, data: any) {\r\n state.searchEvents = data;\r\n Object.assign(state.calendarPrintEvents, data);\r\n },\r\n\r\n [types.CALENDAR_SEARCH_OPTION](state, data: any) {\r\n state.toolbar.search.Keyword = data;\r\n },\r\n\r\n [types.COMMON_ERROR_MESSAGE](state, errorMessage: string) {\r\n state.currentError = errorMessage;\r\n },\r\n\r\n [types.COMMON_ERROR_CLEAR](state) {\r\n state.currentError = '';\r\n },\r\n\r\n [types.CALENDAR_SHARED_SHOW](state, flag: boolean) {\r\n state.toolbar.showDetailShareOption = flag;\r\n },\r\n\r\n [types.CALENDAR_SEARCH_SHOW](state, flag: boolean) {\r\n state.toolbar.showDetailSearchOption = flag;\r\n },\r\n\r\n [types.CALENDAR_RECURRING_SHOW](state, flag: boolean) {\r\n state.showRecurringOption = flag;\r\n },\r\n\r\n [types.CALENDAR_CURRENT_RECURRING](state, data: any) {\r\n state.currentRecurringItem = data;\r\n },\r\n\r\n [types.CALENDAR_TODAY_MODE](state, data: any) {\r\n state.todayMode = data;\r\n console.log('mutt..')\r\n },\r\n\r\n [types.COMMON_TOGGLE_CONTENTMASK](state, flag: boolean) {\r\n state.showContentMask = flag;\r\n }\r\n};\r\n\r\n\r\n","import actions from './actions';\r\nimport getters from './getters';\r\nimport mutations from './mutations';\r\nimport * as dateutil from '@/util/date-helper';\r\n\r\n// initial state\r\nconst state: calendar.state.CalendarState = {\r\n showContentMask: false,\r\n todayMode: null,\r\n isShowIgnorePanel: false,\r\n currentRecurringItem: null,\r\n currentCalendarItem : {\r\n parentId: '',\r\n attachments: [] as any,\r\n hasAttachments: false,\r\n body: '',\r\n location: '',\r\n subject: '',\r\n status: 'S0',\r\n appointmentType: 'Single',\r\n pidLidRecurrenceType: 1,\r\n ui_resourceArray: [] as Array,\r\n resourceId: null,\r\n resources: [] as Array,\r\n recurrence: {\r\n startDate: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n endDate: dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.uGetDate(90)),\r\n ui_useRecurringButton: true,\r\n ui_useDefaultDate: true,\r\n ui_useRecurringDisplay: false,\r\n ui_useRecurring: false,\r\n ui_recurringType: 1,\r\n monthValue: (new Date().getMonth() + 1),\r\n firstDayOfWeekValue: 1,\r\n daysOfTheWeekArray: [] as number[],\r\n ui_endType: '1',\r\n interval: 1,\r\n numberOfOccurrences: 0,\r\n } as calendar.CalendarItemRecurrence,\r\n code: '',\r\n codeValues: [] as string[],\r\n importance: 'Normal',\r\n isCancelled: false,\r\n isRecurring: false,\r\n isAllDayEvent: false,\r\n isAllowUpdate: true,\r\n start: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n starttime: '',\r\n endtime: '',\r\n end: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n requiredAttendees: [] as any,\r\n optionalAttendees: [] as any,\r\n isReadyData: false,\r\n reminderMinutesBeforeStart: 15,\r\n },\r\n\r\n isLoading: false,\r\n currentUser: null,\r\n allowedResponseActions: '',\r\n currentError: '',\r\n miniCalendarMatrix: [],\r\n calendarSelectedEventID: '',\r\n calendarMonthMatrix: [],\r\n calendarNextMonthMatrix: [],\r\n calendarWeekMatrix: [],\r\n calendarDateMatrix: [],\r\n calendarMode: 'month',\r\n calendarEvents: [],\r\n calendarPrintEvents: [],\r\n calendarDailyEvents: [],\r\n calendarHideShow: true,\r\n searchEvents: [],\r\n showRecurringOption: false,\r\n \r\n backupDate: {\r\n date: new Date(),\r\n isToday: false,\r\n isSelected: false,\r\n isWorkingTime: false,\r\n isSun: false,\r\n isSat: false,\r\n events: [], // CalendarItem List\r\n },\r\n currentDate: {\r\n date: new Date(),\r\n isToday: false,\r\n isSelected: false,\r\n isWorkingTime: false,\r\n isSun: false,\r\n isSat: false,\r\n events: [], // CalendarItem List\r\n },\r\n currentCalendarDate: {\r\n date: new Date(),\r\n isToday: false,\r\n isSelected: false,\r\n isWorkingTime: false,\r\n isSun: false,\r\n isSat: false,\r\n events: [], // CalendarItem List\r\n },\r\n currentCalendarTime: {\r\n date: new Date(),\r\n isToday: false,\r\n isSelected: false,\r\n isWorkingTime: false,\r\n isSun: false,\r\n isSat: false,\r\n events: [], // CalendarItem List\r\n },\r\n monthDate: new Date(),\r\n folders: {\r\n mylist: {\r\n basics: [],\r\n items: [],\r\n checkedIdxArray: [],\r\n },\r\n companylist: {\r\n basics: [],\r\n items: [],\r\n checkedIdxArray: [],\r\n },\r\n deptlist: {\r\n basics: [],\r\n items: [],\r\n checkedIdxArray: [],\r\n },\r\n sharedlist: {\r\n basics: [],\r\n items: [],\r\n checkedIdxArray: [],\r\n },\r\n currentFolder: null,\r\n status: 'S0',\r\n },\r\n currentContextState: 'Closed',\r\n currentCalendar: null,\r\n newCalendar: {\r\n item: null,\r\n },\r\n editCalendar: {\r\n item: null,\r\n },\r\n toolbar: {\r\n search: {\r\n ParentFolderID: null,\r\n Subject: null,\r\n Location: null,\r\n OrganizerName: null,\r\n OrganizerAddress: null,\r\n RequiredAttendees: [],\r\n OptionalAttendees: [],\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', dateutil.uGetDate(-90)),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', new Date()),\r\n PersonCode: null,\r\n EumPageNumber: 1,\r\n EumRowsPerPage: 200,\r\n \r\n },\r\n sorts: [],\r\n selectedFolder: null,\r\n folderShare: {\r\n FolderID: '',\r\n FolderName: '',\r\n SharedList: [],\r\n\r\n },\r\n showDetailShareOption: false,\r\n showDetailSearchOption: false,\r\n },\r\n recursionFlags: {\r\n CALENDAR_EVENT_LOAD_LIST: 0,\r\n CALENDAR_DAILY_EVENT_LOAD_LIST: 0,\r\n },\r\n delegateUser: '',\r\n loadedActions: [],\r\n} as any;\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n};\r\n","import { ActionTree } from 'vuex'\r\n\r\nexport default >{\r\n}\r\n","import { GetterTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O N T A C T : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.CURRENT_CONTACT_ITEM](state) {\r\n return state.currentContactItem\r\n },\r\n\r\n [types.CONTACT_SELECTION](state) {\r\n return state.contacts.selections\r\n }\r\n}\r\n","import { MutationTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.CURRENT_CONTACT_ITEM](state, item: contacts.ContactItem) {\r\n state.currentContactItem = {\r\n ...state.currentContactItem,\r\n ...item,\r\n };\r\n },\r\n\r\n [types.CONTACT_SELECTION](state, item: contacts.ContactItem) {\r\n const idx = state.contacts.selections.indexOf(item.id);\r\n if (idx < 0) {\r\n state.contacts.selections.push(item.id);\r\n } else {\r\n state.contacts.selections.splice(idx, 1);\r\n }\r\n },\r\n\r\n [types.CONTACT_SELECT_ALL](state, items: contacts.ContactItem[]) {\r\n if (state.contacts.selections.length == items.length) {\r\n state.contacts.selections = []\r\n } else {\r\n state.contacts.selections = []\r\n items.map(item => {\r\n state.contacts.selections.push(item.id);\r\n })\r\n }\r\n },\r\n\r\n [types.CONTACT_SELECT_CLEAR](state) {\r\n state.contacts.selections = []\r\n }\r\n}\r\n","import actions from './actions';\r\nimport getters from './getters';\r\nimport mutations from './mutations';\r\nimport {\r\n ContactsStoredType,\r\n} from '@contact/types/enums';\r\n\r\n// 즐겨찾기한 연락처 목록 조회할 기본 폴더\r\nlet favoriteFolder = Object.create(null) as contacts.FolderItem;\r\nfavoriteFolder.id = 'favorite';\r\nfavoriteFolder.name = '연락처';\r\nfavoriteFolder.displayName = '연락처';\r\nfavoriteFolder.isFavorite = true;\r\n//favoriteFolder.folderType = ContactFolderType.Favorite,\r\nfavoriteFolder.selected = false;\r\nfavoriteFolder.nodeStatus = null;\r\n// 공유받은 연락처 목록 조회할 기본 폴더\r\nlet sharedFolder = Object.create(null) as contacts.FolderItem;\r\nsharedFolder.id = 'shared';\r\nsharedFolder.name = '공유받은 연락처';\r\nsharedFolder.displayName = '공유받은 연락처';\r\nsharedFolder.isFavorite = false;\r\nsharedFolder.isShared = true;\r\n//sharedFolder.folderType = ContactFolderType.Shared,\r\nsharedFolder.selected = false;\r\nsharedFolder.nodeStatus = null;\r\n\r\n// initial state\r\nconst state: contact.state.ContactState = {\r\n currentContactItem: {\r\n displayName: '',\r\n surname: '',\r\n givenName: '',\r\n email: '',\r\n companyName: '',\r\n department: '',\r\n jobTitle: '',\r\n officeLocation: '',\r\n hasPicture: false,\r\n mobile: '',\r\n businessPhone: '',\r\n businessFax: '',\r\n businessHomePage: '',\r\n businessAddress: {\r\n city: '',\r\n countryOrRegion: '',\r\n postalCode: '',\r\n state: '',\r\n street: '',\r\n } as contacts.ContactAddresses,\r\n homeAddress: {\r\n city: '',\r\n countryOrRegion: '',\r\n postalCode: '',\r\n state: '',\r\n street: '',\r\n } as contacts.ContactAddresses,\r\n deletedDate: '',\r\n attachments: [] as any,\r\n photoPath: '',\r\n targetPersonCode: '',\r\n parentFolderId: '',\r\n itemClass: null,\r\n storedType: ContactsStoredType.DB,\r\n type: null,\r\n status: null,\r\n isSharing: false,\r\n isShared: false,\r\n } as contacts.ContactItem,\r\n\r\n listMode: {\r\n showCheckbox: false,\r\n showEditToolbar: false,\r\n selectContactId: [],\r\n showSearch: false,\r\n } as contacts.ListMode,\r\n folders: {\r\n favorite: [favoriteFolder],\r\n //exchange 버전\r\n personal: [],\r\n //database 버전\r\n local: [],\r\n departmental: [],\r\n shared: [sharedFolder],\r\n public: Object.create(null),\r\n trash: Object.create(null),\r\n current: Object.create(null),\r\n },\r\n contacts: {\r\n lists: {\r\n items: [],\r\n },\r\n modalStatus: false,\r\n current: null,\r\n new: {\r\n folder: Object.create(null),\r\n item: Object.create(null),\r\n members: Object.create(null),\r\n error: {\r\n givenName: '',\r\n email: '',\r\n mobile: '',\r\n postalCode: '',\r\n businessPhone: '',\r\n businessFax: '',\r\n },\r\n },\r\n members: {\r\n type: null,\r\n items: [],\r\n },\r\n selections: [],\r\n selectionFrom: '',\r\n },\r\n toolbar: {\r\n search: Object.create(null),\r\n sorts: [],\r\n folder: null,\r\n filter: [],\r\n },\r\n share: {\r\n folder: Object.create(null),\r\n item: Object.create(null),\r\n members: Object.create(null),\r\n error: Object.create(null),\r\n },\r\n loading: true,\r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n};\r\n","import { ActionTree } from 'vuex';\r\nimport api from '../api';\r\nimport * as types from './types';\r\n\r\n\r\n\r\nexport default >{\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.ADMIN_APPOPTIONLIST_LOAD](action, payload: workflow.RequestWorkflowOption){\r\n return api.common.getApplicationOptionList(payload)\r\n .then((res: workflow.CM_ApplicationOption) => {\r\n var list = res.optionList.map(x => {\r\n return {\r\n ...x,\r\n optionValues: x.optionValues.map(y => {\r\n return {\r\n ...y,\r\n isCommon: y.applicationId === undefined || y.applicationId === null\r\n }\r\n })\r\n }\r\n })\r\n // console.log('ADMIN_APPOPTIONLIST_LOAD', 'list', list);\r\n res.optionList = list;\r\n // GLOBAL_INIT 에서 옵션을 조회할 경우 store 에 저장하지 않도록 함\r\n // 관리자 메뉴에서 접근시 전체 옵션이 목록에 처음에 보여지는 오류 방지\r\n if(payload.typeId > 0){\r\n action.commit(types.ADMIN_APPOPTIONLIST_LOAD, res);\r\n }\r\n return res;\r\n })\r\n },\r\n\r\n [types.GET_WORKFLOW_OPTIONS](action, option: any): Promise{\r\n const promises = [action.dispatch(types.ADMIN_APPOPTIONLIST_LOAD,{typeId: 0,} as workflow.RequestWorkflowOption)];\r\n return Promise.all(promises).then((results)=>{\r\n const options = results[0] as workflow.CM_ApplicationOption\r\n const appOptions = {optionList: options.optionList.filter((x) => x.optionItem.typeId === 1),\r\n } as workflow.CM_ApplicationOption // 양식 옵션\r\n const systemOptions = {\r\n optionList: options.optionList.filter((x) => x.optionItem.typeId === 2),\r\n } as workflow.CM_ApplicationOption // 시스템 옵션\r\n var systemOption = {} as any\r\n systemOptions.optionList.forEach((x: workflow.CM_ApplicationOptionItem)=>{\r\n if(x.optionItem.propertyName){\r\n systemOption[x.optionItem.propertyName]=\r\n x.optionValues[0].subOptionValue !== null\r\n ? x.optionValues[0].subOptionValue\r\n : x.optionValues[0].subOptionCode\r\n }\r\n })\r\n var applicationOption = {} as any\r\n appOptions.optionList.forEach((x: workflow.CM_ApplicationOptionItem) => {\r\n if (x.optionItem.propertyName) {\r\n applicationOption[x.optionItem.propertyName] = x.optionValues.map((y) => {\r\n if (y.subOptionValue !== null) {\r\n return {\r\n applicationId: y.applicationId,\r\n value: y.subOptionValue,\r\n } as any\r\n } else {\r\n return {\r\n applicationId: y.applicationId,\r\n value: y.subOptionCode,\r\n } as any\r\n }\r\n })\r\n }\r\n })\r\n var data = { system: systemOption, application: applicationOption }\r\n\r\n action.commit(types.GET_WORKFLOW_OPTIONS, data)\r\n })\r\n \r\n },\r\n\r\n \r\n [types.WORKFLOW_CURRENT](action, data: any) {\r\n return api.form.getForm(data).then(res => {\r\n action.commit(types.WORKFLOW_CURRENT,res)\r\n return res;\r\n })\r\n }\r\n \r\n\r\n\r\n } \r\n","import { GetterTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.WORKFLOW_CURRENT](state) {\r\n return state.workflows.current;\r\n },\r\n\r\n [types.GET_WORKFLOW_OPTIONS](state){\r\n return state.options;\r\n },\r\n}\r\n","import { MutationTree } from 'vuex'\r\nimport * as types from './types';\r\n\r\nexport default >{\r\n [types.WORKFLOW_CURRENT](state, item: any) {\r\n state.workflows.current = item;\r\n },\r\n\r\n [types.GET_WORKFLOW_OPTIONS](state, payload: { system: any; application: any; }){\r\n state.options = payload;\r\n },\r\n}\r\n","import actions from './actions'\r\nimport getters from './getters'\r\nimport mutations from './mutations'\r\n\r\n// initial state\r\nconst state: workflow.state.WorkflowState = {\r\n workflows: {\r\n lists: null,\r\n modalStatus: true,\r\n current: null,\r\n drafterInfo: null,\r\n workflowMenuList: null,\r\n workflowHeader: null,\r\n documentPages: [],\r\n },\r\n options: {\r\n system: {},\r\n application: {},\r\n },\r\n}\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n}\r\n","import { ActionTree } from 'vuex'\r\n\r\nexport default >{\r\n}\r\n","import { GetterTree } from 'vuex'\r\nimport * as types from './types';\r\n\r\nexport default >{\r\n [types.BOARD_ARTICLE_CURRENT](state: board.state.BoardState) {\r\n return state.currentArticle\r\n }\r\n}\r\n","import { MutationTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.BOARD_ARTICLE_CURRENT](state: board.state.BoardState, payload: article.Article) {\r\n state.currentArticle = payload\r\n },\r\n}\r\n","import actions from './actions'\r\nimport getters from './getters'\r\nimport mutations from './mutations'\r\n\r\n// initial state\r\nconst state: board.state.BoardState = {\r\n currentArticle: null,\r\n writeConfig: null\r\n}\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n}\r\n","import api from '@gnb/api/common'\r\nimport { ActionTree } from 'vuex';\r\nimport * as types from './types';\r\nconst DEFAULT_LANGUAGE = 'ko-KR';\r\nimport { i18n } from '@appbase/util';\r\nexport default >{\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 로딩 UI를 호출합니다\r\n * @param action \r\n * @param flag \r\n */\r\n [types.COMMON_LOADDING](action, flag: boolean) {\r\n action.commit(types.COMMON_LOADDING, flag); \r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: S E T T I N G S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.SETTINGS_MYSETTING_LOAD](action){\r\n return api.getMySetting()\r\n .then((res: gnb.CM_MySetting) => {\r\n action.commit(types.SETTINGS_MYSETTING_LOAD, res);\r\n return res;\r\n })\r\n },\r\n\r\n [types.SETTINGS_MYSETTING_SAVE](action, payload: { data: gnb.CM_MySetting, isFirst: boolean }){ \r\n const { data, isFirst } = payload;\r\n // 처음 환경설정을 하는 경우\r\n if(isFirst){\r\n return api.createMySetting(data)\r\n .then((res) => {\r\n action.dispatch(types.SETTINGS_MYSETTING_LOAD);\r\n return res;\r\n });\r\n }\r\n // 환경설정을 수정하는 경우\r\n else{\r\n return api.setMysetting(data)\r\n .then((res) => {\r\n action.dispatch(types.SETTINGS_MYSETTING_LOAD);\r\n return res;\r\n });\r\n }\r\n },\r\n\r\n [types.APPLICATION_LIST_LOAD](action, payload: { comCode: string, personCode?: string }){\r\n const { comCode, personCode } = payload;\r\n var sortValue = i18n.locale == 'ko' ? 1 : 2;\r\n api.getApplicationList(comCode, personCode, sortValue)\r\n .then((res: gnb.CM_ApplicationList) => {\r\n console.log('APPLICATION_LIST_LOAD', res);\r\n action.commit(types.APPLICATION_LIST_LOAD, res);\r\n });\r\n },\r\n\r\n [types.SETTINGS_DELEGATOR_LIST_LOAD](action, personCode: string) {\r\n return api.getDelegationList(personCode)\r\n .then((res: gnb.CM_DelegationList) => {\r\n action.commit(types.SETTINGS_DELEGATOR_LIST_LOAD, res);\r\n return res;\r\n })\r\n },\r\n\r\n \r\n [types.SETTINGS_DELEGATOR_ADD](action, payload: gnb.CM_DelegationItem) {\r\n const { delegation } = payload;\r\n return api.setDelegator(delegation)\r\n .then((res: boolean) => {\r\n if(res){\r\n action.dispatch(types.SETTINGS_DELEGATOR_LIST_LOAD, delegation.personCode);\r\n }\r\n return res;\r\n });\r\n },\r\n\r\n [types.SETTINGS_DELEGATOR_REMOVE](action, payload: gnb.CM_DelegationItem) {\r\n const { delegation } = payload;\r\n const { seq, personCode } = delegation;\r\n \r\n return api.removeDelegator({ Seq: seq, DeleteFlag: true })\r\n .then((res: boolean) => {\r\n if(res){\r\n action.dispatch(types.SETTINGS_DELEGATOR_LIST_LOAD, personCode);\r\n }\r\n return res;\r\n })\r\n },\r\n //\r\n // ────────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L A N G U A G E A N D T I M E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n //\r\n \r\n [types.LANGUAGE_LOAD](action) {\r\n action.commit(types.LANGUAGE_LOAD);\r\n },\r\n\r\n [types.TIME_LOAD](action) {\r\n action.commit(types.TIME_LOAD);\r\n },\r\n\r\n [types.LANGUAGE_TIME_CHANGE](action, item: gnb.UserConfig) {\r\n return api.setUserConfig(item);\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: U S E R C A R D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.GET_CARDSTATE](action){\r\n return api.getUserBusinessCardStateList().then((res)=>{\r\n if(res){\r\n action.commit(types.GET_CARDSTATE, res);\r\n return res;\r\n }\r\n });\r\n }, \r\n\r\n [types.GET_CARD](action, personCode:string){\r\n return api.getUserBusinessCardInfo(personCode).then((res)=>{\r\n if(res){\r\n action.commit(types.GET_CARD, res);\r\n return res;\r\n }\r\n });\r\n },\r\n\r\n [types.UPDATE_CARD](action, item:gnb.UserBusinessCard){\r\n return api.setUserBusinessCardInfo(item).then((res)=>{\r\n if(res){\r\n action.dispatch(types.GET_CARD,item.personCode)\r\n return res;\r\n }\r\n })\r\n },\r\n\r\n [types.DOWNLOAD_PC](action, item: gnb.downloadOption): Promise {\r\n return api.checkDownloadEml(item).then(async checkResult => {\r\n if (checkResult.succeed) {\r\n return api\r\n .downloadPC(item)\r\n .then(() => {\r\n return checkResult;\r\n })\r\n .catch(async (err) => {\r\n await(window as any).alertAsync(i18n.t('M_Settings_Msg43'));\r\n return checkResult;\r\n });\r\n }\r\n else {\r\n const { succeed, resultCode, exception, maxSize, transitionSize } = checkResult;\r\n const readablizeBytes = (bytes: number) => {\r\n var s = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'];\r\n var e = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, e)) + ' ' + s[e];\r\n };\r\n const nMaxSize = readablizeBytes(maxSize);\r\n const nTransitionSize = readablizeBytes(transitionSize);\r\n switch (resultCode) {\r\n case 'MaximumSizeExceeded':\r\n await(window as any).alertAsync(i18n.t('M_Mail_ArchiveErrorMaximumSizeExceeded', { size: nMaxSize }).toString());\r\n break;\r\n\r\n case 'SwitchLargeCapacity':\r\n await(window as any).alertAsync(i18n.t('M_Mail_ArchiveErrorSwitchLargeCapacity', { size: nTransitionSize }).toString());\r\n break;\r\n }\r\n return checkResult;\r\n }\r\n });\r\n },\r\n \r\n};\r\n","import { GetterTree } from 'vuex';\r\nimport * as types from './types';\r\n\r\nexport default >{\r\n\r\n [types.LANGUAGE_LOAD](state) {\r\n return state.languageFields;\r\n },\r\n\r\n [types.TIME_LOAD](state) {\r\n return state.timeFields;\r\n },\r\n\r\n [types.GET_CARDSTATE](state) {\r\n return state.cardState;\r\n },\r\n\r\n [types.GET_CARD](state) {\r\n return state.userCard;\r\n },\r\n\r\n [types.SETTINGS_MYSETTING_DATA](state){\r\n return state.settings.mySetting;\r\n },\r\n\r\n \r\n [types.APPLICATION_LIST_DATA](state){\r\n return state.settings.applicationList;\r\n },\r\n\r\n [types.SETTINGS_DELEGATOR_LIST_DATA](state){\r\n return state.settings.delegate;\r\n },\r\n \r\n [types.COMMON_LOADDING](state) {\r\n return state.isLoading;\r\n },\r\n \r\n};\r\n","import { MutationTree } from 'vuex';\r\nimport * as types from './types'\r\nimport { i18n } from '@appbase/util/i18n-setup'\r\n\r\nexport default >{\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M M O N : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 로딩 UI를 호출합니다\r\n * @param action \r\n * @param flag \r\n */\r\n [types.COMMON_LOADDING](state, flag: boolean) {\r\n state.isLoading = flag;\r\n },\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: S E T T I N G S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n [types.SETTINGS_MYSETTING_LOAD](state, payload: gnb.CM_MySetting){\r\n state.settings.mySetting = payload;\r\n },\r\n [types.APPLICATION_LIST_LOAD](state, payload: gnb.CM_ApplicationList){\r\n state.settings.applicationList = payload;\r\n },\r\n [types.SETTINGS_DELEGATOR_LIST_LOAD](state, payload: gnb.CM_DelegationList){\r\n state.settings.delegate = payload;\r\n },\r\n //\r\n // ────────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L A N G U A G E A N D T I M E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.LANGUAGE_LOAD](state) {\r\n state.languageFields = {\r\n languageFields: [\r\n {\r\n key: 'ko-KR',\r\n name: i18n.t('W_Settings_Korean').toString(),\r\n selected: true,\r\n },\r\n {\r\n key: 'en-US',\r\n name: i18n.t('W_Settings_English').toString(),\r\n selected: false,\r\n },\r\n // {\r\n // key: 'ja-JP',\r\n // name: i18n.t('W_Settings_Japanese').toString(),\r\n // selected: false,\r\n // },\r\n {\r\n key: 'zh-CN',\r\n name: i18n.t('W_Settings_Chinese').toString(),\r\n selected: false,\r\n },\r\n ],\r\n };\r\n },\r\n\r\n [types.TIME_LOAD](state) {\r\n state.timeFields = {\r\n timeFields: [\r\n {\r\n key: 'Dateline Standard Time',\r\n name: i18n\r\n .t('W_TZ_DatelineStandardTime')\r\n .toString(), // (UTC-12:00) 날짜 변경선 서쪽\r\n selected: false,\r\n },\r\n {\r\n key: 'UTC-11',\r\n name: i18n.t('W_TZ_UTC_11').toString(), // (UTC-11:00) 협정 세계시-11\r\n selected: false,\r\n },\r\n {\r\n key: 'Aleutian Standard Time',\r\n name: i18n\r\n .t('W_TZ_AleutianStandardTime')\r\n .toString(), // (UTC-10:00) 알류샨 열도\r\n selected: false,\r\n },\r\n {\r\n key: 'Hawaiian Standard Time',\r\n name: i18n\r\n .t('W_TZ_HawaiianStandardTime')\r\n .toString(), // (UTC-10:00) 하와이\r\n selected: false,\r\n },\r\n {\r\n key: 'Marquesas Standard Time',\r\n name: i18n\r\n .t('W_TZ_MarquesasStandardTime')\r\n .toString(), // (UTC-09:30) 마키저스 제도\r\n selected: false,\r\n },\r\n {\r\n key: 'Alaskan Standard Time',\r\n name: i18n.t('W_TZ_AlaskanStandardTime').toString(), // (UTC-09:00) 알래스카\r\n selected: false,\r\n },\r\n {\r\n key: 'UTC-09',\r\n name: i18n.t('W_TZ_UTC_09').toString(), // (UTC-09:00) 협정 세계시-09\r\n selected: false,\r\n },\r\n {\r\n key: 'Pacific Standard Time (Mexico)',\r\n name: i18n\r\n .t('W_TZ_PacificStandardTime_Mexico_')\r\n .toString(), // (UTC-08:00) 바하 캘리포니아\r\n selected: false,\r\n },\r\n {\r\n key: 'Pacific Standard Time',\r\n name: i18n.t('W_TZ_PacificStandardTime').toString(), // (UTC-08:00) 태평양 표준시 (미국과 캐나다)\r\n selected: false,\r\n },\r\n {\r\n key: 'UTC-08',\r\n name: i18n.t('W_TZ_UTC_08').toString(), // (UTC-08:00) 협정 세계시-08\r\n selected: false,\r\n },\r\n {\r\n key: 'Mountain Standard Time',\r\n name: i18n\r\n .t('W_TZ_MountainStandardTime')\r\n .toString(), // (UTC-07:00) 산지 표준시 (미국과 캐나다)\r\n selected: false,\r\n },\r\n {\r\n key: 'US Mountain Standard Time',\r\n name: i18n\r\n .t('W_TZ_USMountainStandardTime')\r\n .toString(), // (UTC-07:00) 애리조나\r\n selected: false,\r\n },\r\n {\r\n key: 'Mountain Standard Time (Mexico)',\r\n name: i18n\r\n .t('W_TZ_MountainStandardTime_Mexico_')\r\n .toString(), // (UTC-07:00) 치와와, 라파스, 마사틀란\r\n selected: false,\r\n },\r\n {\r\n key: 'Central Standard Time (Mexico)',\r\n name: i18n\r\n .t('W_TZ_CentralStandardTime_Mexico_')\r\n .toString(), // (UTC-06:00) 과달라하라, 멕시코시티, 몬테레이\r\n selected: false,\r\n },\r\n {\r\n key: 'Canada Central Standard Time',\r\n name: i18n\r\n .t('W_TZ_CanadaCentralStandardTime')\r\n .toString(), // (UTC-06:00) 서스캐처원\r\n selected: false,\r\n },\r\n {\r\n key: 'Easter Island Standard Time',\r\n name: i18n\r\n .t('W_TZ_EasterIslandStandardTime')\r\n .toString(), // (UTC-06:00) 이스터 섬\r\n selected: false,\r\n },\r\n {\r\n key: 'Central Standard Time',\r\n name: i18n.t('W_TZ_CentralStandardTime').toString(), // (UTC-06:00) 중부 표준시 (미국과 캐나다)\r\n selected: false,\r\n },\r\n {\r\n key: 'Central America Standard Time',\r\n name: i18n\r\n .t('W_TZ_CentralAmericaStandardTime')\r\n .toString(), // (UTC-06:00) 중앙 아메리카\r\n selected: false,\r\n },\r\n {\r\n key: 'Eastern Standard Time',\r\n name: i18n.t('W_TZ_EasternStandardTime').toString(), // (UTC-05:00) 동부 표준시 (미국과 캐나다)\r\n selected: false,\r\n },\r\n {\r\n key: 'SA Pacific Standard Time',\r\n name: i18n\r\n .t('W_TZ_SAPacificStandardTime')\r\n .toString(), // (UTC-05:00) 보고타, 리마, 키토, 리오 브랑코\r\n selected: false,\r\n },\r\n {\r\n key: 'Haiti Standard Time',\r\n name: i18n.t('W_TZ_HaitiStandardTime').toString(), // (UTC-05:00) 아이티\r\n selected: false,\r\n },\r\n {\r\n key: 'US Eastern Standard Time',\r\n name: i18n\r\n .t('W_TZ_USEasternStandardTime')\r\n .toString(), // (UTC-05:00) 인디애나 (동부)\r\n selected: false,\r\n },\r\n {\r\n key: 'Eastern Standard Time (Mexico)',\r\n name: i18n\r\n .t('W_TZ_EasternStandardTime_Mexico_')\r\n .toString(), // (UTC-05:00) 체투말\r\n selected: false,\r\n },\r\n {\r\n key: 'Cuba Standard Time',\r\n name: i18n.t('W_TZ_CubaStandardTime').toString(), // (UTC-05:00) 하바나\r\n selected: false,\r\n },\r\n {\r\n key: 'Atlantic Standard Time',\r\n name: i18n\r\n .t('W_TZ_AtlanticStandardTime')\r\n .toString(), // (UTC-04:00) 대서양 표준시 (캐나다)\r\n selected: false,\r\n },\r\n {\r\n key: 'Pacific SA Standard Time',\r\n name: i18n\r\n .t('W_TZ_PacificSAStandardTime')\r\n .toString(), // (UTC-04:00) 산티아고\r\n selected: false,\r\n },\r\n {\r\n key: 'Paraguay Standard Time',\r\n name: i18n\r\n .t('W_TZ_ParaguayStandardTime')\r\n .toString(), // (UTC-04:00) 아순시온\r\n selected: false,\r\n },\r\n {\r\n key: 'SA Western Standard Time',\r\n name: i18n\r\n .t('W_TZ_SAWesternStandardTime')\r\n .toString(), // (UTC-04:00) 조지타운, 라파스, 마노스, 산후안\r\n selected: false,\r\n },\r\n {\r\n key: 'Venezuela Standard Time',\r\n name: i18n\r\n .t('W_TZ_VenezuelaStandardTime')\r\n .toString(), // (UTC-04:00) 카라카스\r\n selected: false,\r\n },\r\n {\r\n key: 'Central Brazilian Standard Time',\r\n name: i18n\r\n .t('W_TZ_CentralBrazilianStandardTime')\r\n .toString(), // (UTC-04:00) 쿠이아바\r\n selected: false,\r\n },\r\n {\r\n key: 'Turks And Caicos Standard Time',\r\n name: i18n\r\n .t('W_TZ_TurksAndCaicosStandardTime')\r\n .toString(), // (UTC-04:00) 터크스 케이커스\r\n selected: false,\r\n },\r\n {\r\n key: 'Newfoundland Standard Time',\r\n name: i18n\r\n .t('W_TZ_NewfoundlandStandardTime')\r\n .toString(), // (UTC-03:30) 뉴펀들랜드\r\n selected: false,\r\n },\r\n {\r\n key: 'Greenland Standard Time',\r\n name: i18n\r\n .t('W_TZ_GreenlandStandardTime')\r\n .toString(), // (UTC-03:00) 그린란드\r\n selected: false,\r\n },\r\n {\r\n key: 'Montevideo Standard Time',\r\n name: i18n\r\n .t('W_TZ_MontevideoStandardTime')\r\n .toString(), // (UTC-03:00) 몬테비디오\r\n selected: false,\r\n },\r\n {\r\n key: 'Argentina Standard Time',\r\n name: i18n\r\n .t('W_TZ_ArgentinaStandardTime')\r\n .toString(), // (UTC-03:00) 부에노스아이레스\r\n selected: false,\r\n },\r\n {\r\n key: 'E. South America Standard Time',\r\n name: i18n\r\n .t('W_TZ_E_SouthAmericaStandardTime')\r\n .toString(), // (UTC-03:00) 브라질리아\r\n selected: false,\r\n },\r\n {\r\n key: 'Bahia Standard Time',\r\n name: i18n.t('W_TZ_BahiaStandardTime').toString(), // (UTC-03:00) 살바도르\r\n selected: false,\r\n },\r\n {\r\n key: 'Saint Pierre Standard Time',\r\n name: i18n\r\n .t('W_TZ_SaintPierreStandardTime')\r\n .toString(), // (UTC-03:00) 생피에르앤드미클롱\r\n selected: false,\r\n },\r\n {\r\n key: 'Tocantins Standard Time',\r\n name: i18n\r\n .t('W_TZ_TocantinsStandardTime')\r\n .toString(), // (UTC-03:00) 아라구아이나\r\n selected: false,\r\n },\r\n {\r\n key: 'SA Eastern Standard Time',\r\n name: i18n\r\n .t('W_TZ_SAEasternStandardTime')\r\n .toString(), // (UTC-03:00) 카옌, 포르탈레자\r\n selected: false,\r\n },\r\n {\r\n key: 'Magallanes Standard Time',\r\n name: i18n\r\n .t('W_TZ_MagallanesStandardTime')\r\n .toString(), // (UTC-03:00) 푼타아레나스\r\n selected: false,\r\n },\r\n {\r\n key: 'Mid-Atlantic Standard Time',\r\n name: i18n\r\n .t('W_TZ_Mid_AtlanticStandardTime')\r\n .toString(), // (UTC-02:00) 중부-대서양 - 이전\r\n selected: false,\r\n },\r\n {\r\n key: 'UTC-02',\r\n name: i18n.t('W_TZ_UTC_02').toString(), // (UTC-02:00) 협정 세계시-02\r\n selected: false,\r\n },\r\n {\r\n key: 'Azores Standard Time',\r\n name: i18n.t('W_TZ_AzoresStandardTime').toString(), // (UTC-01:00) 아조레스\r\n selected: false,\r\n },\r\n {\r\n key: 'Cape Verde Standard Time',\r\n name: i18n\r\n .t('W_TZ_CapeVerdeStandardTime')\r\n .toString(), // (UTC-01:00) 카보베르데 제도\r\n selected: false,\r\n },\r\n {\r\n key: 'UTC',\r\n name: i18n.t('W_TZ_UTC').toString(), // (UTC) 협정 세계시\r\n selected: false,\r\n },\r\n {\r\n key: 'GMT Standard Time',\r\n name: i18n.t('W_TZ_GMTStandardTime').toString(), // (UTC+00:00) 더블린, 에든버러, 리스본, 런던\r\n selected: false,\r\n },\r\n {\r\n key: 'Greenwich Standard Time',\r\n name: i18n\r\n .t('W_TZ_GreenwichStandardTime')\r\n .toString(), // (UTC+00:00) 몬로비아, 레이캬비크\r\n selected: false,\r\n },\r\n {\r\n key: 'Morocco Standard Time',\r\n name: i18n.t('W_TZ_MoroccoStandardTime').toString(), // (UTC+00:00) 카사블랑카\r\n selected: false,\r\n },\r\n {\r\n key: 'Central Europe Standard Time',\r\n name: i18n\r\n .t('W_TZ_CentralEuropeStandardTime')\r\n .toString(), // (UTC+01:00) 베오그라드,브라티슬라바,부다페스트,류블랴나,프라하\r\n selected: false,\r\n },\r\n {\r\n key: 'Romance Standard Time',\r\n name: i18n.t('W_TZ_RomanceStandardTime').toString(), // (UTC+01:00) 브뤼셀, 코펜하겐, 마드리드, 파리\r\n selected: false,\r\n },\r\n {\r\n key: 'Namibia Standard Time',\r\n name: i18n.t('W_TZ_NamibiaStandardTime').toString(), // (UTC+01:00) 빈트후크\r\n selected: false,\r\n },\r\n {\r\n key: 'Central European Standard Time',\r\n name: i18n\r\n .t('W_TZ_CentralEuropeanStandardTime')\r\n .toString(), // (UTC+01:00) 사라예보, 스코페, 바르샤바, 자그레브\r\n selected: false,\r\n },\r\n {\r\n key: 'W. Central Africa Standard Time',\r\n name: i18n\r\n .t('W_TZ_W_CentralAfricaStandardTime')\r\n .toString(), // (UTC+01:00) 서중앙 아프리카\r\n selected: false,\r\n },\r\n {\r\n key: 'W. Europe Standard Time',\r\n name: i18n\r\n .t('W_TZ_W_EuropeStandardTime')\r\n .toString(), // (UTC+01:00) 암스테르담, 베를린, 베른, 로마, 스톡홀름, 빈\r\n selected: false,\r\n },\r\n {\r\n key: 'West Bank Standard Time',\r\n name: i18n\r\n .t('W_TZ_WestBankStandardTime')\r\n .toString(), // (UTC+02:00) 가자, 헤브론\r\n selected: false,\r\n },\r\n {\r\n key: 'Syria Standard Time',\r\n name: i18n.t('W_TZ_SyriaStandardTime').toString(), // (UTC+02:00) 다마스쿠스\r\n selected: false,\r\n },\r\n {\r\n key: 'Middle East Standard Time',\r\n name: i18n\r\n .t('W_TZ_MiddleEastStandardTime')\r\n .toString(), // (UTC+02:00) 베이루트\r\n selected: false,\r\n },\r\n {\r\n key: 'GTB Standard Time',\r\n name: i18n.t('W_TZ_GTBStandardTime').toString(), // (UTC+02:00) 아테네, 부카레스트\r\n selected: false,\r\n },\r\n {\r\n key: 'Jordan Standard Time',\r\n name: i18n.t('W_TZ_JordanStandardTime').toString(), // (UTC+02:00) 암만\r\n selected: false,\r\n },\r\n {\r\n key: 'Israel Standard Time',\r\n name: i18n.t('W_TZ_IsraelStandardTime').toString(), // (UTC+02:00) 예루살렘\r\n selected: false,\r\n },\r\n {\r\n key: 'Egypt Standard Time',\r\n name: i18n.t('W_TZ_EgyptStandardTime').toString(), // (UTC+02:00) 카이로\r\n selected: false,\r\n },\r\n {\r\n key: 'Kaliningrad Standard Time',\r\n name: i18n\r\n .t('W_TZ_KaliningradStandardTime')\r\n .toString(), // (UTC+02:00) 칼리닌그라드\r\n selected: false,\r\n },\r\n {\r\n key: 'E. Europe Standard Time',\r\n name: i18n\r\n .t('W_TZ_E_EuropeStandardTime')\r\n .toString(), // (UTC+02:00) 키시네프\r\n selected: false,\r\n },\r\n {\r\n key: 'Libya Standard Time',\r\n name: i18n.t('W_TZ_LibyaStandardTime').toString(), // (UTC+02:00) 트리폴리\r\n selected: false,\r\n },\r\n {\r\n key: 'South Africa Standard Time',\r\n name: i18n\r\n .t('W_TZ_SouthAfricaStandardTime')\r\n .toString(), // (UTC+02:00) 하라레, 프리토리아\r\n selected: false,\r\n },\r\n {\r\n key: 'FLE Standard Time',\r\n name: i18n.t('W_TZ_FLEStandardTime').toString(), // (UTC+02:00) 헬싱키, 키예프, 리가, 소피아, 탈린, 빌뉴스\r\n selected: false,\r\n },\r\n {\r\n key: 'E. Africa Standard Time',\r\n name: i18n\r\n .t('W_TZ_E_AfricaStandardTime')\r\n .toString(), // (UTC+03:00) 나이로비\r\n selected: false,\r\n },\r\n {\r\n key: 'Russian Standard Time',\r\n name: i18n.t('W_TZ_RussianStandardTime').toString(), // (UTC+03:00) 모스크바, 상트페테르부르크, 볼고그라드\r\n selected: false,\r\n },\r\n {\r\n key: 'Belarus Standard Time',\r\n name: i18n.t('W_TZ_BelarusStandardTime').toString(), // (UTC+03:00) 민스크\r\n selected: false,\r\n },\r\n {\r\n key: 'Arabic Standard Time',\r\n name: i18n.t('W_TZ_ArabicStandardTime').toString(), // (UTC+03:00) 바그다드\r\n selected: false,\r\n },\r\n {\r\n key: 'Turkey Standard Time',\r\n name: i18n.t('W_TZ_TurkeyStandardTime').toString(), // (UTC+03:00) 이스탄불\r\n selected: false,\r\n },\r\n {\r\n key: 'Arab Standard Time',\r\n name: i18n.t('W_TZ_ArabStandardTime').toString(), // (UTC+03:00) 쿠웨이트, 리야드\r\n selected: false,\r\n },\r\n {\r\n key: 'Iran Standard Time',\r\n name: i18n.t('W_TZ_IranStandardTime').toString(), // (UTC+03:30) 테헤란\r\n selected: false,\r\n },\r\n {\r\n key: 'Azerbaijan Standard Time',\r\n name: i18n\r\n .t('W_TZ_AzerbaijanStandardTime')\r\n .toString(), // (UTC+04:00) 바쿠\r\n selected: false,\r\n },\r\n {\r\n key: 'Saratov Standard Time',\r\n name: i18n.t('W_TZ_SaratovStandardTime').toString(), // (UTC+04:00) 사라토브\r\n selected: false,\r\n },\r\n {\r\n key: 'Arabian Standard Time',\r\n name: i18n.t('W_TZ_ArabianStandardTime').toString(), // (UTC+04:00) 아랍: 아부다비, 무스카트\r\n selected: false,\r\n },\r\n {\r\n key: 'Astrakhan Standard Time',\r\n name: i18n\r\n .t('W_TZ_AstrakhanStandardTime')\r\n .toString(), // (UTC+04:00) 아스트라한, 울랴노브스크\r\n selected: false,\r\n },\r\n {\r\n key: 'Caucasus Standard Time',\r\n name: i18n\r\n .t('W_TZ_CaucasusStandardTime')\r\n .toString(), // (UTC+04:00) 예레반\r\n selected: false,\r\n },\r\n {\r\n key: 'Russia Time Zone 3',\r\n name: i18n.t('W_TZ_RussiaTimeZone3').toString(), // (UTC+04:00) 이젭스크, 사마라\r\n selected: false,\r\n },\r\n {\r\n key: 'Georgian Standard Time',\r\n name: i18n\r\n .t('W_TZ_GeorgianStandardTime')\r\n .toString(), // (UTC+04:00) 트빌리시\r\n selected: false,\r\n },\r\n {\r\n key: 'Mauritius Standard Time',\r\n name: i18n\r\n .t('W_TZ_MauritiusStandardTime')\r\n .toString(), // (UTC+04:00) 포트루이스\r\n selected: false,\r\n },\r\n {\r\n key: 'Afghanistan Standard Time',\r\n name: i18n\r\n .t('W_TZ_AfghanistanStandardTime')\r\n .toString(), // (UTC+04:30) 카불\r\n selected: false,\r\n },\r\n {\r\n key: 'West Asia Standard Time',\r\n name: i18n\r\n .t('W_TZ_WestAsiaStandardTime')\r\n .toString(), // (UTC+05:00) 아슈하바트, 타슈켄트\r\n selected: false,\r\n },\r\n {\r\n key: 'Ekaterinburg Standard Time',\r\n name: i18n\r\n .t('W_TZ_EkaterinburgStandardTime')\r\n .toString(), // (UTC+05:00) 예카테린부르크\r\n selected: false,\r\n },\r\n {\r\n key: 'Pakistan Standard Time',\r\n name: i18n\r\n .t('W_TZ_PakistanStandardTime')\r\n .toString(), // (UTC+05:00) 이슬라마바드, 카라치\r\n selected: false,\r\n },\r\n {\r\n key: 'Sri Lanka Standard Time',\r\n name: i18n\r\n .t('W_TZ_SriLankaStandardTime')\r\n .toString(), // (UTC+05:30) 스리자야와르데네푸라\r\n selected: false,\r\n },\r\n {\r\n key: 'India Standard Time',\r\n name: i18n.t('W_TZ_IndiaStandardTime').toString(), // (UTC+05:30) 첸나이, 콜카타, 뭄바이, 뉴델리\r\n selected: false,\r\n },\r\n {\r\n key: 'Nepal Standard Time',\r\n name: i18n.t('W_TZ_NepalStandardTime').toString(), // (UTC+05:45) 카트만두\r\n selected: false,\r\n },\r\n {\r\n key: 'Bangladesh Standard Time',\r\n name: i18n\r\n .t('W_TZ_BangladeshStandardTime')\r\n .toString(), // (UTC+06:00) 다카\r\n selected: false,\r\n },\r\n {\r\n key: 'Central Asia Standard Time',\r\n name: i18n\r\n .t('W_TZ_CentralAsiaStandardTime')\r\n .toString(), // (UTC+06:00) 아스타나\r\n selected: false,\r\n },\r\n {\r\n key: 'Omsk Standard Time',\r\n name: i18n.t('W_TZ_OmskStandardTime').toString(), // (UTC+06:00) 옴스크\r\n selected: false,\r\n },\r\n {\r\n key: 'Myanmar Standard Time',\r\n name: i18n.t('W_TZ_MyanmarStandardTime').toString(), // (UTC+06:30) 양곤\r\n selected: false,\r\n },\r\n {\r\n key: 'N. Central Asia Standard Time',\r\n name: i18n\r\n .t('W_TZ_N_CentralAsiaStandardTime')\r\n .toString(), // (UTC+07:00) 노보시비르스크\r\n selected: false,\r\n },\r\n {\r\n key: 'Altai Standard Time',\r\n name: i18n.t('W_TZ_AltaiStandardTime').toString(), // (UTC+07:00) 바르나울, 고르노알타이스크\r\n selected: false,\r\n },\r\n {\r\n key: 'SE Asia Standard Time',\r\n name: i18n.t('W_TZ_SEAsiaStandardTime').toString(), // (UTC+07:00) 방콕, 하노이, 자카르타\r\n selected: false,\r\n },\r\n {\r\n key: 'North Asia Standard Time',\r\n name: i18n\r\n .t('W_TZ_NorthAsiaStandardTime')\r\n .toString(), // (UTC+07:00) 크라스노야르스크\r\n selected: false,\r\n },\r\n {\r\n key: 'Tomsk Standard Time',\r\n name: i18n.t('W_TZ_TomskStandardTime').toString(), // (UTC+07:00) 톰스크\r\n selected: false,\r\n },\r\n {\r\n key: 'W. Mongolia Standard Time',\r\n name: i18n\r\n .t('W_TZ_W_MongoliaStandardTime')\r\n .toString(), // (UTC+07:00) 호브드\r\n selected: false,\r\n },\r\n {\r\n key: 'China Standard Time',\r\n name: i18n.t('W_TZ_ChinaStandardTime').toString(), // (UTC+08:00) 베이징, 충칭, 홍콩 특별 행정구, 우루무치\r\n selected: false,\r\n },\r\n {\r\n key: 'Ulaanbaatar Standard Time',\r\n name: i18n\r\n .t('W_TZ_UlaanbaatarStandardTime')\r\n .toString(), // (UTC+08:00) 울란바토르\r\n selected: false,\r\n },\r\n {\r\n key: 'North Asia East Standard Time',\r\n name: i18n\r\n .t('W_TZ_NorthAsiaEastStandardTime')\r\n .toString(), // (UTC+08:00) 이르쿠츠크\r\n selected: false,\r\n },\r\n {\r\n key: 'Singapore Standard Time',\r\n name: i18n\r\n .t('W_TZ_SingaporeStandardTime')\r\n .toString(), // (UTC+08:00) 콸라룸푸르, 싱가포르\r\n selected: false,\r\n },\r\n {\r\n key: 'Taipei Standard Time',\r\n name: i18n.t('W_TZ_TaipeiStandardTime').toString(), // (UTC+08:00) 타이베이\r\n selected: false,\r\n },\r\n {\r\n key: 'W. Australia Standard Time',\r\n name: i18n\r\n .t('W_TZ_W_AustraliaStandardTime')\r\n .toString(), // (UTC+08:00) 퍼스\r\n selected: false,\r\n },\r\n {\r\n key: 'North Korea Standard Time',\r\n name: i18n\r\n .t('W_TZ_NorthKoreaStandardTime')\r\n .toString(), // (UTC+08:30) 평양\r\n selected: false,\r\n },\r\n {\r\n key: 'Aus Central W. Standard Time',\r\n name: i18n\r\n .t('W_TZ_AusCentralW_StandardTime')\r\n .toString(), // (UTC+08:45) 유클라\r\n selected: false,\r\n },\r\n {\r\n key: 'Korea Standard Time',\r\n name: i18n.t('W_TZ_KoreaStandardTime').toString(), // (UTC+09:00) 서울\r\n selected: true,\r\n },\r\n {\r\n key: 'Yakutsk Standard Time',\r\n name: i18n.t('W_TZ_YakutskStandardTime').toString(), // (UTC+09:00) 야쿠츠크\r\n selected: false,\r\n },\r\n {\r\n key: 'Tokyo Standard Time',\r\n name: i18n.t('W_TZ_TokyoStandardTime').toString(), // (UTC+09:00) 오사카, 삿포로, 도쿄\r\n selected: false,\r\n },\r\n {\r\n key: 'Transbaikal Standard Time',\r\n name: i18n\r\n .t('W_TZ_TransbaikalStandardTime')\r\n .toString(), // (UTC+09:00) 치타\r\n selected: false,\r\n },\r\n {\r\n key: 'AUS Central Standard Time',\r\n name: i18n\r\n .t('W_TZ_AUSCentralStandardTime')\r\n .toString(), // (UTC+09:30) 다윈\r\n selected: false,\r\n },\r\n {\r\n key: 'Cen. Australia Standard Time',\r\n name: i18n\r\n .t('W_TZ_Cen_AustraliaStandardTime')\r\n .toString(), // (UTC+09:30) 애들레이드\r\n selected: false,\r\n },\r\n {\r\n key: 'West Pacific Standard Time',\r\n name: i18n\r\n .t('W_TZ_WestPacificStandardTime')\r\n .toString(), // (UTC+10:00) 괌, 포트모르즈비\r\n selected: false,\r\n },\r\n {\r\n key: 'E. Australia Standard Time',\r\n name: i18n\r\n .t('W_TZ_E_AustraliaStandardTime')\r\n .toString(), // (UTC+10:00) 브리즈번\r\n selected: false,\r\n },\r\n {\r\n key: 'Vladivostok Standard Time',\r\n name: i18n\r\n .t('W_TZ_VladivostokStandardTime')\r\n .toString(), // (UTC+10:00) 블라디보스토크\r\n selected: false,\r\n },\r\n {\r\n key: 'AUS Eastern Standard Time',\r\n name: i18n\r\n .t('W_TZ_AUSEasternStandardTime')\r\n .toString(), // (UTC+10:00) 캔버라, 멜버른, 시드니\r\n selected: false,\r\n },\r\n {\r\n key: 'Tasmania Standard Time',\r\n name: i18n\r\n .t('W_TZ_TasmaniaStandardTime')\r\n .toString(), // (UTC+10:00) 호바트\r\n selected: false,\r\n },\r\n {\r\n key: 'Lord Howe Standard Time',\r\n name: i18n\r\n .t('W_TZ_LordHoweStandardTime')\r\n .toString(), // (UTC+10:30) 로드하우 섬\r\n selected: false,\r\n },\r\n {\r\n key: 'Norfolk Standard Time',\r\n name: i18n.t('W_TZ_NorfolkStandardTime').toString(), // (UTC+11:00) 노퍽 섬\r\n selected: false,\r\n },\r\n {\r\n key: 'Magadan Standard Time',\r\n name: i18n.t('W_TZ_MagadanStandardTime').toString(), // (UTC+11:00) 마가단\r\n selected: false,\r\n },\r\n {\r\n key: 'Bougainville Standard Time',\r\n name: i18n\r\n .t('W_TZ_BougainvilleStandardTime')\r\n .toString(), // (UTC+11:00) 부건빌 섬\r\n selected: false,\r\n },\r\n {\r\n key: 'Sakhalin Standard Time',\r\n name: i18n\r\n .t('W_TZ_SakhalinStandardTime')\r\n .toString(), // (UTC+11:00) 사할린\r\n selected: false,\r\n },\r\n {\r\n key: 'Central Pacific Standard Time',\r\n name: i18n\r\n .t('W_TZ_CentralPacificStandardTime')\r\n .toString(), // (UTC+11:00) 솔로몬 제도, 뉴칼레도니아\r\n selected: false,\r\n },\r\n {\r\n key: 'Russia Time Zone 10',\r\n name: i18n.t('W_TZ_RussiaTimeZone10').toString(), // (UTC+11:00) 초쿠르다흐\r\n selected: false,\r\n },\r\n {\r\n key: 'Russia Time Zone 11',\r\n name: i18n.t('W_TZ_RussiaTimeZone11').toString(), // (UTC+12:00) 아나디리, 페트로파블로프스크-캄차스키\r\n selected: false,\r\n },\r\n {\r\n key: 'New Zealand Standard Time',\r\n name: i18n\r\n .t('W_TZ_NewZealandStandardTime')\r\n .toString(), // (UTC+12:00) 오클랜드, 웰링턴\r\n selected: false,\r\n },\r\n {\r\n key: 'Fiji Standard Time',\r\n name: i18n.t('W_TZ_FijiStandardTime').toString(), // (UTC+12:00) 피지\r\n selected: false,\r\n },\r\n {\r\n key: 'UTC+12',\r\n name: i18n.t('W_TZ_UTC_12').toString(), // (UTC+12:00) 협정 세계시+12\r\n selected: false,\r\n },\r\n {\r\n key: 'Chatham Islands Standard Time',\r\n name: i18n\r\n .t('W_TZ_ChathamIslandsStandardTime')\r\n .toString(), // (UTC+12:45) 채텀 섬\r\n selected: false,\r\n },\r\n {\r\n key: 'Tonga Standard Time',\r\n name: i18n.t('W_TZ_TongaStandardTime').toString(), // (UTC+13:00) 누쿠알로파\r\n selected: false,\r\n },\r\n {\r\n key: 'Samoa Standard Time',\r\n name: i18n.t('W_TZ_SamoaStandardTime').toString(), // (UTC+13:00) 사모아\r\n selected: false,\r\n },\r\n {\r\n key: 'UTC+13',\r\n name: i18n.t('W_TZ_UTC_13').toString(), // (UTC+13:00) 협정 세계시+13\r\n selected: false,\r\n },\r\n {\r\n key: 'Line Islands Standard Time',\r\n name: i18n\r\n .t('W_TZ_LineIslandsStandardTime')\r\n .toString(), // (UTC+14:00) 키리티마티 섬\r\n selected: false,\r\n },\r\n ],\r\n };\r\n },\r\n\r\n \r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: U S E R C A R D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n [types.GET_CARDSTATE](state, item: gnb.UserBusinessCardState){\r\n state.cardState = item;\r\n },\r\n\r\n [types.GET_CARD](state, item: gnb.UserBusinessCard){\r\n state.userCard = item;\r\n },\r\n \r\n};\r\n","import actions from './actions';\r\nimport getters from './getters';\r\nimport mutations from './mutations';\r\n\r\n// initial state\r\nconst state: gnb.state.GnbState = {\r\n languageFields: undefined,\r\n timeFields: undefined,\r\n cardState: undefined,\r\n userCard: undefined,\r\n settings: {\r\n mySetting: {\r\n mySetting: {\r\n personCode: '',\r\n tabOrder: '0,1,2',\r\n language: 'ko',\r\n isReceiveApproveMail: false,\r\n isReceiveNextMail: false,\r\n isReceiveBeforeMail: false,\r\n isReceiveAfterMail: false,\r\n isReceiveRefMail: false,\r\n isReceiveCompleteMail: false,\r\n isReceiveCompleteApproveMail: false,\r\n isReceiveDeptReceiptMail: false,\r\n isTUReceiveApproveMail: false,\r\n isTUReceiveNextMail: false,\r\n isTUReceiveBeforeMail: false,\r\n isTUReceiveAfterMail: false,\r\n isTUReceiveRefMail: false,\r\n isTUReceiveCompleteMail: false,\r\n isTUReceiveCompleteApproveMail: false,\r\n isTUReceiveDeptReceiptMail: false,\r\n fiDocumentCount: 10,\r\n createdId: '',\r\n createdDate: new Date(),\r\n isRead: true,\r\n isCreated: false,\r\n isUpdate: false,\r\n isDelete: false,\r\n actionType: 'Read',\r\n }\r\n },\r\n delegate: {\r\n delegationList: []\r\n },\r\n applicationList: {\r\n applicationGroupList: []\r\n },\r\n },\r\n isLoading: true,\r\n\r\n \r\n};\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n};\r\n","import { Store } from 'vuex'\r\nconst styleAction = 'background: #222; color: #bada55'\r\nconst styleMutation = 'background: #222; color: #8EA63C'\r\n\r\nexport function configureLogging(store: Store): Store {\r\n store.subscribeAction((action, state) => {\r\n const payload = action.payload ? JSON.parse(JSON.stringify(action.payload)) : action.payload\r\n const stateTemp = JSON.parse(JSON.stringify(state))\r\n const data = {\r\n payload: payload,\r\n state: stateTemp,\r\n }\r\n console.log(`%c Action: ${action.type}`, styleAction, data)\r\n })\r\n\r\n store.subscribe((mutation, state) => {\r\n const payload = mutation.payload\r\n ? JSON.parse(JSON.stringify(mutation.payload))\r\n : mutation.payload\r\n const stateTemp = JSON.parse(JSON.stringify(state))\r\n const data = {\r\n payload: payload,\r\n state: stateTemp,\r\n }\r\n console.log(`%c Mutation: ${mutation.type}`, styleMutation, data)\r\n })\r\n\r\n return store\r\n}\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport actions from './actions';\r\nimport getters from './getters';\r\nimport mutations from './mutations';\r\n\r\nimport storeAccount from '@account/store'\r\nimport storeOrgmap from '@orgmap/store'\r\nimport moduleAppbase from '@appbase/store'\r\nimport storeMail from '@mail/store'\r\nimport storeCalendar from '@calendar/store'\r\nimport storeContact from '@contact/store'\r\nimport storeWorkflow from '@workflow/store'\r\nimport storeBoard from '@board/store'\r\nimport storeGnb from '@gnb/store'\r\nimport { configureLogging } from './logging'\r\nimport { i18n } from \"@appbase/util\"\r\n\r\nVue.use(Vuex);\r\n\r\n// initial state\r\nconst state: RootState = {\r\n showSidebar: false,\r\n currentMenu: '홈',\r\n loading: false,\r\n page: {\r\n current: Object.create(null),\r\n },\r\n currentPage: Object.create(null)\r\n};\r\n\r\nexport default configureLogging(\r\n new Vuex.Store({\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n modules: {\r\n $account: storeAccount,\r\n $orgmap: storeOrgmap,\r\n $appbase: moduleAppbase,\r\n $mail: storeMail,\r\n $calendar: storeCalendar,\r\n $contact: storeContact,\r\n $workflow: storeWorkflow,\r\n $board: storeBoard,\r\n $gnb: storeGnb,\r\n },\r\n })\r\n )","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.classNames,attrs:{\"id\":\"common-wrapper\"}},[_c('ModalContainer'),_c('ModalContainer2'),_c('router-view'),_c('iframe',{staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"iframe_logout\",\"src\":\"\"},on:{\"load\":_vm.logoutLoad}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.modal)?_c(_vm.modal.component,{tag:\"component\",attrs:{\"value\":_vm.modal.value}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { mapGetters } from 'vuex'\r\nimport * as types from '../../store/types'\r\n\r\n@Component({\r\n computed: {\r\n ...mapGetters({\r\n modal: types.MODAL_CURRENT,\r\n }),\r\n },\r\n})\r\nexport default class BaseLayout extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n modal!: appbase.TModalInfo | null\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalContainer.vue?vue&type=template&id=7a45aa8c&\"\nimport script from \"./ModalContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.modal && _vm.modal.open)?_c('div',[(_vm.modal.type === 'move-attachment')?_c('EmailAttachmentModal',{attrs:{\"items\":_vm.modal.item}}):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"em-modal-wrap\"},[_c('PopupModal',{attrs:{\"wValue\":'550px',\"show\":true,\"busy\":_vm.loading},on:{\"close\":_vm.close},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('div',{staticClass:\"header\"},_vm._l((_vm.navigationList),function(navi,index){return _c('span',{key:index},[(index > 0)?_c('span',[_vm._v(\" > \")]):_vm._e(),_c('a',{on:{\"click\":function($event){return _vm.naviationClick(navi, index)}}},[_vm._v(_vm._s(navi.name)+\" \")])])}),0),_c('GraphList',{attrs:{\"selectItem\":_vm.selectItem,\"highlightId\":_vm.highlightId,\"type\":_vm.items},on:{\"downloadUrl\":function($event){return _vm.$emit('downloadUrl')},\"navigation\":_vm.navigation,\"select\":_vm.select,\"isloading\":_vm._isloading}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ToolbarButton',{attrs:{\"primary\":true,\"text\":_vm.$t('W_Mail_Confirm')},on:{\"click\":_vm.ok}}),_c('ToolbarButton',{attrs:{\"text\":_vm.$t('W_Mail_Cancel')},on:{\"click\":_vm.cancel}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"btn-group\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class ButtonGroup extends Vue {}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ButtonGroup.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ButtonGroup.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ButtonGroup.vue?vue&type=template&id=ee3cb328&\"\nimport script from \"./ButtonGroup.ts?vue&type=script&lang=ts&\"\nexport * from \"./ButtonGroup.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"em-btn\",class:{ primary: _vm.primary, selected: _vm.selected },on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('click', $event)}}},[_vm._v(\" \"+_vm._s(_vm.text)+\" \"),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n@Component\r\nexport default class ToolbarButton extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * Text to display on the button\r\n */\r\n @Prop({ type: String, default: '' }) text!: string;\r\n\r\n /**\r\n * 등록, 저장 등의 버튼등에서 강조\r\n */\r\n @Prop({ type: Boolean, default: false }) primary!: boolean;\r\n\r\n /**\r\n * 강조가 아닌 버튼의 선택을 나타냄\r\n */\r\n @Prop({ type: Boolean, default: false }) selected!: boolean;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ToolbarButton.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ToolbarButton.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ToolbarButton.vue?vue&type=template&id=2ce1f04e&\"\nimport script from \"./ToolbarButton.ts?vue&type=script&lang=ts&\"\nexport * from \"./ToolbarButton.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.show)?_c('div',{staticClass:\"modal-mask\",class:{ 'on': _vm.show }},[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Prop, Component } from 'vue-property-decorator';\r\n@Component\r\nexport default class ModalMask extends Vue {\r\n @Prop({ type: Boolean, default: false }) show!: boolean;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalMask.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalMask.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalMask.vue?vue&type=template&id=75be0377&\"\nimport script from \"./ModalMask.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalMask.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"em-box-modal center\"},[_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Prop, Component } from 'vue-property-decorator';\r\n@Component\r\nexport default class Modal extends Vue {\r\n @Prop({ type: Boolean, default: false }) show!: boolean;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Modal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Modal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=528661f8&\"\nimport script from \"./Modal.ts?vue&type=script&lang=ts&\"\nexport * from \"./Modal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n@Component\r\nexport default class ModalBody extends Vue {}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalBody.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalBody.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalBody.vue?vue&type=template&id=54fbde02&\"\nimport script from \"./ModalBody.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalBody.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bottom\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n@Component\r\nexport default class ModalFooter extends Vue {}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalFooter.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalFooter.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalFooter.vue?vue&type=template&id=7ecaa09c&\"\nimport script from \"./ModalFooter.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalFooter.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\",class:{ 'explanation': _vm.explanation},on:{\"mousedown\":_vm.mousemove}},[_c('h4',[_vm._v(\" \"+_vm._s(_vm.header)+\" \"),(_vm.description)?_c('span',[_vm._v(_vm._s(_vm.description))]):_vm._e()]),_c('a',{staticClass:\"closer\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('span',{staticClass:\"icon-em-close\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Prop, Component } from 'vue-property-decorator';\r\n@Component\r\nexport default class ModalHeader extends Vue {\r\n @Prop({ type: String, default: '' }) header!: string;\r\n @Prop({ type: String }) description!: string;\r\n @Prop({ type: Boolean }) explanation!: boolean;\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mousemove($event: MouseEvent) {\r\n $event.preventDefault();\r\n this.$emit('mousedown', $event);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalHeader.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalHeader.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalHeader.vue?vue&type=template&id=5a1ad246&\"\nimport script from \"./ModalHeader.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalHeader.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"txt-tooltip eum-tooltip-wrapper\",style:({ visibility: 'hidden' }),attrs:{\"id\":\"sidebarTooltip\"}},[_c('p',{attrs:{\"id\":\"name\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n\r\n})\r\nexport default class Tooltip extends Vue {\r\n \r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Tooltip.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Tooltip.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tooltip.vue?vue&type=template&id=2cfb63c0&\"\nimport script from \"./Tooltip.ts?vue&type=script&lang=ts&\"\nexport * from \"./Tooltip.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.busy),expression:\"busy\"}],staticClass:\"lds-wrap\"},[_c('div',{staticClass:\"lds-roller\"},[_c('div'),_c('div'),_c('div'),_c('div'),_c('div'),_c('div'),_c('div'),_c('div')])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Watch, Prop, PropSync } from 'vue-property-decorator';\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex';\r\n\r\n//components\r\n// import ComponentName from './ComponentName.vue';\r\n\r\n@Component({\r\n components: { \r\n },\r\n computed:{\r\n ...mapGetters({\r\n\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n\r\n }),\r\n ...mapMutations({\r\n\r\n })\r\n }, \r\n})\r\nexport default class ProgressRing extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n \r\n @Prop({type: Boolean, default: false }) busy !: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: S E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y L E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n\r\n }\r\n\r\n created() {\r\n\r\n }\r\n} ","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProgressRing.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProgressRing.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProgressRing.vue?vue&type=template&id=5ac4af60&scoped=true&\"\nimport script from \"./ProgressRing.ts?vue&type=script&lang=ts&\"\nexport * from \"./ProgressRing.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ProgressRing.vue?vue&type=style&index=0&id=5ac4af60&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ac4af60\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"em-dropdown responsive\",class:{ on: _vm.open }},[_c('a',{staticClass:\"em-btn\",on:{\"click\":function($event){_vm.open = !_vm.open}}},[_vm._t(\"name\"),(_vm.arrow)?_c('span',{staticClass:\"icon-em-arrow-down-small\"}):_vm._e()],2),_c('div',{staticClass:\"dropdown-content\",on:{\"click\":function($event){return _vm.dropdown($event)}}},[_vm._t(\"contents\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name: 'DropDown'\r\n})\r\nexport default class DropDown extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: true }) arrow!: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n open: boolean = false;\r\n\r\n dropdown(event: MouseEvent) {\r\n if (event.ctrlKey) {\r\n this.open = true;\r\n } else {\r\n this.open = !this.open;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DropDown.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DropDown.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDown.vue?vue&type=template&id=5215146c&\"\nimport script from \"./DropDown.ts?vue&type=script&lang=ts&\"\nexport * from \"./DropDown.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"em-dropdown\"},[_c('a',{staticClass:\"em-btn\"},[_c('span',{staticClass:\"drop-label\"},[_vm._v(_vm._s(_vm.label))]),(_vm.label2)?_c('span',{staticClass:\"drop-data\"},[_vm._v(_vm._s(_vm.label2))]):_vm._e(),_c('span',{staticClass:\"icon-em-arrow-down-small\"})]),_c('div',{staticClass:\"dropdown-content\"},[_vm._t(\"content\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n\r\n})\r\nexport default class DropDownButton extends Vue {\r\n \r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String }) label!: string;\r\n @Prop({ type: String }) label2!: string;\r\n \r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DropDownButton.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DropDownButton.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownButton.vue?vue&type=template&id=1d85fa28&\"\nimport script from \"./DropDownButton.ts?vue&type=script&lang=ts&\"\nexport * from \"./DropDownButton.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pagination-wrap list-paginate\"},[_c('div',{staticClass:\"pagination\"},[_c('a',{class:['prev', 'arrow', { 'disable': _vm.isFirstPage }],on:{\"click\":_vm.moveToPrev}},[_c('i',{staticClass:\"icon-pagination-prev\"})]),_c('Paginate',{attrs:{\"value\":_vm.value,\"prevClass\":'pagination-prevnext',\"nextClass\":'pagination-prevnext',\"pageCount\":_vm.totalPageCount,\"page-range\":_vm.range,\"pageLinkClass\":'page-link'},on:{\"input\":function (value) { return _vm.$emit('input', value); }}}),_c('a',{class:['next', 'arrow', { 'disable': _vm.isLastPage }],on:{\"click\":_vm.moveToNext}},[_c('i',{staticClass:\"icon-pagination-next\"})])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.noLiSurround)?_c('ul',{class:_vm.containerClass},[(_vm.firstLastButton)?_c('li',{class:[_vm.pageClass, _vm.firstPageSelected() ? _vm.disabledClass : '']},[_c('a',{class:_vm.pageLinkClass,attrs:{\"tabindex\":_vm.firstPageSelected() ? -1 : 0},domProps:{\"innerHTML\":_vm._s(_vm.firstButtonText)},on:{\"click\":function($event){return _vm.selectFirstPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.selectFirstPage()}}})]):_vm._e(),(!(_vm.firstPageSelected() && _vm.hidePrevNext))?_c('li',{class:[_vm.prevClass, _vm.firstPageSelected() ? _vm.disabledClass : '']},[_c('a',{class:_vm.prevLinkClass,attrs:{\"tabindex\":_vm.firstPageSelected() ? -1 : 0},domProps:{\"innerHTML\":_vm._s(_vm.prevText)},on:{\"click\":function($event){return _vm.prevPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.prevPage()}}})]):_vm._e(),_vm._l((_vm.pages),function(page){return _c('li',{class:[_vm.pageClass, page.selected ? _vm.activeClass : '', page.disabled ? _vm.disabledClass : '', page.breakView ? _vm.breakViewClass: '']},[(page.breakView)?_c('a',{class:[_vm.pageLinkClass, _vm.breakViewLinkClass],attrs:{\"tabindex\":\"0\"}},[_vm._t(\"breakViewContent\",function(){return [_vm._v(_vm._s(_vm.breakViewText))]})],2):(page.disabled)?_c('a',{class:_vm.pageLinkClass,attrs:{\"tabindex\":\"0\"}},[_vm._v(_vm._s(page.content))]):_c('a',{class:_vm.pageLinkClass,attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handlePageSelected(page.index + 1)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handlePageSelected(page.index + 1)}}},[_vm._v(_vm._s(page.content))])])}),(!(_vm.lastPageSelected() && _vm.hidePrevNext))?_c('li',{class:[_vm.nextClass, _vm.lastPageSelected() ? _vm.disabledClass : '']},[_c('a',{class:_vm.nextLinkClass,attrs:{\"tabindex\":_vm.lastPageSelected() ? -1 : 0},domProps:{\"innerHTML\":_vm._s(_vm.nextText)},on:{\"click\":function($event){return _vm.nextPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.nextPage()}}})]):_vm._e(),(_vm.firstLastButton)?_c('li',{class:[_vm.pageClass, _vm.lastPageSelected() ? _vm.disabledClass : '']},[_c('a',{class:_vm.pageLinkClass,attrs:{\"tabindex\":_vm.lastPageSelected() ? -1 : 0},domProps:{\"innerHTML\":_vm._s(_vm.lastButtonText)},on:{\"click\":function($event){return _vm.selectLastPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.selectLastPage()}}})]):_vm._e()],2):_c('div',{class:_vm.pagination},[(_vm.firstLastButton)?_c('a',{class:[_vm.pageLinkClass, _vm.firstPageSelected() ? _vm.disabledClass : ''],attrs:{\"tabindex\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.firstButtonText)},on:{\"click\":function($event){return _vm.selectFirstPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.selectFirstPage()}}}):_vm._e(),(!(_vm.firstPageSelected() && _vm.hidePrevNext))?_c('a',{class:[_vm.prevLinkClass, _vm.firstPageSelected() ? _vm.disabledClass : ''],attrs:{\"tabindex\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.prevText)},on:{\"click\":function($event){return _vm.prevPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.prevPage()}}}):_vm._e(),_vm._l((_vm.pages),function(page){return [(page.breakView)?_c('a',{class:[_vm.pageLinkClass, _vm.breakViewLinkClass, page.disabled ? _vm.disabledClass : ''],attrs:{\"tabindex\":\"0\"}},[_vm._t(\"breakViewContent\",function(){return [_vm._v(_vm._s(_vm.breakViewText))]})],2):(page.disabled)?_c('a',{class:[_vm.pageLinkClass, page.selected ? _vm.activeClass : '', _vm.disabledClass],attrs:{\"tabindex\":\"0\"}},[_vm._v(_vm._s(page.content))]):_c('a',{class:[_vm.pageLinkClass, page.selected ? _vm.activeClass : ''],attrs:{\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.handlePageSelected(page.index + 1)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.handlePageSelected(page.index + 1)}}},[_vm._v(_vm._s(page.content))])]}),(!(_vm.lastPageSelected() && _vm.hidePrevNext))?_c('a',{class:[_vm.nextLinkClass, _vm.lastPageSelected() ? _vm.disabledClass : ''],attrs:{\"tabindex\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.nextText)},on:{\"click\":function($event){return _vm.nextPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.nextPage()}}}):_vm._e(),(_vm.firstLastButton)?_c('a',{class:[_vm.pageLinkClass, _vm.lastPageSelected() ? _vm.disabledClass : ''],attrs:{\"tabindex\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.lastButtonText)},on:{\"click\":function($event){return _vm.selectLastPage()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.selectLastPage()}}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Paginate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Paginate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Paginate.vue?vue&type=template&id=4c8f510d&scoped=true&\"\nimport script from \"./Paginate.vue?vue&type=script&lang=js&\"\nexport * from \"./Paginate.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Paginate.vue?vue&type=style&index=0&id=4c8f510d&lang=css&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c8f510d\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport Paginate from './Paginate.vue'\r\n\r\n@Component({\r\n components: { Paginate }\r\n})\r\nexport default class PageNavigationBar extends Vue {\r\n //\r\n // props\r\n //\r\n\r\n // page number of page\r\n @Prop({ type: Number, default: 0 }) value!: number;\r\n // total count\r\n @Prop({ type: Number, default: 0 }) total!: number;\r\n // page size\r\n @Prop({ type: Number, default: 20 }) size!: number;\r\n // range\r\n @Prop({ type: Number, default: 5 }) range!: number;\r\n\r\n //\r\n // computed\r\n //\r\n\r\n get currentPage() {\r\n return this.value;\r\n }\r\n\r\n get lastPage() {\r\n return this.totalPageCount;\r\n }\r\n\r\n get totalPageCount() {\r\n return Math.ceil(this.total / this.size);\r\n }\r\n\r\n get isFirstPage() {\r\n return this.currentPage == 1;\r\n }\r\n\r\n get isLastPage() {\r\n return this.currentPage == this.totalPageCount;\r\n }\r\n\r\n //\r\n // methods\r\n //\r\n\r\n moveByNumber(idxTo: number) {\r\n this.$emit('input', idxTo);\r\n }\r\n\r\n moveToFirst() {\r\n this.moveByNumber(1);\r\n }\r\n\r\n moveToLast() {\r\n this.moveByNumber(this.lastPage);\r\n }\r\n\r\n moveToNext() {\r\n this.moveByNumber(this.calcNextPageNumber(1));\r\n }\r\n\r\n moveToPrev() {\r\n this.moveByNumber(this.calcPrevPageNumber(1));\r\n }\r\n\r\n moveToNextRange() {\r\n this.moveByNumber(this.calcNextPageNumber(this.range));\r\n }\r\n\r\n moveToPrevRange() {\r\n this.moveByNumber(this.calcPrevPageNumber(this.range));\r\n }\r\n\r\n calcNextPageNumber(range: number) {\r\n let idxTo = this.value + range > this.lastPage ? this.value : this.value + range;\r\n return idxTo;\r\n }\r\n\r\n calcPrevPageNumber(range: number) {\r\n let idxTo = this.value - range < 1 ? this.value : this.value - range;\r\n return idxTo;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PageNavigationBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PageNavigationBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageNavigationBar.vue?vue&type=template&id=6088f24a&\"\nimport script from \"./PageNavigationBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./PageNavigationBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('select',{domProps:{\"value\":_vm.value},on:{\"input\":function ($event) { return _vm.$emit('input', $event.target.value); }}},_vm._l((_vm.items),function(option){return _c('option',{key:option[_vm.valueField],domProps:{\"value\":option[_vm.valueField]}},[_vm._v(\" \"+_vm._s(option[_vm.nameField])+\" \")])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n// components\r\n@Component({\r\n components: {}\r\n})\r\nexport default class ComboBox extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String, default: 'name' }) nameField!: string;\r\n @Prop({ type: String, default: 'value' }) valueField!: string;\r\n @Prop({ type: String }) text!: string;\r\n @Prop({ type: String }) value!: string;\r\n @Prop({ type: Array }) items!: any[];\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ComboBox.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ComboBox.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ComboBox.vue?vue&type=template&id=51197e46&\"\nimport script from \"./ComboBox.ts?vue&type=script&lang=ts&\"\nexport * from \"./ComboBox.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"eum-tree-item\",class:{ selected: _vm.isSelected }},[(_vm.hasChildren())?_c('span',{on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('i',{class:[\n _vm.expanded\n ? 'icon-em-arrow-up-small'\n : 'icon-em-arrow-down-small' ]})]):_vm._e(),(_vm.item[_vm.headerField])?_c('div',{staticClass:\"header\",on:{\"click\":function($event){$event.preventDefault();return _vm.select.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.item[_vm.headerField])+\" \")]):_vm._e(),(_vm.expanded)?_c('ul',{staticClass:\"eum-tree-list\"},_vm._l((_vm.item.children),function(child){return _c('TreeListItem',{key:child.key,attrs:{\"item\":child,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"select\":function (targetItem) { return _vm.$emit('select', targetItem); },\"expand\":function (targetItem) { return _vm.$emit('expand', targetItem); }}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name: 'TreeListItem',\r\n})\r\nexport default class TreeListItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: orgmap.TreeListItem;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n expanded: boolean = false;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get isSelected() {\r\n const selected = this.item.selected;\r\n if (typeof selected === 'boolean') {\r\n return selected;\r\n } else if (typeof selected === 'function') {\r\n return selected(this.item);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('expanded')\r\n onExpnded(newValue: boolean): void {\r\n if (newValue != undefined && newValue === true) {\r\n this.$emit('expand', this.item);\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select() {\r\n this.$emit('select', this.item);\r\n }\r\n\r\n hasChildren(): boolean {\r\n if (typeof this.hasChildrenField === 'string') {\r\n return (this.item as any)[this.hasChildrenField];\r\n } else {\r\n return this.hasChildrenField(this.item);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeListItem.vue?vue&type=template&id=5fb01446&\"\nimport script from \"./TreeListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./TreeListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModalMask',{attrs:{\"show\":_vm.show}},[_c('Modal',{ref:\"draggableContainer\",style:({width: _vm.wValue, height: _vm.hValue}),attrs:{\"show\":true}},[_c('ProgressRing',{attrs:{\"busy\":_vm.busy}}),_c('ModalHeader',{attrs:{\"header\":_vm.header,\"description\":_vm.description,\"explanation\":true},on:{\"close\":function($event){return _vm.$emit('close')},\"mousedown\":_vm.dragMouseDown}}),_c('ModalBody',[_vm._t(\"body\")],2),_c('ModalFooter',[_vm._t(\"footer\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n// components\r\nimport {\r\n ModalMask,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n ProgressRing,\r\n} from '../atom';\r\n\r\ntype DragablePosition = {\r\n clientX: number;\r\n clientY: number;\r\n movementX: number;\r\n movementY: number;\r\n};\r\n\r\n@Component({\r\n components: {\r\n ModalMask,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n ProgressRing,\r\n },\r\n})\r\nexport default class PopupModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean;\r\n @Prop({ type: Boolean, default: false }) busy!: boolean;\r\n @Prop({ type: String, default: '' }) header!: string;\r\n @Prop({ type: String }) description!: string;\r\n @Prop({ type: String, default: 'auto' }) wValue!: string;\r\n @Prop({ type: String, default: 'auto' }) hValue!: string;\r\n \r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n positions: DragablePosition = {\r\n clientX: 0,\r\n clientY: 0,\r\n movementX: 0,\r\n movementY: 0,\r\n };\r\n\r\n positionStyle: any = {};\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n dragMouseDown(event: MouseEvent) {\r\n event.preventDefault();\r\n // get the mouse cursor position at startup:\r\n this.positions.clientX = event.clientX;\r\n this.positions.clientY = event.clientY;\r\n document.onmousemove = this.elementDrag;\r\n document.onmouseup = this.closeDragElement;\r\n }\r\n\r\n elementDrag(event: MouseEvent) {\r\n event.preventDefault();\r\n this.positions.movementX = this.positions.clientX - event.clientX;\r\n this.positions.movementY = this.positions.clientY - event.clientY;\r\n this.positions.clientX = event.clientX;\r\n this.positions.clientY = event.clientY;\r\n // set the element's new position:\r\n // this.$refs.draggableContainer.style.top =\r\n // this.$refs.draggableContainer.offsetTop -\r\n // this.positions.movementY +\r\n // 'px';\r\n // this.$refs.draggableContainer.style.left =\r\n // this.$refs.draggableContainer.offsetLeft -\r\n // this.positions.movementX +\r\n // 'px';\r\n }\r\n\r\n closeDragElement() {\r\n document.onmouseup = null;\r\n document.onmousemove = null;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PopupModal.vue?vue&type=template&id=efb98016&\"\nimport script from \"./PopupModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./PopupModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"org-tree\"},[(_vm.items.length > 0)?_c('ul',{staticClass:\"eum-tree-list\"},_vm._l((_vm.items),function(item){return _c('TreeListItem',{key:item.id,attrs:{\"item\":item,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"select\":function (child) { return _vm.$emit('select', child); },\"expand\":function (item) { return _vm.$emit('expand', item); }}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n// components\r\nimport { TreeListItem } from '../atom';\r\n\r\n@Component({\r\n components: { TreeListItem },\r\n})\r\nexport default class TreeList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) items!: orgmap.TreeListItem;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeList.vue?vue&type=template&id=53dc79ab&\"\nimport script from \"./TreeList.ts?vue&type=script&lang=ts&\"\nexport * from \"./TreeList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"org-tree org-tree_graph\"},[_c('ul',{staticClass:\"eum-tree-list\"},[_vm._l((_vm.list),function(item,idx){return _c('li',{key:idx,staticClass:\"eum-tree-item\"},[_c('div',{class:['header', { 'highlight': _vm.highlightId.indexOf(item.id) !== -1 }],on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('select', item)}}},[_c('img',{staticClass:\"msIcon\",attrs:{\"src\":_vm.imgUrl(item)}}),_vm._v(_vm._s(item.name ? item.name : item.Name)+\" \")])])}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length == 0),expression:\"list.length == 0\"}],staticClass:\"no-data\"},[_c('img',{staticClass:\"m-b-l\",attrs:{\"src\":\"/cm/gres/faux/images/no_data.png\"}}),_c('span',{staticClass:\"ft-gray\"},[_vm._v(_vm._s(_vm.$t('M_Common_NoData')))])])],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import api from '@appbase/api';\r\nimport Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\n// components\r\nimport { mapGetters, mapMutations } from 'vuex';\r\nimport * as accountTypes from '@account/store/types';\r\nimport * as types from '@appbase/store/types';\r\n\r\n@Component({\r\n name: 'GraphList',\r\n components: { },\r\n methods: {\r\n ...mapMutations({\r\n selectedAttachment: types.SELECT_ATTACHMENT\r\n })\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n }),\r\n },\r\n})\r\nexport default class GraphList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n // @Prop({ type: String }) o365GuId!: string;\r\n @Prop({ type: String }) selectedId!: string;\r\n @Prop({ type: Object }) selectItem!: any;\r\n @Prop({ type: Array }) highlightId!: any[];\r\n @Prop({ type: String }) type!: string;\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedAttachment!: (item:any) => void;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n item: basemail.graphOption = {\r\n o365GuId: '',\r\n teamsId: '',\r\n channelId: '',\r\n driveId:'',\r\n itemId: '',\r\n groupId: '',\r\n order: 0\r\n }\r\n user!: User;\r\n //items: any = [];\r\n icon: string = ''\r\n expanded: boolean = false\r\n list: any = []\r\n //highlightId: string = '';\r\n //highlightId: any = [];\r\n isLoading: boolean = false;\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('selectItem')\r\n onChangedSelectItem(){\r\n // console.log(\"test2test2test2test2test2\", this.selectItem);\r\n // console.log(\"test3test3test3test3test3\", this.item);\r\n switch(this.type){\r\n case 'Teams':\r\n // if(this.selectItem){\r\n // api.attachment.getchannelsList(this.selectItem).then((res)=>{\r\n // this.list = JSON.parse(res);\r\n // })\r\n // }\r\n //console.log(\"this.selectItem.order\", this.selectItem.order);\r\n switch(this.selectItem.order){\r\n case 1 : \r\n this.item.order = 1\r\n api.attachment.getTeamsLists(this.item).then((res:any)=>{\r\n //console.log(\"this.itemthis.itemthis.itemthis.item11\", this.item);\r\n this.list = JSON.parse(res.replaceAll('displayName','name'))\r\n this.list.forEach((i:any) =>{\r\n this.$set(i, 'order', this.item.order)\r\n })\r\n this.$emit(\"isloading\", false)\r\n })\r\n break;\r\n case 2 : \r\n this.item.order = 2\r\n this.item.teamsId = this.selectItem.id\r\n api.attachment.getTeamsChannelsList(this.item).then((res)=>{\r\n //this.list = JSON.parse(res.replaceAll('displayName','name'));\r\n this.list = res\r\n this.list.forEach((i:any) =>{\r\n this.$set(i, 'order', this.item.order)\r\n })\r\n this.$emit(\"isloading\", false)\r\n })\r\n break;\r\n case 3 : \r\n this.item.order = 3\r\n this.item.teamsId = this.selectItem.teamsId\r\n this.item.channelId = this.selectItem.id\r\n api.attachment.getChannelsDetail(this.item).then((res)=>{\r\n var plist = JSON.parse(res);\r\n if(plist != ''){\r\n this.item.driveId = plist.parentReference.driveId\r\n this.item.itemId = plist.id\r\n api.attachment.getoneDriveItemsChildren(this.item).then((reschild)=>{\r\n this.list = JSON.parse(reschild);\r\n this.list.forEach((i:any) =>{\r\n this.$set(i, 'order', this.item.order)\r\n })\r\n this.$emit(\"isloading\", false)\r\n //console.log(\"this.listlist2222\", this.list);\r\n })\r\n }\r\n\r\n // this.list = JSON.parse(res.replaceAll('displayName','name'));\r\n // this.list.forEach((i:any) =>{\r\n // this.$set(i, 'order', this.item.order)\r\n // })\r\n //this.$emit(\"isloading\", false)\r\n //console.log(\"listlistlist33333\", this.list);\r\n })\r\n break;\r\n default : \r\n this.item.driveId = this.selectItem.parentReference.driveId\r\n this.item.itemId = this.selectItem.id\r\n api.attachment.getoneDriveItemsChildren(this.item).then((res)=>{\r\n this.list = JSON.parse(res);\r\n this.$emit(\"isloading\", false)\r\n })\r\n break;\r\n }\r\n break;\r\n case 'OneDrive':\r\n if(this.selectItem.id == ''){\r\n api.attachment.getoneDriveList(this.item).then((res)=>{\r\n this.list = JSON.parse(res)\r\n this.$emit(\"isloading\", false)\r\n })\r\n }else{\r\n this.item.driveId = this.selectItem.id;\r\n api.attachment.getoneDriveListChildren(this.item).then((res)=>{\r\n this.list = JSON.parse(res);\r\n this.$emit(\"isloading\", false)\r\n })\r\n }\r\n break;\r\n }\r\n }\r\n\r\n @Watch('selectedId')\r\n onChangedSelectedId(){\r\n // this.item.o365GuId = this.user.o365Guid;\r\n // if(this.selectedId === 'default'){\r\n // api.attachment.getoneDriveList(this.item).then((res)=>{\r\n // this.list = JSON.parse(res)\r\n // })\r\n // }else{\r\n // console.log(\"test1\");\r\n // this.item.driveId = this.selectedId;\r\n // api.attachment.getoneDriveListChildren(this.item).then((res)=>{\r\n // this.list = JSON.parse(res);\r\n // })\r\n // }\r\n\r\n //console.log(\"this.item.orderthis.item.order\", this.item);\r\n\r\n switch(this.type){\r\n case 'Teams':\r\n this.item.teamsId = this.selectedId;\r\n switch(this.item.order){\r\n case 1 : \r\n this.item.order = 1\r\n api.attachment.getTeamsLists(this.item).then((res:any)=>{\r\n //console.log(\"this.itemthis.itemthis.itemthis.item11\", this.item);\r\n this.list = JSON.parse(res.replaceAll('displayName','name'))\r\n })\r\n break;\r\n case 2 : \r\n this.item.order = 2\r\n api.attachment.getTeamsChannelsList(this.item).then((res)=>{\r\n //this.list = JSON.parse(res.replaceAll('displayName','name'));\r\n this.list = res\r\n this.list.forEach((i:any) =>{\r\n this.$set(i, 'order', this.item.order)\r\n })\r\n })\r\n break;\r\n case 3 : \r\n this.item.order = 3\r\n api.attachment.getChannelsDetail(this.item).then((res)=>{\r\n\r\n if(res != ''){\r\n api.attachment.getoneDriveItemsChildren(this.item).then((res)=>{\r\n this.list = JSON.parse(res.replaceAll('displayName','name'));\r\n this.list.forEach((i:any) =>{\r\n this.$set(i, 'order', this.item.order)\r\n })\r\n //console.log(\"this.listlist2222\", this.list);\r\n })\r\n }\r\n\r\n // this.list = JSON.parse(res.replaceAll('displayName','name'));\r\n // this.list.forEach((i:any) =>{\r\n // this.$set(i, 'order', this.item.order)\r\n // })\r\n //console.log(\"this.listlist3333\", this.list);\r\n })\r\n break;\r\n default : \r\n api.attachment.getoneDriveItemsChildren(this.item).then((res)=>{\r\n this.list = JSON.parse(res);\r\n })\r\n break;\r\n }\r\n break;\r\n case 'OneDrive':\r\n if(this.selectedId === ''){\r\n api.attachment.getoneDriveList(this.item).then((res)=>{\r\n this.list = JSON.parse(res)\r\n })\r\n }else{\r\n this.item.driveId = this.selectedId;\r\n api.attachment.getoneDriveListChildren(this.item).then((res)=>{\r\n this.list = JSON.parse(res);\r\n })\r\n }\r\n break;\r\n }\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // select(item:any){\r\n // let idx = this.highlightId.indexOf(item.id);\r\n // if (idx !== -1) {\r\n // this.highlightId.splice(idx, 1);\r\n // } else {\r\n // this.highlightId.push(item.id);\r\n // }\r\n\r\n // console.log(\"itemitemitemitem\", item);\r\n // this.$emit('selectItem', item);\r\n // if(item.folder){\r\n // this.high$emitlightId = [];\r\n // this.('navigation',{id:item.id, name:item.name})\r\n // this.item.driveId = item.id;\r\n // this.item.itemId = item.id;\r\n // api.attachment.getoneDriveListChildren(this.item).then((res)=>{\r\n // this.list = JSON.parse(res);\r\n // })\r\n // }\r\n // if(item.File){\r\n // this.selectedAttachment(item);\r\n // }\r\n // }\r\n\r\n\r\n imgUrl(item:any){\r\n if(this.type == 'Teams'){\r\n //Teams인 경우\r\n switch(this.item.order){\r\n case 1 : \r\n return \"/cm/gres/faux/images/teams.svg\" //최초 Teams 불러온경우 Teams 아이콘 표시\r\n case 2 : \r\n return \"/cm/gres/faux/images/Extension/ico_folder_close.gif\"\r\n }\r\n }\r\n \r\n if(item.folder?item.folder:item.Folder){\r\n return \"/cm/gres/faux/images/Extension/ico_folder_close.gif\";\r\n }else if(item.file?item.file:item.File){\r\n //let extension = item.name?item.name.split('.')[1]:item.Name.split('.')[1].toLowerCase();\r\n let extension = item.name.substring(item.name.lastIndexOf(\".\")).split('.')[1].toLowerCase();\r\n switch(extension){\r\n case 'ppt': \r\n case 'pptx': \r\n return \"/cm/gres/faux/images/Extension/ico-ppt.png\"\r\n case 'xls':\r\n case 'xlsx':\r\n return \"/cm/gres/faux/images/Extension/ico-xls.png\" \r\n case 'doc':\r\n case 'docx':\r\n return \"/cm/gres/faux/images/Extension/ico-doc.png\"\r\n case 'dng':\r\n return \"/cm/gres/faux/images/Extension/ico-dng.png\"\r\n case 'dwg':\r\n return \"/cm/gres/faux/images/Extension/ico-dwg.png\"\r\n case 'hwp':\r\n return \"/cm/gres/faux/images/Extension/ico-hwp.png\"\r\n case 'mpp':\r\n return \"/cm/gres/faux/images/Extension/ico-mpp.png\"\r\n case 'pdf':\r\n return \"/cm/gres/faux/images/Extension/ico-pdf.png\"\r\n case 'psd':\r\n return \"/cm/gres/faux/images/Extension/ico-psd.png\"\r\n case 'pub':\r\n return \"/cm/gres/faux/images/Extension/ico-pub.png\"\r\n case 'txt':\r\n return \"/cm/gres/faux/images/Extension/ico-txt.png\"\r\n case 'vdw':\r\n return \"/cm/gres/faux/images/Extension/ico-vdw.png\"\r\n case 'video':\r\n return \"/cm/gres/faux/images/Extension/ico-video.png\"\r\n case 'xps':\r\n return \"/cm/gres/faux/images/Extension/ico-xps.png\" \r\n case 'zip':\r\n return \"/cm/gres/faux/images/Extension/ico-zip.png\"\r\n case 'jpg':\r\n return \"/cm/gres/faux/images/Extension/ico-img.png\"\r\n case 'bmp':\r\n return \"/cm/gres/faux/images/Extension/ico-img.png\"\r\n case 'png':\r\n return \"/cm/gres/faux/images/Extension/ico-img.png\"\r\n case 'tif':\r\n return \"/cm/gres/faux/images/Extension/ico-img.png\"\r\n case 'gif':\r\n return \"/cm/gres/faux/images/Extension/ico-img.png\"\r\n default:\r\n return \"/cm/gres/faux/images/Extension/ico-nomal.png\"\r\n }\r\n }\r\n }\r\n\r\n created(){\r\n // this.$parent.parentMethod(true)\r\n //this.onChangedSelectedId();\r\n // this.item.o365GuId = this.user.o365Guid;\r\n // api.attachment.getoneDriveList(this.item).then((res)=>{\r\n // this.list = JSON.parse(res)\r\n // // this.list.forEach((item:any)=>{\r\n // // if(item.folder){\r\n // // this.imgUrl = \"/cm/gres/faux/images/Extension/ico_folder_close.gif\";\r\n // // }else if(item.file){\r\n // // if(item.name.split('.')[1] === 'pptx'){\r\n // // this.imgUrl=\"/cm/gres/faux/images/Extension/ico-ppt.png\"\r\n // // } \r\n // // }\r\n // // })\r\n // // if(this.list && this.list.folder){\r\n // // this.imgUrl = \"/cm/gres/faux/images/Extension/ico_folder_close.gif\";\r\n // // }else if(this.list.{\r\n // // }\r\n // })\r\n // console.log(\"this.typethis.typethis.type\", this.type);\r\n // this.$emit('isLoading', true);\r\n this.item.o365GuId = this.user.o365Guid;\r\n switch(this.type){\r\n case 'Teams':\r\n this.item.order = 1\r\n api.attachment.getTeamsLists(this.item).then((res:any)=>{\r\n this.list = JSON.parse(res.replaceAll('displayName','name'))\r\n this.list.forEach((i:any) =>{\r\n this.$set(i, 'order', this.item.order)\r\n })\r\n this.$emit(\"isloading\", false)\r\n })\r\n break;\r\n case 'OneDrive':\r\n api.attachment.getoneDriveList(this.item).then((res:any)=>{\r\n this.list = JSON.parse(res)\r\n this.$emit(\"isloading\", false)\r\n })\r\n break;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GraphList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GraphList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GraphList.vue?vue&type=template&id=497dd5af&scoped=true&\"\nimport script from \"./GraphList.ts?vue&type=script&lang=ts&\"\nexport * from \"./GraphList.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./GraphList.vue?vue&type=style&index=0&id=497dd5af&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"497dd5af\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\nimport * as types from '@appbase/store/types';\r\n// components\r\nimport { ToolbarButton } from '@appbase/components/atom';\r\nimport { PopupModal } from '@appbase/components/molecule';\r\nimport GraphList from '../GraphList.vue';\r\nimport ProgressRing from '../../atom/ProgressRing.vue';\r\n\r\n@Component({\r\n components: { PopupModal, ToolbarButton, GraphList, ProgressRing },\r\n\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n\r\n methods: {\r\n ...mapActions({\r\n changeModal: types.MODAL_CHANGE,\r\n }),\r\n ...mapMutations({\r\n selectedAttachment: types.SELECT_ATTACHMENT\r\n })\r\n },\r\n})\r\nexport default class EmailAttachmentModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean }) show!: boolean;\r\n @Prop({ type: String }) items!: string;\r\n // @Prop({ type: Boolean }) _isloading!: boolean;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: User;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n changeModal!: (option: basemail.ModalOption | null) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedAttachment!: (item:any) => void;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedFolder: basemail.MailboxFolder | null = null;\r\n //loading: boolean = false;\r\n selectedId: string = '';\r\n selectItem: any = {};\r\n highlightId: any = [];\r\n loading: boolean = false\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // get isDeletedFolder() {\r\n // return this.node?.wellKnownFolderName === 'deleteditems';\r\n // }\r\n\r\n // get targetEmails() {\r\n // // 컨텍스트 데이터가 없을 경우 선택된 아이템을 대상으로\r\n // return this.items || this.selections;\r\n // }\r\n\r\n // get _isloading() {\r\n // return this.loading\r\n // }\r\n\r\n // set _isloading(value: boolean) {\r\n // console.log(\"valuevaluevalue\", value);\r\n // this.loading = value\r\n // }\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n item: basemail.graphOption = {\r\n o365GuId: '',\r\n teamsId: '',\r\n channelId: '',\r\n driveId:'',\r\n itemId: '',\r\n groupId: ''\r\n }\r\n\r\n selectedItem: any = [];\r\n oneDriveList:any = [];\r\n teamsList:any = [];\r\n // navigationList: any = [{\r\n // id:'default',\r\n // name:'OneDrive'\r\n // }];\r\n navigationList: any = [];\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n created() {\r\n this._isloading(true)\r\n //this.loading = true\r\n // this.item.o365GuId = this.user.o365Guid;\r\n this.navigation({id:'', name:this.items})\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n naviationClick(item:any, idx:number){\r\n this._isloading(true)\r\n this.selectedItem = []\r\n this.highlightId = []\r\n //this.selectedId = item.id\r\n this.navigationList.forEach((i:any, index: number) =>{\r\n if(index > idx){\r\n this.navigationList.splice(index)\r\n }\r\n })\r\n if(this.items == 'Teams'){\r\n item.order = idx + 1\r\n }\r\n this.selectItem = item; \r\n }\r\n\r\n navigation(item:any){\r\n this._isloading(true)\r\n this.selectedItem = []\r\n this.highlightId = []\r\n this.navigationList.push(item)\r\n //this.selectedItem = item;\r\n //this.selectedItem.push(item)\r\n //this.selectedId = item.id\r\n }\r\n\r\n select(item:any){\r\n //this._isloading(true)\r\n //최초 Teams 불러온경우 Teams Channel 가져오기\r\n // if(this.items == 'Teams' && this.selectedId == ''){\r\n // this.navigation({id:item.id, name:item.name})\r\n // this.item.teamsId = item.id;\r\n // this.item.itemId = item.id;\r\n // }\r\n var selectedItemYn = true\r\n if(this.items == 'Teams'){\r\n if(item.order == 1 || item.order == 2){\r\n this.$set(item, 'teamsId', this.navigationList[parseInt(item.order) - 1].id)\r\n this.navigation(item)\r\n selectedItemYn = false;\r\n this.selectItem = item; \r\n //console.log(\"this.selectItemthis.selectItem\", this.selectItem);\r\n }\r\n else{\r\n if(item.folder){\r\n this.navigation(item)\r\n selectedItemYn = false;\r\n this.selectItem = item; \r\n }\r\n }\r\n item.order = parseInt(item.order) + 1\r\n }\r\n else{\r\n if(item.folder){\r\n this.navigation(item)\r\n //this.item.driveId = item.id;\r\n //this.item.itemId = item.id;\r\n selectedItemYn = false;\r\n this.selectItem = item; \r\n }\r\n }\r\n\r\n if(selectedItemYn){\r\n let idx = this.highlightId.indexOf(item.id)\r\n\r\n if (idx !== -1) {\r\n this.highlightId.splice(idx, 1)\r\n this.selectedItem.splice(idx, 1)\r\n } else {\r\n this.highlightId.push(item.id)\r\n this.selectedItem.push(item)\r\n }\r\n }\r\n //this._isloading = false;\r\n }\r\n \r\n\r\n ok() {\r\n // for(var i=0; i< this.selectedItem.length; i++) {\r\n // var item = this.selectedItem[i];\r\n // if(!this.getDocumentIcon(item.name))\r\n // {\r\n // await(window as any).alertAsync(this.$t('MS_OFFICE_통합문서파일_PPTX_DOCX_XLSX_로_변환_후_신청_부탁_드립니다').toString());\r\n // return false\r\n // }\r\n // }\r\n\r\n this.selectedItem.forEach((i:any) =>{\r\n var blobt: any = null;\r\n fetch(i[\"@microsoft.graph.downloadUrl\"])\r\n .then(res => res.blob()) \r\n .then(blob => {\r\n const itemFile = new File([blob], i.name, {\r\n type: blob.type,\r\n });\r\n this.selectedAttachment(itemFile);\r\n });\r\n })\r\n\r\n this.close();\r\n }\r\n\r\n cancel() {\r\n this.close();\r\n }\r\n\r\n close() {\r\n this.changeModal(null);\r\n }\r\n\r\n getDocumentIcon(filename: string) {\r\n var extension = filename.split('.').pop()?.toLowerCase();\r\n var value = false;\r\n if (extension == \"docx\" || extension == \"pptx\" || extension == \"xlsx\"){\r\n value = true;\r\n }\r\n return value;\r\n }\r\n\r\n _isloading(value: boolean) {\r\n this.loading = value;\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./EmailAttachmentModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./EmailAttachmentModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmailAttachmentModal.vue?vue&type=template&id=8e5526be&scoped=true&\"\nimport script from \"./EmailAttachmentModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./EmailAttachmentModal.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./EmailAttachmentModal.vue?vue&type=style&index=0&id=8e5526be&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e5526be\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport * as types from '@appbase/store/types';\r\n// components\r\n\r\nimport EmailAttachmentModal from './EmailAttachmentModal.vue';\r\n\r\n@Component({\r\n components: {\r\n EmailAttachmentModal\r\n },\r\n\r\n computed: {\r\n ...mapGetters({\r\n modal: types.MODAL_CHANGE,\r\n }),\r\n },\r\n})\r\nexport default class ModalContainer2 extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n modal!: basemail.ModalOption;\r\n\r\n mounted() {\r\n\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalContainer2.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalContainer2.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalContainer2.vue?vue&type=template&id=9f8762bc&scoped=true&\"\nimport script from \"./ModalContainer2.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalContainer2.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f8762bc\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\n// components\r\nimport { ModalContainer } from '../../containers'\r\nimport { ModalContainer2 } from '../../components/organism/Modals'\r\n\r\n@Component({\r\n components: { ModalContainer, ModalContainer2 },\r\n})\r\nexport default class BaseLayout extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String }) classNames!: string\r\n\r\n logoutLoad() {\r\n let iframe = document.getElementById('iframe_logout') as HTMLIFrameElement\r\n if (iframe.src.indexOf('adfs') > -1)\r\n this.$router.push({ name: 'login' })\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./BaseLayout.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./BaseLayout.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseLayout.vue?vue&type=template&id=5c1ca7e7&\"\nimport script from \"./BaseLayout.ts?vue&type=script&lang=ts&\"\nexport * from \"./BaseLayout.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseLayout.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fux-popup\"},[_c('div',{attrs:{\"id\":\"pop-wrapper\"}},[_c('div',{staticClass:\"pop-header\",attrs:{\"id\":\"popHeaderTitle\"}},[_vm._v(\"팝업 레이아웃\")]),_c('div',{staticClass:\"pop-content bg-gray\"},[_vm._t(\"content\")],2),_c('div',{staticClass:\"pop-footer\"},[_vm._t(\"footer\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\n\r\n@Component\r\nexport default class PopupLayout extends Vue {}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupLayout.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupLayout.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PopupLayout.vue?vue&type=template&id=0c27cbbe&\"\nimport script from \"./PopupLayout.ts?vue&type=script&lang=ts&\"\nexport * from \"./PopupLayout.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./PopupLayout.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"wrapper\"}},[(_vm.modalFlag)?_c('IframeModal'):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"dvlayerPopup\"}},[_c('div',{staticClass:\"modal-flex\"},[_c('div',{staticClass:\"modal-flex-inner\"},[_c('div',{staticClass:\"modal-header\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',{staticClass:\"title\",attrs:{\"id\":\"dvlayerTitle\"}})]),_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"btn ico-btn ico-m\",attrs:{\"id\":\"btnModalClose\",\"onclick\":\"closeFrame();\"}},[_c('i',{staticClass:\"icon-fux-close\"})])])])]),_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-winpopup optional-modal-w-full optional-modal-h-full\"},[_c('iframe',{attrs:{\"id\":\"frmLayer\"}})])]),_c('div',{staticClass:\"modal-footer\"})])])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport 'jquery'\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\n\r\n@Component({\r\n name: 'IframeModal',\r\n components: { },\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n }),\r\n ...mapMutations({\r\n }),\r\n },\r\n})\r\nexport default class IframeModal extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n \r\n }\r\n\r\n created() {\r\n \r\n (window as any).isTeams = this.isTeams;\r\n (window as any)['showiFrameWindow'] = (newUrl: string, title?: string, style?: any) => {\r\n if(style.width){\r\n $('#dvlayerPopup .modal-size').css('width', style.width);\r\n $('#dvlayerPopup .optional-modal-w-full').removeClass('optional-modal-w-full');\r\n }\r\n\r\n (window as any).iframeClosed = false;\r\n $('#dvlayerPopup iframe').attr('src', newUrl);\r\n if (title !== undefined && title !== '') {\r\n //$('#dvlayerTitle').html(title);\r\n }\r\n\r\n var $layer = $('#dvlayerPopup'); \r\n if ($layer.length) {\r\n var $ifrm = $layer.find('iframe');\r\n if ($ifrm.length) {\r\n // $ifrm.get(0)?.style.setProperty('width', ((style?.width || 600) + 200) + 'px', 'important');\r\n // $ifrm.get(0)?.style.setProperty('height', ((style?.height || 400) + 200) + 'px', 'important');\r\n $ifrm.on('load', (e) => {\r\n var iframe = e.target;\r\n var $html = $((iframe as any).contentDocument).find('html');\r\n if ($html.length) {\r\n var intervalCount = 10000;\r\n var flag = false;\r\n var trigger = setInterval(() => {\r\n var $common = $((iframe as any).contentDocument).find('#common-wrapper')\r\n\r\n if ($common.length && !flag) {\r\n flag = true;\r\n $common.addClass('inner-frame');\r\n\r\n var $headerTitle = $html.find('.pop-header > .dp-flex .title');\r\n \r\n var $footer = $html.find('.pop-footer > .dp-flex');\r\n \r\n var $mheader = $layer.find('.modal-header');\r\n var $mfooter = $layer.find('.modal-footer');\r\n \r\n //$mfooter.empty();\r\n \r\n if ($headerTitle.length) {\r\n var text = $headerTitle.text();\r\n //$header.appendTo($mheader);\r\n $mheader.find('.title').text(text);\r\n //$html.find('.pop-header').hide();\r\n }\r\n \r\n if ($footer.length) {\r\n // modal 열때마다 하단의 버튼 중복생성 방지\r\n if(!$mfooter.find('.dp-flex').length){\r\n $footer.appendTo($mfooter);\r\n }\r\n //$html.find('.pop-footer').hide();\r\n }\r\n\r\n clearInterval(trigger);\r\n }\r\n intervalCount--;\r\n\r\n if (intervalCount < 0 && !flag) {\r\n clearInterval(trigger);\r\n } \r\n }, 11); \r\n\r\n //$html.get(0)?.style.setProperty('overflow', 'hidden', 'important');\r\n }\r\n\r\n // iframe 안에서 window.opener, window.close() 재정의\r\n try {\r\n var w = $((iframe as any).contentWindow).get(0) as Window;\r\n if (w.frameElement != null\r\n && w.frameElement.nodeName === \"IFRAME\"\r\n && (w.parent as any).jQuery) {\r\n w.opener = w.parent.window;\r\n w.close = function(){\r\n ($(w.parent.document).find('#dvlayerPopup a') as any).get(0).click();\r\n }\r\n }\r\n } catch (ex) {\r\n \r\n }\r\n });\r\n }\r\n\r\n $layer.css({\r\n opacity: 0,\r\n filter: 'Alpha(Opacity=0)',\r\n });\r\n\r\n $layer.show();\r\n $layer.animate({\r\n opacity: 1,\r\n filter: 'Alpha(Opacity=100)'\r\n }, {\r\n duration: 500,\r\n complete: () => {\r\n $layer.removeAttr('style');\r\n $layer.show();\r\n }\r\n })\r\n }\r\n }\r\n\r\n (window as any)['closeFrame'] = function(elem: HTMLElement) {\r\n var $mfooter = $('#dvlayerPopup').find('.modal-footer');\r\n $mfooter.empty(); \r\n\r\n $('#dvlayerPopup iframe').attr('src', '');\r\n $('#dvlayerPopup').hide();\r\n\r\n (window as any).iframeClosed = true;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./IframeModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./IframeModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IframeModal.vue?vue&type=template&id=37480ae0&\"\nimport script from \"./IframeModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./IframeModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport IframeModal from '../../containers/ModalContainer/IframeModal.vue'\r\n@Component({\r\n components: { IframeModal }\r\n})\r\nexport default class PageLayout extends Vue {\r\n \r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: true }) modalFlag!: boolean;\r\n \r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PageLayout.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PageLayout.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageLayout.vue?vue&type=template&id=4d47fb32&\"\nimport script from \"./PageLayout.ts?vue&type=script&lang=ts&\"\nexport * from \"./PageLayout.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./PageLayout.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal\"},[_c('div',{staticClass:\"modal-flex\"},[_c('div',{staticClass:\"modal-flex-inner\"},[_c('div',{staticClass:\"modal-header\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"ml-auto\"},[(_vm.isEmit)?_c('a',{staticClass:\"btn ico-btn ico-m\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_c('i',{staticClass:\"icon-fux-close\"})]):_c('a',{staticClass:\"btn ico-btn ico-m\",on:{\"click\":_vm.handleClose}},[_c('i',{staticClass:\"icon-fux-close\"})])])])]),(_vm.loading)?[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-padding\",style:(_vm.mStyle)},[_c('LoadingBar',{attrs:{\"message\":_vm.loadingMessage}})],1)])]:(_vm.full)?[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-h-full\",style:(_vm.mStyle)},[_vm._t(\"default\")],2)]),(!_vm.noFooter)?_c('div',{staticClass:\"modal-footer\"},[_c('div',{staticClass:\"dp-flex\"},[_vm._t(\"footer\")],2)]):_vm._e()]:[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-padding\",style:(_vm.mStyle)},[_vm._t(\"default\")],2)]),_c('div',{staticClass:\"modal-footer\"},[_c('div',{staticClass:\"dp-flex\"},[_vm._t(\"footer\")],2)])]],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { LoadingBar } from '../../components/loading'\r\nimport modalHelper from '../../util/modal-helper'\r\n\r\ntype ComponentOptions = {\r\n component: any\r\n vmodel: any\r\n vbind: { [key: string]: any }\r\n vevent: { [key: string]: Function }\r\n /**\r\n * @deprecated\r\n */\r\n value: any\r\n canbind: boolean\r\n}\r\n\r\nconst DEFAULT_STYLE = 'width: 800px; height: 400px;'\r\n\r\n@Component({\r\n components: { LoadingBar },\r\n})\r\nexport default class ModalLayout extends Vue{\r\n @Prop({ type: String, default: '' }) title!: string\r\n @Prop({ type: Boolean, default: false }) loading!: boolean\r\n @Prop({ type: Boolean, default: false }) full!: boolean\r\n @Prop({ type: String }) loadingMessage!: string\r\n @Prop({ type: String, default: DEFAULT_STYLE }) mStyle!: string\r\n @Prop({ type: Boolean, default: false }) isEmit!: boolean\r\n @Prop({ type: Boolean, default: false }) noFooter!: boolean\r\n\r\n handleClose() {\r\n this.$emit('close')\r\n modalHelper.close()\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalLayout.vue?vue&type=template&id=264156a0&\"\nimport script from \"./ModalLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalLayout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-title\"},[_c('div',{staticClass:\"mr-auto\"},[_vm._t(\"title-left\")],2),_c('div',{staticClass:\"ml-auto align-right\"},[_vm._t(\"title-right\")],2)]),_c('div',{staticClass:\"card-body\"},[_vm._t(\"body\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\n\r\n@Component\r\nexport default class CardTemplate extends Vue {}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CardTemplate.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CardTemplate.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardTemplate.vue?vue&type=template&id=5231e0cc&\"\nimport script from \"./CardTemplate.ts?vue&type=script&lang=ts&\"\nexport * from \"./CardTemplate.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./CardTemplate.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sub-content\",attrs:{\"id\":\"inner-wrap\"}},[(!_vm.page.viewType)?_c('div',{staticClass:\"sub-content-padding\",class:( _obj = {}, _obj['sub-content-h-full'] = _vm.page.full === true, _obj )},[_c('div',{staticClass:\"subpage-header dp-flex\"},[(_vm.page)?_c('h3',{staticClass:\"ft-darkblue m-r-m\"},[_vm._v(_vm._s(_vm.page.title))]):_vm._e(),(_vm.isBoard && _vm.isAlarm)?_c('a',{staticClass:\"icon-toggle on ft-l\",on:{\"click\":function($event){return _vm.fnSetAlarm(true)}}},[_c('i',{staticClass:\"icon-fux-bell-fill\"})]):_vm._e(),(_vm.isBoard && !_vm.isAlarm)?_c('a',{staticClass:\"icon-toggle off ft-l\",on:{\"click\":function($event){return _vm.fnSetAlarm(false)}}},[_c('i',{staticClass:\"icon-fux-bell\"})]):_vm._e(),(_vm.isBookmark)?_c('a',{staticClass:\"icon-toggle on m-l-s ft-l\",on:{\"click\":function($event){return _vm.fnSetBookmark(true)}}},[_c('i',{staticClass:\"icon-fux-star-fill\"})]):_vm._e(),(!_vm.isBookmark)?_c('a',{staticClass:\"icon-toggle off m-l-s ft-l\",on:{\"click\":function($event){return _vm.fnSetBookmark(false)}}},[_c('i',{staticClass:\"icon-fux-star\"})]):_vm._e()]),_c('div',{staticClass:\"subpage-body\"},[_vm._t(\"body\")],2)]):(_vm.page.viewType == 1)?_vm._t(\"body\"):_vm._t(\"body\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubContentTemplate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubContentTemplate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SubContentTemplate.vue?vue&type=template&id=7ab5fbee&\"\nimport script from \"./SubContentTemplate.vue?vue&type=script&lang=js&\"\nexport * from \"./SubContentTemplate.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PageLayout',[_c('GnbLeftView'),_c('div',{attrs:{\"id\":\"outer-wrap\"}},[_c('LeftMenu'),_c('SubContentTemplate',{scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_vm._t(\"default\")]},proxy:true}],null,true)})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"flow\",rawName:\"v-flow\"}],ref:\"flowDrop\",attrs:{\"id\":\"flowDrop\"},on:{\"dragenter\":function($event){_vm.dragin = true},\"dragend\":function($event){_vm.dragin = false},\"dragleave\":function($event){_vm.dragin = false},\"drop\":function($event){_vm.dragin = false}}},[(_vm.value && _vm.value.length > 0)?_c('FileList',{attrs:{\"files\":_vm.value,\"useSort\":_vm.useSort,\"totalSizeLimit\":_vm.totalSizeLimit},on:{\"delete\":_vm.deleteFile}}):_c('div',{staticClass:\"dropzone\"},[_vm._t(\"dragdesc\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-wrap\"},[_c('div',{staticClass:\"grd-head\"},[_c('table',{staticClass:\"grd display grd-bggray grd-bdr-side-none\",attrs:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"40px\"}}),_c('col',{attrs:{\"width\":\"\"}}),_c('col',{attrs:{\"width\":\"80px\"}}),(_vm.useSort)?_c('col',{attrs:{\"width\":\"80px\"}}):_vm._e(),_c('col',{attrs:{\"width\":\"70px\"}}),_c('col',{attrs:{\"width\":\"40px\"}})]),_c('thead',[_c('tr',[_c('th',{staticClass:\"align-center\"},[_c('input',{attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":_vm.selectedAll ? 'checked' : ''},on:{\"click\":_vm.handleSelectAll}})]),_c('th',[_vm._v(_vm._s(_vm.$t('파일명')))]),(_vm.useSort)?_c('th',[_vm._v(_vm._s(_vm.$t('정렬')))]):_vm._e(),(_vm.nTotal > 0)?_c('th',[_vm._v(_vm._s(_vm.$t('용량')))]):_vm._e(),_c('th',[_vm._v(_vm._s(_vm.$t('진행률')))]),_c('th')])])])]),_c('div',{staticClass:\"grd-content\",staticStyle:{\"max-height\":\"200px\"}},[_c('table',{staticClass:\"grd display grd-bggray grd-bdr-side-none\",attrs:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"40px\"}}),_c('col',{attrs:{\"width\":\"\"}}),_c('col',{attrs:{\"width\":\"80px\"}}),(_vm.useSort)?_c('col',{attrs:{\"width\":\"80px\"}}):_vm._e(),_c('col',{attrs:{\"width\":\"70px\"}}),_c('col',{attrs:{\"width\":\"40px\"}})]),_c('tbody',_vm._l((_vm.files),function(file,index){return _c(\"file-list-item\",{key:index,tag:\"tr\",class:'flow-file-' + file.uniqueIdentifier,attrs:{\"file\":file,\"useSort\":_vm.useSort,\"beforeId\":_vm.getFileId(_vm.files, index - 1),\"currentId\":_vm.getFileId(_vm.files, index),\"afterId\":_vm.getFileId(_vm.files, index + 1)},on:{\"delete\":function (file) { return _vm.$emit('delete', file); },\"resume\":function (file) { return _vm.$emit('resume', file); }}})}),1)])]),(false)?_c('div',{staticClass:\"attach-footer\"},[_c('div',{staticClass:\"mr-auto\"},[_vm._v(\" file \"),_c('b',{staticClass:\"ft-blue\"},[_vm._v(_vm._s(_vm.totalCount))])]),_c('div',{staticClass:\"ml-auto align-right\"},[_c('b',{staticClass:\"ft-blue\"},[_vm._v(_vm._s(_vm.totalSize))]),_vm._v(\" (\"+_vm._s(_vm.totalPercent)+\"%) \")])]):_vm._e(),(false)?_c('div',{attrs:{\"id\":\"myProgress\"}},[_c('div',{style:({ width: (_vm.totalPercent + \"%\") }),attrs:{\"id\":\"myBar\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.totalPercent)+\"% \")])])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{attrs:{\"uid\":_vm.file.id}},[_c('td',{staticClass:\"align-center\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.file.selected),expression:\"file.selected\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.file.selected)?_vm._i(_vm.file.selected,null)>-1:(_vm.file.selected)},on:{\"change\":function($event){var $$a=_vm.file.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.file, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.file, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.file, \"selected\", $$c)}}}})]),_c('td',{staticClass:\"ellipsis\",attrs:{\"title\":_vm.file.name}},[_c('a',{on:{\"click\":function($event){return _vm.download(_vm.file)}}},[_vm._v(_vm._s(_vm.file.name))])]),(_vm.useSort)?_c('td',[_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",style:({visibility: [this.beforeId != '' && this.currentId != '' ? 'visible' : 'hidden']}),on:{\"click\":_vm.orderUp}},[_c('i',{staticClass:\"icon-fux-up\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",style:({visibility: [this.afterId != '' && this.currentId != '' ? 'visible' : 'hidden']}),on:{\"click\":_vm.orderDown}},[_c('i',{staticClass:\"icon-fux-down\"})])]):_vm._e(),(_vm.file.size)?_c('td',{staticClass:\"align-right\"},[_vm._v(_vm._s(_vm.size))]):_vm._e(),_c('td',[_c('span',{staticClass:\"flow-file-progress\"},[_vm._v(_vm._s(_vm.file.percent || '0')+\"%\")])]),_c('td',{staticClass:\"align-center\"},[_c('a',{staticClass:\"btn ico-s ft-red\",on:{\"click\":function () { return _vm.$emit('delete',_vm.file); }}},[_c('i',{staticClass:\"icon-fux-close\"})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { FlowFile } from '@appbase/libs/flowjs'\r\nimport Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport flowHelper from '../flow-helper'\r\nimport api from '@appbase/api';\r\n\r\n@Component\r\nexport default class FileListItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object, required: true }) file!: FlowFile\r\n @Prop({ type: String, default: '' }) beforeId!: string;\r\n @Prop({ type: String, default: '' }) currentId!: string;\r\n @Prop({ type: String, default: '' }) afterId!: string;\r\n @Prop({ type: Boolean, default: false }) useSort!: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get size(): string {\r\n return flowHelper.readablizeBytes(this.file.size, 0)\r\n }\r\n\r\n download(file: any) {\r\n if (file.blob || file.file) {\r\n if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {\r\n (window.navigator as any).msSaveOrOpenBlob(file.blob || file.file, file.name);\r\n } else {\r\n let link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(file.blob || file.file);\r\n link.download = `${file.name}`;\r\n link.click();\r\n }\r\n } else {\r\n let link = document.createElement('a');\r\n link.href = file.downloadUrl;\r\n link.target = \"_blank\";\r\n link.download = `${file.name}`;\r\n link.click();\r\n }\r\n }\r\n\r\n orderUp() {\r\n if (this.beforeId != '' && this.currentId != '') {\r\n if ((window as any).flowFileSwapStart) {\r\n (window as any).flowFileSwapStart();\r\n }\r\n\r\n api.file.swapFileSort({\r\n sourceId: this.currentId,\r\n targetId: this.beforeId\r\n }).then((res) => {\r\n if ((window as any).flowFileSwapCompleted) {\r\n (window as any).flowFileSwapCompleted(res);\r\n }\r\n }).catch((err) => {\r\n if ((window as any).flowFileSwapError) {\r\n (window as any).flowFileSwapError(err);\r\n }\r\n })\r\n } \r\n }\r\n\r\n orderDown() {\r\n if (this.afterId != '' && this.currentId != '') {\r\n if ((window as any).flowFileSwapStart) {\r\n (window as any).flowFileSwapStart();\r\n }\r\n\r\n api.file.swapFileSort({\r\n sourceId: this.currentId,\r\n targetId: this.afterId\r\n }).then((res) => {\r\n if ((window as any).flowFileSwapCompleted) {\r\n (window as any).flowFileSwapCompleted(res);\r\n }\r\n }).catch((err) => {\r\n if ((window as any).flowFileSwapError) {\r\n (window as any).flowFileSwapError(err);\r\n }\r\n })\r\n } \r\n }\r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FileListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FileListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FileListItem.vue?vue&type=template&id=8b5296ce&\"\nimport script from \"./FileListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./FileListItem.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./FileListItem.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { FlowFile } from '@appbase/libs/flowjs'\r\nimport Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport FileListItem from '../FileListItem/FileListItem.vue'\r\nimport flowHelper from '../flow-helper'\r\n\r\n@Component({\r\n components: { FileListItem },\r\n})\r\nexport default class FileList extends Vue {\r\n @Prop({ type: Array, required: true }) files!: FlowFile[]\r\n @Prop({ type: Number }) totalSizeLimit!: number\r\n @Prop({ type: Boolean, default: false }) useSort!: boolean\r\n\r\n nTotal: number = 0\r\n\r\n get selectedAll() {\r\n const total = this.files.length\r\n if (total > 0) {\r\n return this.files.filter((x) => x.selected).length === total\r\n } else {\r\n return false\r\n } \r\n }\r\n\r\n get totalSize() {\r\n //this.nTotal = this.files.reduce((sum, x) => sum + x.size, 0)\r\n return flowHelper.readablizeBytes(this.nTotal) \r\n }\r\n\r\n get totalCount() {\r\n return this.files.length\r\n }\r\n\r\n get maxSize() {\r\n return flowHelper.readablizeBytes(this.totalSizeLimit)\r\n }\r\n\r\n get totalPercent() {\r\n const totalSize = this.files.reduce((sum, x) => sum + x.size, 0)\r\n const uploadedSize = this.files.reduce((sum, x) => {\r\n if (typeof x.sizeUploaded === 'function') {\r\n return sum + x.sizeUploaded()\r\n } else {\r\n return sum + x.size\r\n }\r\n }, 0)\r\n return Math.floor((uploadedSize * 100) / totalSize)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSelectAll() {\r\n const to = !this.selectedAll\r\n for (var file of this.files) {\r\n file.selected = to\r\n }\r\n }\r\n\r\n getFileId(files: FlowFile[], idx: number) {\r\n if (files && files.length) {\r\n if (idx >= 0 && idx < files.length) {\r\n return (files[idx].uniqueIdentifier + '').toString();\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n created() {\r\n this.nTotal = this.files.reduce((sum, x) => sum + x.size, 0)\r\n }\r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FileList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FileList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FileList.vue?vue&type=template&id=7b253e20&\"\nimport script from \"./FileList.ts?vue&type=script&lang=ts&\"\nexport * from \"./FileList.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./FileList.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","class OfficeHelper {\r\n outside() {\r\n return true\r\n }\r\n\r\n notify(\r\n message: string,\r\n title: string = '',\r\n type: 'default' | 'success' | 'error' | 'warning' | 'severe-warning' = 'default'\r\n ): any {\r\n if (this.outside()) {\r\n console.log(title, message, type)\r\n } else {\r\n // return OfficeHelpers.UI.notify(message, title, type)\r\n return console.log(message, title, type)\r\n }\r\n }\r\n}\r\n\r\nexport default new OfficeHelper()\r\n","import { Flow, FlowChunk, FlowFile } from '@appbase/libs/flowjs'\r\nimport FlowFileUploader from './FlowFileUploader'\r\nimport flowHelper from './flow-helper'\r\nimport officeHelper from '../../../util/office-helper'\r\nimport { IFlowContextFileHandler } from '@appbase/libs/flowjs/FlowFileHandler'\r\nimport api from '../../../api'\r\n\r\nexport class FlowFileHandler implements IFlowContextFileHandler {\r\n //\r\n // ──────────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P E R T I E S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n context!: FlowFileUploader\r\n\r\n //\r\n // ────────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: I M P L E M E N T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * A specific file was completed. First argument file is instance of FlowFile,\r\n * second argument message contains server response. Response is always a string.\r\n * Third argument chunk is instance of FlowChunk.\r\n * You can get response status by accessing xhr object chunk.xhr.status.\r\n */\r\n fileSuccess(file: FlowFile, message: string, chunk: FlowChunk) {\r\n console.log('FlowFileHandler', 'fileSuccess', arguments)\r\n }\r\n\r\n /**\r\n * Uploading progressed for a specific file.\r\n */\r\n fileProgress(file: FlowFile, chunk: FlowChunk): void {\r\n // console.log('FlowFileHandler', 'fileProgress', arguments)\r\n\r\n const percent = file.error ? 0 : Math.floor(file.progress() * 100)\r\n file.percent = percent\r\n }\r\n\r\n /**\r\n * This event is used for file validation. To reject this file return false.\r\n * This event is also called before file is added to upload queue,\r\n * this means that calling flow.upload() function will not start current file upload.\r\n * Optionally, you can use the browser event object from when the file was added.\r\n */\r\n fileAdded(file: FlowFile, event: Event): boolean {\r\n console.log('FlowFileHandler', 'fileAdded', arguments)\r\n return true\r\n }\r\n\r\n /**\r\n *\r\n * @param array 추가하려는 파일 목록\r\n */\r\n filesAdding(files: FlowFile[], event: Event): boolean {\r\n console.log('FlowFileHandler', 'filesAdding', files)\r\n const {\r\n totalSizeLimit,\r\n totalSizeLimitExcessMessage,\r\n bannedExtentions,\r\n bannedExtentionMessage,\r\n emptyFileDenialMessage,\r\n } = this.context\r\n const flow = this.context.flow\r\n\r\n let filtered = [...files].filter((f) => f.size === 0)\r\n if (filtered.length > 0) {\r\n if (typeof emptyFileDenialMessage === 'string') {\r\n alert(emptyFileDenialMessage)\r\n officeHelper.notify(filtered[0].name, emptyFileDenialMessage, 'error')\r\n }\r\n return false\r\n }\r\n if (typeof totalSizeLimit === 'number' && totalSizeLimit > 0) {\r\n if (\r\n [...flow.files, ...files].map((f) => f.size).reduce((a, b) => a + b, 0) > totalSizeLimit\r\n ) {\r\n if (typeof totalSizeLimitExcessMessage === 'string') {\r\n alert(totalSizeLimitExcessMessage)\r\n officeHelper.notify(\r\n `전체 파일 크기 제한: ${flowHelper.readablizeBytes(totalSizeLimit, 0)}`,\r\n totalSizeLimitExcessMessage,\r\n 'error'\r\n )\r\n }\r\n return false\r\n }\r\n }\r\n\r\n if (bannedExtentions != undefined && bannedExtentions != null) {\r\n let filtered = [...files].filter((f) => {\r\n var match = f.name.match(/[^.]+$/)\r\n var extension = match == null ? '' : match[0]\r\n\r\n if (bannedExtentions.indexOf(extension) >= 0) return true\r\n else return false\r\n })\r\n\r\n if (filtered.length > 0) {\r\n alert(bannedExtentionMessage)\r\n officeHelper.notify(filtered[0].name, bannedExtentionMessage, 'error')\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n\r\n /**\r\n * Same as fileAdded, but used for multiple file validation.\r\n */\r\n filesAdded(array: FlowFile[], event: Event): boolean {\r\n console.log('FlowFileHandler', 'filesAdded', arguments)\r\n return true\r\n }\r\n\r\n /**\r\n * Same as filesAdded, but happens after the file is added to upload queue. Can be used to start upload of currently added files.\r\n */\r\n filesSubmitted(array: FlowFile[], event: Event): void {\r\n console.log('FlowFileHandler', 'filesSubmitted', arguments)\r\n // 파일 추가 즉시 업로드 시작\r\n this.context.flow.upload()\r\n }\r\n\r\n /**\r\n * The specific file was removed from the upload queue. Combined with filesSubmitted, can be used to notify UI to update its state to match the upload queue.\r\n */\r\n fileRemoved(file: FlowFile): void {\r\n console.log('FlowFileHandler', 'fileRemoved', arguments)\r\n const {\r\n meta: { code, codeValues },\r\n } = this.context\r\n const splitFileName = file.name.split('.')\r\n const fileExtention = splitFileName[splitFileName.length - 1]\r\n let identifier = (file as any).serverPath\r\n ? (file as any).serverPath\r\n : file.uniqueIdentifier + `.${fileExtention}`\r\n api.file.deleteFiles(code, codeValues, [file.name], [identifier])\r\n }\r\n\r\n /**\r\n * Something went wrong during upload of a specific file, uploading is being retried.\r\n */\r\n fileRetry(file: FlowFile, chunk: FlowChunk): void {\r\n console.log('FlowFileHandler', 'fileRetry', arguments)\r\n }\r\n\r\n /**\r\n * An error occurred during upload of a specific file.\r\n */\r\n fileError(file: FlowFile, message: string, chunk: FlowChunk) {\r\n console.log('FlowFileHandler', 'fileError', arguments)\r\n }\r\n\r\n /**\r\n * Upload has been started on the Flow object.\r\n */\r\n uploadStart(): void {\r\n console.log('FlowFileHandler', 'uploadStart', arguments);\r\n if ((window as any).flowFileUploadStart) {\r\n (window as any).flowFileUploadStart(arguments);\r\n }\r\n }\r\n\r\n /**\r\n * Uploading completed.\r\n */\r\n complete(): void {\r\n console.log('FlowFileHandler', 'complete', arguments);\r\n if ((window as any).flowFileUploadCompleted) {\r\n (window as any).flowFileUploadCompleted(arguments);\r\n }\r\n }\r\n\r\n /**\r\n * Uploading progress.\r\n */\r\n progress(): void {\r\n // console.log('FlowFileHandler', 'progress', arguments)\r\n }\r\n\r\n /**\r\n * An error, including fileError, occurred.\r\n */\r\n error(message: string, file: FlowFile, chunk: FlowChunk): void {\r\n console.log('FlowFileHandler', 'error', arguments);\r\n if ((window as any).flowFileError) {\r\n (window as any).flowFileError(arguments, file, message);\r\n }\r\n }\r\n\r\n /**\r\n * Listen to all the events listed above with the same callback function.\r\n */\r\n catchAll(event: Event, ...args: any[]): void {\r\n //console.log('FlowFileHandler', 'catchAll', arguments)\r\n // console.log('files', this.context.value)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O N S T R U C T O R : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n constructor(uploader: FlowFileUploader) {\r\n if (!uploader) throw new Error('ARGS_NULL_ERROR : uploader')\r\n this.context = uploader\r\n }\r\n}\r\n","import { Flow, FlowFile, FlowOptions } from '../../../libs/flowjs'\r\nimport Vue, { DirectiveOptions } from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport FileList from './FileList/FileList.vue'\r\nimport { FlowFileHandler } from './flow-file-handler'\r\nimport { FlowFileMeta } from './flow-file-meta'\r\n\r\nconst FLOW_DROP_SELECTOR = '#flowDrop'\r\nconst flowDirective: DirectiveOptions = {\r\n inserted: (el, binding, vnode) => {\r\n const {\r\n flow,\r\n browseButton,\r\n browseFolderButton,\r\n deleteSelectedFilesButton,\r\n deleteSelectedFilesMessage,\r\n } = vnode.context as FlowFileUploader\r\n console.log('v-flow', 'inserted', [flow, browseButton, browseFolderButton])\r\n\r\n const query = (query: string) => window.document.body.querySelector(query)\r\n\r\n if (flow) {\r\n let found = query(FLOW_DROP_SELECTOR)\r\n if (found) {\r\n flow.assignDrop(found)\r\n }\r\n\r\n // 파일 찾아보기 버튼\r\n if (browseButton) {\r\n let found = query(browseButton)\r\n if (found) {\r\n flow.assignBrowse(found)\r\n }\r\n }\r\n\r\n // 폴더 찾아보기 버튼\r\n if (browseFolderButton) {\r\n let found = query(browseFolderButton)\r\n if (found) {\r\n flow.assignBrowse(found, true)\r\n }\r\n }\r\n\r\n // 선택된 파일 삭제 버튼\r\n // vnode.context?.$watch\r\n if (deleteSelectedFilesButton) {\r\n let found = query(deleteSelectedFilesButton)\r\n if (found) {\r\n flow.assignDeleteSelectedFiles(found, deleteSelectedFilesMessage)\r\n }\r\n }\r\n\r\n // 이미지 찾아보기 버튼\r\n // if (flowBrowseImage) {\r\n // var found = query(flowBrowseImage);\r\n // flow.assignBrowse(found, false, false, {\r\n // accept: 'image/*',\r\n // });\r\n // }\r\n } else {\r\n throw new Error('The flow object has not been initialized.')\r\n }\r\n },\r\n}\r\n\r\n@Component({\r\n components: { FileList },\r\n directives: { flow: flowDirective },\r\n})\r\nexport default class FlowFileUploader extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 파일 업로드 API URL\r\n * @requires\r\n */\r\n @Prop({ type: String, required: true }) uploadUrl!: string\r\n\r\n /**\r\n * 파일 삭제 API URL\r\n * @requires\r\n */\r\n @Prop({ type: String, required: true }) deleteUrl!: string\r\n\r\n /**\r\n * 파일 삭제 API URL 호출 시 사용할 HTTP Method (DELETE, POST)\r\n */\r\n @Prop({ type: String, default: 'DELETE' }) deleteMethod!: string\r\n\r\n /**\r\n * 파일 업로드 시 함께 첨부할 파일 메타 정보\r\n */\r\n @Prop({ type: Object, required: true }) meta!: FlowFileMeta\r\n\r\n /**\r\n * 파일 업로드 시 전송할 바이트 크기\r\n * @default 10MB\r\n */\r\n @Prop({ type: Number, default: 10000000 }) chunkSize!: number\r\n\r\n /**\r\n * TODO: 용도 확인하여 제거 가능한 것인지 기술 검토 필요\r\n */\r\n @Prop({ type: Number, default: 4 }) simultaneousUploads!: number\r\n\r\n /**\r\n * 파일 목록\r\n */\r\n @Prop({ type: Array, required: true }) value!: FlowFile[]\r\n\r\n /**\r\n * 파일 찾아보기 버튼을 검색할 셀렉터\r\n * 지정된 셀렉터에 의해 조회된 엘리먼트에 파일 찾아보기 액션이 바인딩 됩니다.\r\n */\r\n @Prop({ type: String }) browseButton?: string\r\n\r\n /**\r\n * 폴더 찾아보기 버튼을 검색할 셀렉터\r\n * 지정된 셀렉터에 의해 조회된 엘리먼트에 폴더 찾아보기 액션이 바인딩 됩니다.\r\n */\r\n @Prop({ type: String }) browseFolderButton?: string\r\n\r\n /**\r\n * 선택된 파일 삭제 버튼을 검색할 셀렉터\r\n */\r\n @Prop({ type: String }) deleteSelectedFilesButton?: string\r\n\r\n /**\r\n * TODO: 용도 확인하여 제거 가능한 것인지 기술 검토 필요\r\n */\r\n @Prop({ type: Function }) customDelete?: (files: any[]) => Promise\r\n\r\n /**\r\n * Teams & OneDrive 에서 가져온 파일\r\n */\r\n @Prop({ type: Array }) customUploadfiles?: FlowFile[]\r\n\r\n /**\r\n * 전체 파일 크기 제한\r\n * @default 1GB\r\n */\r\n @Prop({ type: Number, default: 1073741824 }) totalSizeLimit!: Number\r\n\r\n /**\r\n * 전체 파일 크기 제한 초과시 표시할 메시지 내용\r\n */\r\n @Prop({ type: String, default: '전체 파일 크기 제한 초과' })\r\n totalSizeLimitExcessMessage!: string\r\n\r\n /**\r\n * 첨부파려는 파일 크기가 0바이트일 경우 표시할 메시지 내용\r\n */\r\n @Prop({ type: String, default: '비어있는 파일은 첨부할 수 없습니다.' })\r\n emptyFileDenialMessage!: string\r\n\r\n @Prop({ type: String, default: '삭제하려는 파일을 선택하세요.' })\r\n deleteSelectedFilesMessage!: string\r\n\r\n /**\r\n * 업로드 파일 확장자 제한\r\n * @example [\".\",]\r\n */\r\n @Prop({ type: Array, default: () => [] }) bannedExtentions!: string[]\r\n\r\n /**\r\n * 업로드 파일 확장자 제한에 포함된 파일을 업로드하려는 경우 표시할 메시지 내용\r\n */\r\n @Prop({ type: String, default: '해당 파일 형식은 업로드할 수 없습니다.' })\r\n bannedExtentionMessage!: string\r\n\r\n /**\r\n * 파일 정렬기능 사용여부\r\n */\r\n @Prop({ type: Boolean, default: false })\r\n useSort!: boolean\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * instance of Flowjs\r\n */\r\n flow: Flow = Object.create(null)\r\n\r\n /**\r\n * Flow 지원 여부\r\n */\r\n isNotSupported: boolean = false\r\n\r\n /**\r\n * 파일을 마우스로 끌어서 뷰 위에 올려두고 있는지 여부\r\n */\r\n dragin: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n const options: FlowOptions = {\r\n ...Object.create(null),\r\n ...{\r\n target: this.uploadUrl,\r\n singleFile: false,\r\n chunkSize: this.chunkSize,\r\n testChunks: false,\r\n query: {\r\n code: this.meta.code,\r\n codeValues: this.meta.codeValues,\r\n type: this.meta.type,\r\n },\r\n on: new FlowFileHandler(this),\r\n },\r\n }\r\n this.flow = new Flow(options, this.value)\r\n\r\n if (!this.flow.support) {\r\n this.isNotSupported = true\r\n }\r\n }\r\n\r\n @Watch('value')\r\n onChangeValue() {\r\n this.flow.files = this.value;\r\n \r\n }\r\n\r\n @Watch('customUploadfiles')\r\n onCustomUploadFilesChanged(arr: any) {\r\n this.flow.addFiles(arr, null); \r\n }\r\n\r\n deleteFile(file: FlowFile) {\r\n this.flow.removeFile(file)\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FlowFileUploader.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FlowFileUploader.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FlowFileUploader.vue?vue&type=template&id=3c595dba&\"\nimport script from \"./FlowFileUploader.ts?vue&type=script&lang=ts&\"\nexport * from \"./FlowFileUploader.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./FlowFileUploader.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"sidenav-wrap\"}},[_c('div',{staticClass:\"sidenav-mask\"}),_c('div',{staticClass:\"sidenav-inner\"},[_c('div',{staticClass:\"sidenav-scroll-no\"},[_c('div',{staticClass:\"sidenav-subtitle\"},[_c('div',{staticClass:\"mr-auto ellipsis\"},[_c('h6',{staticClass:\"ellipsis\"},[_vm._v(_vm._s(_vm.userLang == \"ko-kr\" ? _vm.menuItem.menuName : _vm.menuItem.menuNameEn))])])]),_vm._t(\"scrollno\")],2),(_vm.isPermission)?_c('div',{staticClass:\"sidenav-scroll\"},_vm._l((_vm.menuItem.children),function(item){return _c('LeftMenuItem',{key:item.menuId,attrs:{\"item\":item,\"menuItemPath\":_vm.menuItemPath,\"menuPermission\":_vm.menuPermission,\"userLang\":_vm.userLang,\"isNewArticle\":_vm.newArticleBoard},on:{\"expand\":function (item) { return _vm.fnExpandMenu(item); },\"itemclick\":function (item) { return _vm.fnClickMenu(item); }},scopedSlots:_vm._u([((item.customClass + '').indexOf('TemplateMenu') != -1)?{key:\"customMenuCollection\",fn:function(){return [_vm._t(item.customClass)]},proxy:true}:null],null,true)})}),1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['mn-node', _vm.customClass]},[(_vm.isPermission)?_c('div',{class:['mn-top', _vm.selected ? 'selected' : '']},[((_vm.item.customClass + '').indexOf('TemplateMenu') != -1)?_c('span',{staticClass:\"nav-folded\"},[_c('i',{class:_vm.expandCustomFlag ? 'icon-fux-minus-square' : 'icon-fux-add-square',attrs:{\"id\":'i_leftmenu_' + _vm.item.menuId},on:{\"click\":function($event){$event.stopPropagation();_vm.expandCustomFlag = !_vm.expandCustomFlag}}})]):(_vm.item.hasChildren)?_c('span',{staticClass:\"nav-folded\"},[_c('i',{class:_vm.expandflag\n ? _vm.expandFlagChange\n ? 'icon-fux-minus-square'\n : 'icon-fux-add-square'\n : _vm.expandFlagChange\n ? 'icon-fux-minus-square'\n : 'icon-fux-add-square',attrs:{\"id\":'i_leftmenu_' + _vm.item.menuId},on:{\"click\":function($event){$event.stopPropagation();_vm.$emit('expand', _vm.item), (_vm.expandFlagChange = !_vm.expandFlagChange)}}})]):_c('span',{staticClass:\"nav-item\"},[_c('i',{staticClass:\"nav-bullet\"})]),_c('span',{staticClass:\"menu-name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('itemclick', _vm.item)}}},[_c('a',{staticClass:\"name\"},[(_vm.item.isNewIcon)?_c('span',{staticClass:\"new\"},[_vm._v(\"N\")]):_vm._e(),_vm._v(_vm._s(_vm.userLang == \"ko-kr\" ? _vm.item.menuName : _vm.item.menuNameEn)),_c('b',{staticClass:\"count\"})])])]):_vm._e(),((_vm.item.customClass + '').indexOf('TemplateMenu') != -1)?_c('div',{staticClass:\"mn-sub\",style:(_vm.expandCustomFlag ? '' : 'display:none'),attrs:{\"id\":'div_leftmenu_sub_' + _vm.item.menuId}},[_vm._t(\"customMenuCollection\")],2):(_vm.item.hasChildren)?_c('div',{staticClass:\"mn-sub\",style:(_vm.expandFlagChange ? '' : 'display:none'),attrs:{\"id\":'div_leftmenu_sub_' + _vm.item.menuId}},_vm._l((_vm.item.children),function(child){return _c('leftmenu-item',{key:child.menuId,attrs:{\"item\":child,\"menuItemPath\":_vm.menuItemPath,\"menuPermission\":_vm.menuPermission,\"userLang\":_vm.userLang},on:{\"expand\":function (item) { return _vm.$emit('expand', item); },\"itemclick\":function (item) { return _vm.$emit('itemclick', item); }}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Prop, Watch } from \"vue-property-decorator\";\r\nimport menuHelper from \"../../../util/menu-helper\";\r\n\r\n@Component({\r\n name: \"leftmenu-item\",\r\n})\r\nexport default class LeftMenuItem extends Vue {\r\n @Prop({ type: Object }) item!: appbase.cache.TMenuItem;\r\n @Prop({ type: Array }) menuPermission!: account.TPermissionMenu[];\r\n @Prop({ type: Array }) menuItemPath!: number[];\r\n @Prop({ type: String }) userLang!: string;\r\n @Prop({ type: Object }) menuItem: appbase.cache.TMenuItem | null = null;\r\n @Prop({ type: Array, default: () => [] }) isNewArticle!: number[];\r\n\r\n expandCustomFlag: boolean = false;\r\n expandFlagChange: boolean = false;\r\n expandbuttonChange: boolean = false;\r\n get selected() {\r\n var menuId = Number(this.$route.query.MENUID);\r\n return menuId === this.item.menuId;\r\n }\r\n\r\n get expandflag() {\r\n if (this.menuItemPath.includes(this.item.menuId)) {\r\n this.expandFlagChange = true;\r\n this.expandbuttonChange = true;\r\n return true;\r\n } else if (this.menuItemPath[1] == this.item.parentMenuId) {\r\n this.expandFlagChange = true;\r\n this.expandbuttonChange = true;\r\n return true;\r\n } else if (this.item.hasChildren == false) {\r\n this.expandFlagChange = true;\r\n this.expandbuttonChange = true;\r\n return true;\r\n } else if (this.menuItemPath[1] == menuHelper.getSubMenuId(this.item.menuId)) {\r\n this.expandFlagChange = true;\r\n this.expandbuttonChange = true;\r\n return true;\r\n } else {\r\n this.expandFlagChange = false;\r\n this.expandbuttonChange = true;\r\n return false;\r\n }\r\n }\r\n\r\n get isPermission() {\r\n let isPermission: boolean = false;\r\n if (this.menuPermission && this.menuPermission.find((x) => x.id == this.item.menuId)) isPermission = true;\r\n return isPermission;\r\n }\r\n\r\n get customClass() {\r\n if (this.item.customClass) {\r\n return this.item.customClass;\r\n }\r\n return \"\";\r\n }\r\n\r\n /** 2024-09-12 이수 게시판 개선요청 - 신규 게시글이 등록 된 게시판에 N 아이콘 표시*/\r\n @Watch(\"isNewArticle\", { immediate: true })\r\n isShowNewIcon() {\r\n if (this.item && this.isNewArticle.length > 0 && location.href.indexOf(\"board/list\") != -1) {\r\n this.updateIsNewIcon(this.item);\r\n }\r\n }\r\n\r\n updateIsNewIcon(item: any) {\r\n if (item.systemId && this.isNewArticle.includes(item.systemId)) {\r\n this.$set(item, \"isNewIcon\", true);\r\n } else {\r\n this.$set(item, \"isNewIcon\", false);\r\n }\r\n\r\n // 자식 항목이 있는 경우 재귀적으로 호출\r\n if (item.children && item.children.length > 0) {\r\n item.children.forEach((child: any) => this.updateIsNewIcon(child));\r\n }\r\n }\r\n\r\n mounted() {\r\n var menuId = Number(this.$route.query.MENUID);\r\n if (menuId == this.item.menuId) {\r\n // 현재 메뉴 위치로 Scroll을 이동한다.\r\n this.$el.scrollIntoView();\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LeftMenuItem.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LeftMenuItem.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LeftMenuItem.vue?vue&type=template&id=8d03db82&\"\nimport script from \"./LeftMenuItem.ts?vue&type=script&lang=js&\"\nexport * from \"./LeftMenuItem.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport Component from \"vue-class-component\";\r\nimport { Prop, Watch } from \"vue-property-decorator\";\r\nimport { mapGetters } from \"vuex\";\r\nimport * as usertypes from \"@account/store/types\";\r\nimport menuHelper from \"../../../util/menu-helper\";\r\nimport LeftMenuItem from \"./LeftMenuItem.vue\";\r\nimport api from \"../../../api\";\r\n\r\n@Component({\r\n components: { LeftMenuItem },\r\n computed: {\r\n ...mapGetters({\r\n userCurrent: usertypes.CURRENT,\r\n }),\r\n },\r\n})\r\nexport default class LeftMenu extends Vue {\r\n userCurrent!: account.TCurrent;\r\n menuPermission: account.TPermissionMenu[] = [];\r\n menuItem: appbase.cache.TMenuItem | null = null;\r\n menuItemPath: number[] = [];\r\n userLang: string = \"\";\r\n newArticleBoard: number[] = [];\r\n\r\n isPermission: boolean = false;\r\n reqMenuId: number = this.$route.query.MENUID ? Number(this.$route.query.MENUID) : 0;\r\n\r\n fnExpandMenu(item: appbase.cache.TMenuItem) {\r\n let iObj = document.getElementById(\"i_leftmenu_\" + item.menuId);\r\n let subObj = document.getElementById(\"div_leftmenu_sub_\" + item.menuId);\r\n\r\n if (iObj) {\r\n if (iObj.classList.contains(\"icon-fux-minus-square\")) {\r\n iObj.classList.remove(\"icon-fux-minus-square\");\r\n iObj.classList.add(\"icon-fux-add-square\");\r\n subObj?.setAttribute(\"style\", \"display:none\");\r\n } else {\r\n iObj.classList.remove(\"icon-fux-add-square\");\r\n iObj.classList.add(\"icon-fux-minus-square\");\r\n subObj?.removeAttribute(\"style\");\r\n }\r\n }\r\n }\r\n\r\n fnClickMenu(item: appbase.cache.TMenuItem) {\r\n if (item) {\r\n // 선택한 메뉴의 targetUrl 값이 없는 경우 하위 메뉴 중 첫 번째 항목의 targetUrl로 이동한다.\r\n if (item.targetUrl) {\r\n menuHelper.next(item);\r\n } else if (item.targetUrl == \"\" && item.hasChildren && item.children.length > 0) {\r\n if (item.children[0].targetUrl) {\r\n menuHelper.next(item.children[0]);\r\n } else {\r\n this.fnExpandMenu(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n @Watch(\"$route.query.MENUID\")\r\n fnChangeMenuId() {\r\n const { MENUID } = this.$route.query;\r\n if (MENUID) {\r\n let leftItem = menuHelper.getLeftMenuList(Number(MENUID));\r\n let menuPath = menuHelper.getMenuIdFullPath(Number(MENUID));\r\n if (leftItem) {\r\n this.menuItem = leftItem;\r\n if (this.menuItem && this.menuItem.hasChildren && this.menuItem.children.length > 0) {\r\n this.menuItem.children = menuHelper.setMenuParam(this.menuItem.children, this.userCurrent.user);\r\n }\r\n this.menuItemPath = menuPath;\r\n let menuId = this.menuItem ? this.menuItem.menuId : 0;\r\n if (this.menuPermission.find((x) => x.id == menuId)) {\r\n this.isPermission = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n created() {\r\n this.menuPermission = this.userCurrent.permissions.menues;\r\n this.userLang = this.userCurrent.userConfig.language.toLowerCase();\r\n this.fnChangeMenuId();\r\n this.getNewArticleBoard();\r\n }\r\n\r\n /** 2024-09-12 이수 게시판 개선요청 - 신규 게시글이 등록 된 게시판에 N 아이콘 표시*/\r\n getNewArticleBoard() {\r\n api.subcontent.fetchNewArticleBoardId().then((res) => {\r\n if (res) {\r\n this.newArticleBoard = Object(res);\r\n return this.newArticleBoard;\r\n } else {\r\n console.log(\"Error :\" + res);\r\n }\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LeftMenu.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LeftMenu.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LeftMenu.vue?vue&type=template&id=5de21b24&\"\nimport script from \"./LeftMenu.ts?vue&type=script&lang=js&\"\nexport * from \"./LeftMenu.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MasterTemplate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MasterTemplate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MasterTemplate.vue?vue&type=template&id=760a498c&\"\nimport script from \"./MasterTemplate.vue?vue&type=script&lang=js&\"\nexport * from \"./MasterTemplate.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PageLayout',[_c('GnbLeftView'),_c('div',{attrs:{\"id\":\"outer-wrap\"}},[_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullMasterTemplate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullMasterTemplate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullMasterTemplate.vue?vue&type=template&id=ce9a6b36&\"\nimport script from \"./FullMasterTemplate.vue?vue&type=script&lang=js&\"\nexport * from \"./FullMasterTemplate.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressRing.vue?vue&type=style&index=0&lang=css&\"","import client from '@/api'\r\n\r\nexport default {\r\n login(username: string, password: string): Promise {\r\n return client.post({\r\n url: '/IsuCommon/ISU_auth/api/login',\r\n data: { username, password },\r\n })\r\n },\r\n\r\n loginex(username: string): Promise {\r\n return client.post({\r\n url: '/IsuCommon/ISU_auth/api/loginex',\r\n data: { username },\r\n })\r\n },\r\n\r\n loginHint(loginHint: string): Promise {\r\n return client.post({\r\n url: '/IsuCommon/ISU_auth/api/loginHint',\r\n data: { username: loginHint },\r\n })\r\n },\r\n \r\n logout(): Promise {\r\n // logout은 api의 ResponseWrapper에 의해 정제된 데이터가 아니므로 HTTP 사용\r\n return client.get({ url: '/IsuCommon/ISU_auth/api/logout' });\r\n },\r\n}\r\n","import api from '@/api'\r\n\r\nexport default {\r\n getCurrentUser(): Promise {\r\n return api.get({ url: '/IsuCommon/ISU_auth/api/current' })\r\n },\r\n\r\n getPhotoUrl(address: string): Promise {\r\n return api.get({\r\n url: `/api/account/photo/${address}`,\r\n })\r\n },\r\n\r\n getPhotoUrlByCodes(codes: string[]): Promise {\r\n return api.post({\r\n url: '/api/account/photo/byCodes',\r\n data: codes\r\n });\r\n },\r\n\r\n // getUser(email: string): Promise {\r\n // return api.get({\r\n // url: `/api/hr/person`,\r\n // params: {\r\n // email,\r\n // },\r\n // });\r\n // },\r\n\r\n // getUserByPersonCode(personCode: string): Promise {\r\n // return api.get({\r\n // url: `/api/hr/department/person`,\r\n // params: {\r\n // personCode,\r\n // }\r\n // })\r\n // }\r\n}\r\n","import clinet from '@/api'\r\n\r\nexport default {\r\n check() {\r\n const { pathname, search } = window.location\r\n const url = pathname + search\r\n return clinet.get({\r\n url: '/common/accesscontrol/api',\r\n params: {\r\n ep: url,\r\n },\r\n })\r\n },\r\n}\r\n","import auth from './auth'\r\nimport account from './account'\r\nimport ac from './access-control'\r\n\r\nconst apiAccount = {\r\n auth,\r\n account,\r\n ac\r\n}\r\nexport default apiAccount\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GraphList.vue?vue&type=style&index=0&id=497dd5af&lang=scss&scoped=true&\"","export enum EnumCalendarViewType {\r\n /**\r\n * 일별 보기\r\n */\r\n Daily = 'day',\r\n\r\n /**\r\n * 주별 보기\r\n */\r\n Week = 'week',\r\n\r\n /**\r\n * 월별 보기\r\n */\r\n Month = 'month',\r\n}","declare global {\r\n namespace datehelper {\r\n export interface Duration {\r\n Seconds: number,\r\n Minutes: number,\r\n Hours: number,\r\n Days: number,\r\n totalSeconds: number,\r\n totalMinutes: number,\r\n totalHours: number,\r\n totalDays: number,\r\n durationText: string, // 1 일, 1.5 시간\r\n durationValue: string, // 1.12:30:00\r\n error: string,\r\n }\r\n }\r\n}\r\nimport {i18n} from './i18n-setup';\r\nexport const uGetZero = (value: number | string) => value.toString().length === 1 ? `0${value}` : value;\r\n/**\r\n * IE에서 문자열로 날짜 생성 시 ISOString 포멧으로 강제변환 함수 \r\n * @param value 문자열 yyyy-MM-dd HH:mm:ss 형식의 경우 변환\r\n */\r\nexport const IEDate = function (value: any): Date {\r\n if (typeof value == typeof '') {\r\n if (\r\n value.indexOf('-') != -1 &&\r\n value.indexOf(':') != -1 &&\r\n value.indexOf(' ') != -1 &&\r\n value.indexOf('T') == -1 &&\r\n value.indexOf('Z') == -1\r\n ) {\r\n return new Date(value.replace(' ', 'T'));\r\n }\r\n }\r\n return new Date(value);\r\n}\r\n\r\n/**\r\n * 날짜를 형식 문자열로 변환합니다\r\n * @param format \r\n * @param date \r\n */\r\nexport const uGetDateFormat = function (format: string, date: Date = new Date()): string {\r\n const _date = IEDate(date.getTime());\r\n\r\n return format.replace(/(yyyy|mm|dd|MM|DD|H|i|s)/g, (t: string): any => {\r\n switch (t) {\r\n case \"yyyy\":\r\n return _date.getFullYear();\r\n case \"mm\":\r\n return uGetZero(_date.getMonth() + 1);\r\n case \"dd\":\r\n return uGetZero(_date.getDate());\r\n case \"MM\":\r\n return uGetZero(_date.getMonth() + 1);\r\n case \"DD\":\r\n return uGetZero(_date.getDate());\r\n case \"H\":\r\n return uGetZero(_date.getHours());\r\n case \"i\":\r\n return uGetZero(_date.getMinutes());\r\n case \"s\":\r\n return uGetZero(_date.getSeconds());\r\n default:\r\n return \"\";\r\n }\r\n });\r\n}\r\n/**\r\n * 요일 배열을 반환합니다 text / value\r\n */\r\nexport const uGetWeekArray = function (WeekArray: string[] = [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"]) {\r\n let list = [];\r\n\r\n for (let i = 0; i < WeekArray.length; i++) {\r\n const week = WeekArray[i];\r\n list.push({ text: week, value: i });\r\n }\r\n\r\n return list;\r\n}\r\n\r\n/**\r\n * 날짜의 시,분,초,밀리초를 0으로 초기화하여 날짜비교만 가능하도록 변경합니다\r\n * @param date \r\n */\r\nexport const uGetDateOnly = function (date: Date = new Date()): Date {\r\n let rDate = IEDate(date);\r\n return IEDate('' + rDate.getFullYear() + '-' + uGetZero(rDate.getMonth() + 1) + '-' + uGetZero(rDate.getDate()) + 'T00:00:00');\r\n}\r\n\r\n/**\r\n * 날짜의 '전주' 첫일로 세팅하여 반환합니다\r\n * @param date \r\n * @param firstDay \r\n */\r\nexport const uGetWeekStartPrev = function (date: Date = new Date(), firstDay: number = 0): Date {\r\n //우선 현재 주 시작날짜 받아옴\r\n let mDate = uGetWeekStartDate(date);\r\n \r\n mDate.setDate(mDate.getDate() - 7);\r\n return mDate;\r\n}\r\n\r\n\r\n/**\r\n * 날짜의 '해당주' 첫일로 세팅하여 반환합니다\r\n * @param date \r\n * @param firstDay \r\n */\r\nexport const uGetWeekStartDate = function (date: Date = new Date(), firstDay: number = 0): Date {\r\n let mDate = IEDate(date);\r\n while (mDate.getDay() != firstDay) {\r\n mDate.setDate(mDate.getDate() - 1);\r\n }\r\n return mDate;\r\n}\r\n\r\n/**\r\n * 날짜의 '해당주' 마지막일로 세팅하여 반환합니다\r\n * @param date \r\n * @param firstDay \r\n */\r\nexport const uGetWeekEndDate = function (date: Date = new Date(), firstDay: number = 0): Date {\r\n let mDate = IEDate(date);\r\n while (mDate.getDay() != firstDay) {\r\n mDate.setDate(mDate.getDate() - 1);\r\n }\r\n \r\n mDate.setDate(mDate.getDate() + 6); \r\n return mDate;\r\n}\r\n\r\n\r\n/**\r\n * 날짜의 '다음주' 마지막일로 세팅하여 반환합니다\r\n * @param date \r\n * @param firstDay \r\n */\r\nexport const uGetWeekEndNext = function (date: Date = new Date(), firstDay: number = 0): Date{\r\n let mDate = uGetWeekEndDate(date);\r\n \r\n mDate.setDate(mDate.getDate() + 7);\r\n return mDate;\r\n}\r\n\r\n/**\r\n * 날짜의 '전월' 첫일로 세팅하여 반환합니다\r\n * @param date \r\n * @param isForDisplay \r\n * @param firstDay \r\n */\r\nexport const uGetMonthStartPrev = function (date: Date = new Date(), isForDisplay: boolean = true, firstDay:number = 0): Date {\r\n let mDate = IEDate(date);\r\n mDate.setMonth(mDate.getMonth() - 1);\r\n mDate.setDate(1);\r\n return mDate;\r\n}\r\n\r\n/**\r\n * 날짜의 '해당월' 첫일로 세팅하여 반환합니다\r\n * @param date \r\n */\r\nexport const uGetMonthStartDate = function (date: Date = new Date(), isForDisplay: boolean = true, firstDay:number = 0): Date {\r\n let mDate = IEDate(date);\r\n mDate.setDate(1);\r\n return mDate;\r\n}\r\n\r\n/**\r\n * 날짜의 '해당월' 마지막일로 세팅하여 반환합니다\r\n * @param date \r\n */\r\nexport const uGetMonthEndDate = function (date: Date = new Date(), isForDisplay: boolean = true, firstDay:number = 0): Date {\r\n let mDate = IEDate(date);\r\n mDate.setDate(1);\r\n mDate.setMonth(mDate.getMonth() + 1);\r\n mDate.setDate(0);\r\n return mDate;\r\n}\r\n/**\r\n * 날짜의 '다음월' 마지막일로 세팅하여 반환합니다\r\n * @param date \r\n * @param isForDisplay \r\n * @param firstDay \r\n */\r\nexport const uGetMonthEndNext = function (date: Date = new Date(), isForDisplay: boolean = true, firstDay:number = 0): Date {\r\n let mDate = IEDate(date);\r\n mDate.setMonth(mDate.getMonth() + 2);\r\n mDate.setDate(0);\r\n return mDate;\r\n}\r\n\r\n/**\r\n * \r\n * @param date 선택날짜\r\n * @param bdate 현재날짜\r\n */\r\nexport const uGetDateForDisplayMonth = function (date: Date, mdate: Date, firstDay:number = 0): Date {\r\n let monthDates = uGetDaysInMonth(mdate);\r\n let strDate = uGetDateFormat('yyyy-MM-DD', date);\r\n let strMonthDates = monthDates.map((x) => uGetDateFormat('yyyy-MM-DD', x));\r\n\r\n if (strMonthDates.indexOf(strDate) != -1) {\r\n return uGetMonthStartDate(mdate, true, firstDay);\r\n } else {\r\n return date;\r\n }\r\n}\r\n\r\n/**\r\n * 현재월의 날짜 집합을 리턴합니다\r\n * @param date \r\n * @param isForDisplay 표시용도의 경우 전월 날짜와 다음월 날짜로 남은 공간을 채워줍니다 (기본 true)\r\n */\r\nexport const uGetDaysInMonth = function (date: Date = new Date(), isForDisplay: boolean = true, firstDay: number = 0, duration: number = 0): Date[] {\r\n \r\n let DateArray:Date[] = [];\r\n let behindArray:Date[] = [];\r\n\r\n let StartDate = uGetMonthStartDate(date, isForDisplay, firstDay);\r\n //let StartDate = uGetMonthStartPrev(date, isForDisplay, firstDay);\r\n let PrevShiftDays = StartDate.getDay();\r\n\r\n let EndDate = uGetMonthEndDate(date, isForDisplay, firstDay);\r\n //let EndDate = uGetMonthEndNext(date, isForDisplay, firstDay);\r\n let EndDateNum = EndDate.getDate();\r\n let NextShiftDays = 7 - EndDate.getDay() - 1;\r\n\r\n // UI 그리는 용도의 경우 전월 날짜를 채워줌\r\n if (isForDisplay) {\r\n for (let i = 0; i < PrevShiftDays; i++) {\r\n let prvDate = IEDate(StartDate);\r\n prvDate.setDate(prvDate.getDate() - PrevShiftDays + i);\r\n DateArray.push(prvDate);\r\n \r\n }\r\n }\r\n\r\n //console.log('DateUtil - DateArray(전월)', DateArray);\r\n\r\n for (let i = 0; i < EndDateNum; i++) {\r\n let curDate = IEDate(StartDate);\r\n curDate.setDate(curDate.getDate() + i);\r\n DateArray.push(curDate);\r\n }\r\n\r\n //console.log('DateUtil - DateArray(현재월)', DateArray);\r\n\r\n // UI 그리는 용도의 경우 다음월 날짜를 채워줌\r\n \r\n if (isForDisplay) {\r\n for (let i = 0; i < NextShiftDays; i++) {\r\n let nxtDate = IEDate(EndDate);\r\n nxtDate.setDate(nxtDate.getDate() + i + 1);\r\n DateArray.push(nxtDate);\r\n }\r\n }\r\n\r\n //console.log('DateUtil - DateArray(다음월)', DateArray);\r\n\r\n if(firstDay>0){\r\n let newNextShiftDays = 7 - ((EndDate.getDay() + firstDay) % 7) - 1;\r\n let isAddedFront = false;\r\n let isAddedNext = false; \r\n\r\n let backDate = IEDate(DateArray[0]); \r\n backDate.setDate(backDate.getDate() - 1);\r\n let backMonthArray = uGetDaysInMonth(backDate, true, 0);\r\n let newArray = backMonthArray.slice(backMonthArray.length - 7);\r\n \r\n if (newArray.filter((x) => x.getDate() == (DateArray[DateArray.length - 1] as Date).getDate())) {\r\n if( StartDate.toString() == DateArray[0].toString())\r\n {\r\n newArray = backMonthArray.slice(backMonthArray.length - 7);\r\n }\r\n else{\r\n newArray = backMonthArray.slice((backMonthArray.length - 14), backMonthArray.length - 7);\r\n }\r\n }\r\n\r\n DateArray = [\r\n ...newArray,\r\n ...DateArray,\r\n ];\r\n isAddedFront = true; \r\n\r\n DateArray.splice(0,firstDay); \r\n let isRemoveFirstLine = !DateArray.filter((x, index) => {\r\n return index < 7 && x.getDate() == 1;\r\n }).length;\r\n\r\n if (isRemoveFirstLine) {\r\n DateArray = DateArray.slice(7);\r\n }\r\n \r\n //꼬리\r\n while (Number(DateArray[DateArray.length - 1]) < Number(EndDate) || DateArray.length % 7 != 0) {\r\n let newDate = IEDate(DateArray[DateArray.length - 1]);\r\n newDate.setDate(newDate.getDate() + 1);\r\n DateArray.push(newDate);\r\n } \r\n\r\n if (Number(DateArray[DateArray.length - 7]) > Number(EndDate)) {\r\n DateArray.splice(DateArray.length - 7);\r\n }\r\n }\r\n return DateArray;\r\n}\r\n\r\nexport const uGetDaysInMonthThree = function (date: Date = new Date(), isForDisplay: boolean = true, firstDay: number = 0): Date[] {\r\n \r\n let DateArray:Date[] = [];\r\n let behindArray:Date[] = [];\r\n\r\n \r\n let StartDate = uGetMonthStartPrev(date, isForDisplay, firstDay);\r\n let EndDate = uGetMonthEndNext(date, isForDisplay, firstDay);\r\n let curDate = IEDate(StartDate);\r\n\r\n let PrevShiftDays = StartDate.getDay();\r\n let EndDateNum = EndDate.getDate();\r\n let NextShiftDays = 7 - EndDate.getDay() - 1;\r\n\r\n // UI 그리는 용도의 경우 전월 날짜를 채워줌\r\n if (isForDisplay) {\r\n for (let i = 0; i < PrevShiftDays; i++) {\r\n let prvDate = IEDate(StartDate);\r\n prvDate.setDate(prvDate.getDate() - PrevShiftDays + i);\r\n DateArray.push(prvDate);\r\n \r\n }\r\n }\r\n\r\n // curDate와 EndDate 비교해서 월 사이 날짜 채워주기\r\n for (var i = 0; uGetDateOnly(curDate) < uGetDateOnly(EndDate); i++) { \r\n DateArray.push(uGetDateOnly(curDate));\r\n curDate.setDate(curDate.getDate() + 1);\r\n }\r\n\r\n // UI 그리는 용도의 경우 다음월 날짜를 채워줌\r\n if (isForDisplay) {\r\n for (let i = 0; i < NextShiftDays; i++) {\r\n let nxtDate = IEDate(EndDate);\r\n nxtDate.setDate(nxtDate.getDate() + i + 1);\r\n DateArray.push(nxtDate);\r\n }\r\n }\r\n \r\n //console.log('MonthArray', DateArray);\r\n\r\n return DateArray;\r\n\r\n}\r\n\r\n\r\n/**\r\n * 현재주의 날짜 집합을 리턴합니다\r\n * @param date \r\n * @param isForDisplay 표시용도의 경우 전월 날짜와 다음월 날짜로 남은 공간을 채워줍니다 (기본 true)\r\n */\r\nexport const uGetDaysInWeek = function (date: Date = new Date(), firstDay:number = 0): Date[] {\r\n let DateArray = [];\r\n\r\n let StartDate = uGetWeekStartDate(date, firstDay);\r\n let EndDate = uGetWeekEndDate(date, firstDay);\r\n\r\n for (let i = 0; uGetDateOnly(StartDate) <= uGetDateOnly(EndDate); i++) {\r\n DateArray.push(uGetDateOnly(StartDate));\r\n StartDate.setDate(StartDate.getDate() + 1);\r\n }\r\n\r\n return DateArray;\r\n}\r\n\r\n/**\r\n * 날짜가 시작일 종료일 범위에 포함하는지 여부를 리턴\r\n * @param date 날짜\r\n * @param start 시작일\r\n * @param end 종료일\r\n */\r\nexport const uGetIsInDate = function (date: Date, start: Date, end: Date): boolean {\r\n date.setHours(0);\r\n date.setMinutes(0);\r\n date.setSeconds(0);\r\n\r\n let sDate = IEDate(start);\r\n let eDate = IEDate(end);\r\n\r\n sDate.setHours(0);\r\n sDate.setMinutes(0);\r\n sDate.setSeconds(0);\r\n\r\n eDate.setHours(23);\r\n eDate.setMinutes(59);\r\n eDate.setSeconds(59);\r\n\r\n return Number(date) >= Number(sDate) && Number(date) <= Number(eDate);\r\n}\r\n\r\n/**\r\n * 날짜가 시작일 종료일 범위에 포함하는지 여부를 리턴 (시간, 분, 초 포함)\r\n * @param date 날짜\r\n * @param start 시작일\r\n * @param end 종료일\r\n * @param isInitDateTime 기준날짜를 00:00:00 으로 초기화 여부 (기본 false)\r\n */\r\nexport const uGetIsInDateTime = function (date: Date, start: Date, end: Date, isInitDateTime = false): boolean {\r\n if (isInitDateTime) {\r\n date.setHours(0);\r\n date.setMinutes(0);\r\n date.setSeconds(0);\r\n }\r\n\r\n return Number(date) >= Number(start) && Number(date) <= Number(end);\r\n}\r\n\r\n/**\r\n * 날짜가 시작일 종료일 범위에 포함하는지 여부를 리턴 (시간, 분, 초 포함), 초과 미만\r\n * @param date 날짜\r\n * @param start 시작일\r\n * @param end 종료일\r\n * @param isInitDateTime 기준날짜를 00:00:00 으로 초기화 여부 (기본 false)\r\n */\r\nexport const uGetIsInDateTime2 = function (date: Date, start: Date, end: Date, isInitDateTime = false): boolean {\r\n let oDate = new Date(date);\r\n if (isInitDateTime) {\r\n oDate.setHours(0);\r\n oDate.setMinutes(0);\r\n oDate.setSeconds(0);\r\n }\r\n\r\n return Number(oDate) > Number(start) && Number(oDate) < Number(end);\r\n}\r\n\r\n/**\r\n * 시간 배열을 가져옵니다 ({text, value} 배열)\r\n * @param resFunc $t 다국어 함수\r\n */\r\nexport const uGetTimeArray = function (displayArr:string[] = ['오전','오후']): Array {\r\n let list: Array = [];\r\n for (let i = 0; i < 24; i += 0.5) {\r\n const left: string = uGetZero(Math.floor(i)).toString();\r\n const right: string = i - Math.floor(i) == 0.5 ? '30' : '00'; \r\n var ampm = '';\r\n if (i < 12) {\r\n ampm = displayArr[0];\r\n } else {\r\n ampm = displayArr[1];\r\n }\r\n const result = ampm + ' ' + left + ':' + right;\r\n list.push({ text: result, value: left + ':' + right + ':00', num: i });\r\n }\r\n\r\n return list;\r\n}\r\n/**\r\n * 월 배열을 가져옵니다 ({text, value} 배열)\r\n */\r\nexport const uGetMonthArray = function (displayArr:string[] = []): Array {\r\n let list: Array = [];\r\n\r\n for (let i = 1; i <= 12; i++) {\r\n let text = i + '월';\r\n if (displayArr.length > i) {\r\n text = displayArr[i];\r\n }\r\n list.push({ text: text, value: i });\r\n }\r\n return list;\r\n}\r\n\r\n\r\n/**\r\n * 두 날짜차이의 총 시간을 분으로 반환합니다\r\n * @param start 시작날짜\r\n * @param end 종료날짜\r\n */\r\nexport const uGetTotalDiffMinutes = function (start: Date, end: Date): number {\r\n let diffMs = Number(end) - Number(start); // milliseconds between now & Christmas\r\n // let diffDays = Math.floor(diffMs / 86400000); // days\r\n // let diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours\r\n // let diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes\r\n let totalMins = Math.floor((diffMs / 1000) / 60);\r\n return totalMins;\r\n}\r\n\r\n/**\r\n * 소스 날짜의 시작/종료 시간이 타겟 날짜의 시작/종료시과 서로 포함된 관계인지 여부를 리턴\r\n * @param sourceStart 소스날짜 시작시간\r\n * @param sourceEnd 소스날짜 종료시간\r\n * @param targetStart 타겟날짜 시작시간\r\n * @param targetEnd 타겟날짜 종료시간\r\n */\r\nexport const uGetInDateBoundary = function (sourceStart: Date, sourceEnd: Date, targetStart: Date, targetEnd: Date): boolean {\r\n let ss = Number(sourceStart);\r\n let se = Number(sourceEnd);\r\n let ts = Number(targetStart);\r\n let te = Number(targetEnd);\r\n\r\n let isTargetContain = (ss < ts && se > ts) || (ss < te && se > te);\r\n let isSourceContain = (ts < ss && te > ss) || (ts < se && te > se);\r\n let isSame = ss == ts && se == te;\r\n\r\n return isTargetContain || isSourceContain || isSame;\r\n}\r\n\r\n/**\r\n * 특정 날짜를 특정 수치만큼 변경하여 반환합니다\r\n * @param difValue 날짜 변경 수치\r\n * @param difDate 날짜 지정 (기본 new Date())\r\n * @param difType 단위 타입 time / sec / min / hour / date / month / year (기본 date)\r\n */\r\nexport const uGetDate = function(\r\n difValue: number,\r\n difDate: Date = new Date(),\r\n difType:\r\n | 'time'\r\n | 'sec'\r\n | 'min'\r\n | 'hour'\r\n | 'date'\r\n | 'month'\r\n | 'year' = 'date'\r\n ): Date {\r\n switch (difType) {\r\n case 'time':\r\n difDate.setTime(difDate.getTime() + difValue);\r\n break;\r\n case 'sec':\r\n difDate.setSeconds(difDate.getSeconds() + difValue);\r\n break;\r\n case 'min':\r\n difDate.setMinutes(difDate.getMinutes() + difValue);\r\n break;\r\n case 'hour':\r\n difDate.setHours(difDate.getHours() + difValue);\r\n break;\r\n case 'date':\r\n difDate.setDate(difDate.getDate() + difValue);\r\n break;\r\n case 'month':\r\n difDate.setMonth(difDate.getMonth() + difValue);\r\n break;\r\n case 'year':\r\n difDate.setFullYear(difDate.getFullYear() + difValue);\r\n break;\r\n default:\r\n break;\r\n }\r\n return difDate;\r\n };\r\n\r\n/**\r\n * 문자열을 Duration 객체로 반환합니다\r\n * @param str ex) 1.5 시간\r\n */\r\nexport const getDurationFromText = function (str: string) { \r\n let text = (getStringWithoutNumber(str) + '').toLowerCase().trim();\r\n let numstr = str.replace(text, '');\r\n let num = Number(getOnlyNumber(str));\r\n let error = '';\r\n let sumSec = 0; \r\n\r\n if (!isNaN(num)) {\r\n switch (text) {\r\n case 's':\r\n case 'sec':\r\n case 'secs':\r\n case 'second':\r\n case 'seconds':\r\n case '초':\r\n sumSec = num;\r\n break;\r\n case 'm':\r\n case 'min':\r\n case 'mins':\r\n case 'minute':\r\n case 'minutes':\r\n case '분':\r\n sumSec = num * 60;\r\n break;\r\n case 'h':\r\n case 'hour':\r\n case 'hours':\r\n case '시':\r\n case '시간':\r\n sumSec = num * 60 * 60;\r\n break;\r\n case 'd':\r\n case 'day':\r\n case 'days':\r\n case 'date':\r\n case '일':\r\n sumSec = num * 60 * 60 * 24;\r\n break;\r\n case 'w':\r\n case 'week':\r\n case 'weeks':\r\n case '주':\r\n sumSec = num * 60 * 60 * 24 * 7;\r\n break;\r\n default:\r\n error = `${i18n.t('message.M_Common_DateMsg2', {text: text})} `;\r\n break;\r\n }\r\n } else {\r\n error = `${i18n.t('message.M_Common_DateMsg1')}`;\r\n }\r\n\r\n let Seconds = 0;\r\n let Minutes = 0;\r\n let Hours = 0;\r\n let Days = 0;\r\n let Weeks = 0;\r\n\r\n let fixedDigit = 10;\r\n let totalSeconds = sumSec + 0;\r\n let totalWeeks = Number((sumSec / (86400 * 7)).toFixed(fixedDigit));\r\n let totalDays = Number((sumSec / 86400).toFixed(fixedDigit));\r\n let totalHours = Number((sumSec / 3600).toFixed(fixedDigit));\r\n let totalMins = Number((sumSec / 60).toFixed(fixedDigit));\r\n\r\n Weeks = Math.floor(sumSec / (86400 * 7));\r\n sumSec -= (Weeks * (86400 * 7));\r\n\r\n Days = Math.floor(sumSec / 86400) % 7;\r\n sumSec -= Days * 86400;\r\n\r\n Hours = Math.floor(sumSec / 3600) % 24;\r\n sumSec -= Hours * 3600;\r\n\r\n Minutes = Math.floor(sumSec / 60) % 60;\r\n sumSec -= Minutes * 60;\r\n\r\n Seconds = sumSec % 60;\r\n\r\n let time = uGetZero(Hours) + ':' + uGetZero(Minutes) + ':' + uGetZero(Seconds);\r\n\r\n let result = {\r\n totalSeconds: totalSeconds,\r\n totalMinutes: totalMins,\r\n totalHours: totalHours,\r\n totalDays: totalDays,\r\n totalWeeks: totalWeeks,\r\n Seconds: Seconds,\r\n Minutes: Minutes,\r\n Hours: Hours,\r\n Days: Days,\r\n durationText: str,\r\n durationValue: '',\r\n error: error,\r\n } as datehelper.Duration;\r\n\r\n if ((Days + (Weeks * 7)) > 0) {\r\n result.durationValue = (Days + (Weeks * 7)) + '.' + time;\r\n } else {\r\n result.durationValue = time;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * 종료일과 시작일의 차를 Duration 객체로 반환합니다\r\n * @param end \r\n * @param start \r\n */\r\nexport const getDurationFromDate = function (end: string | Date, start: string | Date, isAbs:boolean = true, displayArr:string[] = []) {\r\n \r\n if (typeof end === typeof '') {\r\n end = (end as string).split('+')[0];\r\n end = IEDate(end as string);\r\n }\r\n\r\n if (typeof start === typeof '') {\r\n start = (start as string).split('+')[0];\r\n start = IEDate(start as string);\r\n }\r\n\r\n let diff = isAbs ? Math.abs(Number(end) - Number(start)) : Number(end) - Number(start);\r\n let sumSec = diff / 1000;\r\n let input = getTextFromDuration(sumSec, displayArr);\r\n let Seconds = 0;\r\n let Minutes = 0;\r\n let Hours = 0;\r\n let Days = 0;\r\n let Weeks = 0;\r\n\r\n let fixedDigit = 10;\r\n let totalSeconds = sumSec + 0;\r\n let totalWeeks = Number((sumSec / (86400 * 7)).toFixed(fixedDigit));\r\n let totalDays = Number((sumSec / 86400).toFixed(fixedDigit));\r\n let totalHours = Number((sumSec / 3600).toFixed(fixedDigit));\r\n let totalMins = Number((sumSec / 60).toFixed(fixedDigit));\r\n\r\n Weeks = Math.floor(sumSec / (86400 * 7));\r\n sumSec -= (Weeks * (86400 * 7));\r\n\r\n Days = Math.floor(sumSec / 86400);\r\n sumSec -= Days * 86400;\r\n\r\n Hours = Math.floor(sumSec / 3600) % 24;\r\n sumSec -= Hours * 3600;\r\n\r\n Minutes = Math.floor(sumSec / 60) % 60;\r\n sumSec -= Minutes * 60;\r\n\r\n Seconds = sumSec % 60;\r\n\r\n let time = uGetZero(Hours) + ':' + uGetZero(Minutes) + ':' + uGetZero(Seconds);\r\n\r\n let result = {\r\n totalSeconds: totalSeconds,\r\n totalMinutes: totalMins,\r\n totalHours: totalHours,\r\n totalDays: totalDays,\r\n totalWeeks: totalWeeks,\r\n Seconds: Seconds,\r\n Minutes: Minutes,\r\n Hours: Hours,\r\n Days: Days,\r\n durationText: input,\r\n durationValue: '',\r\n error: '',\r\n } as datehelper.Duration;\r\n\r\n if (Days > 0) {\r\n result.durationValue = Days + '.' + time;\r\n } else {\r\n result.durationValue = time;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Duration 문자열을 일반 시간 문자열로 반환합니다\r\n * @param duration 1.00:30:00 형식 문자열\r\n * @param displayArr 반환 시간 단위 문자배열 (기본값 : ['초','분','시간','일','주'])\r\n */\r\nexport const getTextFromDate = function (duration: string, displayArr: string[] = []) {\r\n let days = 0;\r\n\r\n let daysStr = duration.split('.')[0];\r\n let timeStr = duration + '';\r\n if (daysStr != duration) {\r\n days = Number(daysStr);\r\n timeStr = duration.split('.')[1];\r\n }\r\n\r\n let tarr = timeStr.split(':');\r\n\r\n let hours = Number(tarr[0]);\r\n let mins = Number(tarr[1]);\r\n let secs = Number(tarr[2]);\r\n\r\n let sumSec = (days * 86400) + (hours * 3600) + (mins * 60) + secs;\r\n return getTextFromDuration(sumSec, displayArr);\r\n}\r\n\r\n/**\r\n * 초(Second)의 합으로 일반 시간 문자열로 반환합니다\r\n * @param sumSec 초(Seconds)\r\n * @param displayArr 반환 시간 단위 문자배열 (기본값 : ['초','분','시간','일','주'])\r\n */\r\nexport const getTextFromDuration = function (sumSec: number, displayArr: string[] = []) {\r\n let _displayArr = ['초', '분', '시간', '일', '주'];\r\n\r\n if (displayArr.length) {\r\n _displayArr = displayArr;\r\n }\r\n\r\n let fixedDigit = 10;\r\n\r\n let totalWeeks = Number((sumSec / (86400 * 7)).toFixed(fixedDigit));\r\n let totalDays = Number((sumSec / 86400).toFixed(fixedDigit));\r\n let totalHours = Number((sumSec / 3600).toFixed(fixedDigit));\r\n let totalMins = Number((sumSec / 60).toFixed(fixedDigit));\r\n\r\n let array = [sumSec, totalMins, totalHours, totalDays, totalWeeks].map((x, idx) => {\r\n return { value: x + '', text: _displayArr[idx], idx: idx };\r\n });\r\n\r\n array.sort((a, b) => a.value.replace('.', '').length - b.value.replace('.', '').length || Number(a.value) - Number(b.value) || a.idx - b.idx);\r\n\r\n let result = array[0];\r\n\r\n return result.value + ' ' + result.text;\r\n}\r\n\r\n/**\r\n * 문자열만 반환합니다\r\n * @param str \r\n */\r\nexport const getStringWithoutNumber = function (str: string) {\r\n return str.replace(/[-]{0,1}[\\d]*[.]{0,1}[\\d]+/g, '');\r\n}\r\n\r\n/**\r\n * 숫자만 반환합니다\r\n * @param str \r\n */\r\nexport const getOnlyNumber = function (str: string) {\r\n let array: RegExpMatchArray | null = str.match(/[-]{0,1}[\\d]*[.]{0,1}[\\d]+/g);\r\n return array?.join('');\r\n}\r\n\r\n/**\r\n * 날짜 기간선택 Duration 배열\r\n */\r\nexport const getDateTimeRangeTextArray = function () {\r\n let array = [\r\n '0 분',\r\n '5 분',\r\n '10 분',\r\n '15 분',\r\n '30 분',\r\n '1 시간',\r\n '2 시간',\r\n '3 시간',\r\n '4 시간',\r\n '5 시간',\r\n '6 시간',\r\n '7 시간',\r\n '8 시간',\r\n '9 시간',\r\n '10 시간',\r\n '11 시간',\r\n '0.5 일',\r\n '18 시간',\r\n '1 일',\r\n '2 일',\r\n '3 일',\r\n '4 일',\r\n '1 주',\r\n '2 주',\r\n ];\r\n let result = array.map((x) => getDurationFromText(x));\r\n return result;\r\n}\r\n\r\nexport const uGetTimeTextFromDurationValue = function(dvalue: string, displayArr: string[] = ['오전','오후']) {\r\n let tarr = dvalue.indexOf('.') == -1 ? dvalue.split(':') : dvalue.split('.')[1].split(':');\r\n \r\n let hours = Number(tarr[0]);\r\n let mins = Number(tarr[1]);\r\n let secs = Number(tarr[2]);\r\n\r\n let ampmStr = '';\r\n\r\n if (hours < 12) {\r\n ampmStr = displayArr[0];\r\n } else {\r\n ampmStr = displayArr[1];\r\n }\r\n\r\n let text = `${ampmStr} ${uGetZero(hours)}:${uGetZero(mins)}`;\r\n\r\n return { text: text, value: dvalue, num: hours + Number((mins / 60).toFixed(2)) };\r\n}\r\n\r\nexport const DateAndTimeSplitor = function(dateString: string) { \r\n let arr:string[] = [];\r\n if (dateString && typeof dateString == typeof '') {\r\n if (dateString.indexOf(' ') != -1) {\r\n arr = dateString.split(' ');\r\n } else if (dateString.indexOf('T') != -1) {\r\n arr = dateString.split('T');\r\n }\r\n\r\n if (arr.length > 1) {\r\n if (arr[1].indexOf('+') != -1) {\r\n arr = [arr[0], arr[1].split('+')[0]];\r\n }\r\n }\r\n }\r\n if (arr.length) {\r\n return arr;\r\n } else {\r\n return [dateString];\r\n }\r\n}\r\n\r\n\r\n/**\r\n * 날짜를 형식 문자열로 변환합니다. (Board 에서 사용)\r\n * @param format \r\n * @param date \r\n */\r\nexport const uGetDateFormat_UTC = function (format: string, date: Date = new Date()): string {\r\n const _date = IEDate(date.getTime());\r\n\r\n return format.replace(/(yyyy|mm|dd|MM|DD|H|i|s)/g, (t: string): any => {\r\n switch (t) {\r\n case \"yyyy\":\r\n return _date.getFullYear();\r\n case \"mm\":\r\n return _date.getMonth() + 1;\r\n case \"dd\":\r\n return _date.getDate();\r\n case \"MM\":\r\n return uGetZero(_date.getMonth() + 1);\r\n case \"DD\":\r\n return uGetZero(_date.getDate());\r\n case \"H\":\r\n return uGetZero(_date.getHours() + 9);\r\n case \"i\":\r\n return uGetZero(_date.getMinutes());\r\n case \"s\":\r\n return uGetZero(_date.getSeconds());\r\n default:\r\n return \"\";\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * 일주일 전을 계산합니다. (Board 에서 사용)\r\n * @param format \r\n * @param date \r\n */\r\nexport const getbeforeWeek = function(format: string, date: Date = new Date()): string {\r\n const _date = new Date(date.getTime());\r\n\r\n return format.replace(/(yyyy|mm|dd|MM|DD|H|i|s)/g, (t: string): any => \r\n {\r\n switch (t) {\r\n case \"yyyy\":\r\n return _date.getFullYear();\r\n case \"mm\":\r\n return _date.getMonth() + 1;\r\n case \"dd\":\r\n return _date.getDate();\r\n case \"MM\":\r\n return uGetZero(_date.getMonth() + 1);\r\n case \"DD\":\r\n return uGetZero(_date.getDate() - 7);\r\n case \"H\":\r\n return uGetZero(_date.getHours() + 9);\r\n case \"i\":\r\n return uGetZero(_date.getMinutes());\r\n case \"s\":\r\n return uGetZero(_date.getSeconds());\r\n default:\r\n return \"\";\r\n }\r\n });\r\n}\r\n\r\n","import api from '@/api';\r\nimport * as dateutil from '@/util/date-helper.ts';\r\n\r\nexport default { \r\n /**\r\n * 회의실 리스트를 가져옵니다.\r\n */\r\n getRooms(): Promise {\r\n return api.post({\r\n url: '/api/ews/Resource/rooms?funcName=getRooms',\r\n }).then((res: any) => {\r\n return res;\r\n })\r\n }, \r\n}","import api from '@/api';\r\n\r\nexport default {\r\n /**\r\n * 나의 일정트리를 가저옵니다\r\n * @param {string} parendId root Folder ID\r\n */\r\n getMyFolderItems(parentId?: string): Promise> {\r\n return api\r\n .post({\r\n url: '/api/ews/Dynamic/list?funcName=getMyFolderItems',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'ParentFolderId' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'DisplayName' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'UnreadCount' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n { key: 'USER_COLOR' },\r\n ],\r\n filters: [\r\n {\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Appointment',\r\n condition: 'isEqualTo'\r\n },\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Appointment.Birthday',\r\n condition: 'isEqualTo'\r\n }\r\n ]\r\n },\r\n {\r\n key: 'PR_ATTR_HIDDEN',\r\n value: 'false',\r\n condition: 'isEqualTo'\r\n }\r\n ],\r\n parentId: parentId, // 최초 로드시 기본 목록을 가져오기 위해 null 상태임\r\n wellKnownParentName: 'MsgFolderRoot', // parentId가 null이 아닌 경우 이 값은 무시됨. 기본 폴더 목록 가져오기 위함.\r\n type: 'Folder',\r\n Traversal: \"Deep\"\r\n }\r\n })\r\n .then((res: any) => {\r\n return res.items.map((item: calendar.Folder, idx: number) => {\r\n var rlt = {\r\n ...item,\r\n selected: false,\r\n index: idx,\r\n root_index: 0,\r\n checked: false,\r\n events: [],\r\n isEWS: true, \r\n };\r\n return rlt;\r\n });\r\n })\r\n },\r\n\r\n /**\r\n * 공유 폴더를 가져옵니다\r\n */\r\n getSharedFolders(): Promise> \r\n {\r\n return api\r\n .post({\r\n url: '/api/ews/Calendar/getsharedfolders?funcName=getSharedFolders',\r\n }).then((res: any) => {\r\n return res.map((item: calendar.Folder, idx: number) => {\r\n var rlt = {\r\n ...item,\r\n selected: false,\r\n index: idx,\r\n root_index: 0,\r\n checked: false,\r\n events: [],\r\n isEWS: true,\r\n isShared: true,\r\n };\r\n return rlt;\r\n });\r\n });\r\n },\r\n\r\n setFolderPermission(item: calendar.CalendarPermissionRequest) {\r\n return api\r\n .post({\r\n url: '/api/ews/Calendar/setfolderpermission?funcName=setFolderPermission',\r\n data: {\r\n EwsFolderID: item.EwsFolderID || null,\r\n EwsFolderName: item.EwsFolderName || null,\r\n CalendarPermissionUsers: item.CalendarPermissionUsers || null,\r\n } as calendar.CalendarPermissionRequest\r\n })\r\n },\r\n\r\n /**\r\n * 현재 공유된 사용자를 가져옵니다\r\n */\r\n getSharedUsers(folderId: string): Promise>\r\n {\r\n return api\r\n .post({\r\n url: '/api/ews/Calendar/getsharedusers?funcName=getSharedUsers',\r\n data: {\r\n id: folderId,\r\n }\r\n })\r\n },\r\n\r\n getFolder(id?: string): Promise {\r\n return api\r\n .post({\r\n url: \"/api/ews/dynamic/get?funcName=getFolder\",\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'DisplayName' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'UnreadCount' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n { key: 'USER_COLOR' },\r\n ], \r\n ItemId: id,\r\n type: 'Folder',\r\n },\r\n })\r\n .then((res) => {\r\n res.item.isEWS = true;\r\n return res.item;\r\n });\r\n },\r\n\r\n /**\r\n * 일정폴더명을 수정합니다\r\n * @param {calendar.Folder} folder 업데이트할 폴더\r\n */\r\n editFolderName(folder: calendar.Folder) {\r\n return api.post({\r\n url: '/api/ews/Dynamic/set?funcName=editFolderName',\r\n data: {\r\n fields: [ \r\n { key: 'DisplayName', value: folder.displayName },\r\n ],\r\n id: folder.id,\r\n type: 'Folder',\r\n },\r\n });\r\n },\r\n\r\n /**\r\n * 일정폴더색을 수정합니다\r\n * @param {calendar.Folder} folder 업데이트할 폴더\r\n */\r\n editFolderColor(folder: calendar.Folder) {\r\n return api.post({\r\n url: '/api/ews/Dynamic/set?funcName=editFolderColor',\r\n data: {\r\n fields: [ \r\n { key: 'USER_COLOR', value: folder.colorCode || 'none' },\r\n ],\r\n id: folder.id,\r\n type: 'Folder',\r\n },\r\n });\r\n },\r\n\r\n /**\r\n * 일정 폴더를 추가합니다.\r\n * @param {string} parentId\r\n * @param {string} name\r\n */\r\n addFolder(parentId: string, name: string): Promise {\r\n return api\r\n .post({\r\n url: '/api/ews/Folder/create?funcName=',\r\n data: {\r\n id: parentId,\r\n name: name,\r\n },\r\n })\r\n .then((result: any) => result.item.id);\r\n },\r\n\r\n /**\r\n * 일정 폴더를 삭제합니다.\r\n * @param {object} id 선택한 일정 폴더 ID [ id ]\r\n */\r\n deleteFolder(id: Array) {\r\n return api.delete({\r\n url: '/api/ews/Folder?funcName=deleteFolder',\r\n data: id,\r\n });\r\n }, \r\n}","import api from '@/api';\r\nimport * as dateutil from '@/util/date-helper';\r\n\r\nconst convertFolderToClient = function (item: any): calendar.Folder {\r\n let folder: calendar.Folder = {\r\n ...item,\r\n id: item.id,\r\n parentFolderId: item.parentID,\r\n colorCode: item.color || 'none',\r\n displayName: item.displayName,\r\n events: item.calendarEventList,\r\n dbType: item.type,\r\n deptCode: item.deptCode,\r\n } as calendar.Folder;\r\n return folder;\r\n}\r\n\r\nconst convertFolderToServer = function (item: calendar.Folder) {\r\n let folder: any = {\r\n ...item,\r\n ID: item.id,\r\n DisplayName: item.displayName,\r\n CalendarEventList: item.events,\r\n Type: item.dbType,\r\n Color: item.colorCode || 'none',\r\n ComCode: item.comCode,\r\n DeptCode: item.deptCode,\r\n PersonCode: item.personCode,\r\n };\r\n return folder;\r\n}\r\n\r\nconst convertAppointmentTypeToClient = function(value: number) {\r\n\tswitch (value) {\r\n\t\tcase 1: return 'Single';\r\n\t\tcase 2: return 'RecurringMaster';\r\n\t\tcase 3: return 'Occurrence';\r\n\t\tcase 4: return 'Exception';\r\n\t}\r\n\treturn 'Single';\r\n}\r\n\r\nconst convertAppointmentTypeToServer = function(value: string) {\r\n\tswitch (value) {\r\n\t\tcase 'Single': return 1;\r\n\t\tcase 'RecurringMaster': return 2;\r\n\t\tcase 'Occurrence' : return 3;\r\n\t\tcase 'Exception': return 4;\r\n\t}\r\n\treturn 1;\r\n}\r\n\r\nconst convertEventToClient = function(item: any):calendar.CalendarItem {\r\n let event: calendar.CalendarItem = {\r\n ...item,\r\n\t\tid: item.id || item.ID,\r\n db_ewsid: item.ewsid || item.EwsID || item.ewsID,\r\n\t\tappointmentType: convertAppointmentTypeToClient(item.appointmentType || item.AppointmentType),\r\n\t\tsubject: item.subject || item.Subject,\r\n\t\tlocation: item.location || item.Location,\r\n\t\tparentId: item.parentFolderID || item.ParentFolderID,\r\n\t\tparentFolderId: item.parentFolderID || item.ParentFolderID,\r\n\t\tstart: ((item.startDate || item.StartDate) + '').replace('T', ' '),\r\n\t\tend: ((item.endDate || item.EndDate) + '').replace('T', ' '),\r\n\t\torganizer: {\r\n\t\t\tname: item.organizerName || item.OrganizerName,\r\n\t\t\taddress: item.organizerAddress || item.OrganizerAddress,\r\n\t\t},\r\n\t\timportance: item.importance || item.Importance,\r\n\t\tisAllDayEvent : (item.isAllDayEvent || item.IsAllDayEvent) ? 'True' : 'False',\r\n isCancelled : item.isCancelled || item.IsCancelled,\r\n pidLidRecurrencePattern: item.recurringString || item.RecurringString,\r\n\t\tbody: item.calendarEventBody?.body || item.CalendarEventBody?.body,\t\t\r\n\t\trequiredAttendeesList: item.requiredAttendees && item.requiredAttendees.length ? item.requiredAttendees.map((x:any) => { return {name: x.Name, address: x.Address} }) : [],\r\n optionalAttendeesList: item.optionalAttendees && item.optionalAttendees.length ? item.requiredAttendees.map((x:any) => { return {name: x.Name, address: x.Address} }) : [],\r\n attachments: item.attachments || item.Attachments,\r\n code: item.attachmentFileCode || item.AttachmentFileCode,\r\n resourceId: item.resourceID || item.ResourceID,\r\n db_masterID: item.masterID || item.MasterID,\r\n db_selectID: item.selectGuid || item.SelectGuid,\r\n\t} as calendar.CalendarItem;\r\n return event;\r\n}\r\n\r\nconst convertEventToServer = function(item: calendar.CalendarItem) {\t\r\n let event: any = {\r\n\t\tID: item.id || 0,\r\n\t\tAppointmentType: convertAppointmentTypeToServer(item.appointmentType),\r\n Subject: item.subject,\r\n\t\tLocation: item.location,\r\n\t\tParentFolderID: item.parentId || (item as any).ParentFolderId,\r\n\t\tStartDate: dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(item.start)) + 'T' + item.starttime,\r\n\t\tEndDate: dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(item.end)) + 'T' + item.endtime,\r\n\t\tIsAllDayEvent: item.isAllDayEvent,\r\n IsCancelled: item.isCancelled,\r\n RecurringString: item.pidLidRecurrencePattern,\r\n\t\tOrganizerName: item.organizer?.name,\r\n\t\tOrganizerAddress: item.organizer?.address,\r\n\t\tImportance: item.importance,\r\n\t\tCalendarEventBody: {\r\n\t\t\tBody: item.body,\r\n\t\t},\r\n\t\tRequiredAttendeesList: item.requiredAttendees && item.requiredAttendees.length ? item.requiredAttendees.map((x) => { return {Name: x.name, Address: x.address} }) : [],\r\n OptionalAttendeesList: item.optionalAttendees && item.optionalAttendees.length ? item.requiredAttendees.map((x) => { return {Name: x.name, Address: x.address} }) : [],\r\n Attachments: item.attachments,\r\n AttachmentFileCode: item.code,\r\n ResourceID: item.resourceId,\r\n\t};\r\n return event;\r\n}\r\n\r\nexport default {\r\n\r\n /**\r\n * 현재 사용자 정보를 가져옵니다.\r\n */\r\n getCurrentUser(): Promise {\r\n return api.get({ url: '/api/account/user/current' });\r\n },\r\n\r\n getDeptFolderList(item: any) {\r\n item = convertFolderToServer(item);\r\n return api.post>({\r\n url: '/api/calendar/Calendar/getdeptfolderlist?funcName=getDeptFolderList',\r\n data: {\r\n PersonCode: item.PersonCode,\r\n }\r\n }).then((res) => {\r\n return res.map((data, idx) => {\r\n let result = {\r\n ...convertFolderToClient(data),\r\n selected: false,\r\n index: idx,\r\n checked: false,\r\n isEWS: false,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n getCompanyFolderList(item: any) {\r\n item = convertFolderToServer(item);\r\n return api.post>({\r\n url: '/api/calendar/Calendar/getcompanyfolderlist?funcName=getCompanyFolderList',\r\n data: {\r\n PersonCode: item.PersonCode,\r\n ComCode: item.ComCode,\r\n }\r\n }).then((res) => {\r\n return res.map((data, idx) => {\r\n let result = {\r\n ...convertFolderToClient(data),\r\n selected: false,\r\n index: idx,\r\n checked: false,\r\n isEWS: false,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n setFolderAttrs(item: any) {\r\n item = convertFolderToServer(item);\r\n return api.post({\r\n url: '/api/calendar/Calendar/setattr?funcName=setFolderAttrs',\r\n data: {\r\n ID: item.ID,\r\n PersonCode: item.PersonCode,\r\n Color: item.Color,\r\n }\r\n });\r\n },\r\n\r\n getCalendarEventList(item: any) {\r\n return api.post>({\r\n url: '/api/calendar/Calendar/getevents?funcName=getCalendarEventList',\r\n data: {\r\n FolderID: item.FolderID,\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.StartDate),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.EndDate),\r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let newItem = convertEventToClient(data);\r\n let result = {\r\n ...newItem,\r\n };\r\n return result;\r\n });\r\n });;\r\n },\r\n\r\n getCalendarDailyEventList(item: any) {\r\n return api.post>({\r\n url: '/api/calendar/Calendar/getdailyevents?funcName=getCalendarDailyEventList',\r\n data: {\r\n FolderID: item.FolderID,\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.StartDate),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.EndDate),\r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let newItem = convertEventToClient(data);\r\n let result = {\r\n ...newItem,\r\n };\r\n return result;\r\n });\r\n });;\r\n },\r\n\r\n getCompanyDailyEventList(item: any) {\r\n return api.post>({\r\n url: '/api/hshi/calendar/getCompanyDailyEvents',\r\n data: {\r\n FolderID: item.FolderID,\r\n StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.StartDate),\r\n EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.EndDate),\r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let newItem = convertEventToClient(data);\r\n let result = {\r\n ...newItem,\r\n };\r\n return result;\r\n });\r\n });;\r\n },\r\n\r\n searchCalendarEventList(item: any) {\r\n return api.post>({\r\n url: '/api/calendar/Calendar/searchevents?funcName=searchCalendarEventList',\r\n data: {\r\n EwsFolderIDArray: item.EwsFolderIDArray || null,\r\n FolderID: item.ParentFolderID || null, \r\n StartDate: item.StartDate || null, \r\n EndDate: item.EndDate || null,\r\n Keyword: item.Keyword || null, \r\n Subject: item.Subject || null,\r\n Location: item.Location || null, \r\n OrganizerAddress: item.OrganizerAddress || null, \r\n PersonCode: item.PersonCode, \r\n RequiredAttendees: null, \r\n OptionalAttendees: null, \r\n EumNoCondition: false, \r\n EumPageNumber: item.EumPageNumber || 1, \r\n EumRowsPerPage: item.EumRowsPerPage || 9999, \r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let newItem = convertEventToClient(data);\r\n let result = {\r\n ...newItem,\r\n isEWS: false,\r\n };\r\n return result;\r\n });\r\n });;\r\n },\r\n\r\n /**\r\n * 반복일정 마스터 아이디를 가져옵니다\r\n * @param id \r\n */\r\n getRecurringMasterID(id: string) {\r\n return api.post({\r\n url: '/api/calendar/Calendar/getmasterid?funcName=getRecurringMasterID',\r\n data: {\r\n id: id,\r\n }\r\n });\r\n },\r\n \r\n // getCompanyEventList(item: any) {\r\n // return api.post>({\r\n // url: '/api/hshi/calendar/getCompanyEvents',\r\n // data: {\r\n // FolderID: item.FolderID,\r\n // StartDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.StartDate),\r\n // EndDate: dateutil.uGetDateFormat('yyyy-MM-DDT00:00:00', item.EndDate),\r\n // }\r\n // }).then((res) => {\r\n // return res.map((data) => {\r\n // let newItem = convertEventToClient(data);\r\n // let result = {\r\n // ...newItem,\r\n // };\r\n // return result;\r\n // });\r\n // });;\r\n // }\r\n}\r\n","import api from '@/api';\r\nimport * as dateutil from '@/util/date-helper.ts';\r\n\r\nexport default {\r\n\r\n getCalendarResource(item: any) {\r\n return api.post({\r\n url: '/api/calendar/CalendarResource/get?funcName=getCalendarResource',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TC_RESOURCE_TYPE: item.USE_TC_RESOURCE_TYPE || false,\r\n\r\n }\r\n }).then((res) => {\r\n return res;\r\n });\r\n },\r\n\r\n getAllCalendarResource() {\r\n return api.post>({\r\n url: '/api/calendar/CalendarResource/all?funcName=getAllCalendarResource',\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let result = {\r\n ...data,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n getFindCalendarResource(item: any) {\r\n return api.post>({\r\n url: '/api/calendar/CalendarResource/find?funcName=getFindCalendarResource',\r\n data: {\r\n\t\t\t\tID: item.ID || null,\r\n\t\t\t\tDisplayName: item.DisplayName || null,\r\n\t\t\t\tType: item.Type || null,\r\n\t\t\t\tIsDeleted: item.IsDeleted || null,\r\n\t\t\t\tParam1: item.Param1 || null,\r\n\t\t\t\tParam2: item.Param2 || null,\r\n\t\t\t\tParam3: item.Param3 || null,\r\n\t\t\t\tParam4: item.Param4 || null,\r\n\t\t\t\tParam5: item.Param5 || null,\r\n\t\t\t\tParam6: item.Param6 || null,\r\n\t\t\t\tParam7: item.Param7 || null,\r\n\t\t\t\tParam8: item.Param8 || null,\r\n\t\t\t\tParam9: item.Param9 || null,\r\n\t\t\t\tParam10: item.Param10 || null,\r\n\t\t\t\tEumPageNumber: item.EumPageNumber || null,\r\n\t\t\t\tEumRowsPerPage: item.EumRowsPerPage || null,\r\n\t\t\t\tEumSearchCategory: item.EumSearchCategory || null,\r\n\t\t\t\tEumSearchKey: item.EumSearchKey || null,\r\n\t\t\t\tEumNoCondition: item.EumNoCondition || null,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TC_RESOURCE_TYPE: item.USE_TC_RESOURCE_TYPE || false,\r\n\r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let result = {\r\n ...data,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n createCalendarResource(item: any) {\r\n return api.post({\r\n url: '/api/calendar/CalendarResource/create?funcName=createCalendarResource',\r\n data: {\r\n\t\t\t\tDisplayName: item.DisplayName,\r\n\t\t\t\tType: item.Type,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tParam1: item.Param1,\r\n\t\t\t\tParam2: item.Param2,\r\n\t\t\t\tParam3: item.Param3,\r\n\t\t\t\tParam4: item.Param4,\r\n\t\t\t\tParam5: item.Param5,\r\n\t\t\t\tParam6: item.Param6,\r\n\t\t\t\tParam7: item.Param7,\r\n\t\t\t\tParam8: item.Param8,\r\n\t\t\t\tParam9: item.Param9,\r\n\t\t\t\tParam10: item.Param10,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarEventList: item.CalendarEventList || [],\r\n\t\t\t\tResourceType: item.ResourceType,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TC_RESOURCE_TYPE: item.USE_TC_RESOURCE_TYPE || false,\r\n\r\n }\r\n });\r\n },\r\n\r\n updateCalendarResource(item: any) {\r\n return api.post({\r\n url: '/api/calendar/CalendarResource/update?funcName=updateCalendarResource',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tDisplayName: item.DisplayName,\r\n\t\t\t\tType: item.Type,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tParam1: item.Param1,\r\n\t\t\t\tParam2: item.Param2,\r\n\t\t\t\tParam3: item.Param3,\r\n\t\t\t\tParam4: item.Param4,\r\n\t\t\t\tParam5: item.Param5,\r\n\t\t\t\tParam6: item.Param6,\r\n\t\t\t\tParam7: item.Param7,\r\n\t\t\t\tParam8: item.Param8,\r\n\t\t\t\tParam9: item.Param9,\r\n\t\t\t\tParam10: item.Param10,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarEventList: item.CalendarEventList || [],\r\n\t\t\t\tResourceType: item.ResourceType,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TC_RESOURCE_TYPE: item.USE_TC_RESOURCE_TYPE || false,\r\n\r\n }\r\n });\r\n },\r\n\r\n deleteCalendarResource(item: any) {\r\n return api.post({\r\n url: '/api/calendar/CalendarResource/delete?funcName=deleteCalendarResource',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TC_RESOURCE_TYPE: item.USE_TC_RESOURCE_TYPE || false,\r\n\r\n }\r\n });\r\n },\r\n}\r\n","import api from '@/api';\r\nimport * as dateutil from '@/util/date-helper.ts';\r\n\r\nconst convertFolderToClient = function(item: any):calendar.Folder {\r\n let folder: calendar.Folder = {\r\n ...item,\r\n id: item.id,\r\n colorCode: item.color || 'none',\r\n displayName: item.displayName,\r\n events: item.calendarEventList,\r\n dbType: item.type, \r\n } as calendar.Folder;\r\n return folder;\r\n}\r\n\r\nconst convertFolderToServer = function(item: calendar.Folder) {\r\n let folder: any = {\r\n ID: item.id,\r\n DisplayName: item.displayName,\r\n CalendarEventList: item.events,\r\n Type: item.dbType,\r\n Color: item.colorCode || 'none',\r\n DeptCode: item.deptCode,\r\n ComCode: item.comCode,\r\n PersonCode: item.personCode,\r\n };\r\n return folder;\r\n}\r\n\r\nexport default { \r\n\r\n getCalendarFolder(item: any) {\r\n return api.post>({\r\n url: '/api/calendar/CalendarFolder/get?funcName=getCalendarFolder',\r\n data: {\r\n ID: item.ID,\r\n CalendarEventList:\r\n [\r\n /*{\r\n StartDateEnd: '2020-06-05',\r\n USE_TA_CALENDAR_EVENT_BODY: true,\r\n }*/\r\n ],\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TA_FOLDER_ATTRS: item.USE_TA_FOLDER_ATTRS || false,\r\n\t\t\t\tUSE_TC_FOLDER_TYPE: item.USE_TC_FOLDER_TYPE || false,\r\n\r\n }\r\n }).then((res) => {\r\n (res as any).isEWS = false;\r\n return res;\r\n });\r\n },\r\n\r\n getAllCalendarFolder() {\r\n return api.post>({\r\n url: '/api/calendar/CalendarFolder/all?funcName=getAllCalendarFolder',\r\n }).then((res) => {\r\n return res.map((data, idx) => {\r\n let result = {\r\n ...convertFolderToClient(data),\r\n selected: false,\r\n index: idx,\r\n checked: false,\r\n isEWS: false,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n getFindCalendarFolder(item: any) {\r\n return api.post>({\r\n url: '/api/calendar/CalendarFolder/find?funcName=getFindCalendarFolder',\r\n data: {\r\n\t\t\t\tID: item.ID || null,\r\n\t\t\t\tParentID: item.ParentID || null,\r\n\t\t\t\tParentIDMin: item.ParentIDMin || null,\r\n\t\t\t\tParentIDMax: item.ParentIDMax || null,\r\n\t\t\t\tType: item.Type || null,\r\n\t\t\t\tComCode: item.ComCode || null,\r\n\t\t\t\tDeptCode: item.DeptCode || null,\r\n\t\t\t\tPersonCode: item.PersonCode || null,\r\n\t\t\t\tColor: item.Color || null,\r\n\t\t\t\tDisplayName: item.DisplayName || null,\r\n\t\t\t\tIsDeleted: item.IsDeleted || null,\r\n\t\t\t\tEumPageNumber: item.EumPageNumber || null,\r\n\t\t\t\tEumRowsPerPage: item.EumRowsPerPage || null,\r\n\t\t\t\tEumSearchCategory: item.EumSearchCategory || null,\r\n\t\t\t\tEumSearchKey: item.EumSearchKey || null,\r\n\t\t\t\tEumNoCondition: item.EumNoCondition || null,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TC_FOLDER_TYPE: item.USE_TC_FOLDER_TYPE || false,\r\n\r\n }\r\n }).then((res) => {\r\n return res.map((data, idx) => {\r\n let result = {\r\n ...convertFolderToClient(data),\r\n selected: false,\r\n index: idx,\r\n root_index: 0,\r\n checked: false,\r\n isEWS: false,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n createCalendarFolder(item: any) {\r\n item = convertFolderToServer(item);\r\n item.Color = 'none';\r\n return api.post({\r\n url: '/api/calendar/CalendarFolder/create?funcName=createCalendarFolder',\r\n data: {\r\n\t\t\t\tParentID: item.ParentID,\r\n\t\t\t\tType: item.Type,\r\n\t\t\t\tComCode: item.ComCode,\r\n\t\t\t\tDeptCode: item.DeptCode,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tColor: item.Color,\r\n\t\t\t\tDisplayName: item.DisplayName,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarEventList: item.CalendarEventList || [],\r\n\t\t\t\tFolderAttrs: item.FolderAttrs,\r\n\t\t\t\tFolderType: item.FolderType,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TA_FOLDER_ATTRS: item.USE_TA_FOLDER_ATTRS || false,\r\n\t\t\t\tUSE_TC_FOLDER_TYPE: item.USE_TC_FOLDER_TYPE || false,\r\n\r\n }\r\n });\r\n },\r\n\r\n updateCalendarFolder(item: any) {\r\n item = convertFolderToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarFolder/update?funcName=updateCalendarFolder',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tParentID: item.ParentID,\r\n\t\t\t\tType: item.Type,\r\n\t\t\t\tComCode: item.ComCode,\r\n\t\t\t\tDeptCode: item.DeptCode,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tColor: item.Color,\r\n\t\t\t\tDisplayName: item.DisplayName,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarEventList: item.CalendarEventList || [],\r\n\t\t\t\tFolderAttrs: item.FolderAttrs,\r\n\t\t\t\tFolderType: item.FolderType,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TA_FOLDER_ATTRS: item.USE_TA_FOLDER_ATTRS || false,\r\n\t\t\t\tUSE_TC_FOLDER_TYPE: item.USE_TC_FOLDER_TYPE || false,\r\n\r\n }\r\n });\r\n }, \r\n\r\n deleteCalendarFolder(item: any) {\r\n item = convertFolderToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarFolder/delete?funcName=deleteCalendarFolder',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\t\t\t\tUSE_TA_FOLDER_ATTRS: item.USE_TA_FOLDER_ATTRS || false,\r\n\t\t\t\tUSE_TC_FOLDER_TYPE: item.USE_TC_FOLDER_TYPE || false,\r\n }\r\n });\r\n },\r\n}\r\n\r\n","import api from '@/api';\r\nimport * as dateutil from '@/util/date-helper.ts';\r\n\r\nconst convertAppointmentTypeToClient = function(value: number) {\r\n\tswitch (value) {\r\n\t\tcase 1: return 'Single';\r\n\t\tcase 2: return 'RecurringMaster';\r\n\t\tcase 3: return 'Occurrence';\r\n\t\tcase 4: return 'Exception';\r\n\t}\r\n\treturn 'Single';\r\n}\r\n\r\nconst convertAppointmentTypeToServer = function(value: string) {\r\n\tswitch (value) {\r\n\t\tcase 'Single': return 1;\r\n\t\tcase 'RecurringMaster': return 2;\r\n\t\tcase 'Occurrence' : return 3;\r\n\t\tcase 'Exception': return 4;\r\n\t}\r\n\treturn 1;\r\n}\r\n\r\nconst convertRecurrenceToServer = function(value: calendar.CalendarItemRecurrence) {\r\n\tlet CalendarRecurrence = {\r\n\tRecurringType: value.ui_recurringType,\r\n\tStartDate: value.startDate,\r\n\tEndDate: value.ui_endType == '3' ? value.endDate : null,\r\n\tInterval: isNaN(Number(value.interval)) ? 1 : Number(value.interval),\r\n\tNumberOfOccurrences: value.ui_endType == '2' ? (isNaN(Number(value.numberOfOccurrences)) ? 0 : Number(value.numberOfOccurrences)) : null,\r\n\tFirstDayOfWeek: isNaN(Number(value.firstDayOfWeekValue)) ? 1 : Number(value.firstDayOfWeekValue),\r\n\tDayOfMonth: isNaN(Number(value.dayOfMonth)) ? 1 : Number(value.dayOfMonth),\r\n\tMonth: isNaN(Number(value.monthValue)) ? 1 : Number(value.monthValue),\r\n\tDaysOfTheWeek_0: value.daysOfTheWeekArray?.indexOf(0) != -1,\r\n\tDaysOfTheWeek_1: value.daysOfTheWeekArray?.indexOf(1) != -1,\r\n\tDaysOfTheWeek_2: value.daysOfTheWeekArray?.indexOf(2) != -1,\r\n\tDaysOfTheWeek_3: value.daysOfTheWeekArray?.indexOf(3) != -1,\r\n\tDaysOfTheWeek_4: value.daysOfTheWeekArray?.indexOf(4) != -1,\r\n\tDaysOfTheWeek_5: value.daysOfTheWeekArray?.indexOf(5) != -1,\r\n\tDaysOfTheWeek_6: value.daysOfTheWeekArray?.indexOf(6) != -1,\r\n\tDaysOfTheWeek_7: value.daysOfTheWeekArray?.indexOf(7) != -1,\r\n\tDaysOfTheWeek_8: value.daysOfTheWeekArray?.indexOf(8) != -1,\r\n\tDaysOfTheWeek_9: value.daysOfTheWeekArray?.indexOf(9) != -1,\r\n\t};\r\n\treturn CalendarRecurrence;\r\n}\r\n\r\nconst convertRecurrenceToClient = function(value: any) {\r\n\tlet recurrence:calendar.CalendarItemRecurrence = {\r\n\t\tui_recurringType: value.recurringType,\r\n\t\tstartDate: value.startDate,\r\n\t\tendDate: value.endDate,\r\n\t\tinterval: value.interval,\r\n\t\tnumberOfOccurrences: value.numberOfOccurrences,\r\n\t\tfirstDayOfWeekValue: value.firstDayOfWeek,\r\n\t\tdayOfMonth: value.dayOfMonth,\r\n\t\tmonthValue: value.month,\r\n\t\thasEnd: value.endDate || value.numberOfOccurrences,\r\n\t\tdaysOfTheWeekArray: [\r\n\t\t\t{flag: value.daysOfTheWeek_0, idx : 0},\r\n\t\t\t{flag: value.daysOfTheWeek_1, idx : 1},\r\n\t\t\t{flag: value.daysOfTheWeek_2, idx : 2},\r\n\t\t\t{flag: value.daysOfTheWeek_3, idx : 3},\r\n\t\t\t{flag: value.daysOfTheWeek_4, idx : 4},\r\n\t\t\t{flag: value.daysOfTheWeek_5, idx : 5},\r\n\t\t\t{flag: value.daysOfTheWeek_6, idx : 6},\r\n\t\t\t{flag: value.daysOfTheWeek_7, idx : 7},\r\n\t\t\t{flag: value.daysOfTheWeek_8, idx : 8},\r\n\t\t\t{flag: value.daysOfTheWeek_9, idx : 9},\r\n\t\t].filter((x) => x.flag).map((x) => x.idx)\r\n\t} as calendar.CalendarItemRecurrence;\r\n\treturn recurrence;\r\n}\r\n\r\nconst convertEventToClient = function(item: any):calendar.CalendarItem {\r\n\tlet requiredAttendeesList = item.requiredAttendeesList?.length ? item.requiredAttendeesList : item.rRequiredAttendeesList;\r\n\tlet optionalAttendeesList = item.optionalAttendeesList?.length ? item.optionalAttendeesList : item.rOptionalAttendeesList;\r\n let event: calendar.CalendarItem = {\r\n ...item,\r\n\t\tid: (item.id || item.ID).toString(),\r\n\t\tappointmentType: convertAppointmentTypeToClient(item.appointmentType || item.AppointmentType),\r\n\t\tsubject: item.subject || item.Subject,\r\n\t\tlocation: item.location || item.Location,\r\n\t\tparentId: item.parentFolderID || item.ParentFolderID || null,\r\n\t\tparentFolderId: item.parentFolderID || item.ParentFolderID,\r\n\t\tstart: ((item.startDate || item.StartDate) + '').replace('T', ' '),\r\n\t\tend: ((item.endDate || item.EndDate) + '').replace('T', ' '),\r\n\t\torganizer: {\r\n\t\t\tname: item.organizerName || item.OrganizerName,\r\n\t\t\taddress: item.organizerAddress || item.OrganizerAddress,\r\n\t\t},\r\n\t\timportance: item.importance || item.Importance,\r\n\t\tisAllDayEvent : (item.isAllDayEvent || item.IsAllDayEvent) ? 'True' : 'False',\r\n\t\tisCancelled : item.isCancelled || item.IsCancelled,\r\n\t\tpidLidRecurrencePattern : item.recurringString || item.RecurringString,\r\n\t\tbody: item.calendarEventBody?.body || item.CalendarEventBody?.body || item.calendarREventBody?.body || item.CalendarREventBody?.body,\r\n\t\trecurrence: convertRecurrenceToClient(item.calendarRecurrence || item.CalendarRecurrence),\t\r\n\t\trequiredAttendees: requiredAttendeesList && requiredAttendeesList.length ? requiredAttendeesList.map((x:any) => { return {name: x.Name || x.name, address: x.Address || x.address} }) : [],\r\n\t\toptionalAttendees: optionalAttendeesList && optionalAttendeesList.length ? optionalAttendeesList.map((x:any) => { return {name: x.Name || x.name, address: x.Address || x.address} }) : [],\r\n\t\tattachments: item.attachments || item.Attachments,\r\n\t\tcode: item.attachmentFileCode || item.AttachmentFileCode,\r\n\t\tresourceId: (item.resourceID ? item.resourceID.toString() : '') || item.ResourceID?.toString() || null,\r\n\t\tdb_masterID: item.masterID || item.MasterID,\r\n\t\tdb_selectID: item.selectGuid || item.SelectGuid,\r\n\t\tisSendMail: item.isSendMail || item.IsSendMail,\r\n\t} as calendar.CalendarItem;\r\n return event;\r\n}\r\n\r\nconst convertEventToServer = function(item: calendar.CalendarItem) {\t\r\n let event: any = {\r\n\t\tID: isNaN(Number(item.id)) ? 0 : Number(item.id),\r\n\t\tMasterID: item.db_masterID,\r\n\t\tAppointmentType: convertAppointmentTypeToServer(item.appointmentType),\r\n Subject: item.subject,\r\n\t\tLocation: item.location,\r\n\t\tParentFolderID: Number(item.parentId || (item as any).ParentFolderId),\r\n\t\tStartDate: dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(item.start)) + 'T' + item.starttime,\r\n\t\tEndDate: dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(item.end)) + 'T' + item.endtime,\r\n\t\tIsAllDayEvent: item.isAllDayEvent,\r\n\t\tIsCancelled: item.isCancelled,\r\n\t\tRecurringString: item.pidLidRecurrencePattern,\r\n\t\tOrganizerName: item.organizer?.name,\r\n\t\tOrganizerAddress: item.organizer?.address,\r\n\t\tImportance: item.importance,\r\n\t\tCalendarEventBody: {\r\n\t\t\tBody: item.body,\r\n\t\t},\r\n\t\tCalendarRecurrence: convertRecurrenceToServer(item.recurrence),\r\n\t\tRequiredAttendeesList: item.requiredAttendees && item.requiredAttendees.length ? item.requiredAttendees.map((x) => { return {Name: x.name, Address: x.address} }) : [],\r\n\t\tOptionalAttendeesList: item.optionalAttendees && item.optionalAttendees.length ? item.requiredAttendees.map((x) => { return {Name: x.name, Address: x.address} }) : [],\r\n\t\tAttachments: item.attachments,\r\n\t\tAttachmentFileCode: item.code,\r\n\t\tResourceID: isNaN(Number(item.resourceId)) ? null : (Number(item.resourceId) || null),\r\n\t\tIsDeleted: (item as any).IsDeleted || false,\r\n\t\tIsSendMail: item.isSendMail,\r\n\t\tDeletedAttachIDArray: (item as any).deletedAttachIDs,\r\n\t};\r\n return event;\r\n}\r\n\r\nexport default {\r\n getCalendarEvent(item: any) {\r\n return api.post({\r\n url: '/api/calendar/CalendarEvent/get?funcName=getCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RECURRENCE: item.USE_TA_CALENDAR_RECURRENCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_FOLDER: item.USE_TA_CALENDAR_FOLDER || false,\t\t\t\t\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT: item.USE_TA_CALENDAR_R_EVENT || false,\r\n }\r\n }).then((res) => {\r\n\t\t res = convertEventToClient(res);\r\n return res;\r\n });\r\n },\r\n\r\n getAllCalendarEvent() {\r\n return api.post>({\r\n url: '/api/calendar/CalendarEvent/all?funcName=getAllCalendarEvent',\r\n }).then((res) => {\r\n return res.map((data) => {\r\n\t\t\t\tdata = convertEventToClient(data);\r\n let result = {\r\n ...data,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n getFindCalendarEvent(item: any) {\r\n return api.post>({\r\n url: '/api/calendar/CalendarEvent/find?funcName=getFindCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID || null,\r\n\t\t\t\tParentFolderID: item.ParentFolderID || null,\r\n\t\t\t\tPersonCode: item.PersonCode || null,\r\n\t\t\t\tDeptCode: item.DeptCode || null,\r\n\t\t\t\tOrganizerName: item.OrganizerName || null,\r\n\t\t\t\tOrganizerAddress: item.OrganizerAddress || null,\r\n\t\t\t\tResourceID: item.ResourceID || null,\r\n\t\t\t\tSubject: item.Subject || null,\r\n\t\t\t\tLocation: item.Location || null,\r\n\t\t\t\tStartDate: item.StartDate || null,\r\n\t\t\t\tStartDateStart: item.StartDateStart || null,\r\n\t\t\t\tStartDateEnd: item.StartDateEnd || null,\r\n\t\t\t\tEndDate: item.EndDate || null,\r\n\t\t\t\tEndDateStart: item.EndDateStart || null,\r\n\t\t\t\tEndDateEnd: item.EndDateEnd || null,\r\n\t\t\t\tImportance: item.Importance || null,\r\n\t\t\t\tIsDeleted: item.IsDeleted || null,\r\n\t\t\t\tIsAllDayEvent: item.IsAllDayEvent || null,\r\n\t\t\t\tIsRecurring: item.IsRecurring || null,\r\n\t\t\t\tIsCancelled: item.IsCancelled || null,\r\n\t\t\t\tRecurringString: item.RecurringString || null,\r\n\t\t\t\tEumPageNumber: item.EumPageNumber || null,\r\n\t\t\t\tEumRowsPerPage: item.EumRowsPerPage || null,\r\n\t\t\t\tEumSearchCategory: item.EumSearchCategory || null,\r\n\t\t\t\tEumSearchKey: item.EumSearchKey || null,\r\n\t\t\t\tEumNoCondition: item.EumNoCondition || null,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RECURRENCE: item.USE_TA_CALENDAR_RECURRENCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_FOLDER: item.USE_TA_CALENDAR_FOLDER || false,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || false,\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT: item.USE_TA_CALENDAR_R_EVENT || false,\r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n\t\t\t\tlet newItem = convertEventToClient(data);\r\n let result = {\r\n ...newItem,\r\n };\r\n return result;\r\n });\r\n });\r\n },\r\n\r\n createCalendarEvent(item: any) {\r\n\t\titem = convertEventToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarEvent/create?funcName=createCalendarEvent',\r\n data: {\r\n\t\t\t\tParentFolderID: item.ParentFolderID,\r\n\t\t\t\tAppointmentType: item.AppointmentType,\r\n\t\t\t\tAttachmentFileCode: item.AttachmentFileCode,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tDeptCode: item.DeptCode,\r\n\t\t\t\tOrganizerName: item.OrganizerName,\r\n\t\t\t\tOrganizerAddress: item.OrganizerAddress,\r\n\t\t\t\tResourceID: item.ResourceID,\r\n\t\t\t\tSubject: item.Subject,\r\n\t\t\t\tLocation: item.Location,\r\n\t\t\t\tStartDate: item.StartDate,\r\n\t\t\t\tEndDate: item.EndDate,\r\n\t\t\t\tImportance: item.Importance,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tIsAllDayEvent: item.IsAllDayEvent,\r\n\t\t\t\tIsRecurring: item.IsRecurring,\r\n\t\t\t\tIsCancelled: item.IsCancelled,\r\n\t\t\t\tIsSendMail: item.IsSendMail,\r\n\t\t\t\tRecurringString: item.RecurringString,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarEventBody: item.CalendarEventBody,\r\n\t\t\t\tCalendarRecurrence: item.CalendarRecurrence,\r\n\t\t\t\tOptionalAttendeesList: item.OptionalAttendeesList || [],\r\n\t\t\t\tRequiredAttendeesList: item.RequiredAttendeesList || [],\r\n\t\t\t\tCalendarFolder: item.CalendarFolder,\r\n\t\t\t\tCalendarResource: item.CalendarResource,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RECURRENCE: item.USE_TA_CALENDAR_RECURRENCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_FOLDER: item.USE_TA_CALENDAR_FOLDER || false,\t\t\t\t\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT: item.USE_TA_CALENDAR_R_EVENT || false,\r\n }\r\n });\r\n },\r\n\r\n updateCalendarEvent(item: any) {\r\n\t\titem = convertEventToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarEvent/update?funcName=updateCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tParentFolderID: item.ParentFolderID,\r\n\t\t\t\tAppointmentType: item.AppointmentType,\r\n\t\t\t\tAttachmentFileCode: item.AttachmentFileCode,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tDeptCode: item.DeptCode,\r\n\t\t\t\tOrganizerName: item.OrganizerName,\r\n\t\t\t\tOrganizerAddress: item.OrganizerAddress,\r\n\t\t\t\tResourceID: item.ResourceID,\r\n\t\t\t\tSubject: item.Subject,\r\n\t\t\t\tLocation: item.Location,\r\n\t\t\t\tStartDate: item.StartDate,\r\n\t\t\t\tEndDate: item.EndDate,\r\n\t\t\t\tImportance: item.Importance,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tIsAllDayEvent: item.IsAllDayEvent,\r\n\t\t\t\tIsRecurring: item.IsRecurring,\r\n\t\t\t\tIsCancelled: item.IsCancelled,\r\n\t\t\t\tIsSendMail: item.IsSendMail,\r\n\t\t\t\tRecurringString: item.RecurringString,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarEventBody: item.CalendarEventBody,\r\n\t\t\t\tCalendarRecurrence: item.CalendarRecurrence,\r\n\t\t\t\tOptionalAttendeesList: item.OptionalAttendeesList || [],\r\n\t\t\t\tRequiredAttendeesList: item.RequiredAttendeesList || [],\r\n\t\t\t\tCalendarFolder: item.CalendarFolder,\r\n\t\t\t\tCalendarResource: item.CalendarResource,\r\n\t\t\t\tDeletedAttachIDArray: item.DeletedAttachIDArray,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RECURRENCE: item.USE_TA_CALENDAR_RECURRENCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_FOLDER: item.USE_TA_CALENDAR_FOLDER || false,\t\t\t\t\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT: item.USE_TA_CALENDAR_R_EVENT || false,\r\n }\r\n });\r\n },\r\n\r\n deleteCalendarEvent(item: any) {\r\n\t\titem = convertEventToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarEvent/delete?funcName=deleteCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RECURRENCE: item.USE_TA_CALENDAR_RECURRENCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_FOLDER: item.USE_TA_CALENDAR_FOLDER || false,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || false,\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT: item.USE_TA_CALENDAR_R_EVENT || false,\r\n }\r\n });\r\n\t},\r\n\t\r\n\tgetCalendarEventBody(item: any) {\r\n return api.post({\r\n url: '/api/calendar/CalendarEventBody/get?funcName=getCalendarEventBody',\r\n data: {\r\n\t\t\t\tEventID: item.EventID,\r\n\t\t\t\tUSE_TA_CALENDAR_EVENT: item.USE_TA_CALENDAR_EVENT || false,\r\n\r\n }\r\n }).then((res) => {\r\n return res;\r\n });\r\n\t},\r\n\t\r\n\r\n\r\n\r\n\tgetRCalendarEvent(item: any) {\r\n return api.post({\r\n url: '/api/calendar/CalendarREvent/get?funcName=getRCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_R_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_R_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RECURRENCE: item.USE_TA_CALENDAR_RECURRENCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || true,\r\n }\r\n }).then((res) => {\r\n\t\t res = convertEventToClient(res);\r\n return res;\r\n });\r\n },\r\n\r\n\tcreateRCalendarEvent(item: any) {\r\n\t\titem = convertEventToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarREvent/create?funcName=createRCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tMasterID: item.MasterID,\r\n\t\t\t\tParentFolderID: item.ParentFolderID,\r\n\t\t\t\tAppointmentType: item.AppointmentType,\r\n\t\t\t\tAttachmentFileCode: item.AttachmentFileCode,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tDeptCode: item.DeptCode,\r\n\t\t\t\tOrganizerName: item.OrganizerName,\r\n\t\t\t\tOrganizerAddress: item.OrganizerAddress,\r\n\t\t\t\tResourceID: item.ResourceID,\r\n\t\t\t\tSubject: item.Subject,\r\n\t\t\t\tLocation: item.Location,\r\n\t\t\t\tStartDate: item.StartDate,\r\n\t\t\t\tEndDate: item.EndDate,\r\n\t\t\t\tImportance: item.Importance,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tIsAllDayEvent: item.IsAllDayEvent,\r\n\t\t\t\tIsRecurring: item.IsRecurring,\r\n\t\t\t\tIsCancelled: item.IsCancelled,\r\n\t\t\t\tIsSendMail: item.IsSendMail,\r\n\t\t\t\tRecurringString: item.RecurringString,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarREventBody: item.CalendarEventBody,\r\n\t\t\t\tCalendarRecurrence: item.CalendarRecurrence,\r\n\t\t\t\tROptionalAttendeesList: item.OptionalAttendeesList || [],\r\n\t\t\t\tRRequiredAttendeesList: item.RequiredAttendeesList || [],\r\n\t\t\t\tCalendarFolder: item.CalendarFolder,\r\n\t\t\t\tCalendarResource: item.CalendarResource,\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_R_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_R_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || true,\r\n }\r\n });\r\n },\r\n\r\n updateRCalendarEvent(item: any) {\r\n\t\titem = convertEventToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarREvent/update?funcName=updateRCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tMasterID: item.MasterID,\r\n\t\t\t\tParentFolderID: item.ParentFolderID,\r\n\t\t\t\tAppointmentType: item.AppointmentType,\r\n\t\t\t\tAttachmentFileCode: item.AttachmentFileCode,\r\n\t\t\t\tPersonCode: item.PersonCode,\r\n\t\t\t\tDeptCode: item.DeptCode,\r\n\t\t\t\tOrganizerName: item.OrganizerName,\r\n\t\t\t\tOrganizerAddress: item.OrganizerAddress,\r\n\t\t\t\tResourceID: item.ResourceID,\r\n\t\t\t\tSubject: item.Subject,\r\n\t\t\t\tLocation: item.Location,\r\n\t\t\t\tStartDate: item.StartDate,\r\n\t\t\t\tEndDate: item.EndDate,\r\n\t\t\t\tImportance: item.Importance,\r\n\t\t\t\tIsDeleted: item.IsDeleted,\r\n\t\t\t\tIsAllDayEvent: item.IsAllDayEvent,\r\n\t\t\t\tIsRecurring: item.IsRecurring,\r\n\t\t\t\tIsCancelled: item.IsCancelled,\r\n\t\t\t\tIsSendMail: item.IsSendMail,\r\n\t\t\t\tRecurringString: item.RecurringString,\r\n\t\t\t\tCreatedId: item.CreatedId,\r\n\t\t\t\tUpdatedId: item.UpdatedId,\r\n\t\t\t\tCreatedDate: item.CreatedDate,\r\n\t\t\t\tUpdatedDate: item.UpdatedDate,\r\n\t\t\t\tCalendarREventBody: item.CalendarEventBody,\r\n\t\t\t\tCalendarRecurrence: item.CalendarRecurrence,\r\n\t\t\t\tROptionalAttendeesList: item.OptionalAttendeesList || [],\r\n\t\t\t\tRRequiredAttendeesList: item.RequiredAttendeesList || [],\r\n\t\t\t\tCalendarFolder: item.CalendarFolder,\r\n\t\t\t\tCalendarResource: item.CalendarResource,\r\n\t\t\t\tDeletedAttachIDArray: item.DeletedAttachIDArray,\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_R_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_R_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RECURRENCE: item.USE_TA_CALENDAR_RECURRENCE || true,\r\n\t\t\t\tUSE_TA_CALENDAR_RESOURCE: item.USE_TA_CALENDAR_RESOURCE || true,\r\n }\r\n });\r\n },\r\n\r\n deleteRCalendarEvent(item: any) {\r\n\t\titem = convertEventToServer(item);\r\n return api.post({\r\n url: '/api/calendar/CalendarREvent/delete?funcName=deleteRCalendarEvent',\r\n data: {\r\n\t\t\t\tID: item.ID,\r\n\t\t\t\tUSE_TA_CALENDAR_R_EVENT_BODY: item.USE_TA_CALENDAR_EVENT_BODY || true,\r\n\t\t\t\tUSE_TA_R_OPTIONAL_ATTENDEES: item.USE_TA_OPTIONAL_ATTENDEES || true,\r\n\t\t\t\tUSE_TA_R_REQUIRED_ATTENDEES: item.USE_TA_REQUIRED_ATTENDEES || true,\r\n }\r\n });\r\n\t},\r\n}\r\n","import api from '@/api';\r\nexport default {\r\n\t// 회의실 자원목록 가져오기\r\n\tgetConferenceResource(comCode: string) {\r\n\t\treturn api.get({\r\n url: `/IsuReserveResource/ISU_Calendar/api/conference/list?comCode=${comCode}`,\r\n });\r\n\t},\r\n\r\n\t// 자원예약, 일정 매핑 create\r\n\tcreateReserveRequestCalendarMap(data: calendar.RequestCalendarMap) {\r\n\t\treturn api.post({\r\n url: `/IsuReserveResource/ISU_Calendar/api/create/map`,\r\n data: data\r\n })\r\n\t},\r\n\r\n\t// 자원예약, 일정 매핑 update\r\n\tupdateReserveRequestCalendarMap(data: calendar.RequestCalendarMap) {\r\n\t\treturn api.post({\r\n url: `/IsuReserveResource/ISU_Calendar/api/update/map`,\r\n data: data\r\n })\r\n\t},\r\n\r\n // 자원예약, 일정 매핑 update\r\n\tdeleteReserveRequestCalendarMap(reserveRequestId: number) {\r\n\t\treturn api.post({\r\n url: `/IsuReserveResource/ISU_Calendar/api/delete/map?reserveRequestId=${reserveRequestId}`,\r\n })\r\n\t},\r\n\r\n\t// 자원예약 요청 create\r\n\tcreateReserveRequest: (data: calendar.RequestRequestItem): Promise => {\r\n return api.post({\r\n url: `/IsuReserveResource/ISU_RequestDb/api/create`,\r\n data: data\r\n })\r\n },\r\n\r\n\t// 자원예약 요청 update\r\n\tupdateReserveRequest: (data: calendar.RequestRequestItem): Promise => {\r\n\r\n return api.post({\r\n url: `/CommonReserveDb/requestdb/api`,\r\n data: data\r\n })\r\n\r\n },\r\n\r\n // 자원예약 삭제 delete\r\n cancelReserveRequest: (data: calendar.RequestCancelParam): Promise => {\r\n\r\n return api.post({\r\n url: `/CommonReserveDb/requestdb/api/cancel`,\r\n data: data\r\n })\r\n\r\n },\r\n\r\n\t// 자원예약 요청 유효성 확인\r\n\tvalidationReserveRequest: (data: calendar.RequestValdationRequest): Promise => {\r\n return api.post({\r\n url: `/CommonReserveDb/requestdb/validation/api`,\r\n data: data\r\n })\r\n },\r\n\r\n\t// 자원예약 요청 유효성 확인\r\n\tvalidationReserveRequestIncludeWait: (data: calendar.RequestValdationRequest): Promise => {\r\n\r\n return api.post({\r\n url: `/IsuReserveResource/ISU_RequestDb/validation/api/include/wait`,\r\n data: data\r\n })\r\n },\r\n\r\n\t// 자원예약, 일정 매핑 값 가져오기\r\n\tgetMapByCalendarItemId(id: string) {\r\n\t\treturn api.get({\r\n url: `/IsuReserveResource/ISU_Calendar/api/map?calendarItemId=${id}`,\r\n });\r\n\t}\r\n}\r\n","import ews_resource from './ews_resource';\r\nimport ews_folder from './ews_folder';\r\nimport ews_calendar from './ews_calendar';\r\n\r\nimport db_main from './db_main';\r\nimport db_resource from './db_resource';\r\nimport db_folder from './db_folder';\r\nimport db_calendar from './db_calendar';\r\n\r\nimport db_resourceReserve from './db_resourceReserve';\r\n\r\nexport default {\r\n db_main,\r\n db_resource,\r\n db_folder,\r\n db_calendar,\r\n\r\n db_resourceReserve,\r\n \r\n ews_resource,\r\n ews_folder,\r\n ews_calendar,\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',[_c('div',{staticClass:\"ip-subject\"},[_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.subject),expression:\"value.subject\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('일정_제목을_입력하세요').toString()},domProps:{\"value\":(_vm.value.subject)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"subject\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(0),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showStartDateModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Startdate')))]),_c('p',[_vm._v(_vm._s(_vm.startDateText))])]),_c('div',{staticClass:\"time\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showStartTimeModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_StartTime')))]),_c('p',[_vm._v(_vm._s(_vm.value.starttime))])])])])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(1),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showEndDateModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Enddate')))]),_c('p',[_vm._v(_vm._s(_vm.endDateText))])]),_c('div',{staticClass:\"time\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showEndTimeModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_EndTime')))]),_c('p',[_vm._v(_vm._s(_vm.value.endtime))])])])])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(2),_c('div',{staticClass:\"form\"},[_c('div',{staticClass:\"con-wrap\"},[_c('div',{staticClass:\"con-left\"},[_c('p',[_vm._v(_vm._s(_vm.$t('W_Schedule_Allday')))])]),_c('div',{staticClass:\"con-right\"},[_c('label',{staticClass:\"switch\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.isAllDayEvent),expression:\"value.isAllDayEvent\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.value.isAllDayEvent)?_vm._i(_vm.value.isAllDayEvent,null)>-1:(_vm.value.isAllDayEvent)},on:{\"change\":function($event){var $$a=_vm.value.isAllDayEvent,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.value, \"isAllDayEvent\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.value, \"isAllDayEvent\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.value, \"isAllDayEvent\", $$c)}}}}),_c('span',{staticClass:\"slider round\"})])])])])]),_c('div',{staticClass:\"ip-rotate\"},[_vm._m(3),_c('div',{staticClass:\"form\",on:{\"click\":_vm.recurring}},[(!_vm.value.recurrence.ui_recurringType)?_c('a',[_vm._v(_vm._s(_vm.$t('반복설정')))]):_c('a',[_vm._v(_vm._s(_vm.getRecurrencePatternDisplay))])])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(4),_c('div',{staticClass:\"form\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showMeetingRoomModal')}}},[(!_vm.selectConference)?_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_MeetingRoom')))]):_c('a',{staticStyle:{\"color\":\"blue\"}},[_vm._v(_vm._s(_vm.selectConference.groupDisplayName)+\" > \"+_vm._s(_vm.selectConference.displayName))])])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(5),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.location),expression:\"value.location\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Schedule_Location').toString()},domProps:{\"value\":(_vm.value.location)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"location\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(6),_c('div',{staticClass:\"form\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showFolderModal')}}},[(!_vm.value.parentId)?_c('a',[_vm._v(_vm._s(_vm.$t('폴더')))]):_c('a',{staticStyle:{\"color\":\"blue\"}},[_vm._v(_vm._s(_vm.folderName))])])]),_c('RecipientFields',{attrs:{\"type\":'to',\"title\":this.$t('필수참석자').toString(),\"email\":_vm.email},on:{\"change\":function (tags) { return (_vm.email.to = tags); }},model:{value:(_vm.email.to),callback:function ($$v) {_vm.$set(_vm.email, \"to\", $$v)},expression:\"email.to\"}}),_c('RecipientFields',{attrs:{\"type\":'cc',\"title\":this.$t('선택참석자').toString(),\"email\":_vm.email},on:{\"change\":function (tags) { return (_vm.email.cc= tags); }},model:{value:(_vm.email.cc),callback:function ($$v) {_vm.$set(_vm.email, \"cc\", $$v)},expression:\"email.cc\"}}),_c('div',{staticClass:\"ip-notice\"},[_vm._m(7),_c('div',{staticClass:\"form\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showAlarmModal')}}},[(!_vm.value.reminderMinutesBeforeStart)?_c('a',{attrs:{\"id\":\"btnModal\"}},[_vm._v(_vm._s(_vm.$t('일정_미리_알림')))]):_c('a',{attrs:{\"id\":\"btnModal\"}},[_vm._v(_vm._s(_vm.reminderText))])])]),_c('WriteBody',{model:{value:(_vm.value.body),callback:function ($$v) {_vm.$set(_vm.value, \"body\", $$v)},expression:\"value.body\"}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-calendar\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-calendar\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-time\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-rotate\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-location\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-location\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-folder\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-bell\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WriteBody from '@calendar/components/Write/WriteBody.vue'\r\nimport RecipientFields from '@/components/common/RecipientFields.vue'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport { mapMutations } from 'vuex';\r\nimport * as types from '@calendar/store/types'\r\n@Component({\r\n components: {\r\n WriteBody,\r\n RecipientFields\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCurrentItem: types.CURRENT_CALENDAR_ITEM\r\n })\r\n }\r\n})\r\nexport default class WriteForm extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) value!: calendar.CalendarItem;\r\n @Prop({ type: Object }) email!: mail.WriteEmailData;\r\n @Prop({ type: String }) folderName!: string;\r\n @Prop({ type: Object }) selectConference!: any;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrentItem!: (item: calendar.CalendarItem) => void;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n showWeekText: any\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get startDateText() {\r\n return dateutil.uGetDateFormat('yyyy-mm-dd', dateutil.IEDate(this.value.start)); \r\n }\r\n\r\n get endDateText() {\r\n return dateutil.uGetDateFormat('yyyy-mm-dd', dateutil.IEDate(this.value.end)); \r\n }\r\n\r\n get reminderText() {\r\n var number = this.value.reminderMinutesBeforeStart || 0\r\n if(number === 60) {\r\n return this.$t('N시간_전_알림', {number: 1}).toString()\r\n }\r\n else if(number === 1440) {\r\n return this.$t('N일_전_알림', {number: 1}).toString()\r\n }\r\n else if(number === 2880) {\r\n return this.$t('N일_전_알림', {number: 2}).toString()\r\n }\r\n else if(number === 4320) {\r\n return this.$t('N일_전_알림', {number: 3}).toString()\r\n }\r\n else if(number < 60) {\r\n return this.$t('N분_전_알림', {number: number}).toString()\r\n }\r\n }\r\n\r\n /**\r\n * 반복일정 설정 내용을 표시합니다\r\n */\r\n get getRecurrencePatternDisplay() {\r\n\r\n let beautifyStartTime;\r\n let beautifyEndTime;\r\n\r\n if(this.value.starttime && this.value.starttime.length >3) {\r\n beautifyStartTime = this.value.starttime.substr(0, this.value.starttime.length -3);\r\n }\r\n if(this.value.endtime && this.value.endtime.length >3) {\r\n beautifyEndTime = this.value.endtime.substr(0, this.value.endtime.length -3);\r\n }\r\n \r\n let beautifyEndDate;\r\n if(this.value.recurrence.endDate != null ) {\r\n beautifyEndDate = dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.IEDate(this.value.recurrence.endDate));\r\n }\r\n \r\n let display: string = '';\r\n \r\n if(this.value.recurrence.ui_recurringType == 1) {\r\n if(this.value.recurrence.endDate != null) \r\n {\r\n // 매일 / 종료일 특정 날짜\r\n display = `${beautifyEndDate} 까지 ${this.value.recurrence.interval}일 마다 반복`;\r\n }\r\n else\r\n {\r\n // 매일 / 종료일 기한 없음\r\n display = `${this.value.recurrence.interval}일 마다 반복`;\r\n }\r\n }\r\n //매주\r\n else if(this.value.recurrence.ui_recurringType == 2) {\r\n let weeklist = dateutil.uGetWeekArray([\r\n this.$t('W_Schedule_Sunday').toString(),\r\n this.$t('W_Schedule_Monday').toString(),\r\n this.$t('W_Schedule_Tuesday').toString(),\r\n this.$t('W_Schedule_Wednesday').toString(),\r\n this.$t('W_Schedule_Thursday').toString(),\r\n this.$t('W_Schedule_Friday').toString(),\r\n this.$t('W_Schedule_Saturday').toString(),\r\n ]);\r\n // 반복일정 수정할 때 요일 체크한거 화면에 display\r\n this.showWeekText = weeklist.filter((x:any) => \r\n (this.value.recurrence.daysOfTheWeekArray?.indexOf(x.value) != -1) \r\n ).map((x) => {return x.text;}).join(',');\r\n\r\n //this.showWeekText = weekArrayString;\r\n\r\n if(this.value.recurrence.endDate != null)\r\n {\r\n // 매주 / 종료일 특정 날짜\r\n display = `${beautifyEndDate} 까지 ${this.value.recurrence.interval}주마다 ${this.showWeekText} 반복`;\r\n }\r\n else \r\n {\r\n // 매주 / 종료일 기한 없음\r\n display = `${this.value.recurrence.interval}주마다 ${this.showWeekText} 에 반복`;\r\n }\r\n }\r\n //매월\r\n else if(this.value.recurrence.ui_recurringType == 3) {\r\n if(this.value.recurrence.endDate != null)\r\n {\r\n // 매월 / 종료일 특정 날짜\r\n display = `${beautifyEndDate} 까지 ${this.value.recurrence.interval}개월마다 ${this.value.recurrence.dayOfMonth}일에 반복`;\r\n }\r\n else \r\n {\r\n // 매월 / 종료일 기한 없음\r\n display = `${this.value.recurrence.interval}개월마다 ${this.value.recurrence.dayOfMonth}일에 반복`;\r\n }\r\n }\r\n //매년\r\n else if(this.value.recurrence.ui_recurringType == 4) {\r\n if(this.value.recurrence.endDate != null)\r\n {\r\n // 매년 / 종료일 특정 날짜\r\n display = `${beautifyEndDate} 까지 매년 ${this.value.recurrence.monthValue}월 ${this.value.recurrence.dayOfMonth}일마다 반복`;\r\n }\r\n else \r\n {\r\n // 매년 / 종료일 기한 없음\r\n display = `매년 ${this.value.recurrence.monthValue}월 ${this.value.recurrence.dayOfMonth}일마다 반복`;\r\n }\r\n }\r\n \r\n if (!this.value.isEWS) {\r\n this.value.pidLidRecurrencePattern = display;\r\n }\r\n return display;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n recurring() {\r\n this.setCurrentItem(this.value)\r\n this.$router.push({ path: '/calendar/recurring' , query: { id: this.value.id } })\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteForm.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteForm.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteForm.vue?vue&type=template&id=690b125c&\"\nimport script from \"./WriteForm.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteForm.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const BASE = '$account'\r\n\r\nexport const CURRENT = `${BASE}/current`\r\nexport const LOGIN = `${BASE}/login`\r\nexport const USER = `${BASE}/user`\r\nexport const LOGINEX = `${BASE}/loginex`\r\nexport const LOGINHINT = `${BASE}/loginHint`\r\nexport const LOGOUT = `${BASE}/logout`\r\n","function getConsole() {\r\n if (typeof window !== \"undefined\") {\r\n return window.console;\r\n }\r\n return global.console;\r\n}\r\nconst console = getConsole();\r\n\r\nfunction cached(fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn(str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n}\r\n\r\nconst regex = /-(\\w)/g;\r\nconst camelize = cached(str =>\r\n str.replace(regex, (_, c) => (c ? c.toUpperCase() : \"\"))\r\n);\r\n\r\nfunction removeNode(node) {\r\n if (node.parentElement !== null) {\r\n node.parentElement.removeChild(node);\r\n }\r\n}\r\n\r\nfunction insertNodeAt(fatherNode, node, position) {\r\n const refNode =\r\n position === 0\r\n ? fatherNode.children[0]\r\n : fatherNode.children[position - 1].nextSibling;\r\n fatherNode.insertBefore(node, refNode);\r\n}\r\n\r\nexport { insertNodeAt, camelize, console, removeNode };\r\n ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"ip-target\"},[_c('h4',[_c('a',{staticClass:\"btn-add\"},[_c('label',[_vm._v(_vm._s(_vm.title))]),_c('i',{staticClass:\"icon-add\",on:{\"click\":_vm.openOrgchart}})])]),_c('div',{staticClass:\"form\",on:{\"click\":_vm.setInputFocus}},[_c('div',{staticClass:\"con-wrap\"},[_c('div',{staticClass:\"con-left\"},[_c('EumTagInput',{ref:\"eumInput\",attrs:{\"mailValidMsg\":'올바른 메일주소를 입력해 주세요.'},on:{\"inputKeyDown\":_vm.inputKeyDown,\"tagAdded\":_vm.tagAdded,\"tagDeleted\":_vm.tagDeleted,\"changeAutoComplete\":_vm.changeAutoComplete},scopedSlots:_vm._u([{key:\"default\",fn:function(tagProps){return [_c('DisplayName',{attrs:{\"name\":tagProps.tag.text,\"address\":tagProps.tag.value}})]}}]),model:{value:(_vm.rcpts),callback:function ($$v) {_vm.rcpts=$$v},expression:\"rcpts\"}})],1),(_vm.title == '받는사람')?_c('div',{staticClass:\"con-right\",on:{\"click\":_vm.show}},[_c('a',[_c('i',{class:[_vm.open ? 'icon-up' : 'icon-down']})])]):_vm._e()])])]),(_vm.showAutoComplete)?_c('div',{staticClass:\"address-list auto-complete-list\"},[_c('table',[_vm._m(0),_c('tbody',_vm._l((_vm.autoCompleteList),function(user,index){return _c('tr',{key:index,on:{\"click\":function($event){return _vm.autoCompleteSelect(user)}}},[_c('td',[_c('div',{staticClass:\"list-user-img\"},[(user.imgRoot)?_c('img',{attrs:{\"src\":'//mgw.hshi.co.kr/images/' + user.img},on:{\"error\":_vm.error}}):_vm._e()])]),_c('td',[_c('p',{staticClass:\"name\"},[_vm._v(_vm._s(user.text))]),_c('p',{staticClass:\"mail\"},[_c('a',[_vm._v(_vm._s(user.companyName)+\" | \"+_vm._s(user.deptName)+\" | \"+_vm._s(user.titleName)+\" \"+_vm._s(user.value))])])])])}),0)])]):_vm._e(),_c('OrgchartModal',{attrs:{\"showMove\":_vm.showMove},on:{\"close\":function($event){_vm.showMove = false},\"check\":_vm.check}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{attrs:{\"width\":\"80px\"}}),_c('col',{attrs:{\"width\":\"\"}})])}]\n\nexport { render, staticRenderFns }","// 현재 브라우저에서 localStrogae 사용 가능여부 확인\r\nfunction storageAvailable(type: string) {\r\n var storage;\r\n try {\r\n storage = (window as any)[type];\r\n var x = '__storage_test__';\r\n storage.setItem(x, x);\r\n storage.removeItem(x);\r\n return true;\r\n }\r\n catch(e) {\r\n return e instanceof DOMException && (\r\n // Firefox를 제외한 모든 브라우저\r\n e.code === 22 ||\r\n // Firefox\r\n e.code === 1014 ||\r\n // 코드가 존재하지 않을 수도 있기 떄문에 이름 필드도 확인합니다.\r\n // Firefox를 제외한 모든 브라우저\r\n e.name === 'QuotaExceededError' ||\r\n // Firefox\r\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&\r\n // 이미 저장된 것이있는 경우에만 QuotaExceededError를 확인하십시오.\r\n (storage && storage.length !== 0);\r\n }\r\n}\r\n\r\nexport default (function () {\r\n return {\r\n /**\r\n * 로컬스토리지에 데이터를 저장합니다.\r\n * @param value 저장할 데이터\r\n */\r\n set(value: any, key?: string) {\r\n if (!storageAvailable('localStorage')) {\r\n return;\r\n }\r\n\r\n if(key){\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n else{\r\n localStorage.setItem('org-list', JSON.stringify(value));\r\n }\r\n },\r\n\r\n /**\r\n * 로컬스토리지에서 데이터를 가져옵니다.\r\n */\r\n get(key?:string) {\r\n if (!storageAvailable('localStorage')) {\r\n return\r\n }\r\n\r\n if(key){\r\n const value = localStorage.getItem(key);\r\n return value ? JSON.parse(value) : null;\r\n }else{\r\n const value = localStorage.getItem('org-list');\r\n return value ? JSON.parse(value) : null;\r\n }\r\n },\r\n\r\n /**\r\n * 로컬스토리지에서 데이터를 제거합니다.\r\n */\r\n remove(key?: string | undefined){\r\n if(this.get(key)){\r\n localStorage.removeItem(key || 'org-list');\r\n }\r\n }\r\n }\r\n})()\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"display-name-wrapper\"},[_c('span',{staticClass:\"display-face\",attrs:{\"slot\":\"face\"},slot:\"face\"},[_vm._v(_vm._s(_vm.name))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n//import EumPopover from 'eum-popover';\r\nimport { cache } from '@/util';\r\n\r\n@Component({\r\n components: {},\r\n})\r\nexport default class DisplayName extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String }) name!: string;\r\n @Prop({ type: String }) address!: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n // deptname: string = '';\r\n // jobtitle: string = '';\r\n\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n };\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // onPopchange(isOpen: boolean) {\r\n // if (isOpen) {\r\n // this.avatar.loading = true;\r\n // cache.avatar.get(this.address).then((url) => {\r\n // this.avatar.url = url;\r\n // this.avatar.loading = false;\r\n // });\r\n // cache.hr.get(this.address).then((user: any) => {\r\n // if (user) {\r\n // this.deptname = user.deptName;\r\n // this.jobtitle = user.titleName;\r\n // } else {\r\n // cache.hr\r\n // .get(this.address.replace('dbins.dev', 'feelanet.com'))\r\n // .then((user: any) => {\r\n // if (user) {\r\n // this.deptname = user.deptName;\r\n // this.jobtitle = user.titleName;\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n // }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./DisplayName.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./DisplayName.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisplayName.vue?vue&type=template&id=76b34a56&scoped=true&\"\nimport script from \"./DisplayName.ts?vue&type=script&lang=ts&\"\nexport * from \"./DisplayName.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./DisplayName.vue?vue&type=style&index=0&id=76b34a56&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76b34a56\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModalMask',{attrs:{\"show\":_vm.showMove}},[_c('Modal',{attrs:{\"show\":_vm.showMove}},[_c('OrgchartView',{attrs:{\"type\":_vm.type},on:{\"closeOrgchart\":function($event){return _vm.$emit('close')},\"checkOrgchart\":function($event){return _vm.$emit('check')}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('OrgchartToolbar',{on:{\"close\":function($event){return _vm.$emit('closeOrgchart')},\"check\":function($event){return _vm.$emit('checkOrgchart')}},model:{value:(_vm.user),callback:function ($$v) {_vm.user=$$v},expression:\"user\"}}),_c('div',{staticClass:\"layer-pop-content\"},[_c('MobileView')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layer-pop-header\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('N명_선택됨', {number: _vm.selectedUsersCount})))]),_c('div',{staticClass:\"layer-close left\"},[_c('a',{on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('i',{staticClass:\"icon-close\"})])]),_c('div',{staticClass:\"layer-complete\",on:{\"click\":function($event){return _vm.$emit('check')}}},[_vm._m(0)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',[_c('i',{staticClass:\"icon-check-mark\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport * as types from '@orgmap/store/types';\r\nimport { mapGetters } from 'vuex';\r\n\r\n@Component({\r\n computed: {\r\n ...mapGetters({\r\n userList: types.ORG_USER_SELECT,\r\n }),\r\n },\r\n})\r\nexport default class OrgchartToolbar extends Vue {\r\n @Prop({ type: Object }) value!: any;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedUsersCount: any = 0;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n userList!: orgmap.TUser[];\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('userList')\r\n changedUserList() {\r\n this.selectedUsersCount = this.userList.length;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.selectedUsersCount = this.userList.length;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgchartToolbar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgchartToolbar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrgchartToolbar.vue?vue&type=template&id=4baa78dc&\"\nimport script from \"./OrgchartToolbar.ts?vue&type=script&lang=ts&\"\nexport * from \"./OrgchartToolbar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport MobileView from '@orgmap/views/MobileView.vue';\r\nimport OrgchartToolbar from './OrgchartToolbar.vue';\r\n\r\n@Component({\r\n components: {\r\n MobileView,\r\n OrgchartToolbar,\r\n }\r\n})\r\nexport default class OrgchartView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: String }) type!: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n currentUser!: any;\r\n userList!: any;\r\n user: any = {};\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n selectItem(item: any) {\r\n this.user = item;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgchartView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgchartView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrgchartView.vue?vue&type=template&id=a2914cf4&\"\nimport script from \"./OrgchartView.ts?vue&type=script&lang=ts&\"\nexport * from \"./OrgchartView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport ModalMask from '@/components/common/Modal/ModalMask.vue'\r\nimport Modal from '@/components/common/Modal/Modal.vue'\r\nimport OrgchartView from '@/components/common/Modal/OrgchartView.vue'\r\n\r\n@Component({\r\n components: { Modal, ModalMask, OrgchartView },\r\n})\r\nexport default class OrgchartModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: String }) type!: string\r\n @Prop({ type: Boolean }) showMove!: boolean\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgchartModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgchartModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrgchartModal.vue?vue&type=template&id=1f3bd2c6&\"\nimport script from \"./OrgchartModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./OrgchartModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex'\r\n// import * as types from '@mail/store/types'\r\nimport orgmapStorage from '@orgmap/util/storage-helper'\r\nimport EumTagInput from 'eum-tag-input-mobile'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport $ from 'jquery'\r\nimport DisplayName from '@/components/common/DisplayName.vue'\r\nimport * as orgTypes from '@orgmap/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\nimport OrgchartModal from './Modal/OrgchartModal.vue'\r\nimport orgmapApi from '@orgmap/api'\r\n\r\n@Component({\r\n components: { DisplayName, EumTagInput, OrgchartModal},\r\n computed: mapGetters({\r\n User: accountTypes.USER,\r\n userList: orgTypes.ORG_USER_SELECT,\r\n })\r\n})\r\nexport default class RecipientFields extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Array }) value!: mail.RecipientTag[]\r\n @Prop({ type: String }) title!: String\r\n @Prop({ type: Object }) email!: mail.WriteEmailData\r\n @Prop({ type: String }) type!: ''\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get rcpts() {\r\n return this.value || []\r\n }\r\n\r\n set rcpts(value) {\r\n this.$emit('input', value)\r\n this.$emit('change')\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n showorg: boolean = false\r\n open: boolean = false\r\n isShow: boolean = false\r\n showAutoComplete: boolean = false\r\n autoCompleteList: any = []\r\n showMove: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n userList!: orgmap.TUser[]\r\n User!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/faux/images/ghost.png'\r\n }\r\n\r\n changeAutoComplete() {\r\n this.showAutoComplete = false\r\n this.autoCompleteList = []\r\n ;(this.$refs.eumInput as any).showAutoComplete = false\r\n ;(this.$refs.eumInput as any).ignoreBlur = false\r\n ;(this.$refs.eumInput as any).ignoreEnter = false\r\n }\r\n\r\n searchAction(uniqueId: string) {\r\n let valueKey = `value_${uniqueId}`\r\n let value = (window as any)[valueKey]\r\n orgmapApi.hr\r\n .searchOrg(\r\n {\r\n query: value,\r\n size: 10,\r\n },\r\n this.User.comCode\r\n )\r\n .then((res: any) => {\r\n this.openAutoComplete({\r\n text: 'displayName',\r\n value: 'email',\r\n deptName: 'deptName',\r\n titleName: 'titleName',\r\n img: 'photoPath',\r\n imgRoot: '/cm/gres/v1/img/user',\r\n type: 'type',\r\n data: res.items,\r\n comCode: 'comCode',\r\n deptCode: 'deptCode',\r\n companyName: 'companyName'\r\n })\r\n clearInterval((window as any)[uniqueId])\r\n ;(window as any)[uniqueId] = null\r\n })\r\n .catch((err: any) => {\r\n clearInterval((window as any)[uniqueId])\r\n ;(window as any)[uniqueId] = null\r\n })\r\n }\r\n\r\n openAutoComplete(options: any) {\r\n ;(this.$refs.eumInput as any).clearAllAutoComplete()\r\n ;(this.$refs.eumInput as any).autoCompleteClearFlag = false\r\n let text = options.displayName || 'displayName'\r\n let value = options.email || 'email'\r\n let deptName = options.deptName || 'deptName'\r\n let type = options.type || 'type'\r\n let titleName = options.titleName || 'titleName'\r\n let img = options.photoPath || 'photoPath'\r\n let imgRoot = options.imgRoot || ''\r\n let errorImg = options.errorImg || '/cm/gres/faux/images/ghost.png'\r\n let count = options.count || 10\r\n let data = options.data || []\r\n let deptCode = options.deptCode || 'deptCode'\r\n let comCode = options.comCode || 'comCode'\r\n let companyName = options.companyName || 'companyName'\r\n this.autoCompleteList = data\r\n .splice(0, count)\r\n .map((x: any) => {\r\n let obj = {\r\n text: '',\r\n value: '',\r\n deptName: '',\r\n titleName: '',\r\n img: '',\r\n type: '',\r\n imgRoot: imgRoot,\r\n errorImg: errorImg,\r\n deptCode: '',\r\n comCode: '',\r\n companyName: '',\r\n }\r\n\r\n if (x.hasOwnProperty(text)) {\r\n obj.text = x[text]\r\n }\r\n\r\n if (x.hasOwnProperty(value)) {\r\n obj.value = x[value]\r\n }\r\n\r\n if (x.hasOwnProperty(deptName)) {\r\n obj.deptName = x[deptName]\r\n }\r\n\r\n if (x.hasOwnProperty(type)) {\r\n obj.type = x[type]\r\n }\r\n\r\n if (x.hasOwnProperty(titleName)) {\r\n obj.titleName = x[titleName]\r\n }\r\n\r\n if (x.hasOwnProperty(img)) {\r\n obj.img = x[img]\r\n }\r\n\r\n if (x.hasOwnProperty(deptCode)) {\r\n obj.deptCode = x[deptCode]\r\n }\r\n\r\n if (x.hasOwnProperty(comCode)) {\r\n obj.comCode = x[comCode]\r\n }\r\n\r\n if (x.hasOwnProperty(companyName)) {\r\n obj.companyName = x[companyName]\r\n }\r\n\r\n return obj\r\n })\r\n .filter(\r\n (x: any) =>\r\n (this.$refs.eumInput as any).tags.filter((y: any) => y.value == x.value).length == 0\r\n )\r\n\r\n this.showAutoComplete = this.autoCompleteList.length\r\n\r\n if (this.showAutoComplete) {\r\n ;(this.$refs.eumInput as any).showAutoComplete = true\r\n ;(this.$refs.eumInput as any).ignoreBlur = true\r\n ;(this.$refs.eumInput as any).ignoreEnter = true\r\n }\r\n }\r\n\r\n inputKeyDown(e: Event) {\r\n let target = e.target as HTMLInputElement\r\n let value = target.value\r\n const delayTime = 300\r\n if (value) {\r\n let uniqueId = `pos_${target.offsetTop}_${target.offsetLeft}`\r\n let timeKey = `idx_${uniqueId}`\r\n let valueKey = `value_${uniqueId}`\r\n let flagKey = `flag_${uniqueId}`\r\n ;(window as any)[flagKey] = false\r\n ;(window as any)[valueKey] = value\r\n if (!(window as any)[uniqueId]) {\r\n ;(window as any)[timeKey] = dateutil.uGetDate(delayTime, new Date(), 'time')\r\n ;(window as any)[uniqueId] = setInterval(() => {\r\n if ((window as any)[timeKey] < new Date()) {\r\n if (!(window as any)[flagKey]) {\r\n ;(window as any)[flagKey] = true\r\n this.searchAction(uniqueId)\r\n }\r\n }\r\n }, 11)\r\n } else {\r\n ;(window as any)[timeKey] = dateutil.uGetDate(delayTime, new Date(), 'time')\r\n }\r\n } else {\r\n this.showAutoComplete = false\r\n ;(this.$refs.eumInput as any).showAutoComplete = false\r\n ;(this.$refs.eumInput as any).ignoreBlur = false\r\n ;(this.$refs.eumInput as any).ignoreEnter = false\r\n }\r\n }\r\n\r\n autoCompleteSelect(user: any) {\r\n ;(this.$refs.eumInput as any).text = user.text\r\n ;(this.$refs.eumInput as any).ignoreEnter = true\r\n ;(this.$refs.eumInput as any).ignoreBlur = true\r\n ;(this.$refs.eumInput as any).appendByKey(true, {\r\n text: user.text,\r\n value: user.value,\r\n deptCode: user.deptCode,\r\n deptName: user.displayDeptName,\r\n personCode: user.personCode,\r\n comCode: user.comCode,\r\n })\r\n this.showAutoComplete = false\r\n ;(this.$refs.eumInput as any).showAutoComplete = false\r\n ;(this.$refs.eumInput as any).ignoreBlur = false\r\n ;(this.$refs.eumInput as any).ignoreEnter = false\r\n }\r\n\r\n setInputFocus(e: Event) {\r\n let elem = e.target as HTMLElement\r\n let $input = $(elem).find('.eum-tag-inputbox')\r\n if ($input.length) {\r\n $input.focus()\r\n }\r\n }\r\n\r\n tagAdded(tag: any) {\r\n let userInfo: any\r\n if (this.value.length) {\r\n let tempUser: any = this.value.map((v: any) => {\r\n return {\r\n name: v.text,\r\n email: v.value,\r\n deptCode: v.deptCode,\r\n comCode: v.comCode,\r\n deptName: v.displayDeptName,\r\n personCode: v.personCode,\r\n }\r\n })\r\n\r\n userInfo = {\r\n type: this.type,\r\n users: tempUser,\r\n }\r\n\r\n userInfo.users.push({\r\n name: tag.text,\r\n email: tag.value,\r\n deptCode: tag.deptCode,\r\n comCode: tag.comCode,\r\n deptName: tag.displayDeptName,\r\n personCode: tag.personCode,\r\n })\r\n } else {\r\n userInfo = {\r\n type: this.type,\r\n users: [\r\n {\r\n name: tag.text,\r\n email: tag.value,\r\n deptCode: tag.deptCode,\r\n comCode: tag.comCode,\r\n deptName: tag.displayDeptName,\r\n personCode: tag.personCode,\r\n },\r\n ],\r\n }\r\n }\r\n\r\n this.updateRecipients(userInfo)\r\n orgmapStorage.set(userInfo)\r\n }\r\n\r\n tagDeleted(tag: any) {\r\n let userInfo: any\r\n\r\n if (this.value.length) {\r\n let tempUser: any = this.value.map((v: any) => {\r\n return { name: v.text, email: v.value }\r\n })\r\n\r\n userInfo = {\r\n type: this.type,\r\n users: tempUser,\r\n }\r\n\r\n let idx = this.value.indexOf(tag)\r\n userInfo.users.splice(idx, 1)\r\n }\r\n\r\n this.updateRecipients(userInfo)\r\n orgmapStorage.set(userInfo)\r\n }\r\n\r\n updateRecipients(list: any) {\r\n const email = this.email\r\n let userList: any\r\n if (list.users) {\r\n userList = list.users.map((userInfo: any) => {\r\n return {\r\n name: userInfo.name,\r\n email: userInfo.email,\r\n deptCode: userInfo.deptCode,\r\n comCode: userInfo.comCode,\r\n deptName: userInfo.displayDeptName,\r\n personCode: userInfo.personCode,\r\n }\r\n })\r\n }\r\n const visibles: mail.state.MailWriteVisibles = Object.create(null)\r\n const set = function(users: OrgPersons, type: string) {\r\n if (users && users.length > 0) {\r\n const list: any[] = ((email as any)[type] = [])\r\n users.forEach((user) => {\r\n list.push({\r\n text: user.name,\r\n value: user.email,\r\n comCode: user.comCode,\r\n deptCode: user.deptCode,\r\n deptName: user.displayDeptName,\r\n personCode: user.personCode,\r\n })\r\n })\r\n ;(visibles as any)[type] = true\r\n }\r\n }\r\n\r\n set(userList, this.type)\r\n }\r\n\r\n // 조직도 팝업\r\n openOrgchart() {\r\n let list = (this.email as any)[this.type] || []\r\n\r\n list = list.map((x: any) => {\r\n return {\r\n name: x.name || (x as any).text,\r\n email: x.address || (x as any).value,\r\n deptCode: x.deptCode,\r\n comCode: x.comCode,\r\n }\r\n })\r\n orgmapStorage.set(list)\r\n this.showMove = true\r\n }\r\n\r\n show() {\r\n this.open = !this.open\r\n this.$emit('showWriteCC', this.open)\r\n }\r\n\r\n async check() {\r\n const type = this.type\r\n\r\n let userInfo = {\r\n type: type,\r\n users: this.userList.map((user: orgmap.TUser) => ({\r\n email: user.email,\r\n name: user.displayName,\r\n deptCode: user.deptCode,\r\n comCode: user.comCode,\r\n deptName: user.displayDeptName,\r\n personCode: user.personCode,\r\n })),\r\n }\r\n\r\n const excepts = this.userList.filter((u: orgmap.TUser) => !u.email)\r\n if (excepts.length > 0) {\r\n await(window as any).alertAsync(\r\n '메일 주소가 없는 사용자는 제외합니다. ' +\r\n excepts.map((u: any) => u.displayName || u.name || u.deptName).join(',')\r\n )\r\n }\r\n let userList = this.userList\r\n .filter((u: orgmap.TUser) => u.email)\r\n .map((user: orgmap.TUser) => ({\r\n email: user.email,\r\n name: user.displayName,\r\n deptCode: user.deptCode,\r\n comCode: user.comCode,\r\n deptName: user.displayDeptName,\r\n personCode: user.personCode,\r\n })) as any\r\n const email = this.email\r\n const visibles: mail.state.MailWriteVisibles = Object.create(null)\r\n const set = function(users: any, type: string) {\r\n if (users && users.length > 0) {\r\n const list: any[] = ((email as any)[type] = [])\r\n users.forEach((user: any) => {\r\n list.push({\r\n text: user.name,\r\n value: user.email,\r\n comCode: user.comCode,\r\n deptCode: user.deptCode,\r\n deptName: user.displayDeptName,\r\n personCode: user.personCode,\r\n })\r\n })\r\n ;(visibles as any)[type] = true\r\n }\r\n }\r\n set(userList, this.type)\r\n orgmapStorage.set(userInfo)\r\n this.showMove = false\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./RecipientFields.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./RecipientFields.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecipientFields.vue?vue&type=template&id=00f96c64&\"\nimport script from \"./RecipientFields.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecipientFields.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./RecipientFields.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import storage from './local-storage-helper'\r\n\r\ntype AppConfigKeys =\r\n // server config\r\n 'TokenExpiresMinutes'\r\n |'RejectUploadFileExts';\r\n\r\nexport default (function () {\r\n const STORAGE_KEY = 'EUM_WORKFLOW_APP_CONFIG';\r\n //var config: mail.AppConfig = {};\r\n const defaultConfig = {\r\n MailSplitSize: {\r\n horizontal: 35,\r\n vertical: 35\r\n }\r\n }\r\n const invalidateConfig = (config: any) => {\r\n return {\r\n ...defaultConfig,\r\n ...config\r\n }; \r\n }\r\n return {\r\n //set(update: common.AppConfig) {\r\n set(update: any) {\r\n let config = invalidateConfig(storage.get(STORAGE_KEY)) //as common.AppConfig\r\n const newConfig = {\r\n ...config,\r\n ...update\r\n };\r\n //console.log('app-config', 'set', config, newConfig);\r\n storage.set(STORAGE_KEY, newConfig);\r\n },\r\n\r\n get(key: AppConfigKeys): any {\r\n let config = invalidateConfig(storage.get(STORAGE_KEY)) //as common.AppConfig;\r\n return config[key];\r\n }\r\n }\r\n})();","import api from '@/api'\r\n\r\nfunction flatToHierarchy(flat: Array): Array {\r\n var roots: orgmap.TDepartmentTreeItem[] = []\r\n var all: { [key: string]: orgmap.TDepartmentTreeItem } = {}\r\n flat.forEach(function (item) {\r\n all[item.deptCode] = {\r\n ...item,\r\n hasChildren: item.hasChildren === 'TRUE' ? true : false,\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n users: null\r\n }\r\n })\r\n Object.keys(all).forEach(function (id) {\r\n var item = all[id]\r\n const parentCode = item.parentDeptCode\r\n if (!parentCode) {\r\n roots.push(item)\r\n } else if (parentCode in all) {\r\n var p = all[parentCode]\r\n if (!('children' in p) || !p.children) {\r\n p.children = []\r\n }\r\n p.children.push(item)\r\n } else {\r\n roots.push(item)\r\n }\r\n })\r\n return roots\r\n}\r\n\r\nexport default {\r\n /**\r\n * 조직도 부서 목록을 조회합니다.\r\n * @param {object} data\r\n * { parentDeptCode: {string}, // 상위 부서 코드\r\n * comCode: {string}, // 회사 코드\r\n * level: {number} // 조회할 트리 레벨 }\r\n */\r\n getOrgTree: function (data: orgmap.DepartmentOption): Promise {\r\n return api\r\n .post<{ items: orgmap.TDepartment[] }>({\r\n url: '/api/hr/organization/list',\r\n data: data,\r\n })\r\n .then((res) => flatToHierarchy(res.items))\r\n },\r\n /**\r\n * 부서 코드로 조직도 내 부서 경로를 조회합니다.\r\n * @param {object} data\r\n * { comCode: {string}, // 회사 코드\r\n * deptCode: {string} // 부서 코드 }\r\n */\r\n getDeptPath: function (data: orgmap.DepartmentOption): Promise {\r\n return api.post({\r\n url: '/api/hr/organization/path',\r\n data: data,\r\n })\r\n },\r\n getDeptInfo: function (comCode: string, deptCode: string): Promise {\r\n return api.get({\r\n url: '/api/hr/organization/dept',\r\n params: {\r\n comCode,\r\n deptCode,\r\n },\r\n })\r\n },\r\n /**\r\n * 사용자의 메일주소로 부서정보를 조회합니다.\r\n */\r\n getUserInfo: function (data: any): Promise {\r\n return api.get({\r\n url: '/api/hr/department/info',\r\n params: { email: data },\r\n })\r\n },\r\n /**\r\n * 회사코드와 부서코드로 부서원을 조회합니다.\r\n * @param {object} data\r\n * { deptCode: {string}, // 부서 코드\r\n * comCode: {string} // 회사 코드\r\n * }\r\n */\r\n getEmployeeList: function (\r\n data: orgmap.DepartmentOption\r\n ): Promise> {\r\n return api.post({\r\n url: '/api/hr/department/list',\r\n data: data,\r\n })\r\n },\r\n /**\r\n * 검색어로 부서 또는 직원을 조회합니다.\r\n * @param {object} options 검색옵션\r\n */\r\n searchOrg: function (\r\n options: orgmap.SearchOptions,\r\n comCode: string\r\n ): Promise> {\r\n \r\n let { query } = options\r\n if (query) {\r\n query = encodeURIComponent(query)\r\n }\r\n var data = {\r\n ...options,\r\n comCode: comCode\r\n }\r\n return api.post({\r\n url: '/api/hr/department/search?searchVal=' + query,\r\n data: data,\r\n })\r\n },\r\n\r\n /**\r\n * 회사 목록을 가져옵니다.\r\n * @returns\r\n */\r\n getCompanies: function (): Promise> {\r\n return api.post({\r\n url: '/api/hr/organization/getcompanies',\r\n })\r\n },\r\n\r\n\r\n\r\n}\r\n","import api from '@/api'\r\nexport enum ContactsStoredType {\r\n /**\r\n * database 버전\r\n */\r\n DB,\r\n /**\r\n * exchage 버전\r\n */\r\n EWS,\r\n}\r\nexport default {\r\n getFavoriteFolderList(parentId?: string) {\r\n return api\r\n .post({\r\n url: '/api/contact/folder/list?type=' + ContactsStoredType.DB,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n {\r\n key: 'USER_IS_FAVORITE',\r\n value: 'true',\r\n condition: 'isEqualTo',\r\n },\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: 'Contacts',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) => {\r\n const lists = res.items.map((item: any) => {\r\n return {\r\n ...item,\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n storedType: ContactsStoredType.DB,\r\n isFavorite: true,\r\n type: 'Favorite',\r\n }\r\n })\r\n return lists\r\n })\r\n },\r\n\r\n getPersonalFavoriteFolderList(wellKnownParentName: string, parentId?: string) {\r\n return api\r\n .post({\r\n url: '/api/contact/folder/list?type=' + ContactsStoredType.EWS,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n {\r\n key: 'USER_IS_FAVORITE',\r\n value: 'true',\r\n condition: 'isEqualTo',\r\n },\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: wellKnownParentName,\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) => {\r\n const lists = res.items.map((item: any) => {\r\n return {\r\n ...item,\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n storedType: ContactsStoredType.EWS,\r\n isFavorite: true,\r\n type: 'Favorite',\r\n }\r\n })\r\n return lists\r\n })\r\n },\r\n}\r\n","import api from '@/api';\r\nimport { FilterConditions } from '../types/enums';\r\nimport { ContactsStoredType } from './favorite';\r\nexport default {\r\n /**\r\n * 기본 주소록 폴더를 조회합니다.\r\n */\r\n getBasicContactFolder: function() {\r\n return api\r\n .post({\r\n url: '/api/contact/folder/list?type='+ContactsStoredType.EWS,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n {\r\n key: 'PR_ATTR_HIDDEN',\r\n value: 'false',\r\n condition: 'isEqualTo',\r\n },\r\n ],\r\n parentId: null,\r\n wellKnownParentName: 'MsgFolderRoot',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) =>\r\n res.items.map((item: orgmap.PersonalFolder) => {\r\n var rlt = {\r\n ...item,\r\n selected: false,\r\n storedType: ContactsStoredType.EWS,\r\n };\r\n return rlt;\r\n })\r\n );\r\n },\r\n /**\r\n * 주소록 목록 데이터를 조회합니다.\r\n * @param {string} parentId 폴더 root ID\r\n */\r\n getContactTree: function(parentId?: string) {\r\n return api\r\n .post({\r\n url: '/api/contact/folder/list?type='+ContactsStoredType.EWS,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: 'Contacts',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) =>\r\n res.items.map((item: orgmap.PersonalFolder) => {\r\n var rlt = {\r\n ...item,\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n storedType: ContactsStoredType.EWS,\r\n };\r\n return rlt;\r\n })\r\n );\r\n },\r\n /**\r\n * 연락처 목록을 조회합니다.\r\n * @param {object} data\r\n */\r\n getContactsList(\r\n data: orgmap.api.DynamicApiOptions, type: ContactsStoredType\r\n ): Promise> {\r\n return api\r\n .post({\r\n url: '/api/ews/Contact/list?type=' + type,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'CompanyName' },\r\n { key: 'Department' },\r\n { key: 'JobTitle' },\r\n { key: 'OfficeLocation' },\r\n { key: 'ItemClass' },\r\n { key: 'HasPicture' },\r\n {\r\n key: 'PhoneNumbers',\r\n indexedKey: 'MobilePhone',\r\n as: 'mobile',\r\n },\r\n {\r\n key: 'PhoneNumbers',\r\n indexedKey: 'BusinessPhone',\r\n as: 'businessPhone',\r\n },\r\n // {\r\n // key: 'EmailAddresses',\r\n // indexedKey: 'EmailAddress1',\r\n // format: '{address}',\r\n // as: 'email',\r\n // },\r\n { key: 'PidLidEmail1OriginalDisplayName', as: 'email'},\r\n {\r\n key: 'PhysicalAddresses',\r\n indexedKey: 'Business',\r\n serialize: true,\r\n as: 'businessAddress',\r\n },\r\n {\r\n key: 'Attachments',\r\n indexedKey: 'Attachments',\r\n serialize: true,\r\n filters: [\r\n {\r\n key: 'isContactPhoto',\r\n value: true,\r\n operator: 'eq',\r\n },\r\n ],\r\n },\r\n // ...data.fields,\r\n ],\r\n filters: data.filters,\r\n parentId: data.parentId,\r\n sorts: data.sorts,\r\n pageSize: data.pageSize,\r\n offset: data.offset,\r\n wellKnownParentName: data.wellKnownParentName,\r\n type: data.type,\r\n } as orgmap.api.DynamicApiOptions,\r\n })\r\n .then((res) => {\r\n let rlt = res as orgmap.PagedItemList;\r\n let list = rlt.items;\r\n // console.log('list', list);\r\n rlt.items = rlt.items.map(i => {\r\n return {\r\n ...i,\r\n selected: false,\r\n contactType: i.type\r\n }\r\n });\r\n\r\n return rlt;\r\n });\r\n },\r\n};\r\n","import api from '@/api';\r\nimport { ContactsStoredType } from './favorite';\r\nexport default{\r\n /**\r\n * 주소록 목록 데이터를 조회합니다.\r\n * @param {string} parentId 폴더 root ID\r\n */\r\n getContactTree(parentId?: string) {\r\n return api\r\n .post({\r\n url: `/api/contact/folder/list?type=DB&folderType=PC&shareType=notShared`,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo'\r\n }\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: 'Contacts',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) =>\r\n res.items.map((item: orgmap.PersonalFolder) => {\r\n var rlt = {\r\n ...item,\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n storedType: ContactsStoredType.DB\r\n };\r\n return rlt;\r\n })\r\n );\r\n },\r\n}","import api from '@/api'\r\nexport default {\r\n /**\r\n * 공용연락처 목록 조회\r\n */\r\n getPublicContactsList(data: orgmap.DLGroupApiOption): Promise {\r\n return api\r\n .post({\r\n url: '/api/ma/DistributionGroup/GetDistributionGroupList',\r\n data: data,\r\n });\r\n },\r\n\r\n /**\r\n * 공용연락처 구성원 조회\r\n * @param item 공용연락처\r\n */\r\n getPublicContactsMembersList(\r\n data: orgmap.DLGroupApiOption\r\n ): Promise> {\r\n return api\r\n .post({\r\n url: '/api/ma/DistributionGroup/GetDistributionGroupMemberList',\r\n data: data,\r\n })\r\n .then((res: any) => {\r\n let result = {} as orgmap.PagedItemList\r\n result.items = res.data\r\n result.totalCount = res.totalCount\r\n\r\n return result\r\n })\r\n },\r\n\r\n // getPublicContactsList(data: orgmap.api.DynamicApiOptions): Promise>{\r\n // return api.post({\r\n // url: '/api/contact/public/list',\r\n // data: {\r\n // fields: [\r\n // { key: 'Id'},\r\n // { key: 'Name'}\r\n // ],\r\n // filters: data.filters,\r\n // pageSize: data.pageSize,\r\n // offset: data.offset,\r\n // sorts: data.sorts,\r\n // type: data.type\r\n // }\r\n // }).then((res) => {\r\n // let rlt = res as orgmap.PagedItemList;\r\n // let list = rlt.items;\r\n // rlt.items = list.map((item) => {\r\n // return {\r\n // ...item,\r\n // selected: false,\r\n // contactType: 'P'\r\n // }\r\n // });\r\n // return rlt;\r\n // });\r\n // },\r\n\r\n // /**\r\n // * 공용연락처 구성원 조회\r\n // * @param item 공용연락처\r\n // */\r\n // getPublicContactsMembersList(item: orgmap.ContactItem): Promise>{\r\n // return api.get({\r\n // url: '/api/contact/public/member?id='+ item.id\r\n // }).then((res) => {\r\n // let rlt = res as orgmap.PagedItemList;\r\n // let list = rlt.items;\r\n // rlt.items = list.map((item) => {\r\n // return {\r\n // ...item,\r\n // parentFolderId: item.id,\r\n // id: item.email,\r\n // selected: false,\r\n // photoPath: undefined,\r\n // contactType: 'C'\r\n // }\r\n // });\r\n // rlt.items = list;\r\n\r\n // return rlt;\r\n // });\r\n // },\r\n\r\n /**\r\n * 직원코드로 정보 조회\r\n * @param personCode 직원코드\r\n */\r\n getPersonInfo(personCode: string) {\r\n return api.get({\r\n url: '/api/hr/department/person?personCode=' + personCode,\r\n })\r\n },\r\n}\r\n","import api from '@/api';\r\nimport { ContactsStoredType } from './favorite';\r\nexport default {\r\n /**\r\n * 그룹연락처 구성원을 조회합니다.\r\n * @param id 그룹연락처 ID\r\n * @param type database/exchange 구분\r\n */\r\n getGroupMembers(id: string, type: ContactsStoredType): Promise>{\r\n return api.post({\r\n url: '/api/contact/groupcontact/list?type=' + type,\r\n data:{\r\n parentId: id.toString()\r\n }\r\n });\r\n },\r\n}","import api from '@/api'\r\n\r\nexport default {\r\n getCurrentUser(): Promise {\r\n return api.get({ url: '/api/account/user/current' })\r\n },\r\n\r\n getPhotoUrl(address: string): Promise {\r\n return api.get({\r\n url: `/api/account/photo/${address}`,\r\n })\r\n },\r\n\r\n getPhotoUrlByCodes(codes: string[]): Promise {\r\n return api.post({\r\n url: '/api/account/photo/byCodes',\r\n data: codes,\r\n })\r\n },\r\n\r\n getUser(email: string): Promise {\r\n return api.get({\r\n url: `/api/hr/person`,\r\n params: {\r\n email,\r\n },\r\n })\r\n },\r\n\r\n getUserByPersonCode(personCode: string): Promise {\r\n return api.get({\r\n url: `/api/hr/department/person`,\r\n params: {\r\n personCode,\r\n },\r\n })\r\n },\r\n}\r\n","import client from '@/api'\r\n\r\nexport default {\r\n login(email: string, password: string) {\r\n return client.post({\r\n url: '/api/Account/authjwt/login',\r\n data: { email, password },\r\n })\r\n },\r\n}\r\n","import hr from './hr'\r\nimport personal from './personal'\r\nimport local from './local'\r\nimport publics from './public'\r\nimport group from './group'\r\nimport favorite from './favorite'\r\nimport account from './account'\r\nimport auth from './auth'\r\n\r\nexport default {\r\n auth,\r\n account,\r\n hr,\r\n personal,\r\n local,\r\n publics,\r\n group,\r\n favorite,\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"org-target-list\"},_vm._l((_vm.info.items),function(item){return _c('WishListItem',{key:item.email,attrs:{\"item\":item,\"onDeleteOne\":_vm.onDeleteOne,\"onSelect\":_vm.onSelect,\"onDelete\":_vm.onDelete,\"userLang\":_vm.userLang}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{on:{\"dblclick\":function($event){$event.stopPropagation();return _vm.onDeleteOne(_vm.item)},\"click\":function($event){$event.preventDefault();$event.stopPropagation();return (function () { return _vm.onSelect(_vm.item); }).apply(null, arguments)}}},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto ellipsis\"},[_c('div',{staticClass:\"checkbox\"},[_c('label',{staticClass:\"ellipsis w-100\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.selected),expression:\"item.selected\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.item.selected)?_vm._i(_vm.item.selected,null)>-1:(_vm.item.selected)},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){var $$a=_vm.item.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.item, \"selected\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.item, \"selected\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.item, \"selected\", $$c)}}}}),_c('span',{staticClass:\"label m-l-xs\"},[_vm._v(_vm._s(_vm.userLang == 'ko-KR' ? _vm.item.text : (_vm.userLang == 'en-US' ? _vm.item.nameEn : _vm.item.nameChi))+\" \"+_vm._s(_vm.item.value)+\" \"+_vm._s(_vm.userLang == 'ko-KR' ? _vm.item.title : _vm.item.titleEn))])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class UserListItem extends Vue {\r\n @Prop({ type: Object }) item!: orgmap.TWishContainerItem\r\n @Prop({ type: Function }) onSelect!: (item: orgmap.TWishContainerItem) => void\r\n @Prop({ type: Function }) onDelete!: (item?: orgmap.TWishContainerItem) => void\r\n @Prop({ type: Function }) onDeleteOne!: (item?: orgmap.TWishContainerItem) => void\r\n @Prop({ type: String }) userLang!: String\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WishListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WishListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishListItem.vue?vue&type=template&id=66c019aa&\"\nimport script from \"./WishListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./WishListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WishListItem from './WishListItem.vue'\r\n\r\n@Component({\r\n components: { WishListItem },\r\n})\r\nexport default class WishList extends Vue {\r\n @Prop({ type: Object }) info!: orgmap.TWishContainer\r\n @Prop({ type: Function }) onAdd!: () => void\r\n @Prop({ type: Function }) onDelete!: (item?: orgmap.TWishContainerItem) => void\r\n @Prop({ type: Function }) onSelect!: (item: orgmap.TWishContainerItem) => void\r\n @Prop({ type: Function }) onDeleteOne!: (item?: orgmap.TWishContainerItem) => void\r\n @Prop({ type: String }) userLang!: String\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WishList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WishList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishList.vue?vue&type=template&id=f54c0a22&\"\nimport script from \"./WishList.ts?vue&type=script&lang=ts&\"\nexport * from \"./WishList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"area-flex-column\"},[(_vm.showCompany)?_c('div',{staticClass:\"area-scroll-hide\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentCompany),expression:\"currentCompany\"}],staticClass:\"fm-def w-100\",attrs:{\"disabled\":_vm.isFixedComcode,\"name\":\"\",\"id\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.currentCompany=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.companies),function(company,idx){return _c('option',{key:idx,domProps:{\"value\":company}},[_vm._v(_vm._s((_vm.userlang == 'ko-kr' ? company.companyName : company.companyNameEng)))])}),0),_c('div',{staticClass:\"space-m\"})]):_vm._e(),_c('div',{staticClass:\"area-scroll-active\"},[_c('div',{staticClass:\"m-tree tree-bind\"},_vm._l((_vm.items),function(item){return _c('DeptTreeItem',{key:item.id,attrs:{\"item\":item,\"onExpand\":_vm.onExpand,\"current\":_vm.current,\"userlang\":_vm.userlang},on:{\"selectDept\":_vm.selectDept,\"addDept\":_vm.addDept}})}),1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-node\"},[_c('div',{staticClass:\"m-top\",class:{ 'selected' : (_vm.current !== null ? _vm.item.id === _vm.current.id : false) },on:{\"click\":function($event){$event.stopPropagation();return _vm.selectDept(_vm.item)}}},[_c('span',{staticClass:\"menu-icon\",on:{\"click\":function($event){$event.stopPropagation();return (function () { return _vm.onExpand(_vm.item); }).apply(null, arguments)}}},[(!_vm.item.hasChildren)?_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/tree_folder.png\"}}):(_vm.item.expanded)?_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/tree_folder_minus.png\"}}):_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/tree_folder_add.png\"}})]),_c('span',{staticClass:\"menu-name\"},[_vm._v(_vm._s((_vm.userlang == 'ko-kr' ? _vm.item.deptName : _vm.item.deptNameEn)))])]),(_vm.item.expanded)?_c('div',{staticClass:\"m-sub\"},_vm._l((_vm.item.children),function(child){return _c('dept-tree-item',{key:child.id,attrs:{\"item\":child,\"onExpand\":_vm.onExpand,\"current\":_vm.current,\"userlang\":_vm.userlang},on:{\"selectDept\":_vm.selectDept,\"addDept\":_vm.addDept}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport routerHelper from '../../util/router-helper'\r\n\r\n@Component({\r\n name: 'dept-tree-item'\r\n})\r\nexport default class DeptTreeItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: orgmap.TDepartmentTreeItem\r\n @Prop({ type: Function }) onExpand!: (item: orgmap.TDepartmentTreeItem) => void\r\n @Prop({ type: Object, default: null }) current!: orgmap.TDepartmentTreeItem\r\n @Prop({ type: String }) userlang!: string\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n click: number = 0\r\n delay: number = 200\r\n timer: any = null\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 부서 클릭시 호출됩니다.\r\n * @param item\r\n */\r\n selectDept(item: orgmap.TDepartmentTreeItem) {\r\n const _this = this\r\n this.click++\r\n if (this.click === 1) {\r\n this.timer = setTimeout(() => {\r\n _this.$emit('selectDept', item)\r\n _this.click = 0\r\n }, this.delay)\r\n } else {\r\n clearTimeout(this.timer)\r\n this.$emit('addDept', item)\r\n this.click = 0\r\n }\r\n }\r\n\r\n /**\r\n * 부서를 컨테이너에 추가합니다.\r\n * @param item\r\n */\r\n addDept(item: orgmap.TDepartmentTreeItem) {\r\n this.$emit('addDept', item)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeptTreeItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeptTreeItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeptTreeItem.vue?vue&type=template&id=453233f6&\"\nimport script from \"./DeptTreeItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./DeptTreeItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport DeptTreeItem from './DeptTreeItem.vue'\r\n\r\nimport { mapGetters } from 'vuex'\r\nimport * as types from '@orgmap/store/types'\r\n\r\n@Component({\r\n name: 'dept-tree',\r\n components: { DeptTreeItem },\r\n computed: mapGetters({\r\n options: types.ORG_OPTION_GET\r\n })\r\n})\r\nexport default class DeptTree extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) items!: orgmap.TDepartmentTreeItem[]\r\n @Prop({ type: Function }) onExpand!: (item: orgmap.TDepartmentTreeItem) => void\r\n @Prop({ type: Object, default: null }) current!: orgmap.TDepartmentTreeItem;\r\n @Prop({ type: Array }) companies!: orgmap.Company[];\r\n @Prop({ type: Boolean, default: true }) showCompany!: boolean;\r\n @Prop({ type: String }) userlang!: string;\r\n\r\n\r\n\r\n options!: orgmap.TWishContainerOptions\r\n isFixedComcode: boolean = false\r\n\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n currentCompany: orgmap.Company = {} as any;\r\n\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectDept(item: orgmap.TDepartmentTreeItem) {\r\n this.$emit('selectDept', item);\r\n }\r\n\r\n addDept(item: orgmap.TDepartmentTreeItem) {\r\n this.$emit('addDept', item);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('currentCompany')\r\n onCurrentCompanyChanged(newValue: orgmap.Company, oldValue: orgmap.Company) {\r\n if (oldValue.comCode && newValue.comCode && oldValue.comCode !== newValue.comCode) {\r\n this.$emit('selCompany', newValue);\r\n }\r\n }\r\n\r\n @Watch('companies')\r\n onCompaniesChanged(newValue: orgmap.Company[]) {\r\n\r\n const _this = this\r\n const defaultLogic = function () {\r\n //기존 로직\r\n _this.currentCompany = newValue.filter(x => x.selected === true)[0];\r\n }\r\n\r\n if (newValue) {\r\n //2022-01-10 조직도 회사코드 고정 기능 추가\r\n //옵션으로 유효한 회사코드 입력 시 입력된 회사로 선택 후 고정\r\n //여기서부터 분기해야겠네\r\n if (this.options.selectFixedComcode != '') {\r\n\r\n //여기서 수정되어야겠네?\r\n //기본 로직 실행되고 -> 입력된 코드로 선택\r\n //옵션 유무 체크 \r\n //우선 유효한 Comcode 인지 확인\r\n const comCodes = newValue.filter(com => {\r\n return com.comCode == this.options.selectFixedComcode\r\n })\r\n\r\n //유효한 코드\r\n if (comCodes.length > 0) {\r\n //회사 선택 드롭다운 읽기전용 Flag\r\n this.isFixedComcode = true\r\n this.currentCompany = comCodes[0]\r\n this.$emit('selCompany', comCodes[0]);\r\n } else {\r\n defaultLogic()\r\n }\r\n\r\n\r\n } else {\r\n defaultLogic()\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeptTree.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeptTree.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeptTree.vue?vue&type=template&id=142ef153&\"\nimport script from \"./DeptTree.ts?vue&type=script&lang=ts&\"\nexport * from \"./DeptTree.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"grd-wrap\"},[_c('div',{staticClass:\"grd-head\"},[_c('table',{staticClass:\"grd grd-bgblue grd-th-sm\",attrs:{\"width\":\"100%\"}},[_vm._m(0),_c('thead',[_c('tr',[_c('th',[(!_vm.options.single)?_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.selectedAll),expression:\"value.selectedAll\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.value.selectedAll)?_vm._i(_vm.value.selectedAll,null)>-1:(_vm.value.selectedAll)},on:{\"click\":function (e) { return _vm.onSelectAll(e.target.checked); },\"change\":function($event){var $$a=_vm.value.selectedAll,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.value, \"selectedAll\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.value, \"selectedAll\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.value, \"selectedAll\", $$c)}}}})])]):_vm._e()]),_c('th',[_vm._v(_vm._s(_vm.$t('이름')))]),_c('th',[_vm._v(_vm._s(_vm.$t('직위')))]),_c('th',[_vm._v(_vm._s(_vm.$t('직책')))]),_c('th',[_vm._v(_vm._s(_vm.$t('W_DepartmentName')))]),_c('th',[_vm._v(_vm._s(_vm.$t('회사번호')))])])])])]),_c('div',{staticClass:\"grd-content\"},[_c('table',{staticClass:\"grd grd-bgblue tr-hover\",attrs:{\"width\":\"100%\"}},[_vm._m(1),_c('tbody',[(_vm.loading)?[_vm._v(\" \"+_vm._s(_vm.$t('로딩_중'))+\" \")]:(_vm.items.length)?_vm._l((_vm.items),function(item,idx){return _c('MemberListItem',{key:idx,attrs:{\"item\":item,\"userlang\":_vm.userlang,\"onSelect\":_vm.onSelect,\"onSelectOne\":_vm.onSelectOne}})}):_vm._e()],2)]),(!_vm.loading && _vm.items.length == 0)?_c('div',{staticClass:\"not-found\"},[_c('img',{staticClass:\"m-b-l\",attrs:{\"src\":\"/cm/gres/faux/images/no_data.png\"}}),_c('span',{staticClass:\"ft-m ft-gray\"},[_vm._v(_vm._s(_vm.$t('해당_부서에_사용자가_없습니다')))])]):_vm._e()])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{attrs:{\"width\":\"10%\"}}),_c('col',{attrs:{\"width\":\"15%\"}}),_c('col',{attrs:{\"width\":\"15%\"}}),_c('col'),_c('col'),_c('col')])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{attrs:{\"width\":\"10%\"}}),_c('col',{attrs:{\"width\":\"15%\"}}),_c('col',{attrs:{\"width\":\"15%\"}}),_c('col'),_c('col'),_c('col')])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{class:{'selected': _vm.selected ? true : false},on:{\"dblclick\":function($event){$event.stopPropagation();return _vm.onSelectOne(_vm.item, _vm.options.single)},\"click\":function($event){$event.stopPropagation();return (function () { return _vm.onSelect(_vm.item); }).apply(null, arguments)}}},[_c('td',[_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected),expression:\"selected\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.selected)?_vm._i(_vm.selected,null)>-1:(_vm.selected)},on:{\"change\":function($event){var $$a=_vm.selected,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.selected=$$a.concat([$$v]))}else{$$i>-1&&(_vm.selected=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.selected=$$c}}}})])])]),_c('td',[_vm._v(_vm._s((_vm.userlang == 'ko-kr' || _vm.userlang == 'ko-KR' ? _vm.item.name : (_vm.userlang == 'en-US' ? _vm.item.nameEn : _vm.item.nameChi))))]),_c('td',[_vm._v(_vm._s((_vm.userlang == 'ko-kr' || _vm.userlang == 'ko-KR' ? _vm.item.title : (_vm.item.titleEn != '' ? _vm.item.titleEn : _vm.item.title))))]),_c('td',[_vm._v(_vm._s((_vm.userlang == 'ko-kr' || _vm.userlang == 'ko-KR' ? _vm.item.positionName : (_vm.item.positionNameEn != '' ? _vm.item.positionNameEn : _vm.item.positionName))))]),_c('td',[_vm._v(_vm._s((_vm.userlang == 'ko-kr' || _vm.userlang == 'ko-KR' ? _vm.item.deptName : (_vm.item.deptNameEn != '' ? _vm.item.deptNameEn : _vm.item.deptName))))]),_c('td',[_vm._v(_vm._s(_vm.item.tel))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@orgmap/store/types'\r\n@Component({\r\n name: 'MemberListItem',\r\n computed: {\r\n ...mapGetters({\r\n options: types.ORG_OPTION_GET\r\n }),\r\n }\r\n})\r\nexport default class MemberListItem extends Vue {\r\n @Prop({ type: Object }) item!: orgmap.TMemberItem\r\n @Prop({ type: String }) userlang!: string\r\n @Prop({ type: Function }) onSelect!: (item: orgmap.TMemberItem) => void\r\n @Prop({ type: Function }) onSelectOne!: (item: orgmap.TMemberItem, isSingle: boolean) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selected: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n options!: orgmap.TWishContainerOptions; \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H E S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('item.selected')\r\n onSelectedChanged(newVal: boolean) {\r\n this.selected = newVal\r\n }\r\n\r\n mounted() {\r\n this.selected = this.item.selected\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MemberListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MemberListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MemberListItem.vue?vue&type=template&id=5717e93a&\"\nimport script from \"./MemberListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./MemberListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport MemberListItem from './MemberListItem.vue'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@orgmap/store/types'\r\n\r\n@Component({\r\n name: 'MemberList',\r\n components: { MemberListItem },\r\n computed: {\r\n ...mapGetters({\r\n options: types.ORG_OPTION_GET\r\n }),\r\n }\r\n})\r\nexport default class MemberList extends Vue {\r\n @Prop({ type: Object }) value!: orgmap.TMemberList\r\n @Prop({ type: Boolean }) loading!: boolean\r\n @Prop({ type: String }) userlang!: string\r\n @Prop({ type: Function }) onSelect!: (item: orgmap.TMemberItem) => void\r\n @Prop({ type: Function }) onSelectOne!: (item: orgmap.TMemberItem, isSingle: boolean) => void\r\n @Prop({ type: Function }) onSelectAll!: () => void\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get items() {\r\n return this.value.items\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedAll: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n options!: orgmap.TWishContainerOptions; \r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H E S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('value.selectedAll')\r\n onAllSelectChanged(newVal: boolean) {\r\n this.selectedAll = newVal\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n this.selectedAll = this.value.selectedAll\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MemberList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MemberList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MemberList.vue?vue&type=template&id=f696fb0c&\"\nimport script from \"./MemberList.ts?vue&type=script&lang=ts&\"\nexport * from \"./MemberList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h6',{staticClass:\"ft-basic m-b-m\"},[_vm._v(\" \"+_vm._s(_vm.name)+\" \"),_c('span',{staticClass:\"ft-red\"},[_vm._v(\"(\"+_vm._s(_vm.count)+\")\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n name: 'DepartmentInfo',\r\n})\r\nexport default class DepartmentInfo extends Vue {\r\n @Prop({ type: String }) name!: string\r\n @Prop({ type: Number }) count!: number\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentInfo.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentInfo.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DepartmentInfo.vue?vue&type=template&id=75118f92&\"\nimport script from \"./DepartmentInfo.ts?vue&type=script&lang=ts&\"\nexport * from \"./DepartmentInfo.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-node\"},[_c('div',{staticClass:\"m-top\",class:{ selected: _vm.item.selected },on:{\"click\":function($event){return _vm.select(_vm.item)}}},[_vm._m(0),_c('span',{staticClass:\"menu-name\"},[_vm._v(\" \"+_vm._s(_vm.item[_vm.headerField])+\" \")]),(_vm.hasChildren)?_c('span',{staticClass:\"menu-icon-arrow\"},[_c('i',{class:[_vm.item.expanded ? 'icon-up' : 'icon-down']})]):_vm._e()]),_c('div',{staticClass:\"m-sub\"},[_c('UserList',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.item.expanded),expression:\"item.expanded\"}],attrs:{\"item\":_vm.item}}),_vm._l((_vm.item.children),function(child){return _c('DepartmentItem',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.item.expanded),expression:\"item.expanded\"}],key:child.key,attrs:{\"item\":child,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"select\":function (targetItem) { return _vm.$emit('select', targetItem); }}})})],2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"menu-icon\"},[_c('i',{staticClass:\"icon-folder\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.item.users),function(user,index){return _c('User',{key:index,attrs:{\"user\":user}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-node\",on:{\"click\":function($event){$event.preventDefault();return _vm.select(_vm.user)}}},[_c('div',{staticClass:\"m-top\",class:{ selected: _vm.user.selected }},[_c('span',{staticClass:\"menu-img\"},[(_vm.user.photoPath)?_c('img',{ref:\"photo\",attrs:{\"src\":_vm.domain + _vm.user.photoPath},on:{\"error\":_vm.errorPhoto}}):_c('img',{attrs:{\"src\":'/cm/gres/faux/images/ghost.png'}})]),_c('span',{staticClass:\"menu-name\"},[_vm._v(\" \"+_vm._s(_vm.user.displayName)+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { mapMutations } from 'vuex'\r\nimport * as types from '@orgmap/store/types'\r\n\r\n@Component({\r\n name: 'User',\r\n methods: {\r\n ...mapMutations({\r\n selectUser: types.ORG_USER_SELECT\r\n })\r\n }\r\n})\r\nexport default class User extends Vue {\r\n\r\n domain: string = `${location.protocol}//${location.host}`\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) user!: orgmap.TUser\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectUser!: (payload: orgmap.TUser) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select(user: orgmap.TUser) {\r\n user.selected = !user.selected\r\n this.selectUser(user)\r\n }\r\n\r\n errorPhoto() {\r\n if (\r\n (this.$refs.photo as HTMLImageElement) != undefined &&\r\n (this.$refs.photo as HTMLImageElement).src !== window.location.href\r\n ) {\r\n (this.$refs.photo as HTMLImageElement).src =\r\n '/cm/gres/faux/images/ghost.png'\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./User.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./User.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./User.vue?vue&type=template&id=7aaf070e&\"\nimport script from \"./User.ts?vue&type=script&lang=ts&\"\nexport * from \"./User.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters } from 'vuex'\r\nimport * as orgmapTypes from '@orgmap/store/types'\r\nimport orgmapStorage from '@orgmap/util/storage-helper'\r\n\r\nimport User from './User.vue';\r\n@Component({\r\n name: 'UserList',\r\n components: { User },\r\n computed: {\r\n ...mapGetters({\r\n selectUsers: orgmapTypes.ORG_USER_SELECT\r\n })\r\n }\r\n})\r\nexport default class UserList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) item!: orgmap.TDepartmentTreeItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectUsers!: orgmap.TUser[];\r\n\r\n // get filteredUsers() {\r\n // return this.users.items.filter((item: any) => {\r\n // return item.deptCode === this.deptCode;\r\n // });\r\n // }\r\n\r\n // selectUser(user: any) {\r\n // this.$emit('selectUser', user);\r\n // }\r\n\r\n updated() {\r\n var selectUserFlat = this.selectUsers.flatMap((user: orgmap.TUser) => user.personCode)\r\n\r\n if (this.item.users) {\r\n this.item.users?.forEach((user: any) => {\r\n if (selectUserFlat.includes(user.personCode)) {\r\n user.selected = true\r\n }\r\n })\r\n }\r\n \r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./UserList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./UserList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=39eadbc3&\"\nimport script from \"./UserList.ts?vue&type=script&lang=ts&\"\nexport * from \"./UserList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport UserList from './UserList.vue';\r\n\r\n@Component({\r\n name: 'DepartmentItem',\r\n components: { UserList },\r\n})\r\nexport default class DepartmentItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n users!: orgmap.PagedItemList;\r\n depts!: any;\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadUsers!: () => void;\r\n expand!: (data: {\r\n deptInfo: orgmap.Department;\r\n emailList: string[];\r\n }) => void;\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n // @Prop({ type: Object }) item!: orgmap.TreeListItem;\r\n @Prop({ type: Object }) item!: any;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n delay: number = 200;\r\n clicks: number = 0;\r\n timer: any = null;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // get FilteredUsers() {\r\n // return this.users.items.filter((item: any) => {\r\n // return item.deptCode === this.item.deptCode;\r\n // });\r\n // }\r\n\r\n // get isSelected() {\r\n // const { selected } = this.item;\r\n\r\n // let isSelected = false;\r\n // if (typeof selected === 'boolean') {\r\n // isSelected = selected;\r\n // } else if (typeof selected === 'function') {\r\n // isSelected = selected(this.item);\r\n // }\r\n\r\n // // if (isSelected) {\r\n // // this.item.expanded = true;\r\n // // } else {\r\n // // this.item.expanded = false;\r\n // // }\r\n\r\n // return isSelected;\r\n // }\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('item.expanded')\r\n onExpanded(newValue: boolean): void {\r\n if (newValue != undefined && newValue === true) {\r\n this.$emit('expand', this.item);\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n hasChildren(): boolean {\r\n if (typeof this.hasChildrenField === 'string') {\r\n return (this.item as any)[this.hasChildrenField];\r\n } else {\r\n return this.hasChildrenField(this.item);\r\n }\r\n }\r\n\r\n select(item: orgmap.TreeListItem) {\r\n this.$emit('select', item);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DepartmentItem.vue?vue&type=template&id=25fa86ae&\"\nimport script from \"./DepartmentItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./DepartmentItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"org-list\"},_vm._l((_vm.items),function(item,index){return _c('DepartmentItem',{key:index,attrs:{\"item\":item,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"selectItem\":_vm.selectItem,\"select\":function (child) { return _vm.$emit('select', child); }}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n// components\r\nimport DepartmentItem from './DepartmentItem.vue';\r\n\r\n@Component({\r\n name: 'DepartmentList',\r\n components: { DepartmentItem },\r\n})\r\nexport default class DepartmentList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) items!: orgmap.TreeListItem;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n\r\n selectItem(item: any) {\r\n this.$emit('selectItem', item);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DepartmentList.vue?vue&type=template&id=1ba33d24&\"\nimport script from \"./DepartmentList.ts?vue&type=script&lang=ts&\"\nexport * from \"./DepartmentList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.item)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"area-scroll-hide no-padding\"},[_c('div',{staticClass:\"org-user-detail\"},[_c('div',{staticClass:\"dp-flex vertical-top overflow-auto-y\"},[_c('div',{staticClass:\"m-r-l\"},[_c('div',{staticClass:\"photo\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/ghost_loading.png\"}}):_c('img',{ref:\"photo\",attrs:{\"src\":_vm.avatar.url,\"alt\":\"사용자 사진\"},on:{\"error\":_vm.catchImgError}})])]),_c('div',{staticClass:\"w-100\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"dp-flex mr-auto\"},[_c('h6',{staticClass:\"ft-basic no-margin no-padding\"},[_c('span',[_vm._v(_vm._s((_vm.userlang == 'ko-kr' ? _vm.item.name : (_vm.userlang == 'en-us' ? _vm.item.nameEn : _vm.item.nameChi))))])]),_c('div',{staticClass:\"m-l-s\"},[_c('a',{staticClass:\"btn btn-gray-outline\",staticStyle:{\"padding\":\"5px\"},attrs:{\"href\":(\"mailto:\" + (_vm.item.email))}},[_c('i',{staticClass:\"icon-fux-un-email\"})])])]),_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn ico-btn\",on:{\"click\":_vm.handleClose}},[_c('i',{staticClass:\"icon-fux-close\"})])])]),_c('div',{staticClass:\"ft-m\"},[(_vm.userlang == 'ko-kr')?_c('span',[_vm._v(_vm._s(_vm.item.title)+_vm._s(_vm.item.positionName ? ' | ' + _vm.item.positionName : ''))]):_c('span',[_vm._v(_vm._s(_vm.item.titleEn)+_vm._s(_vm.item.positionNameEn ? (_vm.item.titleEn ? ' | ' : '') + _vm.item.positionNameEn : ''))])]),_c('div',{staticClass:\"ft-m\"},[(_vm.userlang == 'ko-kr')?_c('span',[_vm._v(_vm._s(_vm.item.deptName)+_vm._s(_vm.item.company ? ' | ' + _vm.item.company : ''))]):_c('span',[_vm._v(_vm._s(_vm.item.deptNameEn)+_vm._s(_vm.item.companyEn ? (_vm.item.deptNameEn ? ' | ' : '') + _vm.item.companyEn : ''))])]),_c('div',{staticClass:\"divide-row divide-gray m-t-m\"}),_c('table',{staticClass:\"tbl-fixed\",attrs:{\"width\":\"100%\"}},[_vm._m(0),_c('tbody',[_c('tr',[_vm._m(1),_c('td',{staticClass:\"vertical-top\"},[_c('a',{staticClass:\"link ft-m ft-blue\",attrs:{\"href\":(\"mailto:\" + (_vm.item.email))}},[_vm._v(_vm._s(_vm.item.email))])]),_vm._m(2),_c('td',{staticClass:\"vertical-top\"},[_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s(_vm.item.mobile))])])]),_c('tr',[_c('td',{staticClass:\"vertical-top\"}),_c('td',{staticClass:\"vertical-top\"}),_vm._m(3),_c('td',{staticClass:\"vertical-top\"},[_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s(_vm.item.tel)+\" \"+_vm._s(_vm.getFax(_vm.item)))])])])])])])])])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{attrs:{\"width\":\"30px\"}}),_c('col',{attrs:{\"width\":\"\"}}),_c('col',{attrs:{\"width\":\"30px\"}}),_c('col',{attrs:{\"width\":\"\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"vertical-top\"},[_c('i',{staticClass:\"icon-fux-un-email ft-m ft-gray\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"vertical-top\"},[_c('i',{staticClass:\"icon-fux-telephone ft-s ft-gray\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"vertical-top\"},[_c('i',{staticClass:\"icon-fux-office-call ft-s ft-gray\"})])}]\n\nexport { render, staticRenderFns }","import { cache } from '@appbase/util'\r\nimport Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n\r\n@Component({\r\n name: 'DetailCard',\r\n})\r\nexport default class DetailCard extends Vue {\r\n @Prop({ type: Object }) item!: orgmap.TMemberItem | null\r\n @Prop({ type: String }) companyName!: string\r\n @Prop({ type: String }) userlang!: string\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n visible: boolean = false\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n }\r\n\r\n companyNameDisplay: string = ''\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('item')\r\n onItemChanged(newVal: orgmap.TMemberItem | null) {\r\n this.companyNameDisplay = this.companyName\r\n this.updateVisible(newVal)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n this.updateVisible(this.item)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getFax(item: orgmap.TMemberItem) {\r\n if (item.officeFax) {\r\n return `(FAX : ${item.officeFax})`;\r\n }\r\n return '';\r\n }\r\n\r\n handleClose() {\r\n this.visible = false\r\n }\r\n\r\n updateVisible(item: orgmap.TMemberItem | null) {\r\n this.visible = item ? true : false\r\n cache.avatar.get(item?.email || '').then((url) => {\r\n this.avatar.url = url\r\n this.avatar.loading = false\r\n })\r\n }\r\n\r\n catchImgError() {\r\n if (\r\n (this.$refs.photo as HTMLImageElement) != undefined &&\r\n (this.$refs.photo as HTMLImageElement).src !== window.location.href\r\n ) {\r\n ; (this.$refs.photo as HTMLImageElement).src = '/cm/gres/faux/images/ghost.png'\r\n }\r\n }\r\n\r\n openTeamsChat() {\r\n if(this.item) {\r\n var segment = this.item.id.indexOf('_');\r\n var account = this.item.id.substring(segment + 1);\r\n\r\n var chatUrl = `MSTeams:/l/chat/0/0?users=${account}@kyoboaxa.com`\r\n\r\n if (this.isTeams) {\r\n window.location.href = chatUrl;\r\n } else {\r\n var childWindow = window.open(chatUrl);\r\n \r\n // if(childWindow) { \r\n // setTimeout(function () { childWindow?.close(); }, 3); \r\n // }\r\n }\r\n } \r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./DetailCard.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./DetailCard.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DetailCard.vue?vue&type=template&id=e007ec86&\"\nimport script from \"./DetailCard.ts?vue&type=script&lang=ts&\"\nexport * from \"./DetailCard.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModalLayout',{attrs:{\"mStyle\":'width:70vw; min-width:800px;',\"title\":_vm.$t('W_Settings_DB_Enable'),\"full\":true,\"noFooter\":true,\"isEmit\":true},on:{\"cancel\":_vm.cancel}},[_c('div',{staticClass:\"setting-wrapper\"},[_c('NavigationTab',{attrs:{\"items\":_vm.tmenues},on:{\"changed\":_vm.changed}},[_c('div',{staticClass:\"nested-tab-content\"},[_c('div',{staticClass:\"nested-tab-panel active\"},[_c('NavigationTab',{attrs:{\"items\":_vm.mchildren},on:{\"changed\":_vm.clickChildren}},[_c(_vm.component,{tag:\"component\",on:{\"open\":_vm.open,\"cancel\":_vm.cancel}})],1)],1)])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nested-tab-wrap vertical\"},[_c('ul',{staticClass:\"nested-tab-nav\"},_vm._l((_vm.itemsModel),function(item,index){return _c('li',{key:index},[_c('a',{staticClass:\"nested-tab\",class:{ active: item.selected },on:{\"click\":function($event){return _vm.itemClick(item)}}},[_vm._v(_vm._s(item.name))])])}),0),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport { MenuInfo } from '../components/Preference/menu'\r\n\r\n@Component({\r\n})\r\nexport default class NavigationTab extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @PropSync('items', { type: Array }) itemsModel!: MenuInfo[];\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n itemClick(item: MenuInfo){\r\n this.itemsModel.map((i)=>{\r\n if(i.name === item.name){\r\n i.selected = true;\r\n }else{\r\n i.selected = false;\r\n if(i.children){\r\n i.children.map((c:MenuInfo)=>{\r\n c.selected = false;\r\n })\r\n }\r\n }\r\n })\r\n\r\n this.$emit('changed', this.itemsModel);\r\n }\r\n\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./NavigationTab.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./NavigationTab.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavigationTab.vue?vue&type=template&id=7f0178aa&\"\nimport script from \"./NavigationTab.ts?vue&type=script&lang=ts&\"\nexport * from \"./NavigationTab.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('Dropdown',{style:('width:100%;'),attrs:{\"items\":_vm.language.languageFields,\"selected\":_vm.selectedLang},on:{\"change\":_vm.select}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h6',{staticClass:\"subject\"},[_vm._v(_vm._s(_vm.header))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n})\r\nexport default class ModalHeader extends Vue {\r\n @Prop({ type:String }) header!: '';\r\n\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalHeader.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalHeader.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalHeader.vue?vue&type=template&id=033148b4&\"\nimport script from \"./ModalHeader.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalHeader.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel-content\"},[(_vm.description)?_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.description))]):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n})\r\nexport default class ModalContent extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String}) description!: '';\r\n\r\n\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalContent.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalContent.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalContent.vue?vue&type=template&id=4b4e713e&\"\nimport script from \"./ModalContent.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalContent.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dp-flex\"},[(_vm.isPreview)?_c('div',{staticClass:\"mr-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic-outline\",on:{\"click\":function($event){return _vm.$emit('preview')}}},[_vm._v(_vm._s(_vm.$t('미리보기')))])]):_vm._e(),_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('save')}}},[_vm._v(_vm._s(_vm.$t('W_Contact_Save')))]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(_vm._s(_vm.$t('W_Cancel')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport modalHelper from '@appbase/util/modal-helper'\r\n\r\n@Component({\r\n})\r\nexport default class ModalFooter extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type:Boolean }) isPreview!: false;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // cancel(){\r\n // modalHelper.close()\r\n // }\r\n\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalFooter.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalFooter.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalFooter.vue?vue&type=template&id=ad7b8966&\"\nimport script from \"./ModalFooter.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalFooter.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"item\"},[(_vm.name)?_c('div',{staticClass:\"heading\"},[_c('span',{staticClass:\"title\"},[(_vm.number)?_c('b',{staticClass:\"badge badge-blue letter m-r-s\"},[_vm._v(_vm._s(_vm.number))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.name)+\" \")])]):_vm._e(),_c('div',{staticClass:\"options\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n})\r\nexport default class ContentItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type:String }) name!: '';\r\n @Prop({ type:String }) number!: '';\r\n\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContentItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContentItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContentItem.vue?vue&type=template&id=e95ca818&\"\nimport script from \"./ContentItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./ContentItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedValue),expression:\"selectedValue\"}],staticClass:\"fm-def\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.$emit('change', _vm.selectedValue)}]}},_vm._l((_vm.items),function(item,index){return _c('option',{key:index,domProps:{\"value\":item.key}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Dropdown extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) items!: {};\r\n @Prop({ type: String }) selected!: '';\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n selectedValue: string = '';\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('selected')\r\n onChangedLanguage() {\r\n this.selectedValue = this.selected;\r\n }\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.selectedValue = this.selected;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Dropdown.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Dropdown.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dropdown.vue?vue&type=template&id=6745d6d6&\"\nimport script from \"./Dropdown.ts?vue&type=script&lang=ts&\"\nexport * from \"./Dropdown.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"checkbox large\"},[_c('label',{staticClass:\"ellipsis\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.checked),expression:\"checked\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.checked)?_vm._i(_vm.checked,null)>-1:(_vm.checked)},on:{\"change\":[function($event){var $$a=_vm.checked,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.checked=$$a.concat([$$v]))}else{$$i>-1&&(_vm.checked=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.checked=$$c}},_vm.onChange]}}),_c('span',{staticClass:\"label ft-m\"},[_vm._v(_vm._s(_vm.name))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n\r\n@Component({\r\n})\r\nexport default class Checkbox extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type:Boolean }) value!: false;\r\n @Prop({ type:String }) name!: '';\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n checked: boolean = false;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('value')\r\n onValueChanged(){\r\n this.checked = this.value\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n onChange(){\r\n this.$emit('change', this.checked)\r\n }\r\n\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Checkbox.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Checkbox.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Checkbox.vue?vue&type=template&id=54dfbee7&\"\nimport script from \"./Checkbox.ts?vue&type=script&lang=ts&\"\nexport * from \"./Checkbox.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"nested-tab-content\"},[_c('div',{staticClass:\"nested-tab-panel active\"},[_c('div',{staticClass:\"panel-header\"},[_vm._t(\"header\")],2),_c('LoadingBar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoading),expression:\"isLoading\"}],attrs:{\"message\":_vm.loadingMessage}}),(!_vm.isRule)?[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],staticClass:\"panel-content\"},[_vm._t(\"content\")],2)]:(_vm.isRule)?[_vm._t(\"content\")]:_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],staticClass:\"panel-footer\"},[_vm._t(\"footer\")],2)],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { LoadingBar } from '@appbase/components/loading'\r\nimport { mapGetters } from 'vuex';\r\nimport * as types from '@gnb/store/types';\r\n\r\n@Component({\r\n components: {LoadingBar},\r\n computed: {\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING,\r\n\r\n })\r\n }\r\n})\r\nexport default class PreferenceContentTemplate extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Boolean}) isRule!: false;\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n loadingMessage: string = this.$t('로딩중입니다__잠시만_기다려주세요').toString();\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n isLoading !: boolean;\r\n \r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PreferenceContentTemplate.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PreferenceContentTemplate.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PreferenceContentTemplate.vue?vue&type=template&id=2b67d31c&\"\nimport script from \"./PreferenceContentTemplate.ts?vue&type=script&lang=ts&\"\nexport * from \"./PreferenceContentTemplate.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types';\r\nimport api from '@gnb/api/common'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n },\r\n methods: {\r\n ...mapActions({\r\n languageLoad: types.LANGUAGE_LOAD,\r\n langChange: types.LANGUAGE_TIME_CHANGE,\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n language: types.LANGUAGE_LOAD,\r\n })\r\n }\r\n})\r\nexport default class Language extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) user!: account.User;\r\n\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedLang: string = ''\r\n name: string = this.$t('언어').toString();\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n languageLoad!: () => void;\r\n langChange!: (item: {personCode:string, language:string}) => Promise;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n language!: gnb.LanguageFields;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select(selectedItem: string){\r\n this.selectedLang = selectedItem;\r\n }\r\n\r\n \r\n save() {\r\n this.langChange({\r\n personCode: this.user.personCode, \r\n language: this.selectedLang}).then(()=>{\r\n \r\n })\r\n }\r\n\r\n getUserLanguage(){\r\n api.getUserConfig(this.user.personCode).then((res)=>{\r\n this.selectedLang = res[0].language;\r\n });\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.languageLoad();\r\n this.getUserLanguage();\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Language.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Language.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Language.vue?vue&type=template&id=37af33d2&\"\nimport script from \"./Language.ts?vue&type=script&lang=ts&\"\nexport * from \"./Language.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('Dropdown',{style:('width:100%;'),attrs:{\"items\":_vm.time.timeFields,\"selected\":_vm.selectedTime},on:{\"change\":_vm.select}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types';\r\nimport api from '@gnb/api/common'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n },\r\n methods: {\r\n ...mapActions({\r\n timeLoad: types.TIME_LOAD,\r\n timeChange: types.LANGUAGE_TIME_CHANGE,\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n time: types.TIME_LOAD,\r\n })\r\n }\r\n})\r\nexport default class Time extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n \r\n @Prop({ type: Object }) user!: account.User;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedTime: string = ''\r\n name: string = this.$t('W_Settings_CurrentTime').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n loading!: (option: boolean) => void;\r\n timeLoad!: () => void;\r\n timeChange!: (item: {personCode:string, timeZone:string}) => Promise;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n time!: gnb.TimeFields;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select(selectedItem: string){\r\n this.selectedTime = selectedItem;\r\n }\r\n\r\n save() {\r\n this.timeChange({\r\n personCode: this.user.personCode, \r\n timeZone: this.selectedTime}).then(async ()=>{\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT').toString())\r\n })\r\n\r\n }\r\n\r\n getUserTime(){\r\n api.getUserConfig(this.user.personCode).then((res)=>{\r\n this.selectedTime = res[0].timeZone;\r\n if(this.selectedTime){\r\n this.loading(false);\r\n }\r\n });\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.timeLoad();\r\n this.getUserTime();\r\n \r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Time.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Time.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Time.vue?vue&type=template&id=0bc781ce&\"\nimport script from \"./Time.ts?vue&type=script&lang=ts&\"\nexport * from \"./Time.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.$t('언어_설정_후_새로고침해야만_화면에_적용됩니다')))]),_vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\",attrs:{\"user\":_vm.user}})})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n Dropdown,\r\n} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { Language, Time } from '@gnb/components/Preference/General/LanguageTime'\r\nimport { mapGetters,mapActions } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as types from '@gnb/store/types';\r\n\r\n@Component({\r\n components: {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n Language,\r\n Time,\r\n },\r\n methods: {\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class LanguageTime extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [Language, Time]\r\n }\r\n\r\n header:string = this.$t('M_Settings_Msg36').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n user!: account.User;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n \r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LanguageTime.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LanguageTime.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LanguageTime.vue?vue&type=template&id=5cbb8635&\"\nimport script from \"./LanguageTime.ts?vue&type=script&lang=ts&\"\nexport * from \"./LanguageTime.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name1}},[_c('Checkbox',{attrs:{\"name\":_vm.name2},on:{\"change\":_vm.onChangeAllChecked},model:{value:(_vm.allChecked),callback:function ($$v) {_vm.allChecked=$$v},expression:\"allChecked\"}}),_c('div',{staticClass:\"space-m\"}),_c('Checkbox',{attrs:{\"name\":_vm.name3},on:{\"change\":_vm.onChangeNoticeChecked},model:{value:(_vm.noticeAlarmChecked),callback:function ($$v) {_vm.noticeAlarmChecked=$$v},expression:\"noticeAlarmChecked\"}}),_c('Checkbox',{attrs:{\"name\":_vm.name4},on:{\"change\":_vm.onChangeBoardChecked},model:{value:(_vm.boardAlarmChecked),callback:function ($$v) {_vm.boardAlarmChecked=$$v},expression:\"boardAlarmChecked\"}}),_c('Checkbox',{attrs:{\"name\":_vm.name5},on:{\"change\":_vm.onChangeServeyCHecked},model:{value:(_vm.serveyAlarmChecked),callback:function ($$v) {_vm.serveyAlarmChecked=$$v},expression:\"serveyAlarmChecked\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch} from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown,Checkbox} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport * as accountTypes from '@account/store/types'\r\nimport api from '@gnb/api/common'\r\n\r\n@Component({\r\n components:{ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,Dropdown,Checkbox},\r\n methods:{\r\n ...mapActions({\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n user: accountTypes.USER\r\n\r\n })\r\n }\r\n})\r\nexport default class Board extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n allChecked: boolean = false;\r\n noticeAlarmChecked: boolean | null = null;\r\n boardAlarmChecked: boolean | null = null;\r\n serveyAlarmChecked: boolean | null = null;\r\n name1: string = this.$t('게시판').toString();\r\n name2: string = this.$t('게시판_전체_알림').toString();\r\n name3: string = this.$t('공지사항').toString();\r\n name4: string = this.$t('자유게시판').toString();\r\n name5: string = this.$t('설문조사').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n user!: account.User;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('noticeAlarmChecked')\r\n onCheckNotice(){\r\n if(this.noticeAlarmChecked && this.boardAlarmChecked && this.serveyAlarmChecked){\r\n this.allChecked = true;\r\n }else{\r\n this.allChecked = false;\r\n }\r\n }\r\n\r\n @Watch('boardAlarmChecked')\r\n onCheckBoard(){\r\n if(this.noticeAlarmChecked && this.boardAlarmChecked && this.serveyAlarmChecked){\r\n this.allChecked = true;\r\n }else{\r\n this.allChecked = false;\r\n }\r\n }\r\n\r\n @Watch('serveyAlarmChecked')\r\n onCheckServey(){\r\n if(this.noticeAlarmChecked && this.boardAlarmChecked && this.serveyAlarmChecked){\r\n this.allChecked = true;\r\n }else{\r\n this.allChecked = false;\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n onChangeAllChecked(item:boolean){\r\n this.allChecked = item;\r\n if(this.allChecked){\r\n this.noticeAlarmChecked = true;\r\n this.boardAlarmChecked = true;\r\n this.serveyAlarmChecked = true;\r\n }else{\r\n this.noticeAlarmChecked = false;\r\n this.boardAlarmChecked = false;\r\n this.serveyAlarmChecked = false;\r\n }\r\n }\r\n\r\n onChangeNoticeChecked(item:boolean){\r\n this.noticeAlarmChecked = item;\r\n }\r\n\r\n onChangeBoardChecked(item:boolean){\r\n this.boardAlarmChecked = item;\r\n }\r\n\r\n onChangeServeyCHecked(item:boolean){\r\n this.serveyAlarmChecked = item;\r\n }\r\n\r\n onChagedAlarmConfig(){\r\n api.getAlarmConfig(this.user.comCode, this.user.personCode).then((res)=>{\r\n if(res.length > 0){\r\n this.noticeAlarmChecked = res[0].noticeAlarm;\r\n this.boardAlarmChecked = res[0].boardAlarm;\r\n this.serveyAlarmChecked = res[0].serveyAlarm;\r\n }else{\r\n this.noticeAlarmChecked = false;\r\n this.boardAlarmChecked = false;\r\n this.serveyAlarmChecked = false;\r\n\r\n }\r\n })\r\n }\r\n\r\n save(){\r\n api.setAlarmConfig({\r\n comCode: this.user.comCode,\r\n personCode: this.user.personCode,\r\n noticeAlarm: this.noticeAlarmChecked,\r\n boardAlarm: this.boardAlarmChecked,\r\n serveyAlarm: this.serveyAlarmChecked,\r\n newAlarm: null,\r\n scheduleAlarm: null\r\n } as gnb.AlarmConfig).then(async ()=>{\r\n this.onChagedAlarmConfig();\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT').toString())\r\n });\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created(){\r\n this.onChagedAlarmConfig();\r\n }\r\n \r\n \r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Board.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Board.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Board.vue?vue&type=template&id=2d79c239&\"\nimport script from \"./Board.ts?vue&type=script&lang=ts&\"\nexport * from \"./Board.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name1}},[_c('Checkbox',{attrs:{\"name\":_vm.name2},on:{\"change\":_vm.onChangeAllChecked},model:{value:(_vm.allChecked),callback:function ($$v) {_vm.allChecked=$$v},expression:\"allChecked\"}}),_c('div',{staticClass:\"space-m\"}),_c('Checkbox',{attrs:{\"name\":_vm.name3},on:{\"change\":_vm.onChangeNewAlarm},model:{value:(_vm.newAlarmChecked),callback:function ($$v) {_vm.newAlarmChecked=$$v},expression:\"newAlarmChecked\"}}),_c('Checkbox',{attrs:{\"name\":_vm.name4},on:{\"change\":_vm.onChangeScheduleAlarm},model:{value:(_vm.scheduleAlarmChecked),callback:function ($$v) {_vm.scheduleAlarmChecked=$$v},expression:\"scheduleAlarmChecked\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown,Checkbox} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions, mapGetters } from 'vuex';\r\nimport * as accountTypes from '@account/store/types'\r\nimport api from '@gnb/api/common'\r\nimport * as types from '@gnb/store/types';\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n Checkbox\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n user: accountTypes.USER\r\n })\r\n }\r\n})\r\nexport default class Wallpapers extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n allChecked: boolean = false;\r\n newAlarmChecked: boolean | null = null;\r\n scheduleAlarmChecked:boolean | null = null;\r\n name1: string = this.$t('바탕화면').toString();\r\n name2: string = this.$t('바탕화면_모두_알림').toString();\r\n name3: string = this.$t('새_알림_알림').toString();\r\n name4: string = this.$t('일정_미리_알림').toString();\r\n\r\n \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n user!: account.User;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('newAlarmChecked')\r\n onCheckNewAlarm(){\r\n if(this.newAlarmChecked && this.scheduleAlarmChecked){\r\n this.allChecked = true;\r\n }else{\r\n this.allChecked = false;\r\n }\r\n }\r\n\r\n @Watch('scheduleAlarmChecked')\r\n onCheckScheduleAlarm(){\r\n if(this.newAlarmChecked && this.scheduleAlarmChecked){\r\n this.allChecked = true;\r\n }else{\r\n this.allChecked = false;\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n onChangeAllChecked(item:boolean){\r\n this.allChecked = item;\r\n if(this.allChecked){\r\n this.newAlarmChecked = true;\r\n this.scheduleAlarmChecked = true;\r\n }else if(!this.allChecked){\r\n this.newAlarmChecked = false;\r\n this.scheduleAlarmChecked = false;\r\n }\r\n }\r\n\r\n onChangeNewAlarm(item:boolean){\r\n this.newAlarmChecked = item;\r\n }\r\n\r\n onChangeScheduleAlarm(item:boolean){\r\n this.scheduleAlarmChecked = item;\r\n }\r\n\r\n save(){\r\n api.setAlarmConfig({\r\n comCode: this.user.comCode,\r\n personCode: this.user.personCode,\r\n newAlarm: this.newAlarmChecked,\r\n scheduleAlarm: this.scheduleAlarmChecked,\r\n noticeAlarm: null,\r\n boardAlarm: null,\r\n serveyAlarm:null,\r\n } as gnb.AlarmConfig).then(()=>{\r\n this.onChagedAlarmConfig();\r\n });\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n onChagedAlarmConfig(){\r\n api.getAlarmConfig(this.user.comCode, this.user.personCode).then((res)=>{\r\n if(res.length > 0){\r\n this.newAlarmChecked = res[0].newAlarm;\r\n this.scheduleAlarmChecked = res[0].scheduleAlarm;\r\n this.loading(false);\r\n }else{\r\n this.newAlarmChecked = false;\r\n this.scheduleAlarmChecked = false;\r\n this.loading(false);\r\n }\r\n })\r\n }\r\n\r\n created(){\r\n this.onChagedAlarmConfig();\r\n }\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Wallpapers.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Wallpapers.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Wallpapers.vue?vue&type=template&id=488af575&\"\nimport script from \"./Wallpapers.ts?vue&type=script&lang=ts&\"\nexport * from \"./Wallpapers.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return _vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\"})})},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport {Wallpapers,Board} from '@gnb/components/Preference/General/Notice'\r\nimport { mapActions,mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types';\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n\r\n@Component({\r\n components:{ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,Wallpapers,Board},\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Notice extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [Wallpapers, Board]\r\n }\r\n\r\n header:string = this.$t('알림').toString();\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n user!: account.User;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Notice.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Notice.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Notice.vue?vue&type=template&id=332c3632&\"\nimport script from \"./Notice.ts?vue&type=script&lang=ts&\"\nexport * from \"./Notice.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('ContentItem',[_c('CheckSlider',{attrs:{\"label\":_vm.label},model:{value:(_vm.value.checkUseAutoReply),callback:function ($$v) {_vm.$set(_vm.value, \"checkUseAutoReply\", $$v)},expression:\"value.checkUseAutoReply\"}})],1),_c('table',{staticStyle:{\"width\":\"100%\"}},[_c('tbody',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('W_Schedule_StartTime')))]),_c('td',[_c('DatePicker',{attrs:{\"disabled\":_vm.value.checkUseAutoReply ? false : true},model:{value:(_vm.value.start),callback:function ($$v) {_vm.$set(_vm.value, \"start\", $$v)},expression:\"value.start\"}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.starttime),expression:\"value.starttime\"}],staticClass:\"fm-def\",staticStyle:{\"width\":\"120px\"},attrs:{\"disabled\":_vm.value.checkUseAutoReply ? false : true},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.value, \"starttime\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.startTimeArray),function(time,index){return _c('option',{key:index,domProps:{\"value\":time.value}},[_vm._v(_vm._s(time.text))])}),0)],1)]),_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('W_Schedule_EndTime')))]),_c('td',[_c('DatePicker',{attrs:{\"disabled\":_vm.value.checkUseAutoReply ? false : true},model:{value:(_vm.value.end),callback:function ($$v) {_vm.$set(_vm.value, \"end\", $$v)},expression:\"value.end\"}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.endtime),expression:\"value.endtime\"}],staticClass:\"fm-def\",staticStyle:{\"width\":\"120px\"},attrs:{\"disabled\":_vm.value.checkUseAutoReply ? false : true},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.value, \"endtime\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.endTimeArray),function(time,index){return _c('option',{key:index,domProps:{\"value\":time.value}},[_vm._v(_vm._s(time.text))])}),0)],1)])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"date-wrap\"},[_c('div',{staticClass:\"date-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.baseValue),expression:\"baseValue\"}],ref:\"input\",staticClass:\"fm-def align-center\",staticStyle:{\"width\":\"90px\"},attrs:{\"type\":\"text\",\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder},domProps:{\"value\":(_vm.baseValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.baseValue=$event.target.value}}}),_c('i',{staticClass:\"icon-fux-calendar\",on:{\"click\":function($event){$event.stopPropagation();return _vm.togglePicker($event)}}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowPicker),expression:\"isShowPicker\"}],staticClass:\"calendar-wrap\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('select',{staticClass:\"calendar-present p-l-s\",on:{\"change\":function($event){return _vm.setYear($event)}}},_vm._l((_vm.YearArray),function(year,index){return _c('option',{key:index,domProps:{\"value\":year,\"selected\":year == _vm.dateValue.getFullYear()}},[_vm._v(\" \"+_vm._s(year)+\" \")])}),0),_c('select',{staticClass:\"calendar-present p-l-s\",on:{\"change\":function($event){return _vm.setMonth($event)}}},_vm._l((_vm.MonthArray),function(month,index){return _c('option',{key:index,domProps:{\"value\":month,\"selected\":month == _vm.dateValue.getMonth() + 1}},[_vm._v(\" \"+_vm._s(month)+\" \")])}),0)]),_c('div',{staticClass:\"ml-auto\"},[_c('a',[_c('i',{staticClass:\"icon-fux-arrow-up2 p-r-m\",on:{\"click\":function($event){return _vm.setMonthByCount(-1)}}})]),_vm._v(\" \"),_c('a',[_c('i',{staticClass:\"icon-fux-arrow-down2 p-r-m\",on:{\"click\":function($event){return _vm.setMonthByCount(1)}}})])])]),_c('table',{staticClass:\"calendar-tbl\"},[_c('thead',[_c('tr',_vm._l((_vm.WeekList),function(wItem,index){return _c('th',{key:index},[_vm._v(\" \"+_vm._s(wItem)+\" \")])}),0)]),_c('tbody',_vm._l((_vm.MonthMatrix),function(Rows,index){return _c('tr',{key:index,staticClass:\"monthmatrix\"},_vm._l((Rows),function(item,index2){return _c('td',{key:index2,class:{ active: true, selected: item.selected, today: item.isToday, out: item.isOut },attrs:{\"dateItem\":\"item\"},on:{\"click\":function($event){return _vm.selectDate(item.date)}}},[_vm._v(\" \"+_vm._s(item.date.getDate())+\" \")])}),0)}),0)]),_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"ml-auto space-s\"},[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.setToday.apply(null, arguments)}}},[_c('i',{staticClass:\"icon-fux-time\"}),_vm._v(\" 오늘\")])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\n\r\n/**\r\n * 스크롤이 있는 부모 Element를 반환합니다\r\n * @param element \r\n * @param includeHidden \r\n */\r\nexport const getScrollParent = function(element: HTMLElement, includeHidden: boolean) {\r\n var style = getComputedStyle(element);\r\n var excludeStaticParent = style.position === \"absolute\";\r\n var overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/;\r\n\r\n if (style.position === \"fixed\") return document.body;\r\n for (let parent:HTMLElement | null = element; (parent = parent.parentElement);) {\r\n style = getComputedStyle(parent);\r\n if (excludeStaticParent && style.position === \"static\") {\r\n continue;\r\n }\r\n if (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * 부모\r\n * @param element \r\n * @param selector \r\n */\r\nexport const findParent = function(element: HTMLElement, selector: string) {\r\n let isID = selector && selector.length && selector[0] == '#';\r\n let isClass = selector && selector.length && selector[0] == '.';\r\n if (isID || isClass) {\r\n selector = selector.substr(1);\r\n }\r\n do {\r\n if (element) {\r\n if ((isClass && element.classList && element.classList.contains(selector)) ||\r\n (isID && element.id && element.id == selector) ||\r\n ((!isClass && !isID) && (element.tagName + '').toLowerCase() == (selector + '').toLowerCase())) \r\n {\r\n break;\r\n } \r\n else if ((element.tagName + '').toLowerCase() == 'body') \r\n {\r\n return null;\r\n }\r\n element = element.parentNode as HTMLElement;\r\n } else {\r\n break;\r\n }\r\n } while (true);\r\n return element;\r\n}","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport * as dateutil from '../../util/date-helper'\r\nimport * as cutil from '../../util/component-helper'\r\n\r\n// components\r\n\r\n@Component({\r\n name: 'DatePicker',\r\n})\r\nexport default class DatePicker extends Vue {\r\n @Prop({ type: Number, default: 20 }) YearMinMax!: Number\r\n @Prop({ type: String, default: dateutil.uGetDateFormat('yyyy-MM-DD', new Date()) }) value!: string\r\n @Prop({ type: String }) placeholder!: string\r\n @Prop({ type: Boolean, default: false }) disabled!: boolean\r\n @Prop({ type: Boolean, default: true }) isShowInput!: boolean\r\n @Prop({ type: String, default: 'full' }) viewMode!: 'full' | 'year' | 'yearmonth'\r\n @Prop({ type: Boolean, default: false}) isAllowPlainText!: boolean\r\n\r\n MonthMatrix: Array> = []\r\n\r\n YearArray: Array = []\r\n MonthArray: Array = []\r\n\r\n SelectItems: Array = []\r\n\r\n baseValue: string | null = this.isAllowPlainText ? this.value : dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(this.value))\r\n\r\n isShowPicker: boolean = false\r\n isInMouse: boolean = false\r\n\r\n posX: number = 0\r\n posY: number = 0\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get WeekList() {\r\n let weekarray = ['일', '월', '화', '수', '목', '금', '토']\r\n return weekarray\r\n }\r\n get YearDateFormat() {\r\n return dateutil.uGetDateFormat('yyyy년', this.dateValue)\r\n }\r\n get MonthDateFormat() {\r\n return dateutil.uGetDateFormat('MM월', this.dateValue)\r\n }\r\n\r\n get dateValue(): Date {\r\n return dateutil.IEDate(this.baseValue)\r\n }\r\n\r\n toggleShowHide() {\r\n this.isShowPicker = !this.isShowPicker\r\n\r\n if (this.isShowPicker) {\r\n ;(window as any).PickerCollection.forEach((x: DatePicker) => {\r\n if (x != this) {\r\n x.hidePicker()\r\n }\r\n })\r\n }\r\n }\r\n\r\n setPosition(event: any) {\r\n let x: number = -(event.srcElement.clientWidth / 2)\r\n let y: number = event.offsetY - event.srcElement.clientHeight / 2\r\n\r\n this.posX = x\r\n this.posY = y\r\n }\r\n\r\n //년도 클릭 시 년도 선택 할 수 있게 출력\r\n setShowYears() {\r\n let yearArray = []\r\n let date = new Date()\r\n let currentYear = date.getFullYear()\r\n let yearMinMax = this.YearMinMax as any\r\n let min = currentYear - yearMinMax\r\n let max = currentYear + yearMinMax\r\n\r\n for (let year = min; year < max; year++) {\r\n yearArray.push(year)\r\n }\r\n\r\n this.YearArray = yearArray\r\n }\r\n //월 클릭 시 월 선택 할 수 있게 출력\r\n setShowMonths() {\r\n let monthArray = []\r\n let date = new Date()\r\n for (let month = 1; month <= 12; month++) {\r\n monthArray.push(month)\r\n }\r\n this.MonthArray = monthArray\r\n }\r\n // 월 날짜 출력\r\n setMonthMatrix() {\r\n let datePickerMatrix = []\r\n let Rows = []\r\n let today = new Date()\r\n let daysList = dateutil.uGetDaysInMonth(this.dateValue)\r\n \r\n for (let i = 0; i < daysList.length; i++) {\r\n let date = daysList[i]\r\n\r\n let isToday =\r\n date.getFullYear() == today.getFullYear() &&\r\n date.getMonth() == today.getMonth() &&\r\n date.getDate() == today.getDate()\r\n\r\n let sDate = dateutil.uGetDateFormat('yyyy-MM-DD', date)\r\n let cDate = dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(this.baseValue))\r\n\r\n let dateItem = {\r\n date: date,\r\n selected: sDate == cDate,\r\n isToday: isToday,\r\n isSun: date.getDay() == 0,\r\n isSat: date.getDay() == 6,\r\n isOut: date.getMonth() != dateutil.IEDate(this.baseValue).getMonth(),\r\n }\r\n\r\n Rows.push(dateItem)\r\n\r\n if ((i + 1) % 7 == 0) {\r\n let NewRows = new Array()\r\n NewRows = Object.assign(NewRows, Rows)\r\n datePickerMatrix.push(NewRows)\r\n Rows = []\r\n }\r\n }\r\n\r\n this.MonthMatrix = datePickerMatrix\r\n }\r\n // '오늘' 버튼 클릭 시 해당 날짜 바인딩\r\n setToday() {\r\n let date = new Date()\r\n this.baseValue = dateutil.uGetDateFormat('yyyy-MM-DD', date)\r\n this.$emit('select', date)\r\n this.renderPicker()\r\n this.toggleShowHide()\r\n }\r\n // 선택한 년도로 가져오기\r\n setYear(event: any) {\r\n let selValue: number = Number(event.srcElement.options[event.srcElement.selectedIndex].value)\r\n let copyDate = new Date(this.baseValue == null ? 0 : (this.baseValue as string))\r\n copyDate.setFullYear(selValue)\r\n this.baseValue = dateutil.uGetDateFormat('yyyy-MM-DD', copyDate)\r\n this.$emit('inputYear', selValue, copyDate)\r\n this.renderPicker()\r\n }\r\n // 월 증가/감소\r\n setMonthByCount(count: number){\r\n let copyDate = new Date(this.baseValue == null ? 0 : (this.baseValue as string))\r\n let selValue: number = Number(copyDate.getMonth() + 1 + count);\r\n copyDate.setMonth(selValue - 1)\r\n this.baseValue = dateutil.uGetDateFormat('yyyy-MM-DD', copyDate)\r\n this.$emit('inputMonth', selValue, copyDate)\r\n this.renderPicker()\r\n }\r\n // 선택한 월로 가져오기\r\n setMonth(event: any) {\r\n let selValue: number = Number(event.srcElement.options[event.srcElement.selectedIndex].value)\r\n let copyDate = new Date(this.baseValue == null ? 0 : (this.baseValue as string))\r\n copyDate.setMonth(selValue - 1)\r\n this.baseValue = dateutil.uGetDateFormat('yyyy-MM-DD', copyDate)\r\n //this.value = copyDate;\r\n this.$emit('inputMonth', selValue, copyDate)\r\n this.renderPicker()\r\n }\r\n renderPicker() {\r\n let newvalue = dateutil.IEDate(this.baseValue)\r\n if (!isNaN(Number(newvalue))) {\r\n this.setShowYears()\r\n this.setShowMonths()\r\n this.setMonthMatrix()\r\n }\r\n }\r\n\r\n selectDate(date: Date) {\r\n this.baseValue = dateutil.uGetDateFormat('yyyy-MM-DD', date)\r\n this.$emit('select', date)\r\n //this.value = date;\r\n this.renderPicker()\r\n this.toggleShowHide()\r\n }\r\n\r\n togglePicker(e: Event) {\r\n if(this.disabled)\r\n return true;\r\n\r\n if(!Date.parse(this.baseValue!.toString())){\r\n this.baseValue = dateutil.uGetDateFormat('yyyy-MM-DD', new Date())\r\n }\r\n\r\n this.isShowPicker = !this.isShowPicker\r\n var _this = this\r\n setTimeout(function() {\r\n if (_this.isShowPicker) {\r\n let $this = cutil.findParent(e.srcElement as HTMLElement, '.calendar-wrap')\r\n if ($this) {\r\n let $parent = cutil.getScrollParent($this as HTMLElement, false)\r\n if ($parent) {\r\n if (\r\n $this.offsetTop + $this.clientHeight + 100 >\r\n $parent.clientHeight + $parent.scrollTop &&\r\n $parent.clientHeight < $parent.scrollHeight\r\n ) {\r\n $parent.scroll($parent.scrollLeft, $this.offsetTop - 60)\r\n }\r\n }\r\n }\r\n }\r\n }, 0)\r\n }\r\n\r\n @Watch('value')\r\n onValueChanged(value: string | null) {\r\n let newvalue = dateutil.IEDate(value)\r\n if (!isNaN(Number(newvalue))) {\r\n this.baseValue = value\r\n }\r\n }\r\n\r\n @Watch('baseValue')\r\n onBaseValueChanged(value: string) {\r\n if (value) {\r\n value = dateutil.DateAndTimeSplitor(value)[0]\r\n }\r\n this.$emit('input', value)\r\n this.renderPicker()\r\n }\r\n\r\n mounted() {\r\n this.renderPicker()\r\n }\r\n\r\n hidePicker() {\r\n this.isShowPicker = false\r\n }\r\n\r\n created() {\r\n \r\n if (!(window as any).PickerCollection) {\r\n ;(window as any).PickerCollection = []\r\n \r\n ;(window as Window).addEventListener(\r\n 'click',\r\n (e) => {\r\n let elem: HTMLElement = e.srcElement as HTMLElement\r\n let isContain: boolean = cutil.findParent(elem, '.calendar-wrap') != null\r\n \r\n if (!isContain) {\r\n \r\n ;(window as any).PickerCollection.forEach((x: DatePicker) => {x.hidePicker(); })\r\n }\r\n },\r\n false\r\n )\r\n }\r\n\r\n ;(window as any).PickerCollection.push(this)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DatePicker.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DatePicker.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DatePicker.vue?vue&type=template&id=65125806&scoped=true&\"\nimport script from \"./DatePicker.ts?vue&type=script&lang=ts&\"\nexport * from \"./DatePicker.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65125806\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"switch\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.checkBoxModel),expression:\"checkBoxModel\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.checkBoxModel)?_vm._i(_vm.checkBoxModel,null)>-1:(_vm.checkBoxModel)},on:{\"change\":[function($event){var $$a=_vm.checkBoxModel,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.checkBoxModel=$$a.concat([$$v]))}else{$$i>-1&&(_vm.checkBoxModel=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.checkBoxModel=$$c}},function($event){return _vm.onChange()}]}}),_c('span',{staticClass:\"slider round\"}),(_vm.label)?_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n\r\n@Component({\r\n\r\n})\r\nexport default class CheckSlider extends Vue {\r\n @Prop({ type: Boolean }) value!: Boolean; \r\n @Prop({ type: String }) label!: string; \r\n \r\n checkBoxModel: Boolean = false;\r\n\r\n @Watch('value')\r\n onValueChange(newVal: Boolean, oldVal: Boolean) {\r\n this.checkBoxModel = this.value;\r\n }\r\n\r\n created() { \r\n this.checkBoxModel = this.value;\r\n }\r\n\r\n onChange() {\r\n this.$emit('input', this.checkBoxModel);\r\n this.$emit('change', this.checkBoxModel);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CheckSlider.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CheckSlider.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckSlider.vue?vue&type=template&id=3d2ef38b&\"\nimport script from \"./CheckSlider.ts?vue&type=script&lang=ts&\"\nexport * from \"./CheckSlider.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport DatePicker from '@appbase/components/DatePicker/DatePicker.vue'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\nimport api from '@gnb/api/common'\r\nimport CheckSlider from '@gnb/components/Common/CheckSlider.vue'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n CheckSlider,\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n DatePicker\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n})\r\nexport default class SettingMissedTime extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) value!: gnb.MissedAutoReplyItem;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n isEnabled: boolean = false;\r\n startTimeArray: Array = [];\r\n endTimeArray: Array = [];\r\n label: string = this.$t('부재중_설정_사용').toString();\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 시작일자 배열을 가져옵니다\r\n */\r\n get StartTimeArray() {\r\n this.startTimeArray.sort((a, b) => a.num - b.num);\r\n return this.startTimeArray;\r\n }\r\n /**\r\n * 시작일자를 직접 입력했을 경우에 동작합니다\r\n */\r\n set StartTimeArray(value) {\r\n this.startTimeArray = value;\r\n }\r\n /**\r\n * 완료일자 배열을 표시합니다\r\n */\r\n get EndTimeArray() {\r\n this.endTimeArray.sort((a, b) => a.num - b.num);\r\n return this.endTimeArray;\r\n }\r\n /**\r\n * 완료일자를 직접 입력했을 경우에 동작합니다\r\n */\r\n set EndTimeArray(value) {\r\n this.endTimeArray = value;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async checkDate(startDate: string, endDate: string) {\r\n const now = new Date();\r\n \r\n if (startDate >= endDate) {\r\n await(window as any).alertAsync(this.$t('M_Settings_Msg37'));\r\n return false;\r\n }\r\n if (new Date(endDate) <= now) {\r\n await(window as any).alertAsync(this.$t('M_Settings_Msg38'));\r\n return false;\r\n }\r\n \r\n return true;\r\n }\r\n\r\n changeDate(dateTime: string, type: string = '') {\r\n const offset = new Date().getTimezoneOffset();\r\n let date = dateutil.IEDate(dateTime);\r\n if (type === 'UTC') {\r\n date.setMinutes(date.getMinutes() + offset);\r\n } else {\r\n date.setMinutes(date.getMinutes() - offset);\r\n }\r\n return dateutil.uGetDateFormat(\r\n 'yyyy-MM-DD H:i:s',\r\n dateutil.IEDate(date)\r\n );\r\n }\r\n\r\n async save(){\r\n let startDateTime = this.value.start + ' ' + this.value.starttime;\r\n let endDateTime = this.value.end + ' ' + this.value.endtime;\r\n\r\n if(this.value.checkUseAutoReply){\r\n if(await this.checkDate(startDateTime, endDateTime)){\r\n api.setOOF({\r\n startUtc: this.changeDate(startDateTime, 'UTC'),\r\n endUtc: this.changeDate(endDateTime, 'UTC'),\r\n enabled: this.value.checkUseAutoReply,\r\n internalMessage: this.value.replyContent,\r\n externalMessage: ''\r\n }).then(async ()=>{\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT').toString())\r\n })\r\n }\r\n }else{\r\n api.setOOF({\r\n startUtc: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n endUtc: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n enabled: this.value.checkUseAutoReply,\r\n internalMessage: this.value.replyContent,\r\n externalMessage: '',\r\n \r\n }).then(async ()=>{\r\n await(window as any).alertAsync(this.$t('해제되었습니다').toString());\r\n })\r\n }\r\n \r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted(){\r\n this.startTimeArray = dateutil.uGetTimeArray([\r\n this.$t('W_AM').toString(),\r\n this.$t('W_PM').toString(),\r\n ]);\r\n this.endTimeArray = dateutil.uGetTimeArray([\r\n this.$t('W_AM').toString(),\r\n this.$t('W_PM').toString(),\r\n ]);\r\n }\r\n\r\n \r\n\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SettingMissedTime.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SettingMissedTime.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingMissedTime.vue?vue&type=template&id=e1c709ae&\"\nimport script from \"./SettingMissedTime.ts?vue&type=script&lang=ts&\"\nexport * from \"./SettingMissedTime.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"item no-border\"},[_c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t('조직_내부_사용자들에게_자동_회신_메일_내용을_입력합니다')))]),_c('EumEditor',{attrs:{\"mode\":\"editor\",\"initialValue\":_vm.value.replyContent,\"v-model\":_vm.value.replyContent,\"tinyopts\":_vm.tinyopts,\"dext5opts\":_vm.dext5opts,\"disabled\":_vm.value.checkUseAutoReply ? false : true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { EumEditor } from '@appbase/components/editor'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n EumEditor\r\n },\r\n\r\n computed: mapGetters({\r\n userCurrent: accountTypes.CURRENT,\r\n }),\r\n})\r\nexport default class MissedAutoReply extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) value!: gnb.MissedAutoReplyItem;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n userCurrent!: account.TCurrent;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n name:string = this.$t('부재중_자동_회신_보내기').toString();\r\n\r\n tinyopts = {\r\n menubar: false,\r\n inline: false,\r\n height: 500,\r\n relative_urls: false,\r\n remove_script_host: true,\r\n document_base_url: location.origin,\r\n language: 'ko_KR',\r\n content_style: `\r\n body {font-family: Malgun Gothic; font-size: 10pt; line-height: 1.2;}\r\n body#tinymce p {\r\n margin-top: 0.3em;\r\n margin-bottom: 0.3em;\r\n }`,\r\n setup: (e: any) => {\r\n e.on('init', (ed: any) => {\r\n ed.target.editorCommands.execCommand('fontSize', false, '10pt')\r\n })\r\n },\r\n auto_focus: '',\r\n }\r\n\r\n dext5opts: editor.dext5.DEXT5Config = {\r\n EditorBorder: '0',\r\n Lang: 'ko_KR'\r\n } \r\n\r\n onValueChanged(value: string) {\r\n this.value.replyContent = value;\r\n }\r\n\r\n save(){\r\n\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.dext5opts.Lang = this.userCurrent.userConfig.language\r\n }\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MissedAutoReply.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MissedAutoReply.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MissedAutoReply.vue?vue&type=template&id=1a6908ab&\"\nimport script from \"./MissedAutoReply.ts?vue&type=script&lang=ts&\"\nexport * from \"./MissedAutoReply.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return _vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\",model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}})})},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport DatePicker from '@appbase/components/DatePicker/DatePicker.vue'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { SettingMissedTime, MissedAutoReply } from '@gnb/components/Preference/Mail/Missed'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\nimport api from '@gnb/api/common'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n DatePicker,\r\n PreferenceContentTemplate,\r\n SettingMissedTime,\r\n MissedAutoReply\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Missed extends Vue {\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n header:string = this.$t('부재중_설정').toString();\r\n get contentComponents() {\r\n return [SettingMissedTime,MissedAutoReply]\r\n }\r\n\r\n\r\n item: gnb.MissedAutoReplyItem = {\r\n start: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n end: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n starttime: '00:00:00',\r\n endtime: '00:00:00',\r\n replyContent: '',\r\n checkUseAutoReply: true,\r\n checkReplyDate: true\r\n };\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n \r\n }\r\n\r\n \r\n changeDate(dateTime: string, type: string = '') {\r\n const offset = new Date().getTimezoneOffset();\r\n let date = dateutil.IEDate(dateTime);\r\n if (type === 'UTC') {\r\n date.setMinutes(date.getMinutes() + offset);\r\n } else {\r\n date.setMinutes(date.getMinutes() - offset);\r\n }\r\n return dateutil.uGetDateFormat(\r\n 'yyyy-MM-DD H:i:s',\r\n dateutil.IEDate(date)\r\n );\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n api.getOOF().then((res)=>{\r\n const autoReply = res;\r\n let startDateTime = '';\r\n let endDateTime = '';\r\n \r\n if (autoReply.startUtc && autoReply.endUtc) {\r\n startDateTime = this.changeDate(autoReply.startUtc);\r\n endDateTime = this.changeDate(autoReply.endUtc);\r\n } else {\r\n let sdate = new Date();\r\n let edate = new Date();\r\n edate.setDate(edate.getDate() + 1);\r\n \r\n startDateTime = this.changeDate(dateutil.uGetDateFormat('yyyy-MM-DD H:i:00', sdate));\r\n endDateTime = this.changeDate(dateutil.uGetDateFormat('yyyy-MM-DD H:i:00', edate));\r\n }\r\n \r\n this.item = {\r\n start: autoReply.enabled\r\n ? startDateTime.split(' ')[0]\r\n : dateutil.uGetDateFormat('yyyy-MM-DD', new Date()),\r\n \r\n starttime: autoReply.enabled\r\n ? startDateTime.split(' ')[1] : '00:00:00',\r\n \r\n end: autoReply.enabled\r\n ? endDateTime.split(' ')[0]\r\n : dateutil.uGetDateFormat('yyyy-MM-DD', new Date()),\r\n \r\n endtime: autoReply.enabled ? endDateTime.split(' ')[1] : '00:00:00',\r\n checkUseAutoReply: autoReply.enabled,\r\n checkReplyDate: autoReply.state === 'Scheduled',\r\n replyContent: autoReply.internalMessage,\r\n };\r\n }).then(()=>{\r\n this.loading(false);\r\n })\r\n }\r\n\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Missed.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Missed.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Missed.vue?vue&type=template&id=00dbfc41&\"\nimport script from \"./Missed.ts?vue&type=script&lang=ts&\"\nexport * from \"./Missed.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"radio large m-r-l\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.radioValues),expression:\"radioValues\"}],attrs:{\"type\":\"radio\",\"name\":\"option\",\"id\":\"\",\"value\":\"vertical\"},domProps:{\"checked\":_vm._q(_vm.radioValues,\"vertical\")},on:{\"change\":[function($event){_vm.radioValues=\"vertical\"},function($event){return _vm.onChangeView('vertical')}]}}),_c('span',{staticClass:\"label ft-m\"},[_vm._v(_vm._s(_vm.$t('M_Mail_Vertical')))]),_c('div',{staticClass:\"image m-t-m\"},[_c('img',{attrs:{\"alt\":\"좌우 분할로 보기\",\"src\":\"/cm/gres/faux/images/setting_layout_1.jpg\"}})])])]),_c('div',{staticClass:\"radio large m-r-l\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.radioValues),expression:\"radioValues\"}],attrs:{\"type\":\"radio\",\"name\":\"option\",\"id\":\"\",\"value\":\"horizontal\"},domProps:{\"checked\":_vm._q(_vm.radioValues,\"horizontal\")},on:{\"change\":[function($event){_vm.radioValues=\"horizontal\"},function($event){return _vm.onChangeView('horizontal')}]}}),_c('span',{staticClass:\"label ft-m\"},[_vm._v(_vm._s(_vm.$t('M_Mail_Horizontal')))]),_c('div',{staticClass:\"image m-t-m\"},[_c('img',{attrs:{\"alt\":\"상하 분할로 보기\",\"src\":\"/cm/gres/faux/images/setting_layout_2.jpg\"}})])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport api from '@gnb/api/common'\r\n@Component({\r\n components:{ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,Dropdown}\r\n})\r\nexport default class LayoutView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) user!: account.User;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n radioValues: string = '';\r\n name: string = this.$t('읽기_창_표시_위치').toString();\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n onChangeView(type:string){\r\n if(type=='vertical'){\r\n this.radioValues = 'vertical'\r\n }else{\r\n this.radioValues = 'horizontal'\r\n }\r\n } \r\n\r\n getLayoutView(){\r\n api.getUserConfig(this.user.personCode).then((res)=>{\r\n if(res[0].mailLayout == 'vertical'){\r\n this.radioValues = 'vertical'\r\n }else{\r\n this.radioValues = 'horizontal'\r\n }\r\n })\r\n }\r\n\r\n save(){\r\n api.setUserConfig({personCode: this.user.personCode, mailLayout: this.radioValues} as gnb.UserConfig);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.getLayoutView();\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LayoutView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./LayoutView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LayoutView.vue?vue&type=template&id=fc3c66ec&\"\nimport script from \"./LayoutView.ts?vue&type=script&lang=ts&\"\nexport * from \"./LayoutView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t('메시지_목록에_표시할_메시지_개수를_선택해_주세요')))]),_c('Dropdown',{style:('width:200px;'),attrs:{\"items\":_vm.count,\"selected\":_vm.selectedCount},on:{\"change\":_vm.select}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport api from '@gnb/api/common'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class ListCount extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) user!: account.User;\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n name:string = this.$t('목록_수').toString();\r\n selectedCount: string = '';\r\n count = [\r\n {\r\n name: '10' + this.$t('개').toString(),\r\n key: '10'\r\n },\r\n {\r\n name: '30' + this.$t('개').toString(),\r\n key: '30'\r\n },\r\n {\r\n name: '50' + this.$t('개').toString(),\r\n key: '50'\r\n },\r\n ]\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n\r\n save(){\r\n api.setUserConfig({personCode: this.user.personCode, mailListCount: parseInt(this.selectedCount)} as gnb.UserConfig).then(async ()=>{\r\n await(window as any).alertAsync('저장되었습니다.')\r\n });\r\n }\r\n\r\n select(selectedItem: string){\r\n this.selectedCount = selectedItem;\r\n }\r\n\r\n getMailListCount(){\r\n api.getUserConfig(this.user.personCode).then((res)=>{\r\n if(res[0].mailListCount){\r\n this.selectedCount = res[0].mailListCount.toString();\r\n if(this.selectedCount){\r\n this.loading(false);\r\n }\r\n }\r\n })\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E Y : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.getMailListCount();\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ListCount.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ListCount.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListCount.vue?vue&type=template&id=50c5ab7a&\"\nimport script from \"./ListCount.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListCount.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return _vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\",attrs:{\"user\":_vm.user}})})},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport {LayoutView, ListCount} from '@gnb/components/Preference/Mail/Layout'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n LayoutView,\r\n ListCount\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n } \r\n})\r\n\r\nexport default class Layout extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [LayoutView, ListCount]\r\n }\r\n\r\n header: string = this.$t('레이아웃').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User;\r\n isLoading !: boolean;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[];\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Layout.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Layout.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=16c4ae09&\"\nimport script from \"./Layout.ts?vue&type=script&lang=ts&\"\nexport * from \"./Layout.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('ul',{staticClass:\"nav nav-tabs tab-bar\"},_vm._l((_vm.stateList),function(stateItem,index){return _c('li',{key:index,class:{active: _vm.tab === stateItem.usageState},on:{\"click\":function($event){return _vm.onClick(stateItem.usageState)}}},[_c('a',{attrs:{\"data-toggle\":\"tab\"}},[_vm._v(_vm._s(stateItem.resourceId))])])}),0),_c('div',{staticClass:\"tab-content\"},[_c('div',{staticClass:\"tab-pane active\",attrs:{\"id\":\"tab1\"}},[_c('div',{staticClass:\"space-m\"}),_c('table',{staticClass:\"grd no-border\",staticStyle:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"70px\"}}),_c('col',{attrs:{\"width\":\"\"}})]),(_vm.tab === 'Korean')?_c('tbody',[_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('이름')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.displayName),expression:\"signInfo.displayName\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.displayName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"displayName\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('부서')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.deptName),expression:\"signInfo.deptName\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.deptName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"deptName\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('직위')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.titleName),expression:\"signInfo.titleName\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.titleName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"titleName\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('W_Contact_BizPhone')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.officeTel),expression:\"signInfo.officeTel\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.officeTel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"officeTel\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('팩스번호')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.officeFax),expression:\"signInfo.officeFax\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.officeFax)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"officeFax\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('W_Contact_Mobile')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.mobileTel),expression:\"signInfo.mobileTel\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.mobileTel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"mobileTel\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('W_Settings_Email')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.email),expression:\"signInfo.email\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"email\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('W_Contact_Address')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.officeAddress),expression:\"signInfo.officeAddress\"}],staticClass:\"fm-def w-100\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.officeAddress)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"officeAddress\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(_vm._s(_vm.$t('W_Contact_CompanyName')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.companyName),expression:\"signInfo.companyName\"}],staticClass:\"fm-def w-100\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.companyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"companyName\", $event.target.value)}}})])])]):_vm._e(),(_vm.tab === 'English')?_c('tbody',[_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"name\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.displayNameEng),expression:\"signInfo.displayNameEng\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.displayNameEng)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"displayNameEng\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"dept\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.deptNameEng),expression:\"signInfo.deptNameEng\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.deptNameEng)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"deptNameEng\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"grade\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.titleNameEng),expression:\"signInfo.titleNameEng\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.titleNameEng)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"titleNameEng\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"phoneNumber\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.officeTel),expression:\"signInfo.officeTel\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.officeTel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"officeTel\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"faxNumber\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.officeFax),expression:\"signInfo.officeFax\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.officeFax)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"officeFax\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"CellPhone\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.mobileTel),expression:\"signInfo.mobileTel\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.mobileTel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"mobileTel\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"email\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.email),expression:\"signInfo.email\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"email\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"address\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.officeAddressEng),expression:\"signInfo.officeAddressEng\"}],staticClass:\"fm-def w-100\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.officeAddressEng)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"officeAddressEng\", $event.target.value)}}})])]),_c('tr',[_c('th',{staticClass:\"align-left ft-400\"},[_vm._v(\"companyName\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.signInfo.companyNameEng),expression:\"signInfo.companyNameEng\"}],staticClass:\"fm-def w-100\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.signInfo.companyNameEng)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.signInfo, \"companyNameEng\", $event.target.value)}}})])])]):_vm._e(),(_vm.tab === 'Free')?_c('tbody',[_c('tr',[_c('td',[_c('EumEditor',{ref:\"editor\",attrs:{\"mode\":\"editor\",\"dext5opts\":_vm.dext5opts},model:{value:(_vm.freeContent),callback:function ($$v) {_vm.freeContent=$$v},expression:\"freeContent\"}})],1)])]):_vm._e()])])]),_c('SignatureModal',{attrs:{\"show\":_vm.show,\"item\":_vm.signInfo,\"lang\":_vm.tab},on:{\"cancel\":_vm.cancel}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"mStyle\":'width: 765px; height: auto;',\"title\":_vm.title,\"show\":_vm.show},on:{\"cancel\":function($event){return _vm.$emit('cancel')}}},[(_vm.lang == 'Korean')?[_c('table',{staticStyle:{\"border-collapse\":\"collapse\",\"border\":\"1px solid #e1e1e1\",\"background\":\"#fff\",\"width\":\"734px\",\"font-family\":\"Geneva, 'Malgun Gothic', 'Segoe UI', Arial, Verdana, sans-serif\",\"font-size\":\"13px\"}},[_c('tbody',[_c('tr',[_c('td',{staticStyle:{\"padding\":\"20px 25px\"}},[_c('table',{staticStyle:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"180px;\"}}),_c('col',{attrs:{\"width\":\"180px;\"}}),_c('col')]),_c('tbody',[_c('tr',[_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/logo.png\"}})]),_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('span',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.item.displayName || ''))]),_c('span',{staticStyle:{\"color\":\"#777e87\",\"display\":\"block\",\"font-size\":\"12px\",\"margin-top\":\"10px\"}},[_vm._v(_vm._s(_vm.item.titleName || '')+\" | \"+_vm._s(_vm.item.deptName || ''))])]),_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('span',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"13px\",\"color\":\"#008fd4\"}},[_vm._v(_vm._s(_vm.item.companyName))]),_c('span',{staticStyle:{\"color\":\"#777e87\",\"display\":\"block\",\"font-size\":\"12px\",\"margin-top\":\"10px\"}},[_vm._v(_vm._s(_vm.item.officeAddress || ''))]),_c('div',{staticStyle:{\"color\":\"#777e87\",\"display\":\"block\",\"font-size\":\"13px\",\"margin-top\":\"10px\"}},[(_vm.item.officeTel !=null && _vm.item.officeTel !='')?_c('span',{staticStyle:{\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"T\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.officeTel || '')+\" \"),(_vm.item.officeFax !=null && _vm.item.officeFax !='')?_c('span',{staticStyle:{\"margin-left\":\"15px\",\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"F\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.officeFax || '')+\" \"),(_vm.item.mobileTel !=null && _vm.item.mobileTel !='')?_c('span',{staticStyle:{\"margin-left\":\"15px\",\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"M\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.mobileTel || '')+\" \"),(_vm.item.email !=null && _vm.item.email !='')?_c('span',{staticStyle:{\"display\":\"inline-block\",\"margin-top\":\"5px\",\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"E\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.email || '')+\" \")])])])])])])]),_c('tr',[_c('td',{staticStyle:{\"background\":\"url(https://gw.isu.co.kr/assets/images/signatureBar.png) 0 0 no-repeat\",\"background-size\":\"cover\",\"height\":\"18px\"}})])])])]:(_vm.lang == 'English')?[_c('table',{staticStyle:{\"border-collapse\":\"collapse\",\"border\":\"1px solid #e1e1e1\",\"background\":\"#fff\",\"width\":\"734px\",\"font-family\":\"Geneva, 'Malgun Gothic', 'Segoe UI', Arial, Verdana, sans-serif\",\"font-size\":\"13px\"}},[_c('tbody',[_c('tr',[_c('td',{staticStyle:{\"padding\":\"20px 25px\"}},[_c('table',{staticStyle:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"180px;\"}}),_c('col',{attrs:{\"width\":\"180px;\"}}),_c('col')]),_c('tbody',[_c('tr',[_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/logo.png\"}})]),_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('span',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.item.displayNameEng || ''))]),_c('span',{staticStyle:{\"color\":\"#777e87\",\"display\":\"block\",\"font-size\":\"12px\",\"margin-top\":\"10px\"}},[_vm._v(_vm._s(_vm.item.titleNameEng || '')),_c('br'),_vm._v(_vm._s(_vm.item.deptNameEng || ''))])]),_c('td',{staticStyle:{\"vertical-align\":\"top\"}},[_c('span',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"13px\",\"color\":\"#008fd4\"}},[_vm._v(_vm._s(_vm.item.companyNameEng))]),_c('span',{staticStyle:{\"color\":\"#777e87\",\"display\":\"block\",\"font-size\":\"12px\",\"margin-top\":\"10px\"}},[_vm._v(_vm._s(_vm.item.officeAddressEng || ''))]),_c('div',{staticStyle:{\"color\":\"#777e87\",\"display\":\"block\",\"font-size\":\"13px\",\"margin-top\":\"10px\"}},[(_vm.item.officeTel !=null && _vm.item.officeTel !='')?_c('span',{staticStyle:{\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"T\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.officeTel || '')+\" \"),(_vm.item.officeFax !=null && _vm.item.officeFax !='')?_c('span',{staticStyle:{\"margin-left\":\"15px\",\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"F\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.officeFax || '')+\" \"),(_vm.item.mobileTel !=null && _vm.item.mobileTel !='')?_c('span',{staticStyle:{\"margin-left\":\"15px\",\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"M\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.mobileTel || '')+\" \"),(_vm.item.email !=null && _vm.item.email !='')?_c('span',{staticStyle:{\"display\":\"inline-block\",\"margin-top\":\"5px\",\"color\":\"#008fd4\",\"font-weight\":\"bold\"}},[_vm._v(\"E\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.item.email || '')+\" \")])])])])])])]),_c('tr',[_c('td',{staticStyle:{\"background\":\"url(https://gw.isu.co.kr/assets/images/signatureBar.png) 0 0 no-repeat\",\"background-size\":\"cover\",\"height\":\"18px\"}})])])])]:[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.item.freeContent)}})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"modal\"},[_c('div',{staticClass:\"modal-flex\"},[_c('div',{staticClass:\"modal-flex-inner\"},[_c('div',{staticClass:\"modal-header\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"ml-auto\"},[(_vm.isEmit)?_c('a',{staticClass:\"btn ico-btn ico-m\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_c('i',{staticClass:\"icon-fux-close\"})]):_c('a',{staticClass:\"btn ico-btn ico-m\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_c('i',{staticClass:\"icon-fux-close\"})])])])]),(_vm.loading)?[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-padding\",style:(_vm.mStyle)},[_c('LoadingBar',{attrs:{\"message\":_vm.loadingMessage}})],1)])]:(_vm.full)?[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-h-full\",style:(_vm.mStyle)},[_vm._t(\"default\")],2)]),(!_vm.noFooter)?_c('div',{staticClass:\"modal-footer\"},[_c('div',{staticClass:\"dp-flex\"},[_vm._t(\"footer\")],2)]):_vm._e()]:[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-padding\",style:(_vm.mStyle)},[_vm._t(\"default\")],2)]),_c('div',{staticClass:\"modal-footer\"},[_c('div',{staticClass:\"dp-flex\"},[_vm._t(\"footer\")],2)])]],2)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//import modalHelper from '@appbase/util/modal-helper'\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport { LoadingBar } from '@appbase/components/loading'\r\n\r\n@Component({\r\n components: { LoadingBar },\r\n})\r\nexport default class ModalLayout extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String, default: '' }) title!: string\r\n @Prop({ type: Boolean, default: false }) loading!: boolean\r\n @Prop({ type: Boolean, default: false }) full!: boolean\r\n @Prop({ type: String }) loadingMessage!: string\r\n @Prop({ type: String, default: `width:400px` }) mStyle?: string\r\n @Prop({ type: Boolean, default: false }) isEmit!: boolean\r\n @Prop({ type: Boolean, default: false }) noFooter!: boolean\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n\r\n\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PopupModal.vue?vue&type=template&id=6118ec04&\"\nimport script from \"./PopupModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./PopupModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport PopupModal from '@gnb/components/Common/PopupModal.vue'\r\nimport { mapGetters } from 'vuex';\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n@Component({\r\n components: {\r\n PopupModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n userCurrent: accountTypes.CURRENT,\r\n }),\r\n },\r\n})\r\nexport default class SignatureModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Boolean}) show!: false;\r\n @Prop({type: Object}) item!: gnb.UserBusinessCard;\r\n @Prop({type: String}) lang!: '';\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n title:string = this.$t('미리보기').toString();\r\n userCurrent!: account.TCurrent;\r\n}\r\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SignatureModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SignatureModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignatureModal.vue?vue&type=template&id=4f7c98c5&\"\nimport script from \"./SignatureModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./SignatureModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue, { Component as VueComponent } from 'vue'\r\n\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n Dropdown,\r\n} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\nimport { EumEditor } from '@appbase/components/editor'\r\nimport SignatureModal from './Modals/SignatureModal.vue'\r\n@Component({\r\n components: {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n EumEditor,\r\n SignatureModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n userCurrent: accountTypes.CURRENT,\r\n cardState: types.GET_CARDSTATE,\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n getCardState: types.GET_CARDSTATE,\r\n getCardInfo: types.GET_CARD,\r\n setCardInfo: types.UPDATE_CARD,\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n})\r\nexport default class SignatureView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getCardState!: () => Promise\r\n getCardInfo!: (personCode: string) => Promise\r\n setCardInfo!: (item: gnb.UserBusinessCard) => Promise\r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n userCurrent!: account.TCurrent;\r\n cardState!: gnb.UserBusinessCardState[];\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n name:string = this.$t('명함_수정').toString();\r\n tab: string = 'Korean'\r\n userBusinessCardStateList: gnb.UserBusinessCardState[] = []\r\n signInfo: gnb.UserBusinessCard = {\r\n personCode: '',\r\n companyName: '',\r\n companyNameEng: '',\r\n deptName: '',\r\n deptNameEng: '',\r\n titleName: '',\r\n titleNameEng: '',\r\n roleName: '',\r\n roleNameEng: '',\r\n jobGroupName: '',\r\n jobGroupNameEng: '',\r\n displayName: '',\r\n displayNameEng: '',\r\n homeAddress: '',\r\n homeAddressEng: '',\r\n officeTel: '',\r\n officeFax: '',\r\n mobileTel: '',\r\n email: '',\r\n homePage: '',\r\n template: '',\r\n freeContent: '',\r\n usageState: 'Default',\r\n autoSign: false,\r\n replyAutoSign: false,\r\n officeAddress: '',\r\n officeAddressEng: ''\r\n }\r\n\r\n freeContent: string = ''\r\n\r\n tinyopts: any = {\r\n menubar: false,\r\n inline: false,\r\n height: 500,\r\n relative_urls: false,\r\n remove_script_host: true,\r\n document_base_url: location.origin,\r\n language: 'ko_KR',\r\n content_style: `\r\n body {font-family: Malgun Gothic; font-size: 10pt; line-height: 1.2;}\r\n body#tinymce p {\r\n margin-top: 0.3em;\r\n margin-bottom: 0.3em;\r\n }`,\r\n setup: (e: any) => {\r\n e.on('init', (ed: any) => {\r\n ed.target.editorCommands.execCommand('fontSize', false, '10pt')\r\n\r\n \r\n })\r\n },\r\n auto_focus: '',\r\n }\r\n\r\n dext5opts: editor.dext5.DEXT5Config = {\r\n EditorBorder: '0',\r\n Lang: 'ko_KR'\r\n }\r\n\r\n show: boolean = false;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n \r\n get stateList() {\r\n // if(this.cardState){\r\n // return this.cardState.slice(1);\r\n // }\r\n var tempCardState = [{\r\n description: this.$t('W_Mail_UserBusinessCardState_1').toString(),\r\n displayOrder: 1,\r\n enumString: \"Korean\",\r\n resourceId: this.$t('한글').toString(),\r\n usageState: \"Korean\",\r\n },\r\n {\r\n description: this.$t('W_Mail_UserBusinessCardState_2').toString(),\r\n displayOrder: 2,\r\n enumString: \"English\",\r\n resourceId: this.$t('영문').toString(),\r\n usageState: \"English\",\r\n },\r\n {\r\n description: this.$t('W_Mail_UserBusinessCardState_3').toString(),\r\n displayOrder: 3,\r\n enumString: \"Free\",\r\n resourceId: this.$t('자유').toString(),\r\n usageState: \"Free\"\r\n }]\r\n return tempCardState;\r\n }\r\n\r\n \r\n @Watch('signInfo')\r\n onChange(){\r\n if(this.signInfo){\r\n this.loading(false);\r\n }\r\n }\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n cancel(){\r\n this.show = false;\r\n }\r\n\r\n onClick(item: string) {\r\n this.tab = item;\r\n }\r\n\r\n\r\n getUserInfo() {\r\n this.getCardInfo(this.user.personCode).then((res: any) => {\r\n this.signInfo = res;\r\n this.freeContent = res.freeContent\r\n })\r\n }\r\n\r\n onValueChanged(value: string) {\r\n this.signInfo.freeContent = value;\r\n }\r\n\r\n save() {\r\n if(this.tab == 'Free'){\r\n this.signInfo.freeContent = this.loadEditorContent()\r\n }\r\n this.setCardInfo(this.signInfo).then(async (res) => {\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT').toString());\r\n })\r\n }\r\n\r\n preview() {\r\n if(this.tab == 'Free'){\r\n this.signInfo.freeContent = this.loadEditorContent()\r\n }\r\n this.show = true;\r\n }\r\n\r\n loadEditorContent() {\r\n const editor: editor.IEditorProxy = this.$refs.editor as any \r\n return editor.getEditor().getBodyValue();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n this.loading(true);\r\n this.getCardState();\r\n this.getUserInfo();\r\n }\r\n\r\n created() {\r\n this.dext5opts.Lang = this.userCurrent.userConfig.language\r\n }\r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SignatureView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SignatureView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignatureView.vue?vue&type=template&id=1c93756a&\"\nimport script from \"./SignatureView.ts?vue&type=script&lang=ts&\"\nexport * from \"./SignatureView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [[_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.$t('전자_메일_메시지에_자동으로_추가되는_서명을_만듭니다')))]),_vm._l((_vm.contentComponents),function(com,index){return _c(com,{key:index,ref:\"contents\",refInFor:true,tag:\"component\"})})]]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{attrs:{\"isPreview\":true},on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')},\"preview\":_vm.handlePreview}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport {SignatureView, SignatureOptionView} from '@gnb/components/Preference/Mail/Signature'\r\n\r\n@Component({\r\n components:{ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,SignatureView,SignatureOptionView}\r\n})\r\nexport default class Signature extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [SignatureOptionView,SignatureView]\r\n }\r\n\r\n header: string = this.$t('서명').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n\r\n handlePreview(){\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.preview()\r\n })\r\n }\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Signature.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Signature.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Signature.vue?vue&type=template&id=6cd33563&\"\nimport script from \"./Signature.ts?vue&type=script&lang=ts&\"\nexport * from \"./Signature.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('M_Settings_DB_Msg6'))+\" \")]),_c('Dropdown',{style:('width:120px;'),attrs:{\"items\":_vm.item,\"selected\":_vm.usageState},on:{\"change\":_vm.select}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport { mapActions,mapGetters, mapMutations } from 'vuex';\r\nimport * as types from '@gnb/store/types';\r\nimport * as accountTypes from '@account/store/types'\r\nimport api from '@gnb/api/common'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n Dropdown\r\n },\r\n computed:{\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n cardState: types.GET_CARDSTATE,\r\n userCard: types.GET_CARD\r\n })\r\n },\r\n methods:{\r\n ...mapActions({\r\n getCardState: types.GET_CARDSTATE,\r\n getCardInfo: types.GET_CARD,\r\n setCardInfo: types.UPDATE_CARD\r\n }),\r\n ...mapMutations({\r\n setUserCard: types.GET_CARD\r\n })\r\n }\r\n})\r\nexport default class SignatureOptionView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n tempCardState: gnb.UserBusinessCardState[] = [\r\n {\r\n description: this.$t('W_Mail_UserBusinessCardState_0').toString(),\r\n displayOrder: 0,\r\n enumString: \"Default\",\r\n resourceId: this.$t('W_Mail_Non').toString(),\r\n usageState: 'Default',\r\n },\r\n {\r\n description: this.$t('W_Mail_UserBusinessCardState_1').toString(),\r\n displayOrder: 1,\r\n enumString: \"Korean\",\r\n resourceId: this.$t('한글').toString(),\r\n usageState: \"Korean\",\r\n },\r\n {\r\n description: this.$t('W_Mail_UserBusinessCardState_2').toString(),\r\n displayOrder: 2,\r\n enumString: \"English\",\r\n resourceId: this.$t('영문').toString(),\r\n usageState: \"English\",\r\n },\r\n {\r\n description: this.$t('W_Mail_UserBusinessCardState_3').toString(),\r\n displayOrder: 3,\r\n enumString: \"Free\",\r\n resourceId: this.$t('자유').toString(),\r\n usageState: \"Free\"\r\n }\r\n\r\n ];\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getCardState!: () => Promise;\r\n getCardInfo!: (personCode: string) => Promise;\r\n setCardInfo!: (item:gnb.UserBusinessCard) => Promise;\r\n setUserCard!: (item:gnb.UserBusinessCard) => Promise;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n cardState!: gnb.UserBusinessCardState[];\r\n user!: account.User;\r\n userCard!: gnb.UserBusinessCard;\r\n name: string = this.$t('W_Settings_BusinessCardOption').toString();\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n item: any = [];\r\n usageState:string = '';\r\n\r\n userBusinessCardStateList: gnb.UserBusinessCardState[] = [];\r\n signInfo: gnb.UserBusinessCard = {\r\n personCode: '',\r\n companyName: '',\r\n companyNameEng: '',\r\n deptName: '',\r\n deptNameEng: '',\r\n titleName: '',\r\n titleNameEng: '',\r\n roleName: '',\r\n roleNameEng: '',\r\n jobGroupName: '',\r\n jobGroupNameEng: '',\r\n displayName: '',\r\n displayNameEng: '',\r\n homeAddress: '',\r\n homeAddressEng: '',\r\n officeTel: '',\r\n officeFax: '',\r\n mobileTel: '',\r\n email: '',\r\n homePage: '',\r\n template: '',\r\n freeContent: '',\r\n usageState: 'Default',\r\n autoSign: false,\r\n replyAutoSign: false,\r\n officeAddress: '',\r\n officeAddressEng: ''\r\n };\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('userCard')\r\n onChangeUserCard(){\r\n if(this.userCard){\r\n switch (this.userCard.usageState){\r\n case '0':\r\n this.userCard.usageState = 'Default';\r\n this.usageState = 'Default';\r\n break;\r\n case '1':\r\n this.userCard.usageState = 'Korean';\r\n this.usageState = 'Korean';\r\n break;\r\n case '2':\r\n this.userCard.usageState = 'English';\r\n this.usageState = 'English';\r\n break;\r\n case '3':\r\n this.userCard.usageState = 'Free';\r\n this.usageState = 'Free';\r\n break;\r\n case 'Default':\r\n this.userCard.usageState = 'Default';\r\n this.usageState = 'Default';\r\n break;\r\n case 'Korean':\r\n this.userCard.usageState = 'Korean';\r\n this.usageState = 'Korean';\r\n break;\r\n case 'English':\r\n this.userCard.usageState = 'English';\r\n this.usageState = 'English';\r\n break;\r\n case 'Free':\r\n this.userCard.usageState = 'Free';\r\n this.usageState = 'Free';\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n\r\n select(item:string){\r\n this.signInfo.usageState = item;\r\n }\r\n\r\n preview(){\r\n\r\n }\r\n\r\n \r\n getUserInfo(){\r\n this.getCardInfo(this.user.personCode).then((res:any)=>{\r\n this.signInfo = res;\r\n if(this.tempCardState){\r\n this.item = this.tempCardState.map((c)=>{\r\n return {\r\n name: c.description,\r\n key: c.usageState,\r\n }\r\n })\r\n }\r\n });\r\n }\r\n \r\n save(){\r\n this.tempCardState.map((c:gnb.UserBusinessCardState)=>{\r\n if(c.key === this.signInfo.usageState){\r\n this.signInfo.usageState = c.enumString;\r\n }\r\n })\r\n api.setUserBusinessCardState({personCode: this.user.personCode, usageState: this.signInfo.usageState})\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.getCardState();\r\n this.getUserInfo();\r\n this.onChangeUserCard();\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SignatureOptionView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./SignatureOptionView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignatureOptionView.vue?vue&type=template&id=371e5b25&\"\nimport script from \"./SignatureOptionView.ts?vue&type=script&lang=ts&\"\nexport * from \"./SignatureOptionView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('table',{staticClass:\"grd no-border\",staticStyle:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"\"}}),_c('col',{attrs:{\"width\":\"\"}}),_c('col',{attrs:{\"width\":\"150px\"}})]),_c('tbody',_vm._l((_vm.rules.filter(function (rule){\n return rule.operation !== 'delete'})),function(rule,index){return _c('tr',{key:index},[_c('CheckSlider',{on:{\"change\":function($event){return _vm.changeIsEnable(rule)}},model:{value:(rule.isEnabled),callback:function ($$v) {_vm.$set(rule, \"isEnabled\", $$v)},expression:\"rule.isEnabled\"}}),_c('td',{staticClass:\"vertical-top\"},[_c('h6',{staticClass:\"ft-m\"},[_vm._v(_vm._s(rule.name))]),_c('p',{staticClass:\"ft-m ft-gray no-margin\"},[_vm._v(_vm._s(rule.text))])]),_c('td',{staticClass:\"vertical-top\"},[_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"disabled\":index == 0},on:{\"click\":function($event){return _vm.move(index, index - 1)}}},[_c('i',{staticClass:\"icon-fux-arrow-up2\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"disabled\":index == _vm.lastIndex},on:{\"click\":function($event){return _vm.move(index, index + 1)}}},[_c('i',{staticClass:\"icon-fux-arrow-down2\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.edit(rule)}}},[_c('i',{staticClass:\"icon-fux-edit\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.deleteRule(rule)}}},[_c('i',{staticClass:\"icon-fux-bin\"})])])],1)}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport api from '@gnb/api/common'\r\nimport CheckSlider from '@gnb/components/Common/CheckSlider.vue'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\nimport { i18n } from '@appbase/util/i18n-setup'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n CheckSlider\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n }\r\n\r\n})\r\nexport default class RuleView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n rules: gnb.rules.Rule[] = [];\r\n lastIndex: number = 0;\r\n folders: gnb.FolderItem[] = [];\r\n tempText: string = '';\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n \r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('rules')\r\n onChangeRuleList() {\r\n const rules = this.rules;\r\n\r\n let idx = rules.findIndex((r: gnb.rules.Rule) => {\r\n return r.name === '[EUM] 자동전달';\r\n });\r\n\r\n // 삭제\r\n if (rules[idx]) {\r\n // 추가한 데이터를 삭제할 경우\r\n this.rules.splice(idx, 1);\r\n }\r\n\r\n //this.tempRuleList = this.rules;\r\n\r\n this.lastIndex =\r\n this.rules.filter((rule: gnb.rules.Rule) => {\r\n return rule.operation !== 'delete';\r\n })?.length - 1;\r\n\r\n this.$emit('changeRules', rules);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n changeIsEnable(rule:any){\r\n this.$emit('changeIsEnable', rule)\r\n }\r\n\r\n async getName(item:any){\r\n var innerDomain = this.getAppConfig('InternalSmtpDomains')\r\n \r\n if(typeof item === 'object' ){\r\n var mailDomain = ''\r\n if (typeof item[0] === 'object'){\r\n mailDomain = item[0].address.includes('@') ? item[0].address.split('@')[1] : item[0].address;\r\n }\r\n else {\r\n mailDomain = item[0].includes('@') ? item[0].split('@')[1] : item[0];\r\n }\r\n \r\n if (innerDomain?.includes(mailDomain.toLowerCase())) {\r\n return await api.getUserInfoByEmail(item[0]).then((res)=>{\r\n return res.items[0]?.displayName + '(' + item[0] + ')';\r\n })\r\n }\r\n else {\r\n if (item[0].routingType == \"SMTP\"){\r\n return item[0].name + '(' + item[0].address + ')'; \r\n }\r\n else {\r\n return item[0].name;\r\n }\r\n }\r\n }else{\r\n if (innerDomain?.includes(item)){\r\n return await api.getUserInfoByEmail(item).then((res)=>{\r\n return res.items[0]?.displayName + '(' + item + ')';\r\n });\r\n }\r\n else {\r\n return item;\r\n }\r\n }\r\n }\r\n\r\n convertConditions(conditions: gnb.rules.RuleCondition[]) :Promise{\r\n const _this = this;\r\n let text: string = '';\r\n var cnt: number = 0;\r\n return new Promise((resolve,reject) =>{\r\n conditions.forEach(async (c:gnb.rules.RuleCondition, idx: number, array: Array)=>{\r\n if (text != '') {\r\n text += ', ';\r\n }\r\n if(c.key === \"ContainsSenderStrings\" || c.key == \"FromAddresses\"){\r\n var res = \"\";\r\n if (c.key == \"ContainsSenderStrings\" && c.value[0].length && c.value[0].length > 1) {\r\n res = c.value[0];\r\n } else {\r\n res = await _this.getName(c.value);\r\n }\r\n text += i18n.t('보낸사람이').toString() + res + i18n.t('_인_경우').toString();\r\n cnt++;\r\n }else if(c.key === \"SentToAddresses\"){\r\n let receiverList = await Promise.all(c.value.map((a:any) => {\r\n var res = _this.getName(a.address);\r\n return res;\r\n }));\r\n text += i18n.t('받는사람에')+ receiverList.join(', ') + i18n.t('_가_포함된_경우').toString();\r\n cnt++;\r\n }else if(c.key === \"ContainsHeaderStrings\"){\r\n text += i18n.t('헤더에') + c.value + i18n.t('_가_포함된_경우').toString();\r\n cnt++;\r\n }else if(c.key === \"ContainsSubjectStrings\"){\r\n text += i18n.t('제목에').toString() + c.value + i18n.t('_가_포함된_경우').toString();\r\n cnt++;\r\n }else if(c.key === \"ContainsBodyStrings\"){\r\n text += i18n.t('내용에').toString() + c.value + i18n.t('_가_포함된_경우').toString();\r\n cnt++;\r\n }else if (c.key === \"ContainsSubjectOrBodyStrings\") {\r\n text += i18n.t('제목이나 내용에').toString() + c.value + i18n.t('_가_포함된_경우').toString();\r\n cnt++;\r\n }\r\n \r\n if(cnt == array.length){\r\n resolve(text);\r\n }\r\n });\r\n })\r\n \r\n }\r\n\r\n \r\n convert(rule:gnb.rules.Rule){\r\n const _this = this;\r\n let text: string = '';\r\n this.convertConditions(rule.conditions).then(async (res: string) => {\r\n text += res;\r\n if(res){\r\n let folderName: string = '';\r\n rule.actions.forEach((a:gnb.rules.RuleAction)=>{\r\n const getFolderName = (folders: gnb.FolderItem[]) => {\r\n folders.forEach((f) => {\r\n if (f.id === a.value) {\r\n folderName = f.displayName;\r\n }\r\n \r\n if (f.children != null) {\r\n getFolderName(f.children as gnb.FolderItem[]);\r\n }\r\n });\r\n }\r\n \r\n getFolderName(_this.folders);\r\n \r\n if(a.key === \"MoveToFolder\"){\r\n text += '\"' + folderName +'\"로 이동';\r\n }\r\n })\r\n }\r\n this.tempText = text;\r\n rule.text = this.tempText;\r\n if(rule.text){\r\n }\r\n });\r\n }\r\n \r\n \r\n \r\n\r\n setRule(item: gnb.rules.Rule) {\r\n const rules = this.rules;\r\n\r\n let idx = rules.findIndex((r: any) => {\r\n return r.id === item.id;\r\n });\r\n\r\n if (item.operation === 'create') {\r\n // 추가\r\n if (idx >= 0) {\r\n // 추가한 데이터를 수정할 경우\r\n this.rules.splice(idx, 1, item);\r\n } else {\r\n this.rules.push(item);\r\n }\r\n } else if (item.operation === 'set') {\r\n // 수정\r\n this.rules.splice(idx, 1, item);\r\n } else if (item.operation === 'delete') {\r\n // 삭제\r\n if (rules[idx].id.indexOf('temp_') > -1) {\r\n // 추가한 데이터를 삭제할 경우\r\n this.rules.splice(idx, 1);\r\n } else {\r\n // 기존 데이터를 삭제할 경우\r\n this.rules.splice(idx, 1, item);\r\n }\r\n }\r\n\r\n //this.$emit('setRule', this.rules);\r\n \r\n }\r\n\r\n move(from: number, to: number) {\r\n this.$emit('move', from, to);\r\n this.rules.splice(to, 0, this.rules.splice(from, 1)[0]);\r\n return this.rules;\r\n }\r\n\r\n edit(rule: gnb.rules.Rule) {\r\n this.$emit('select',rule)\r\n }\r\n\r\n async deleteRule(item: gnb.rules.Rule) {\r\n const message = this.$t('M_Settings_Delete_Rule').toString();\r\n if (await(window as any).confirmAsync(message) == false) {\r\n return false;\r\n } else {\r\n item.operation = 'delete';\r\n this.setRule(item);\r\n }\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created(){\r\n this.loading(true);\r\n api.getFolder().then((res)=>{\r\n this.folders = res;\r\n api.getRules().then((res:gnb.rules.SaveRulesRequest)=>{\r\n this.loading(false);\r\n this.rules = res.rules.map((rule:gnb.rules.Rule)=>{\r\n rule.text = '';\r\n this.convert(rule);\r\n return rule;\r\n });\r\n });\r\n });\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./RuleView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./RuleView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RuleView.vue?vue&type=template&id=d4948a64&\"\nimport script from \"./RuleView.ts?vue&type=script&lang=ts&\"\nexport * from \"./RuleView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{attrs:{\"isRule\":true},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [(!_vm.isShow)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],staticClass:\"panel-content\"},[_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.$t('수신_전자_메일_메시지를_처리할_방법을_지정하는_규칙을_만들_수_있습니다'))),_c('br'),_vm._v(_vm._s(_vm.$t('규칙은_아래_목록에서_맨_위의_규칙부터_순서대로_실행됩니다__변경_시___저장__버튼을_클릭해주세요')))]),_c('div',{staticClass:\"item\"},[_c('a',{on:{\"click\":_vm.addNewRule}},[_c('i',{staticClass:\"icon-fux-add ft-blue m-r-s\"}),_vm._v(_vm._s(_vm.$t('M_Settings_Msg35'))+\" \")])]),_c('RuleView',{on:{\"select\":_vm.selectRule,\"changeIsEnable\":_vm.changeIsEnable,\"move\":_vm.move,\"changeRules\":_vm.changeRules}})],1):(_vm.isShow)?[_c('AddRule',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],model:{value:(_vm.selectedRule),callback:function ($$v) {_vm.selectedRule=$$v},expression:\"selectedRule\"}})]:_vm._e()]},proxy:true},{key:\"footer\",fn:function(){return [(!_vm.isShow)?_c('ModalFooter',{on:{\"cancel\":function($event){return _vm.$emit('cancel')},\"save\":_vm.save}}):_c('ModalFooter',{on:{\"cancel\":_vm.closeNewRule,\"save\":_vm.saveNewRule}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel-content\"},[_c('ContentItem',{attrs:{\"name\":this.$t('M_Settings_RuleName').toString(),\"number\":'1'}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.name),expression:\"item.name\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\",\"name\":\"\",\"id\":\"\",\"placeholder\":this.$t('M_Settings_Msg40').toString()},domProps:{\"value\":(_vm.item.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"name\", $event.target.value)}}})]),_c('ContentItem',{attrs:{\"name\":this.$t('분류_조건_선택').toString(),\"number\":'2'}},[_c('div',[_c('div',{staticClass:\"space-m\"}),_c('p',{staticClass:\"description\"},[_c('span',{staticClass:\"bullet bullet-darkgray m-r-s\"}),_c('span',{staticClass:\"half-HL\"},[_vm._v(_vm._s(_vm.$t('W_BB_Sender')))]),_vm._v(_vm._s(_vm.$t('에_아래_사람이_포함되어_있으면')))]),_c('RecipientField',{attrs:{\"single\":true,\"fieldGuid\":'sender',\"recipients\":_vm.senderList,\"placeholder\":_vm.senderPlaceholder},on:{\"update:recipients\":function($event){_vm.senderList=$event}}})],1),_c('div',[_c('div',{staticClass:\"space-m\"}),_c('p',{staticClass:\"description\"},[_c('span',{staticClass:\"bullet bullet-darkgray m-r-s\"}),_c('span',{staticClass:\"half-HL\"},[_vm._v(_vm._s(_vm.$t('W_BB_Recipient')))]),_vm._v(_vm._s(_vm.$t('에_아래_사람이_포함되어_있으면')))]),_c('RecipientField',{attrs:{\"single\":false,\"fieldGuid\":'receiver',\"recipients\":_vm.receiverList,\"placeholder\":_vm.receiverPlaceholder},on:{\"update:recipients\":function($event){_vm.receiverList=$event}}})],1),_c('div',[_c('div',{staticClass:\"space-m\"}),_c('p',{staticClass:\"description\"},[_c('span',{staticClass:\"bullet bullet-darkgray m-r-s\"}),_c('span',{staticClass:\"half-HL\"},[_vm._v(_vm._s(_vm.$t('메일_헤더')))]),_vm._v(_vm._s(_vm.$t('에_아래_내용이_포함되어_있으면')))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.header),expression:\"header\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\",\"placeholder\":this.$t('M_Settings_keyword').toString()},domProps:{\"value\":(_vm.header)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.header=$event.target.value}}})]),_c('div',[_c('div',{staticClass:\"space-m\"}),_c('p',{staticClass:\"description\"},[_c('span',{staticClass:\"bullet bullet-darkgray m-r-s\"}),_c('span',{staticClass:\"half-HL\"},[_vm._v(_vm._s(_vm.$t('W_Settings_MailTItle')))]),_vm._v(_vm._s(_vm.$t('에_아래_내용이_포함되어_있으면')))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.title),expression:\"title\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\",\"placeholder\":this.$t('M_Settings_keyword').toString()},domProps:{\"value\":(_vm.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.title=$event.target.value}}})]),_c('div',[_c('div',{staticClass:\"space-m\"}),_c('p',{staticClass:\"description\"},[_c('span',{staticClass:\"bullet bullet-darkgray m-r-s\"}),_c('span',{staticClass:\"half-HL\"},[_vm._v(_vm._s(_vm.$t('W_Settings_MailContent')))]),_vm._v(_vm._s(_vm.$t('에_아래_내용이_포함되어_있으면')))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.content),expression:\"content\"}],staticClass:\"fm-def\",attrs:{\"type\":\"text\",\"placeholder\":this.$t('M_Settings_keyword').toString()},domProps:{\"value\":(_vm.content)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.content=$event.target.value}}})])]),_c('ContentItem',{attrs:{\"name\":this.$t('처리_방법').toString(),\"number\":'3'}},[_c('div',{staticClass:\"fm-group-input vertical-top\"},[_c('div',{staticClass:\"autocomplete-wrap flex-1\"},[_c('div',{staticClass:\"search-bar\"},[_c('input',{staticClass:\"fm-def w-100\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":_vm.convertToActionsString(_vm.item)}}),_c('button',{staticClass:\"btn sub-btn btn-basic-outline m-l-xs\",on:{\"click\":_vm.openModal}},[_vm._v(_vm._s(_vm.$t('M_Settings_selectedMailbox')))])])])])]),_c('RuleModal',{attrs:{\"show\":_vm.show},on:{\"cancel\":_vm.cancel,\"save\":_vm.selectedFolder}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"mStyle\":'width: 800px; height: auto;',\"title\":_vm.title,\"show\":_vm.show},on:{\"cancel\":_vm.cancel},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.$t('확인')))]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":_vm.cancel}},[_vm._v(_vm._s(_vm.$t('취소')))])])]},proxy:true}])},[_c('div',{staticClass:\"space-m\"}),_c('SimpleFolderList',{on:{\"select\":_vm.select}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('p',{staticClass:\"ft-m\"},[_vm._v(\" \"+_vm._s(_vm.$t('W_Mail_MailboxCapacity'))+\" : \"),_c('b',{staticClass:\"ft-blue letter-space-m\"},[_vm._v(_vm._s(_vm.totalSizeString))]),_vm._v(\" / \"+_vm._s(_vm.sizeLimitString)+\" \")]),_c('table',{staticClass:\"grd\",staticStyle:{\"width\":\"100%\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('폴더')))]),_c('th',[_vm._v(_vm._s(_vm.$t('W_Mail_Unread')))]),_c('th',[_vm._v(_vm._s(_vm.$t('용량')))]),_c('th',[_vm._v(_vm._s(_vm.$t('W_Settings_Save')))]),_c('th',[_vm._v(_vm._s(_vm.$t('W_Mail_Empty')))])])]),_c('tbody',_vm._l((_vm.folderList),function(folder,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(folder.displayName))]),_c('td',{staticClass:\"letter-space-m\"},[_c('b',[_vm._v(_vm._s(folder.unreadCount))]),_c('span',{staticClass:\"ft-gray\"},[_vm._v(\"/\"+_vm._s(folder.totalCount))])]),_c('td',{staticClass:\"letter-space-m\"},[_vm._v(_vm._s(_vm.readablizeBytesE(folder.totalSize)))]),_c('td',[_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.open(folder)}}},[_vm._v(_vm._s(_vm.$t('PC저장')))]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.openFolder(folder)}}},[_vm._v(_vm._s(_vm.$t('W_Mail_Move')))])]),_c('td',[_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.deleteItem(folder)}}},[_c('i',{staticClass:\"icon-fux-bin\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.deleteCompletely(folder)}}},[_vm._v(_vm._s(_vm.$t('영구삭제')))])])])}),0)]),_c('StorageModal',{attrs:{\"show\":_vm.pcModalShow,\"value\":_vm.item},on:{\"cancel\":_vm.closePCModal,\"periodType\":_vm.changePeriodType,\"click\":_vm.savePCModal}}),_c('FolderMoveModal',{attrs:{\"show\":_vm.folderModalShow,\"id\":_vm.id},on:{\"cancel\":_vm.closeFolderModal}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"mStyle\":'width: 500px; height: auto;',\"title\":this.$t('W_Settings_PCStorage').toString(),\"show\":_vm.show},on:{\"cancel\":function($event){return _vm.$emit('cancel')}},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('click')}}},[_vm._v(_vm._s(_vm.$t('저장')))]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(_vm._s(_vm.$t('취소')))])])]},proxy:true}])},[_c('div',{staticClass:\"space-m\"}),_c('table',[_c('colgroup',[_c('col',{staticStyle:{}}),_c('col')]),_c('tbody',[_c('tr',[_c('th',{staticClass:\"space-m align-left\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Settings_PeriodOption')))])])]),_c('td',{staticClass:\"td-selected\",attrs:{\"data-v-f90dba5c\":\"\"}},[_c('label',{staticClass:\"em-radio\",attrs:{\"data-v-f90dba5c\":\"\"}},[_c('span',{staticClass:\"label\",attrs:{\"data-v-f90dba5c\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('W_Settings_BackupOption2'))+\" \")]),_c('input',{attrs:{\"data-v-f90dba5c\":\"\",\"type\":\"radio\",\"name\":\"EndType\"},domProps:{\"checked\":_vm.value.checked === false},on:{\"click\":function($event){return _vm.$emit('periodType', false)}}}),_c('span',{staticClass:\"check\",attrs:{\"data-v-f90dba5c\":\"\"}})]),_c('label',{staticClass:\"em-radio\",attrs:{\"data-v-f90dba5c\":\"\"}},[_c('span',{staticClass:\"label\",attrs:{\"data-v-f90dba5c\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('W_Settings_BackupOption1'))+\" \")]),_c('input',{attrs:{\"data-v-f90dba5c\":\"\",\"type\":\"radio\",\"name\":\"EndType\"},domProps:{\"checked\":_vm.value.checked === true},on:{\"click\":function($event){return _vm.$emit('periodType', true)}}}),_c('span',{staticClass:\"check\",attrs:{\"data-v-f90dba5c\":\"\"}})]),(_vm.value.checked === true)?_c('div',[_c('div',{staticClass:\"space-10\"}),_c('DatePicker',{attrs:{\"disabled\":_vm.checkDisabled},on:{\"input\":function (value) { return _vm.$emit('input', value); }},model:{value:(_vm.value.start),callback:function ($$v) {_vm.$set(_vm.value, \"start\", $$v)},expression:\"value.start\"}}),_c('DatePicker',{attrs:{\"disabled\":_vm.checkDisabled},model:{value:(_vm.value.end),callback:function ($$v) {_vm.$set(_vm.value, \"end\", $$v)},expression:\"value.end\"}})],1):_vm._e()])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport StorageView from '@gnb/components/Preference/Mail/Storage/StorageView.vue'\r\nimport DatePicker from '@appbase/components/DatePicker/DatePicker.vue'\r\nimport { ModalLayout } from '@appbase/templates'\r\nimport PopupModal from '@gnb/components/Common/PopupModal.vue'\r\n\r\n\r\n@Component({\r\n components:{\r\n PopupModal,\r\n ModalLayout,\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n StorageView,\r\n DatePicker\r\n }\r\n})\r\nexport default class StorageModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n @Prop({type: Boolean}) show!: false;\r\n @Prop({type: Object}) value!: gnb.StorageItem;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n checkDisabled: boolean = true;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n\r\n @Watch('value.checked')\r\n onChecked() {\r\n if (this.value.checked) {\r\n //false일때\r\n this.checkDisabled = false;\r\n } else if (!this.value.checked) {\r\n this.checkDisabled = true;\r\n }\r\n }\r\n}","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./StorageModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./StorageModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StorageModal.vue?vue&type=template&id=0d7867b6&\"\nimport script from \"./StorageModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./StorageModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"mStyle\":'width:25vw; min-width:400px; height:50vh;',\"title\":_vm.title,\"show\":_vm.show},on:{\"cancel\":function($event){return _vm.$emit('cancel')}},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":_vm.move}},[_vm._v(_vm._s(_vm.$t('저장')))]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(_vm._s(_vm.$t('취소')))])])]},proxy:true}])},[_c('SimpleFolderList',{on:{\"select\":_vm.select}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.folders)?_c('FolderList',{attrs:{\"items\":_vm.filteredFolders},on:{\"select\":_vm.select}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-tree tree-bind\"},[(_vm.items.length > 0)?_c('div',{staticClass:\"m-node\"},_vm._l((_vm.items),function(item){return _c('TreeListItem',{key:item.id,attrs:{\"item\":item,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"select\":function (child) { return _vm.$emit('select', child); },\"expand\":function (item) { return _vm.$emit('expand', item); }}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-top\",class:{ selected: _vm.item.selected },on:{\"click\":function($event){$event.preventDefault();return _vm.select.apply(null, arguments)}}},[(_vm.hasChildren())?_c('span',{on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('i',{class:[\n _vm.expanded\n ? 'icon-em-arrow-up-small'\n : 'icon-em-arrow-down-small' ]})]):_vm._e(),(_vm.item[_vm.headerField])?_c('div',{staticClass:\"m-top\"},[_vm._v(\" \"+_vm._s(_vm.item[_vm.headerField])+\" \")]):_vm._e(),(_vm.expanded)?_c('div',{staticClass:\"m-sub\"},_vm._l((_vm.item.children),function(child){return _c('TreeListItem',{key:child.key,attrs:{\"item\":child,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"select\":function (targetItem) { return _vm.$emit('select', targetItem); },\"expand\":function (targetItem) { return _vm.$emit('expand', targetItem); }}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name: 'TreeListItem',\r\n})\r\nexport default class TreeListItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: orgmap.TreeListItem;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n expanded: boolean = false;\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('expanded')\r\n onExpnded(newValue: boolean): void {\r\n if (newValue != undefined && newValue === true) {\r\n this.$emit('expand', this.item);\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select() {\r\n this.$emit('select', this.item);\r\n }\r\n\r\n hasChildren(): boolean {\r\n if (typeof this.hasChildrenField === 'string') {\r\n return (this.item as any)[this.hasChildrenField];\r\n } else {\r\n return this.hasChildrenField(this.item);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeListItem.vue?vue&type=template&id=7b0dc88b&\"\nimport script from \"./TreeListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./TreeListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport TreeListItem from './TreeListItem.vue';\r\n\r\n@Component({\r\n components: { TreeListItem },\r\n})\r\nexport default class TreeList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) items!: orgmap.TreeListItem;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeList.vue?vue&type=template&id=5f12e4f5&\"\nimport script from \"./TreeList.ts?vue&type=script&lang=ts&\"\nexport * from \"./TreeList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"p-all-l bg-white h-100 overflow-auto\"},[_c('div',{staticClass:\"m-tree tree-bind\"},_vm._l((_vm.items),function(item){return _c('FolderItem',{key:item.id,attrs:{\"item\":item,\"id\":_vm.folderId},on:{\"expand\":function (id) { return _vm.fnExpandTree(id, 'M'); },\"itemclick\":function (item) { return _vm.fnFolderItemClick(item); }}})}),1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-node\",attrs:{\"id\":('divNodeMn_') + _vm.item.id},on:{\"click\":function($event){$event.stopPropagation();return _vm.itemclick(_vm.item)}}},[_c('div',{class:['m-top', (_vm.id == _vm.item.id ? 'selected' : '')]},[(_vm.item.hasChildren)?_c('span',{staticClass:\"menu-icon-arrow\"},[_c('i',{staticClass:\"icon-fux-down\",attrs:{\"id\":('iMn_') + _vm.item.id},on:{\"click\":function($event){$event.stopPropagation();return (function (id) { return _vm.$emit('expand', _vm.item.id); }).apply(null, arguments)}}})]):_vm._e(),_vm._m(0),_c('span',{staticClass:\"menu-name ellipsis\"},[_vm._v(_vm._s(_vm.item.displayName))])]),(_vm.item.hasChildren)?_c('div',{staticClass:\"m-sub\"},_vm._l((_vm.item.children),function(child){return _c('folder-item',{key:child.id,attrs:{\"item\":child,\"id\":_vm.id},on:{\"expand\":function (id) { return _vm.$emit('expand', id); },\"itemclick\":function (item) { return _vm.$emit('itemclick', item); }}})}),1):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"menu-icon\"},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/tree_folder.png\"}})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n name: 'folder-item',\r\n})\r\n\r\nexport default class FolderItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: orgmap.TreeListItem;\r\n @Prop({ type: String }) id!: string;\r\n @Prop({ type: Array }) items!: orgmap.TreeListItem[];\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n itemclick(folder: orgmap.TreeListItem){\r\n this.$emit('itemclick', folder);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderItem.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderItem.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FolderItem.vue?vue&type=template&id=5e66c558&\"\nimport script from \"./FolderItem.ts?vue&type=script&lang=js&\"\nexport * from \"./FolderItem.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport TreeList from '@gnb/components/Common/TreeList.vue';\r\nimport FolderItem from '@gnb/components/Common/FolderItem.vue';\r\n\r\n@Component({\r\n components: { TreeList, FolderItem },\r\n})\r\nexport default class FolderList extends Vue { \r\n //\r\n // ────────────────────────────────────────────────────────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Array }) items!: orgmap.TreeListItem[];\r\n folderId:string = '';\r\n\r\n \r\n // 메뉴 Item 클릭 이벤트 처리\r\n fnFolderItemClick(folderItem: orgmap.TreeListItem) {\r\n if (folderItem.id){\r\n this.folderId = folderItem.id.toString();\r\n this.$emit('select', folderItem)\r\n }\r\n }\r\n\r\n // 도구 및 기능 Expand 이벤트 처리\r\n fnExpandTree(itemId: Number, treeType: String) {\r\n var iObj = document.getElementById((treeType == \"M\" ? \"iMn_\" : \"iFunc_\") + itemId);\r\n var nodeObj = document.getElementById((treeType == \"M\" ? \"divNodeMn_\" : \"divNodeFunc_\") + itemId);\r\n var mSubObj = nodeObj?.querySelector(\".m-sub\");\r\n\r\n if (iObj?.classList.contains(\"icon-fux-down\")) {\r\n iObj?.classList.remove(\"icon-fux-down\");\r\n iObj?.classList.add(\"icon-fux-right\");\r\n mSubObj?.setAttribute(\"style\", \"display:none\");\r\n }\r\n else {\r\n iObj?.classList.remove(\"icon-fux-right\");\r\n iObj?.classList.add(\"icon-fux-down\");\r\n mSubObj?.setAttribute(\"style\", \"display:\");\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderList.vue?vue&type=template&id=71f9edf2&\"\nimport script from \"./FolderList.ts?vue&type=script&lang=ts&\"\nexport * from \"./FolderList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n// components\r\nimport TreeList from '@gnb/components/Common/TreeList.vue';\r\nimport api from '@gnb/api/common'\r\nimport FolderList from './FolderList.vue';\r\n@Component({\r\n components: { TreeList, FolderList },\r\n})\r\nexport default class SimpleFolderList extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedFolder: gnb.MailboxFolder | null = null;\r\n folders: gnb.FolderItem[] = [];\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get filteredFolders() {\r\n const getFolderName = (folders: gnb.FolderItem[], depth: number = 0) => {\r\n folders.forEach((f) => {\r\n\r\n if (depth == 0) {\r\n (f as gnb.FolderItem).expanded = false;\r\n }\r\n\r\n f.selected = this.selectedFolder?.id === f.id;\r\n if (f.children != null) {\r\n getFolderName(f.children as gnb.FolderItem[], ++depth);\r\n }\r\n });\r\n }\r\n var exceptFolderNames = ['동기화 문제', '정크 메일']\r\n\r\n getFolderName(this.folders);\r\n\r\n this.folders.map((item:gnb.FolderItem) => {\r\n switch(item.wellKnownFolderName){\r\n case 'inbox':\r\n item.displayName = this.$t('받은_편지함').toString();\r\n break;\r\n case 'sentitems':\r\n item.displayName = this.$t('W_Mail_FolderSentbox').toString();\r\n break;\r\n case 'outbox':\r\n item.displayName = this.$t('보낼_편지함').toString();\r\n break;\r\n case 'drafts':\r\n item.displayName = this.$t('W_Mail_FolderDrafts').toString();\r\n break;\r\n case 'deleteditems':\r\n item.displayName = this.$t('W_Mail_FolderDeletedItems').toString();\r\n break;\r\n }\r\n });\r\n\r\n //return this.folders.filter((f: gnb.FolderItem) => !f.wellKnownFolderName && !f.userWellKnownName);\r\n return this.folders.filter((f: gnb.FolderItem) => !exceptFolderNames.includes(f.displayName));\r\n }\r\n \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n select(folder: gnb.MailboxFolder) {\r\n this.selectedFolder = folder;\r\n this.$emit('select', folder);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n api.getFolder().then((res)=>{\r\n this.folders = res;\r\n });\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./SimpleFolderList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./SimpleFolderList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SimpleFolderList.vue?vue&type=template&id=9b3ba204&scoped=true&\"\nimport script from \"./SimpleFolderList.ts?vue&type=script&lang=ts&\"\nexport * from \"./SimpleFolderList.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./SimpleFolderList.vue?vue&type=style&index=0&id=9b3ba204&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9b3ba204\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport StorageView from '@gnb/components/Preference/Mail/Storage/StorageView.vue'\r\nimport { ModalLayout } from '@appbase/templates'\r\nimport SimpleFolderList from '@gnb/components/Common/SimpleFolderList.vue'\r\nimport PopupModal from '@gnb/components/Common/PopupModal.vue'\r\nimport api from '@gnb/api/common'\r\n@Component({\r\n components:{\r\n PopupModal,\r\n ModalLayout,\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n StorageView,\r\n SimpleFolderList\r\n }\r\n})\r\nexport default class FolderMoveModal extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n selectedFolder: gnb.MailboxFolder = {}as gnb.MailboxFolder;\r\n title: string = this.$t('W_Mail_MoveFolder').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n\r\n @Prop({type: Boolean}) show!: false;\r\n @Prop({type: String}) id!: '';\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select(folder: gnb.MailboxFolder) {\r\n this.selectedFolder = folder;\r\n }\r\n\r\n move(){\r\n api.moveFolders(\r\n [this.id],this.selectedFolder.id,\r\n ).then(async (succeed:boolean) => {\r\n if (succeed) {\r\n await(window as any).alertAsync(this.$t('이동되었습니다').toString());\r\n this.$emit('cancel');\r\n }\r\n });\r\n }\r\n\r\n \r\n}","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderMoveModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderMoveModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderMoveModal.vue?vue&type=template&id=8cf8bb46&\"\nimport script from \"./FolderMoveModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./FolderMoveModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n Dropdown,\r\n} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport apiClient from '@gnb/api/common'\r\nimport api from '@gnb/api'\r\nimport StorageModal from './Modals/StorageModal.vue'\r\nimport FolderMoveModal from './Modals/FolderMoveModal.vue'\r\nimport { readablizeBytes } from '@appbase/util'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components: {\r\n FolderMoveModal,\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n StorageModal,\r\n },\r\n methods: {\r\n ...mapActions({\r\n download: types.DOWNLOAD_PC,\r\n loading: types.COMMON_LOADDING,\r\n }),\r\n },\r\n})\r\nexport default class StorageView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n item: gnb.StorageItem = {\r\n checked: false,\r\n start: dateutil.uGetDateFormat('yyyy-MM-DD', new Date()),\r\n end: dateutil.uGetDateFormat('yyyy-MM-DD', new Date()),\r\n }\r\n\r\n folderItem: gnb.FolderItem = {\r\n children: null,\r\n displayName: '',\r\n hasChildren: false,\r\n id: '',\r\n isFavorite: false,\r\n parentFolderId: '',\r\n totalCount: 0,\r\n totalSize: 0,\r\n unreadCount: 0,\r\n wellKnownFolderName: '',\r\n userWellKnownName: '',\r\n } as gnb.FolderItem\r\n\r\n id: string = ''\r\n size: number = 0\r\n fileName: string = ''\r\n showModal: boolean = false\r\n using: string = '30MB/100MB(10% 사용중)'\r\n pcModalShow: boolean = false\r\n folderModalShow: boolean = false\r\n // 메일박스 사용량 (bytes)\r\n totalSizeString: string = '알수없음'\r\n // 메일박스 쿼터 (bytes)\r\n sizeLimitString: string = '알수없음'\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void\r\n download!: (item: gnb.downloadOption) => Promise\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get folderList() {\r\n let target: gnb.FolderItem[] = []\r\n const getFolderList = function (item: any): gnb.FolderItem[] {\r\n for (let i = 0; i < item.length; i++) {\r\n target.push(item[i])\r\n if (item[i].hasChildren) {\r\n getFolderList(item[i].children)\r\n }\r\n }\r\n return target\r\n }\r\n return getFolderList(this.folderItem)\r\n }\r\n\r\n // get quota() {\r\n // let value = this.quotaConfig?.quota;\r\n // if (typeof value === 'number' && value) {\r\n // return readablizeBytes(value);\r\n // } else {\r\n // return value || 0;\r\n // }\r\n // }\r\n\r\n // get usage() {\r\n // let value = this.quotaConfig?.totalItemSize;\r\n // if (typeof value === 'number' && value) {\r\n // return readablizeBytes(value);\r\n // } else {\r\n // return value || 0;\r\n // }\r\n // }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n readablizeBytesE(bytes: number) {\r\n return bytes ? readablizeBytes(bytes) : '-'\r\n }\r\n\r\n changePeriodType(type: boolean) {\r\n this.item.checked = type\r\n }\r\n\r\n open(item: gnb.FolderItem) {\r\n this.id = item.id\r\n this.fileName = item.displayName\r\n this.size = item.totalSize\r\n this.pcModalShow = true\r\n }\r\n\r\n openFolder(item: gnb.FolderItem) {\r\n this.id = item.id\r\n this.fileName = item.displayName\r\n this.size = item.totalSize\r\n this.folderModalShow = true\r\n }\r\n closeFolderModal() {\r\n this.folderModalShow = false\r\n }\r\n\r\n closePCModal() {\r\n this.pcModalShow = false\r\n }\r\n\r\n async savePCModal() {\r\n let endDate = new Date(this.item.end)\r\n endDate.setDate(endDate.getDate() + 1)\r\n this.item.end = dateutil.uGetDateFormat('yyyy-MM-DD', endDate)\r\n\r\n if (this.size > 0) {\r\n const process = (result: any) => {\r\n const { succeed, resultCode, exception, maxSize, transitionSize } = result\r\n if (succeed) {\r\n this.reset()\r\n this.pcModalShow = false\r\n }\r\n }\r\n\r\n if (this.item.checked === false) {\r\n this.download({\r\n folderId: this.id,\r\n fileName: this.fileName,\r\n } as gnb.downloadOption).then(process)\r\n } else {\r\n this.download({\r\n folderId: this.id,\r\n start: this.item.start,\r\n end: this.item.end,\r\n fileName: this.fileName,\r\n } as gnb.downloadOption).then(process)\r\n }\r\n } else {\r\n await(window as any).alertAsync(this.$t('M_Settings_Msg16'))\r\n this.reset()\r\n }\r\n this.showModal = false\r\n }\r\n\r\n reset() {\r\n this.item.checked = false\r\n this.id = ''\r\n this.item.start = dateutil.uGetDateFormat('yyyy-MM-DD', new Date())\r\n this.item.end = dateutil.uGetDateFormat('yyyy-MM-DD', new Date())\r\n this.fileName = ''\r\n }\r\n\r\n async deleteItem(item: gnb.FolderItem) {\r\n if (item.wellKnownFolderName !== 'deleteditems') {\r\n const message = this.$t('M_Settings_Msg15').toString()\r\n if (item.totalSize > 0) {\r\n if (await(window as any).confirmAsync(message) == false) {\r\n return\r\n } else {\r\n apiClient\r\n .delete({\r\n id: item.id,\r\n mode: types.DeleteMode.MoveToDeletedItems,//'MoveToDeletedItems',\r\n deleteSubFolders: false,\r\n })\r\n .then(async () => {\r\n await(window as any).alertAsync(this.$t('삭제_되었습니다').toString())\r\n this.getFolder()\r\n })\r\n }\r\n } else {\r\n await(window as any).alertAsync(this.$t('M_Mail_DeleteError1'))\r\n }\r\n } else {\r\n this.deleteCompletely(item)\r\n }\r\n }\r\n\r\n async deleteCompletely(item: gnb.FolderItem) {\r\n const message =\r\n // '이 항목은 영구적으로 삭제됩니다.\\r\\n\\r\\n계속하시겠습니까?';\r\n this.$t('M_Mail_Msg10').toString() + '\\r\\n\\r\\n' + this.$t('M_Mail_Msg11').toString()\r\n if (item.totalSize > 0) {\r\n if (await(window as any).confirmAsync(message) == false) {\r\n return\r\n } else {\r\n apiClient\r\n .delete({\r\n id: item.id,\r\n mode: types.DeleteMode.HardDelete,//'HardDelete',\r\n deleteSubFolders: false,\r\n })\r\n .then(async () => {\r\n await(window as any).alertAsync(this.$t('영구삭제_되었습니다').toString())\r\n this.getFolder()\r\n })\r\n }\r\n } else {\r\n await(window as any).alertAsync(this.$t('M_Mail_DeleteError1'))\r\n }\r\n }\r\n\r\n getFolder() {\r\n apiClient.getFolderInfo().then((res: gnb.FolderItem) => {\r\n this.folderItem = res\r\n if (this.folderItem) {\r\n this.loading(false)\r\n }\r\n })\r\n }\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.getFolder()\r\n this.sizeLimitString = this.totalSizeString = this.$t('용량제한없음').toString()\r\n api.mail.getMailboxSizeInfo().then(({ sizeLimitBytes, totalSizeBytes }) => {\r\n if (totalSizeBytes > 0) this.totalSizeString = readablizeBytes(totalSizeBytes)\r\n if (sizeLimitBytes > 0) this.sizeLimitString = readablizeBytes(sizeLimitBytes)\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./StorageView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./StorageView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StorageView.vue?vue&type=template&id=6eaea945&\"\nimport script from \"./StorageView.ts?vue&type=script&lang=ts&\"\nexport * from \"./StorageView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport StorageView from '@gnb/components/Preference/Mail/Storage/StorageView.vue'\r\nimport { ModalLayout } from '@appbase/templates'\r\nimport PopupModal from '@gnb/components/Common/PopupModal.vue'\r\nimport SimpleFolderList from '@gnb/components/Common/SimpleFolderList.vue'\r\n@Component({\r\n components:{PopupModal,ModalLayout,ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,StorageView,SimpleFolderList}\r\n})\r\nexport default class RuleModal extends Vue {\r\n @Prop({type: Boolean}) show!: false;\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedFolder: gnb.MailboxFolder | null = null;\r\n title: string = this.$t('M_Mail_SelectedFolder').toString();\r\n \r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select(folder: gnb.MailboxFolder) {\r\n this.selectedFolder = folder;\r\n }\r\n\r\n save(){\r\n this.$emit('save', this.selectedFolder)\r\n }\r\n\r\n cancel(){\r\n this.$emit('cancel');\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./RuleModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./RuleModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RuleModal.vue?vue&type=template&id=613b52be&\"\nimport script from \"./RuleModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./RuleModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fm-group-input vertical-top\"},[_c('div',{staticClass:\"fm-def input w-100 overflow-auto-y\",staticStyle:{\"max-height\":\"100px\"}},[_vm._l((_vm.recipientsSync),function(user){return _c('span',{key:user.id,staticClass:\"dp-inblock badge badge-light-blue2 letter-s radius-s m-b-xs\"},[_vm._v(\" \"+_vm._s(_vm.getDisplayName(user))+\" \"),(!_vm.readOnly)?_c('a',{staticClass:\"ft-blue ft-xs m-l-xs\",on:{\"click\":function($event){return _vm.onDeleteClick(user)}}},[_c('i',{staticClass:\"icon-fux-close\"})]):_vm._e()])}),(!_vm.readOnly)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchText),expression:\"searchText\"}],ref:\"inpText\",staticClass:\"fm-def m-l-xs no-border\",attrs:{\"disabled\":_vm.onSearching,\"placeholder\":_vm.placeholder,\"type\":\"text\"},domProps:{\"value\":(_vm.searchText)},on:{\"keydown\":_vm.onKeyDown,\"blur\":_vm.onKeyBlur,\"input\":function($event){if($event.target.composing){ return; }_vm.searchText=$event.target.value}}}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.autoCompletesModel.length > 0),expression:\"autoCompletesModel.length > 0\"}]},[_c('ul',{ref:\"ulCompleteBox\",staticClass:\"autoCompleteList\"},_vm._l((_vm.autoCompletesModel),function(user){return _c('li',{key:user.id,staticClass:\"auto0\",attrs:{\"title\":((user.displayName) + \" | \" + (user.titleName) + \" | \" + (user.email))},on:{\"click\":function($event){return _vm.autoCompleteSelect(user)}}},[_c('div',[_c('h5',{staticClass:\"ft-basic ft-400 ellipsis line-clamp-1 no-margin\"},[_vm._v(_vm._s(user.displayName))]),_c('span',{staticClass:\"contents ellipsis line-clamp-1\"},[_vm._v(_vm._s(((user.deptName) + \" \" + (user.titleName))))]),_c('span',{staticClass:\"contents ellipsis line-clamp-1\"},[_vm._v(_vm._s(user.email))])])])}),0)])],2),(!_vm.readOnly)?_c('span',{staticClass:\"addon\"},[_c('button',{staticClass:\"btn sub-btn btn-basic-outline m-l-xs\",on:{\"click\":_vm.onOrgmapClick}},[_vm._v(_vm._s(_vm.$t('W_Organization')))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport { getGUID, openPopup } from '@appbase/util'\r\nimport { createEventBus, removeEventBus } from '@appbase/util/eventBus'\r\nimport api from '../../api'\r\n\r\nexport interface TWishContainerOptionItem {\r\n id: number\r\n name: string\r\n height: string\r\n items?: orgmap.TWishContainerItem[]\r\n}\r\n\r\nexport interface TWishContainerOptions {\r\n addableDept: boolean\r\n single: boolean\r\n containers: TWishContainerOptionItem[]\r\n}\r\n\r\nexport interface TWishItemPropsOptions {\r\n props: string[]\r\n}\r\n\r\nconst EVENT_ORG_POPUP = '$reserve/org/popup'\r\n\r\n@Component({})\r\nexport default class RecipientField extends Vue {\r\n @Prop({ type: Boolean, default: false }) readOnly!: boolean\r\n @Prop({ type: String, default: '' }) fieldGuid!: string\r\n @Prop({ type: String, default: '' }) placeholder!: string\r\n @Prop({ type: Boolean, default: false }) single!: false\r\n @PropSync('recipients', { type: Array }) recipientsSync!: orgmap.UserItem[]\r\n\r\n onSearching: boolean = false\r\n searchText: string = ''\r\n autoCompletesModel: orgmap.UserItem[] = []\r\n\r\n created() {\r\n createEventBus(window, `${EVENT_ORG_POPUP}/${this.fieldGuid}`, this.handlePopupResult)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, `${EVENT_ORG_POPUP}/${this.fieldGuid}`, this.handlePopupResult)\r\n }\r\n\r\n handlePopupResult(data: any) {\r\n console.log('popupResult', data)\r\n if (data && data.length > 0) {\r\n var popupResult: any[] = data[0].items\r\n popupResult.forEach((p) => {\r\n if (!(this.recipientsSync.findIndex((r) => p.id === r.id) >= 0)) {\r\n this.recipientsSync.push({\r\n id: p.id,\r\n deptName: p.deptName,\r\n displayName: p.name,\r\n email: p.value,\r\n titleName: p.title,\r\n comCode: '',\r\n deptCode: p.deptCode,\r\n parentDeptCode: '',\r\n personCode: p.id,\r\n selected: false,\r\n })\r\n }\r\n })\r\n }\r\n }\r\n\r\n onKeyDown(e: KeyboardEvent) {\r\n if (e.key.toLocaleLowerCase() === 'enter') {\r\n this.searchAction()\r\n } else if (e.key.toLocaleLowerCase() === 'backspace') {\r\n if (this.recipientsSync.length > 0 && this.searchText.length == 0) {\r\n this.recipientsSync.splice(this.recipientsSync.length - 1, 1)\r\n }\r\n }\r\n }\r\n\r\n onKeyBlur() {\r\n var _this = this\r\n setTimeout(() => {\r\n _this.autoCompletesModel = []\r\n }, 150)\r\n }\r\n\r\n setAutoCompleteBoxPos() {\r\n var inpElem = this.$refs.inpText as HTMLInputElement\r\n var inpElemRect = inpElem.getBoundingClientRect()\r\n var ulElem = this.$refs.ulCompleteBox as HTMLUListElement\r\n\r\n if (ulElem) {\r\n ulElem.style.top = `${inpElemRect.top - 10}px`\r\n ulElem.style.left = `${inpElem.offsetLeft + 55}px`\r\n }\r\n }\r\n\r\n searchAction() {\r\n var searchText = this.searchText\r\n if (searchText.trim().length < 2) return\r\n\r\n api.orgmap\r\n .searchOrg(\r\n {\r\n query: searchText,\r\n size: 10,\r\n },\r\n 'FL'\r\n )\r\n .then((res) => {\r\n // 임직원은 조직도 버튼을 통해서만 추가 가능\r\n // if (res.items.length == 1) {\r\n // var rec = res.items[0]\r\n // this.handleUserPush(rec)\r\n // } else if (res.items.length >= 2) {\r\n // this.setAutoCompleteBoxPos()\r\n // this.autoCompletesModel = res.items\r\n // } else \r\n if (searchText && searchText.length > 0) {\r\n var pattern =\r\n /^[a-z0-9][a-z0-9-_\\.]+@([a-z]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\\.[a-z0-9]{2,10}(?:\\.[a-z]{2,10})?$/\r\n if (pattern.test(searchText)) {\r\n this.handleUserPush({\r\n displayName: searchText,\r\n email: searchText\r\n } as any)\r\n }\r\n }\r\n })\r\n }\r\n\r\n autoCompleteSelect(user: orgmap.UserItem) {\r\n this.handleUserPush(user)\r\n }\r\n\r\n handleUserPush(user: orgmap.UserItem) {\r\n // if (!(this.recipientsSync.findIndex((m) => m.id === user.id) >= 0)) {\r\n // this.recipientsSync.push(user)\r\n // }\r\n if (!(this.recipientsSync.findIndex((m) => m.email === user.email) >= 0)) {\r\n this.recipientsSync.push(user)\r\n }\r\n\r\n this.searchText = ''\r\n this.autoCompletesModel = []\r\n }\r\n\r\n onDeleteClick(user: orgmap.UserItem) {\r\n var idx = this.recipientsSync.findIndex((m) => m.id === user.id)\r\n\r\n if (idx >= 0) {\r\n this.recipientsSync.splice(idx, 1)\r\n }\r\n }\r\n\r\n onOrgmapClick() {\r\n const orgmapOption: TWishContainerOptions = {\r\n addableDept: true,\r\n single: this.single,\r\n containers: [{ id: 0, name: '선택한 사람', height: '1' }],\r\n }\r\n\r\n const props: TWishItemPropsOptions = {\r\n props: ['id', 'name', 'personCode', 'deptName', 'deptCode', 'title'],\r\n }\r\n\r\n openPopup(\r\n 'reserveRecipients',\r\n '/orgmap',\r\n { event: `${EVENT_ORG_POPUP}/${this.fieldGuid}`, option: orgmapOption, props },\r\n { width: 1024, height: 768, isFrame: this.isTeams }\r\n )\r\n }\r\n\r\n getDisplayName(user: orgmap.UserItem) {\r\n if (!user.titleName && !user.deptName) {\r\n return user.displayName\r\n } else {\r\n return `${user.displayName} ${user.titleName} (${user.deptName})`\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecipientField.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecipientField.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecipientField.vue?vue&type=template&id=a1c5c4b2&scoped=true&\"\nimport script from \"./RecipientField.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecipientField.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./RecipientField.vue?vue&type=style&index=0&id=a1c5c4b2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a1c5c4b2\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { openPopup } from '@appbase/util/popup-helper';\r\nimport { createEventBus, getDispatchData, removeEventBus } from '@appbase/util/eventBus';\r\nimport RuleModal from './RuleModal.vue';\r\nimport api from '@gnb/api/common'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\nimport * as orgapi from '@orgmap/api'\r\nimport RecipientField from '@gnb/components/Common/RecipientField.vue';\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n RuleModal,\r\n RecipientField\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n } \r\n})\r\nexport default class AddRule extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Object}) value!: gnb.rules.Rule;\r\n \r\n \r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n item: gnb.rules.Rule = { \r\n id: '',\r\n name: '',\r\n priority: 1,\r\n isEnabled: true,\r\n operation: 'create',\r\n conditions: [],\r\n actions: [],\r\n };\r\n \r\n senderList: Array= [];\r\n receiverList: Array= [];\r\n title: string = '';\r\n content: string = '';\r\n show: boolean = false;\r\n folder: gnb.FolderItem = {} as gnb.FolderItem;\r\n folders: gnb.FolderItem[] = [];\r\n CONST_HEADER: string = 'x-eum-deptcode: ';\r\n header: string = '';\r\n isReadOnlySender: boolean = false;\r\n receiverPlaceholder: string =this.$t('받는사람의_이름을_입력하세요').toString();\r\n senderPlaceholder: string =this.$t('보낸사람의_이름을_입력하세요').toString();\r\n loading!: (option: boolean) => void;\r\n\r\n @Watch('title')\r\n onChangedTitle(){\r\n const conditions = this.item.conditions.find((con:gnb.rules.RuleCondition) => con.key == 'ContainsSubjectStrings');\r\n if(conditions){\r\n conditions.value = [this.title];\r\n }else{\r\n const newCondition = {\r\n key: 'ContainsSubjectStrings',\r\n value: [this.title]\r\n }\r\n this.item.conditions.push(newCondition);\r\n }\r\n }\r\n\r\n @Watch('content')\r\n onChangedContent(){\r\n const conditions = this.item.conditions.find((con:gnb.rules.RuleCondition) => con.key == 'ContainsBodyStrings');\r\n if(conditions){\r\n conditions.value = [this.title];\r\n }else{\r\n const newCondition = {\r\n key: 'ContainsBodyStrings',\r\n value: [this.title]\r\n }\r\n this.item.conditions.push(newCondition);\r\n }\r\n }\r\n\r\n @Watch('header')\r\n onChangedHeader(){\r\n const conditions = this.item.conditions.find((con:gnb.rules.RuleCondition) => con.key == 'ContainsHeaderStrings');\r\n if(conditions){\r\n conditions.value = [this.header];\r\n }else{\r\n const newCondition = {\r\n key: 'ContainsHeaderStrings',\r\n value: [this.header]\r\n }\r\n this.item.conditions.push(newCondition);\r\n }\r\n }\r\n\r\n @Watch('senderList')\r\n onChangedSender(){\r\n if(this.senderList){\r\n //const firstEmail = this.senderList[0].email;\r\n var emails: Array = [];\r\n this.senderList.map(x => {\r\n emails.push(x.email);\r\n });\r\n \r\n const conditions = this.item.conditions.find((con:gnb.rules.RuleCondition) => con.key == 'ContainsSenderStrings');\r\n if(conditions){\r\n conditions.value = emails;\r\n }else{\r\n const newCondition = {\r\n key: 'ContainsSenderStrings',\r\n value: emails\r\n }\r\n this.item.conditions.push(newCondition);\r\n }\r\n }\r\n }\r\n\r\n @Watch('receiverList')\r\n onChangedReceiver(){\r\n if(this.receiverList){\r\n let emails = this.receiverList.map((m:gnb.memberInfo)=>{\r\n return m.email\r\n });\r\n let conditions = this.item.conditions.find((con:gnb.rules.RuleCondition) => con.key == 'SentToAddresses');\r\n if(conditions){\r\n conditions.value = emails;\r\n } else {\r\n let newCondition = {\r\n key: 'SentToAddresses',\r\n value: emails\r\n }\r\n this.item.conditions.push(newCondition);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n openModal(){\r\n this.show = true;\r\n }\r\n\r\n cancel() {\r\n this.show = false;\r\n }\r\n\r\n selectedFolder(item: gnb.FolderItem){\r\n this.folder = item;\r\n this.item.actions = [{key:'MoveToFolder',value:item.id}];\r\n this.show = false;\r\n }\r\n\r\n async convertToConditionString(value: any, key: string) {\r\n var innerDomain = this.getAppConfig('InternalSmtpDomains')\r\n if(!value) return false;\r\n const _this = this;\r\n switch (key) {\r\n case 'ContainsSenderStrings':\r\n this.senderList = await Promise.all(\r\n value.map((email:any) => { \r\n var mailDomain = email.includes('@') ? email.split('@')[1] : email;\r\n if (innerDomain?.includes(mailDomain.toLowerCase())){\r\n return _this.getUserItem(email); \r\n }\r\n else {\r\n return {\r\n displayName: email,\r\n titleName: '',\r\n deptName: '',\r\n email: email\r\n } \r\n }\r\n }));\r\n break;\r\n case 'SentToAddresses':\r\n this.receiverList = await Promise.all(\r\n value.map((a:any) => { \r\n var mailDomain = a.address.includes('@') ? a.address.split('@')[1] : a.address;\r\n if (innerDomain?.includes(mailDomain.toLowerCase())){\r\n return this.getUserItem(a.address); \r\n }\r\n else{\r\n return {\r\n displayName: a.name,\r\n titleName: '',\r\n deptName: '',\r\n email: a.address\r\n } \r\n }\r\n }));\r\n break;\r\n case 'ContainsSubjectStrings':\r\n if(typeof value === 'object'){\r\n this.title = value[0];\r\n }else{\r\n this.title = value;\r\n }\r\n break;\r\n case 'ContainsBodyStrings':\r\n if(typeof value === 'object'){\r\n this.content = value[0];\r\n }else{\r\n this.content = value;\r\n }\r\n break;\r\n case 'ContainsHeaderStrings':\r\n if(typeof value === 'object'){\r\n this.header = value[0];\r\n }else{\r\n this.header = value;\r\n }\r\n break;\r\n case \"FromAddresses\":\r\n this.senderList = await Promise.all( \r\n value.map((val:any) => {\r\n if (innerDomain?.includes(val.address)){\r\n return _this.getUserItem(val.address);\r\n }\r\n else {\r\n return {\r\n displayName: val.name,\r\n titleName: '',\r\n deptName: '',\r\n email: val.address\r\n } \r\n }\r\n })\r\n );\r\n break;\r\n }\r\n }\r\n\r\n getCondition(conditions: gnb.rules.RuleCondition[], key: string) {\r\n return conditions.find((c: gnb.rules.RuleCondition) => {\r\n return c.key === key;\r\n });\r\n }\r\n\r\n convertToActionsString(value: any) {\r\n if(!value.actions) return '';\r\n\r\n const actions = value.actions;\r\n return actions\r\n .map((c: any) => {\r\n switch (c.key) {\r\n case 'MoveToFolder':\r\n let folderName: string = '';\r\n\r\n const getFolderName = (folders: gnb.FolderItem[]) => {\r\n folders.forEach((f) => {\r\n if (f.id === c.value) {\r\n folderName = f.displayName;\r\n }\r\n\r\n if (f.children != null) {\r\n getFolderName(f.children as gnb.FolderItem[]);\r\n }\r\n });\r\n }\r\n\r\n getFolderName(this.folders);\r\n\r\n return `${this.$t('M_Mail_MoveFormat')\r\n .toString()\r\n .replace('{0}', folderName)}`;\r\n }\r\n })\r\n .join('; ');\r\n }\r\n\r\n @Watch('value')\r\n onitemChanged(newVal?: gnb.rules.Rule, oldVal?: gnb.rules.Rule) {\r\n\r\n let senderValue = newVal?.conditions.find((condition: any) => condition.key === 'ContainsSenderStrings')?.value;\r\n let receiverValue = newVal?.conditions.find((condition: any) => condition.key === 'SentToAddresses')?.value;\r\n let headerValue = newVal?.conditions.find((condition: any) => condition.key === 'ContainsHeaderStrings')?.value;\r\n let subjectValue = newVal?.conditions.find((condition:any) => condition.key === 'ContainsSubjectStrings')?.value;\r\n let contentValue = newVal?.conditions.find((condition:any) => condition.key === 'ContainsBodyStrings')?.value;\r\n let fromAddress = newVal?.conditions.find((condition:any) => condition.key === 'FromAddresses')?.value;\r\n \r\n if(senderValue){\r\n this.convertToConditionString(senderValue, 'ContainsSenderStrings');\r\n } \r\n if(receiverValue){\r\n this.convertToConditionString(receiverValue, 'SentToAddresses');\r\n }\r\n if(headerValue){\r\n this.convertToConditionString(headerValue, 'ContainsHeaderStrings');\r\n }\r\n if (subjectValue){\r\n this.convertToConditionString(subjectValue, 'ContainsSubjectStrings');\r\n }\r\n if(contentValue){\r\n this.convertToConditionString(contentValue, 'ContainsBodyStrings');\r\n }\r\n if (fromAddress){\r\n this.convertToConditionString(fromAddress, 'FromAddresses');\r\n }\r\n }\r\n\r\n async getUserItem(email:string){\r\n return await api.getUserInfoByEmail(email).then((res)=>{\r\n if (res){\r\n return {\r\n displayName: res.items[0]?.displayName,\r\n titleName: res.items[0]?.titleName,\r\n deptName: res.items[0]?.deptName,\r\n email: res.items[0]?.email \r\n } \r\n }\r\n else {\r\n return {\r\n displayName: email,\r\n titleName: '',\r\n deptName: '',\r\n email: email \r\n } \r\n }\r\n });\r\n }\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n api.getFolder().then((res)=>{\r\n this.folders = res;\r\n })\r\n \r\n this.item = this.value;\r\n if(this.item){\r\n this.onitemChanged(this.item);\r\n }\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AddRule.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AddRule.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddRule.vue?vue&type=template&id=29e31178&\"\nimport script from \"./AddRule.ts?vue&type=script&lang=ts&\"\nexport * from \"./AddRule.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport RuleView from '@gnb/components/Preference/Mail/Rule/RuleView.vue'\r\nimport AddRule from '@gnb/components/Preference/Mail/Rule/AddRule.vue'\r\nimport api from '@gnb/api/common'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n RuleView,\r\n AddRule\r\n }, \r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Rule extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n header: string = this.$t('W_Settings_Rule').toString();\r\n rules: gnb.rules.Rule[] = [];\r\n isShow: boolean = false;\r\n selectedRule: gnb.rules.Rule = { \r\n id: '',\r\n name: '',\r\n priority: 1,\r\n isEnabled: true,\r\n operation: '',\r\n conditions: [],\r\n actions: [],\r\n exceptions: []\r\n };\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('isShow')\r\n onChangedShow(){\r\n if(!this.isShow){\r\n this.getRules();\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n \r\n addNewRule(){\r\n this.selectedRule = { \r\n id: '',\r\n name: '',\r\n priority: 1,\r\n isEnabled: true,\r\n operation: '',\r\n conditions: [],\r\n actions: [],\r\n exceptions: []\r\n };\r\n this.isShow = true;\r\n }\r\n\r\n selectRule(rule:gnb.rules.Rule){\r\n this.isShow = true;\r\n this.selectedRule = rule;\r\n }\r\n\r\n\r\n move(from: number, to: number){\r\n this.rules.forEach((r,index)=>{\r\n if(index === from){\r\n r.priority = to + 1;\r\n r.operation = 'set'\r\n\r\n }else if(index === to){\r\n r.priority = from + 1;\r\n r.operation = 'set'\r\n }\r\n });\r\n }\r\n\r\n changeRules(rules:any){\r\n this.rules = rules;\r\n\r\n }\r\n changeIsEnable(rule:gnb.rules.Rule){\r\n this.rules.forEach((r)=>{\r\n if(r.id === rule.id){\r\n r.isEnabled = rule.isEnabled;\r\n r.operation = 'set'\r\n }\r\n })\r\n }\r\n\r\n save(){\r\n\r\n //this.rules.forEach((rule:gnb.rules.Rule)=>{\r\n // if(rule.operation == null){\r\n // rule.operation = 'set';\r\n // }\r\n //})\r\n this.rules.map(r => {\r\n if(r.actions.findIndex((a:gnb.rules.RuleAction)=> a.key === 'RedirectToRecipients')<0) {return r;}\r\n else {\r\n var rule = r;\r\n rule.actions = r.actions.map((action:gnb.rules.RuleAction) => {\r\n if (action.key === 'RedirectToRecipients') {\r\n return {\r\n ...action,\r\n value: [action.value[0].address],\r\n }\r\n }\r\n else {\r\n return action;\r\n }\r\n })\r\n }\r\n return rule\r\n });\r\n\r\n this.rules.map(r => {\r\n if(r.conditions.findIndex((c:any)=> c.key === 'SentToAddresses')<0) {return r;}\r\n else {\r\n var rule = r;\r\n rule.conditions = r.conditions.map((condition:gnb.rules.RuleCondition) => {\r\n if (condition.key === 'SentToAddresses') {\r\n return {\r\n ...condition,\r\n value: condition.value.map((v:any)=>{\r\n return v.address\r\n }),\r\n }\r\n }\r\n else {\r\n return condition;\r\n }\r\n })\r\n }return rule\r\n });\r\n api.setRules(this.rules).then(async (res:any)=>{\r\n if(res){\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT').toString());\r\n this.getRules();\r\n this.isShow = false;\r\n }else{\r\n await(window as any).alertAsync(this.$t('저장되지않았습니다__규칙설정을_확인해주세요').toString());\r\n }\r\n \r\n }).catch(async (err)=> {await(window as any).alertAsync(this.$t('문제가 발생했습니다').toString())});\r\n }\r\n\r\n async saveNewRule(){\r\n //규칙 유효성 검사(이름,폴더)\r\n if(this.selectedRule.name == '' || null || undefined){\r\n await(window as any).alertAsync('규칙 이름을 지정해주세요.');\r\n return false;\r\n }\r\n\r\n var selectedFolder = this.selectedRule.actions.map((a:any)=>{\r\n a.key === 'MoveToFolder';\r\n });\r\n\r\n if(this.selectedRule.actions.length == 0 || selectedFolder.length == 0){\r\n await(window as any).alertAsync('이동할 폴더를 지정해주세요.');\r\n return false;\r\n }\r\n\r\n this.rules.map(r => {\r\n if(r.actions.findIndex((a:gnb.rules.RuleAction)=> a.key === 'RedirectToRecipients')<0) {return r;}\r\n else {\r\n var rule = r;\r\n rule.actions = r.actions.map((action:gnb.rules.RuleAction) => {\r\n if (action.key === 'RedirectToRecipients') {\r\n return {\r\n ...action,\r\n value: [action.value[0].address],\r\n }\r\n }\r\n else {\r\n return action;\r\n }\r\n })\r\n }\r\n return rule\r\n })\r\n\r\n this.rules.map(r => {\r\n if(r.conditions.findIndex((c:gnb.rules.RuleCondition)=> c.key === 'SentToAddresses')<0) {return r;}\r\n else {\r\n var rule = r;\r\n rule.conditions = r.conditions.map((condition:any) => {\r\n if (condition.key === 'SentToAddresses') {\r\n return {\r\n ...condition,\r\n value: condition.value.map((v:any)=>{\r\n if(typeof(v) === 'object'){\r\n return v.address;\r\n } else {\r\n return v;\r\n }\r\n \r\n }),\r\n }\r\n }\r\n else {\r\n return condition;\r\n }\r\n })\r\n }\r\n \r\n return rule;\r\n })\r\n\r\n \r\n\r\n if(this.selectedRule.id){\r\n this.selectedRule.conditions.map((con:gnb.rules.RuleCondition)=>{\r\n if((con.key === 'ContainsSenderStrings') && (typeof con.value === 'string')){\r\n con.value = [con.value];\r\n }\r\n })\r\n \r\n \r\n this.selectedRule.operation = 'set'\r\n\r\n\r\n let idx = this.rules.findIndex((r:gnb.rules.Rule) => {\r\n return r.id === this.selectedRule.id;\r\n });\r\n\r\n this.rules.splice(idx, 1, this.selectedRule);\r\n \r\n \r\n }else{\r\n this.selectedRule.operation = 'create'\r\n this.rules.push(this.selectedRule);\r\n }\r\n api.setRules(this.rules).then(async ()=>{\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT').toString());\r\n this.getRules();\r\n this.isShow = false;\r\n })\r\n }\r\n\r\n closeNewRule(){\r\n this.selectedRule = {\r\n id: '',\r\n name: '',\r\n priority: 1,\r\n isEnabled: true,\r\n operation: '',\r\n conditions: [],\r\n actions: [],\r\n exceptions: []\r\n };\r\n this.isShow = false;\r\n }\r\n\r\n getRules(){\r\n api.getRules().then((res:any)=>{\r\n if(res.length > 0){\r\n this.rules = res.rules;\r\n\r\n }\r\n })\r\n }\r\n \r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n this.getRules();\r\n }\r\n \r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Rule.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Rule.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Rule.vue?vue&type=template&id=6e0d6e5c&\"\nimport script from \"./Rule.ts?vue&type=script&lang=ts&\"\nexport * from \"./Rule.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('div',{staticClass:\"checkbox large\"},[_c('label',{staticClass:\"ellipsis\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.isPermanentDelete),expression:\"isPermanentDelete\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.isPermanentDelete)?_vm._i(_vm.isPermanentDelete,null)>-1:(_vm.isPermanentDelete)},on:{\"change\":function($event){var $$a=_vm.isPermanentDelete,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.isPermanentDelete=$$a.concat([$$v]))}else{$$i>-1&&(_vm.isPermanentDelete=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.isPermanentDelete=$$c}}}}),_c('span',{staticClass:\"label ft-m\"},[_vm._v(_vm._s(_vm.$t('메일_삭제_시_영구적으로_삭제됩니다___모든_폴더_적용_')))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport api from '@gnb/api/common'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,Dropdown},\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class DeleteView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n isPermanentDelete: boolean = false;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n save(){\r\n api.setUserConfig({personCode: this.user.personCode, isPermanentDelete: this.isPermanentDelete}as gnb.UserConfig).then(async ()=>{\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT').toString());\r\n })\r\n }\r\n\r\n getDeleteInfo(){\r\n api.getUserConfig(this.user.personCode).then((res)=>{\r\n this.isPermanentDelete = res[0].isPermanentDelete;\r\n this.loading(false);\r\n });\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.getDeleteInfo();\r\n }\r\n \r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeleteView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeleteView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeleteView.vue?vue&type=template&id=75e1bc1a&\"\nimport script from \"./DeleteView.ts?vue&type=script&lang=ts&\"\nexport * from \"./DeleteView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.$t('메일_삭제_옵션을_설정합니다')))]),_vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\"})})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport DeleteView from '@gnb/components/Preference/Mail/Delete/DeleteView.vue'\r\nimport { mapActions,mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n DeleteView\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Delete extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [DeleteView]\r\n }\r\n\r\n header:string = this.$t('삭제').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Delete.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Delete.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Delete.vue?vue&type=template&id=d6693856&\"\nimport script from \"./Delete.ts?vue&type=script&lang=ts&\"\nexport * from \"./Delete.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('CheckSlider',{attrs:{\"label\":_vm.label},model:{value:(_vm.autoDelivery.isEnabled),callback:function ($$v) {_vm.$set(_vm.autoDelivery, \"isEnabled\", $$v)},expression:\"autoDelivery.isEnabled\"}}),_c('br'),_c('br'),_c('CheckSlider',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.autoDelivery.isEnabled),expression:\"autoDelivery.isEnabled\"}],attrs:{\"label\":_vm.copyLabel},model:{value:(_vm.isCopy),callback:function ($$v) {_vm.isCopy=$$v},expression:\"isCopy\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.autoDelivery.isEnabled),expression:\"autoDelivery.isEnabled\"}],staticClass:\"p-all-l\"},[_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.member)+\" \")])]),_c('div',{staticClass:\"p-all-l\"},[_c('a',{staticClass:\"ft-m\"},[_c('RecipientField',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.autoDelivery.isEnabled),expression:\"autoDelivery.isEnabled\"}],attrs:{\"single\":false,\"fieldGuid\":'requiredAutoDelivery',\"recipients\":_vm.requiredRecipients,\"placeholder\":_vm.placeholder},on:{\"update:recipients\":function($event){_vm.requiredRecipients=$event}}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n Dropdown,\r\n} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport api from '@gnb/api/common'\r\nimport CheckSlider from '@gnb/components/Common/CheckSlider.vue'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\nimport RecipientField from '@gnb/components/Common/RecipientField.vue'\r\nimport actions from '@/store/actions'\r\n\r\ninterface MemberList {\r\n personCode: String\r\n comCode: String\r\n displayName: String\r\n deptName: String\r\n titleName: String\r\n email: String\r\n}\r\n@Component({\r\n components: {\r\n CheckSlider,\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n RecipientField,\r\n },\r\n methods: {\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING,\r\n }),\r\n },\r\n})\r\nexport default class AutoDeliveryView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n ruleList: gnb.rules.Rule[] = []\r\n member: String = ''\r\n autoDelivery: gnb.rules.Rule = {\r\n id: '',\r\n name: '[EUM] 자동전달',\r\n priority: 1,\r\n isEnabled: false,\r\n operation: 'create',\r\n conditions: [],\r\n actions: [],\r\n }\r\n isCopy: boolean = false\r\n TempName: orgmap.UserItem[] = []\r\n TempEmail: orgmap.UserItem[] = []\r\n requiredRecipients: orgmap.UserItem[] = []\r\n label: string = this.$t('자동_전달_사용').toString()\r\n copyLabel: string = '전달된 메시지의 복사본 보관'\r\n placeholder: string = this.$t('자동전달_대상을_입력하세요').toString()\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('requiredRecipients')\r\n onChangedRequiredRecipients() {\r\n if (this.requiredRecipients) {\r\n this.TempEmail = this.requiredRecipients.map((r: any) => {\r\n return r.email\r\n })\r\n this.member = this.TempEmail.toString()\r\n if (this.member) {\r\n this.autoDelivery.actions = [\r\n {\r\n key: 'RedirectToRecipients',\r\n value: this.TempEmail,\r\n },\r\n ]\r\n }\r\n } else {\r\n this.member = ''\r\n }\r\n }\r\n\r\n @Watch('autoDelivery.isEnabled')\r\n onChangedCheckedUseRedirect() {\r\n if (this.autoDelivery) {\r\n if (this.autoDelivery.isEnabled) {\r\n api.getRules().then(() => {})\r\n } else {\r\n this.autoDelivery.actions = []\r\n }\r\n }\r\n }\r\n\r\n @Watch('isCopy')\r\n onChangedCheckedCopyToFolder() {\r\n if (this.isCopy) {\r\n this.autoDelivery.actions.push({\r\n key: 'CopyToFolder',\r\n value:\r\n 'AQMkADQzOWExNjExAC00ZWFkLTRmODctOWI5MS02YzM2YTEyN2RmZWYALgAAAyKgGQsZpJZDqQl5ENcrlGkBACyjgr4iMUJJrtK42pFqvk0AAAIBCQAAAA==',\r\n })\r\n } else {\r\n let idx = this.autoDelivery.actions.findIndex((a: any) => {\r\n return a.key === 'CopyToFolder'\r\n })\r\n if (idx > -1) {\r\n this.autoDelivery.actions.splice(idx, 1)\r\n }\r\n }\r\n }\r\n\r\n @Watch('ruleList')\r\n onChanged() {\r\n let autoDelivery = this.ruleList.find((r) => {\r\n return r.name === '[EUM] 자동전달'\r\n })\r\n\r\n if (autoDelivery) {\r\n this.autoDelivery = autoDelivery\r\n }\r\n\r\n if (this.autoDelivery) {\r\n if (this.autoDelivery.isEnabled) {\r\n let emailList = this.autoDelivery.actions.find((action: gnb.rules.RuleAction) => {\r\n return action.key === 'RedirectToRecipients'\r\n })\r\n\r\n if (emailList) {\r\n emailList.value.forEach((v: any) => {\r\n if (v) {\r\n let member: any = []\r\n api.getUserInfoByEmail(v).then((res: any) => {\r\n if (res) {\r\n member.push(res.items)\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async save() {\r\n if (this.autoDelivery.isEnabled && this.requiredRecipients.length == 0) {\r\n await (window as any).alertAsync('자동전달할 사용자를 선택해주세요.')\r\n return false\r\n } else {\r\n // 받는 사람 규칙이 있는 경우 value를 string 배열로 변경 필요\r\n this.ruleList.map((r) => {\r\n if (\r\n r.actions.findIndex((c: gnb.rules.RuleAction) => c.key === 'RedirectToRecipients') < 0\r\n ) {\r\n return r\r\n } else {\r\n var rule = r\r\n rule.actions = r.actions.map((action: gnb.rules.RuleAction) => {\r\n if (action.key === 'RedirectToRecipients') {\r\n return {\r\n ...action,\r\n value: action.value.map((v: any) => {\r\n return v\r\n }),\r\n }\r\n } else {\r\n return action\r\n }\r\n })\r\n return rule\r\n }\r\n })\r\n\r\n this.ruleList.map((r) => {\r\n if (\r\n r.conditions.findIndex((c: gnb.rules.RuleCondition) => c.key === 'SentToAddresses') < 0\r\n ) {\r\n return r\r\n } else {\r\n var rule = r\r\n rule.conditions = r.conditions.map((condition: gnb.rules.RuleCondition) => {\r\n if (condition.key === 'SentToAddresses') {\r\n return {\r\n ...condition,\r\n value: condition.value.map((v: any) => {\r\n return v.address\r\n }),\r\n }\r\n } else {\r\n return condition\r\n }\r\n })\r\n }\r\n return rule\r\n })\r\n\r\n if (this.autoDelivery.isEnabled) {\r\n if (\r\n this.autoDelivery.actions.length === 0 ||\r\n this.autoDelivery.actions[0].value.length === 0\r\n ) {\r\n await (window as any).alertAsync(this.$t('M_Settings_Select_User'));\r\n return false\r\n }\r\n }\r\n\r\n if (this.autoDelivery.id) {\r\n if (this.autoDelivery.isEnabled) {\r\n this.autoDelivery.operation = 'set'\r\n\r\n let idx = this.ruleList.findIndex((r: gnb.rules.Rule) => {\r\n return r.id === this.autoDelivery.id\r\n })\r\n\r\n if (idx == -1) {\r\n this.autoDelivery.id = ''\r\n this.autoDelivery.operation = 'create'\r\n this.ruleList.push(this.autoDelivery)\r\n } else {\r\n this.ruleList.splice(idx, 1, this.autoDelivery)\r\n this.ruleList.forEach((r: gnb.rules.Rule, index: number) => {\r\n if (r.name == '[EUM] 자동전달' && index != idx) {\r\n r.actions = []\r\n r.operation = 'delete'\r\n }\r\n })\r\n }\r\n api.setRules(this.ruleList).then(async (succeed: boolean) => {\r\n if (succeed) {\r\n await (window as any).alertAsync(this.$t('M_Settings_Msg39'))\r\n api.getRules().then((res: gnb.rules.SaveRulesRequest) => {\r\n this.ruleList = res.rules\r\n })\r\n } else {\r\n await (window as any).alertAsync('저장되지않았습니다. 규칙설정을 확인해주세요.')\r\n }\r\n })\r\n } else {\r\n //삭제\r\n const message = this.$t('M_Settings_OffFoward').toString()\r\n if (confirm(message) == false) {\r\n return false\r\n } else {\r\n if (this.autoDelivery.id) {\r\n this.autoDelivery.operation = 'delete'\r\n\r\n let idx = this.ruleList.findIndex((r: gnb.rules.Rule) => {\r\n return r.id === this.autoDelivery.id\r\n })\r\n\r\n if (idx == -1) {\r\n } else {\r\n this.ruleList.splice(idx, 1, this.autoDelivery)\r\n this.ruleList.forEach((r: gnb.rules.Rule, index: number) => {\r\n if (r.name == '[EUM] 자동전달' && index != idx) {\r\n r.actions = []\r\n r.operation = 'delete'\r\n }\r\n })\r\n }\r\n\r\n api\r\n .setRules(this.ruleList)\r\n .then(async (succeed: boolean) => {\r\n if (succeed) {\r\n this.member = ''\r\n this.requiredRecipients = []\r\n await (window as any).alertAsync(this.$t('M_Settings_Released'))\r\n api.getRules().then((res: gnb.rules.SaveRulesRequest) => {\r\n this.ruleList = res.rules\r\n })\r\n } else {\r\n await (window as any).alertAsync('저장되지않았습니다. 규칙설정을 확인해주세요.')\r\n }\r\n })\r\n .catch(async (err) => {\r\n await (window as any).alertAsync('문제가 발생했습니다.')\r\n })\r\n } else {\r\n await (window as any).alertAsync(this.$t('M_Settings_NoFowrading'))\r\n }\r\n }\r\n }\r\n } else {\r\n if (this.autoDelivery.isEnabled) {\r\n this.ruleList.push(this.autoDelivery)\r\n api.setRules(this.ruleList).then(async (succeed: boolean) => {\r\n if (succeed) {\r\n await (window as any).alertAsync(this.$t('M_Settings_Msg39'))\r\n api.getRules().then((res: gnb.rules.SaveRulesRequest) => {\r\n this.ruleList = res.rules\r\n })\r\n }\r\n })\r\n } else {\r\n await (window as any).alertAsync(this.$t('M_Settings_NoFowrading'))\r\n }\r\n }\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n // createEventBus(window, ORGLIST_ORG_POPUP, this.handlePopupResult);\r\n\r\n api.getRules().then(async (res: gnb.rules.SaveRulesRequest) => {\r\n this.ruleList = res.rules\r\n if (this.ruleList) {\r\n let autoDelivery = this.ruleList.find((r) => {\r\n return r.name === '[EUM] 자동전달'\r\n })\r\n if (autoDelivery) {\r\n let actions = autoDelivery.actions.find((r: any) => {\r\n return r.key === 'RedirectToRecipients'\r\n })\r\n this.requiredRecipients = await Promise.all(\r\n actions.value.map((a: any) => {\r\n return this.getUserItem(a.address)\r\n })\r\n )\r\n let copyActions = this.autoDelivery.actions.find((r: any) => {\r\n return r.key === 'CopyToFolder'\r\n })\r\n\r\n if (copyActions) {\r\n this.isCopy = true\r\n } else {\r\n this.isCopy = false\r\n }\r\n }\r\n\r\n this.loading(false)\r\n }\r\n })\r\n }\r\n\r\n async getUserItem(email: string) {\r\n return await api.getUserInfoByEmail(email).then((res) => {\r\n const user = res.items[0]\r\n if (user) {\r\n return {\r\n displayName: user.displayName,\r\n titleName: user.titleName,\r\n deptName: user.deptName,\r\n email: user.email,\r\n id: user.id\r\n }\r\n } else {\r\n return {\r\n displayName: email,\r\n email: email,\r\n }\r\n }\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoDeliveryView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoDeliveryView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AutoDeliveryView.vue?vue&type=template&id=66dd9d26&\"\nimport script from \"./AutoDeliveryView.ts?vue&type=script&lang=ts&\"\nexport * from \"./AutoDeliveryView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.$t('전자_메일을_다른_사용자의_계정으로_전달_할_수_있습니다')))]),_vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\"})})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport AutoDeliveryView from '@gnb/components/Preference/Mail/AutoDelivery/AutoDeliveryView.vue'\r\nimport { mapGetters,mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n AutoDeliveryView\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class AutoDelivery extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [AutoDeliveryView]\r\n }\r\n\r\n header:string = this.$t('W_Mail_AutoForwarder').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoDelivery.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoDelivery.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AutoDelivery.vue?vue&type=template&id=5c6cf37b&\"\nimport script from \"./AutoDelivery.ts?vue&type=script&lang=ts&\"\nexport * from \"./AutoDelivery.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('label',{staticClass:\"switch\"},[_c('input',{attrs:{\"type\":\"checkbox\"}}),_c('span',{staticClass:\"slider round\"}),_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('M_Settings_Msg8')))])]),_c('div',{staticClass:\"space-m\"}),_c('div',{staticClass:\"checkbox large\"},[_c('label',{staticClass:\"ellipsis\"},[_c('input',{attrs:{\"type\":\"checkbox\",\"value\":\"\"}}),_c('span',{staticClass:\"label ft-m\"},[_vm._v(_vm._s(_vm.$t('다음_기간_동안만_회신_보내기')))])])]),_c('div',{staticClass:\"space-m\"}),_c('table',{staticStyle:{\"width\":\"100%\"}},[_c('tbody',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('W_Schedule_StartTime')))]),_c('td',[_c('DatePicker'),_c('select',{staticClass:\"fm-def\",staticStyle:{\"width\":\"120px\"},attrs:{\"name\":\"\",\"id\":\"\"}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"오전 09:00\")]),_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"오전 09:30\")])])],1)]),_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('W_Schedule_EndTime')))]),_c('td',[_c('DatePicker'),_c('select',{staticClass:\"fm-def\",staticStyle:{\"width\":\"120px\"},attrs:{\"name\":\"\",\"id\":\"\"}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"오전 09:00\")]),_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"오전 09:30\")])])],1)])])]),_c('div',{staticClass:\"space-m\"}),_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t('조직_내부_사용자들에게_자동회신_보낼_내용을_입력합니다')))]),_c('div',{staticStyle:{\"width\":\"100%\",\"height\":\"250px\",\"border\":\"1px solid #ddd\",\"padding-top\":\"110px\",\"text-align\":\"center\",\"color\":\"#999\",\"letter-spacing\":\"1px\",\"font-size\":\"14px\"}},[_vm._v(_vm._s(_vm.$t('EDITOR_영역입니다')))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport DatePicker from '@appbase/components/DatePicker/DatePicker.vue'\r\n\r\n@Component({\r\n components:{ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,Dropdown,DatePicker}\r\n})\r\nexport default class AutoReplyView extends Vue {\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoReplyView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoReplyView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AutoReplyView.vue?vue&type=template&id=50ff2b07&\"\nimport script from \"./AutoReplyView.ts?vue&type=script&lang=ts&\"\nexport * from \"./AutoReplyView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.$t('자동_회신을_사용하여_다른_사용자에게_휴가_중이거나_전자_메일에_응답할_수_없음을_알릴_수_있습니다__전자_메일_회신이_시작_및_종료되는_시간을_설정할_수_있습니다__이_시간을_설정하지_않으면_직접_끄기_전까지_계속됩니다')))]),_c('AutoReplyView')]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport DatePicker from '@appbase/components/DatePicker/DatePicker.vue'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport AutoReplyView from \"@gnb/components/Preference/Mail/AutoReply/AutoReplyView.vue\"\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n DatePicker,\r\n PreferenceContentTemplate,\r\n AutoReplyView\r\n }\r\n})\r\nexport default class AutoReply extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n header:string = this.$t('자동회신').toString();\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoReply.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./AutoReply.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AutoReply.vue?vue&type=template&id=abe662e8&\"\nimport script from \"./AutoReply.ts?vue&type=script&lang=ts&\"\nexport * from \"./AutoReply.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('table',{staticClass:\"grd no-border tr-hover\",staticStyle:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"5%\"}}),_c('col',{attrs:{\"width\":\"35%\"}}),_c('col',{attrs:{\"width\":\"\"}})]),_c('tbody',_vm._l((_vm.categories.filter(function (category){return category.operation !== 'delete'})),function(category,index){return _c('tr',{key:index},[_c('td',[_c('span',{staticClass:\"schedule-category\",class:['bg-category-' + _vm.convertToClass(category.color)]})]),_c('td',{staticClass:\"vertical-top\"},[_vm._v(_vm._s(category.name))]),_c('td',{staticClass:\"vertical-top\"},[_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"title\":_vm.categoryEdit},on:{\"click\":function($event){return _vm.edit(category)}}},[_c('i',{staticClass:\"icon-fux-edit\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"title\":_vm.categoryDelete},on:{\"click\":function($event){return _vm.deleteItem(category)}}},[_c('i',{staticClass:\"icon-fux-bin\"})])])])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop} from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport api from '@gnb/api/common'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n})\r\nexport default class CategoryView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Array}) categories!: gnb.CategoryItem[];\r\n categoryEdit: string = this.$t('범주명_수정').toString();\r\n categoryDelete: string = this.$t('범주명_삭제').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCategoryView(item: gnb.CategoryItem) {\r\n const categories = this.categories;\r\n\r\n let idx = categories.findIndex((r: any) => {\r\n return r.id === item.id;\r\n });\r\n\r\n if (item.operation === 'create') {\r\n // 추가\r\n if (idx >= 0) {\r\n // 추가한 데이터를 수정할 경우\r\n this.categories.splice(idx, 1, item);\r\n } else {\r\n this.categories.push(item);\r\n }\r\n } else if (item.operation === 'set') {\r\n // 수정\r\n this.categories.splice(idx, 1, item);\r\n } else if (item.operation === 'delete') {\r\n // 삭제\r\n if (categories[idx].id.indexOf('temp_') > -1) {\r\n // 추가한 데이터를 삭제할 경우\r\n this.categories.splice(idx, 1);\r\n } else {\r\n // 기존 데이터를 삭제할 경우\r\n this.categories.splice(idx, 1, item);\r\n }\r\n }\r\n }\r\n\r\n\r\n edit(item:gnb.CategoryItem){\r\n this.$emit('select', item)\r\n }\r\n\r\n async deleteItem(item:gnb.CategoryItem){\r\n const message = this.$t('M_Settings_Delete_Rule').toString();\r\n if (await(window as any).confirmAsync(message) == false) {\r\n return false;\r\n } else {\r\n api.deleteCategory(item.id).then(async (res)=>{\r\n await(window as any).alertAsync(this.$t('삭제되었습니다').toString());\r\n })\r\n item.operation = 'delete';\r\n this.setCategoryView(item);\r\n }\r\n }\r\n\r\n setFavorite(item:gnb.CategoryItem){\r\n \r\n }\r\n\r\n convertToClass(color: string){\r\n let index;\r\n\r\n switch(color){\r\n case 'Blue':\r\n index = 1;\r\n break; \r\n case 'Green':\r\n index = 2;\r\n break;\r\n case 'Red':\r\n index = 3;\r\n break;\r\n case 'Orange':\r\n index = 4;\r\n break;\r\n case 'Yellow':\r\n index = 5;\r\n break;\r\n case 'Purple':\r\n index = 9;\r\n break; \r\n }\r\n return index;\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CategoryView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CategoryView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryView.vue?vue&type=template&id=2add9250&\"\nimport script from \"./CategoryView.ts?vue&type=script&lang=ts&\"\nexport * from \"./CategoryView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading && !_vm.isShow),expression:\"!isLoading && !isShow\"}],staticClass:\"item\"},[_c('a',{on:{\"click\":_vm.addNewCategory}},[_c('i',{staticClass:\"icon-fux-add m-r-s\"}),_vm._v(_vm._s(_vm.$t('새_범주_만들기')))])]),_c('CategoryView',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading && !_vm.isShow),expression:\"!isLoading && !isShow\"}],attrs:{\"categories\":_vm.categories},on:{\"select\":_vm.select}}),_c('CategoryModal',{attrs:{\"show\":_vm.show,\"item\":_vm.selectedCategory},on:{\"cancel\":_vm.closeModal}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"mStyle\":'width: 400px;',\"title\":_vm.title,\"show\":_vm.show},on:{\"cancel\":function($event){return _vm.$emit('cancel')}},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.save(_vm.item)}}},[_vm._v(_vm._s(_vm.$t('확인')))]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(_vm._s(_vm.$t('취소')))])])]},proxy:true}])},[_c('table',{staticClass:\"tbl-bdr-view\",attrs:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"10%\"}})]),_c('tbody',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('범주명')))]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.name),expression:\"name\"}],staticClass:\"fm-def\",staticStyle:{\"width\":\"100%\"},attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.name=$event.target.value}}})])]),_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('범주색상')))]),_c('td',[_c('form',_vm._l((_vm.colors),function(category,index){return _c('label',{key:index,staticClass:\"radio-check m-r-xs\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.color),expression:\"color\"}],attrs:{\"type\":\"radio\",\"name\":\"selectColor\",\"checked\":\"checked\"},domProps:{\"value\":category,\"checked\":_vm._q(_vm.color,category)},on:{\"change\":function($event){_vm.color=category}}}),_c('span',{staticClass:\"checkmark\",class:'bg-category-' + _vm.convertToClass(category)})])}),0)])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport PopupModal from '@gnb/components/Common/PopupModal.vue';\r\nimport api from '@gnb/api/common';\r\n\r\n@Component({\r\n components: {\r\n PopupModal\r\n },\r\n})\r\nexport default class CategoryModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Boolean}) show!: false;\r\n @Prop({type: Object}) item!: gnb.CategoryItem;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n name:string = '';\r\n color:string = '';\r\n colors: string[] = [\r\n 'Red','Orange','Yellow','Green','Blue','Purple'\r\n ];\r\n title: string = this.$t('새_범주').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('item')\r\n ChangeValue(){\r\n if(this.item){\r\n this.name = this.item.name;\r\n this.color = this.item.color;\r\n }\r\n }\r\n \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n\r\n save(item: gnb.CategoryItem){\r\n if(item.id){\r\n api.updateCategory({id: this.item.id, name: this.name, color:this.color, isFavorite: false}as gnb.CategoryItem).then(async (res)=>{\r\n await(window as any).alertAsync('수정되었습니다.');\r\n this.$emit('cancel');\r\n })\r\n }else{\r\n api.createCategory({name: this.name, color:this.color, isFavorite: false}as gnb.CategoryItem).then(async (res)=>{\r\n await(window as any).alertAsync('저장되었습니다.');\r\n this.$emit('cancel');\r\n })\r\n }\r\n \r\n }\r\n\r\n convertToClass(color: string){\r\n let index;\r\n\r\n switch(color){\r\n case 'Blue':\r\n index = 1;\r\n break; \r\n case 'Green':\r\n index = 2;\r\n break;\r\n case 'Red':\r\n index = 3;\r\n break;\r\n case 'Orange':\r\n index = 4;\r\n break;\r\n case 'Yellow':\r\n index = 5;\r\n break;\r\n case 'Purple':\r\n index = 9;\r\n break; \r\n }\r\n return index;\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CategoryModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CategoryModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryModal.vue?vue&type=template&id=d3738754&\"\nimport script from \"./CategoryModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./CategoryModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport CategoryView from '@gnb/components/Preference/Mail/Category/CategoryView.vue'\r\nimport api from '@gnb/api/common'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\nimport CategoryModal from './Modals/CategoryModal.vue'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n CategoryView,\r\n CategoryModal\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Category extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n isShow: boolean = false;\r\n show: boolean = false;\r\n selectedCategory: gnb.CategoryItem = {} as gnb.CategoryItem;\r\n categoryItem: gnb.CM_MySetting = {} as gnb.CM_MySetting\r\n categories: gnb.CategoryItem[] = [];\r\n header: string = this.$t('W_Mail_Category').toString();\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n change(value:gnb.CM_MySetting){\r\n this.categoryItem = value;\r\n }\r\n\r\n addNewCategory(){\r\n // this.isShow = true;\r\n this.show = true;\r\n }\r\n\r\n closeModal(){\r\n this.selectedCategory = {} as gnb.CategoryItem;\r\n this.show = false;\r\n api.getCategoryList().then((res:gnb.CategoryItem[])=>{\r\n this.categories = res;\r\n });\r\n }\r\n\r\n select(cat:gnb.CategoryItem){\r\n this.show = true;\r\n this.selectedCategory = cat;\r\n }\r\n\r\n cancel(){\r\n if(this.isShow){\r\n this.isShow = false;\r\n\r\n }else{\r\n this.$emit('cancel')\r\n }\r\n }\r\n\r\n save(){\r\n if(this.isShow){\r\n api.setMysetting(this.categoryItem).then(async ()=>{\r\n await(window as any).alertAsync(this.$t('M_SAVEDALERT'.toString()));\r\n })\r\n\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n api.getCategoryList().then((res:gnb.CategoryItem[])=>{\r\n this.categories = res;\r\n if(this.categories){\r\n this.loading(false);\r\n }\r\n });\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Category.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Category.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Category.vue?vue&type=template&id=61c8f152&\"\nimport script from \"./Category.ts?vue&type=script&lang=ts&\"\nexport * from \"./Category.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('StorageView',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}]})]},proxy:true},{key:\"footer\",fn:function(){return undefined},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport StorageView from '@gnb/components/Preference/Mail/Storage/StorageView.vue'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n StorageView\r\n },\r\n methods:{\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Storage extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loading!: (option: boolean) => void;\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n header: string = this.$t('W_Settings_Storage').toString();\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Storage.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Storage.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Storage.vue?vue&type=template&id=615459cb&\"\nimport script from \"./Storage.ts?vue&type=script&lang=ts&\"\nexport * from \"./Storage.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('MultiAccountView',{on:{\"open\":_vm.open,\"move\":_vm.move,\"edit\":_vm.edit,\"refresh\":_vm.getMultiMailList,\"delete\":_vm.deleteItem},model:{value:(_vm.multiList),callback:function ($$v) {_vm.multiList=$$v},expression:\"multiList\"}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.saveList,\"cancel\":function($event){return _vm.$emit('cancel')}}}),_c('MultiAccountModal',{attrs:{\"show\":_vm.show,\"tempRecipients\":_vm.tempRecipients},on:{\"cancel\":_vm.close,\"save\":_vm.save},model:{value:(_vm.selectedItem),callback:function ($$v) {_vm.selectedItem=$$v},expression:\"selectedItem\"}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"mStyle\":'width: 500px; height: auto;',\"title\":_vm.title,\"show\":_vm.show},on:{\"cancel\":function($event){return _vm.$emit('cancel')}},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":_vm.save}},[_vm._v(_vm._s(_vm.buttonTitle))]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(_vm._s(_vm.$t('취소')))])])]},proxy:true}])},[_c('table',{staticClass:\"tbl-basic-bdr\",attrs:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{staticStyle:{}}),_c('col')]),_c('tbody',[_c('FormGroup',{attrs:{\"name\":'시용자',\"required\":true}},[_c('RecipientField',{attrs:{\"single\":true,\"recipients\":_vm.requiredRecipients,\"placeholder\":_vm.placeholder},on:{\"update:recipients\":function($event){_vm.requiredRecipients=$event}}})],1),_c('FormGroup',{attrs:{\"name\":'이메일',\"required\":true}},[_c('TextBoxField',{attrs:{\"required\":true,\"w100\":true},model:{value:(_vm.value.email),callback:function ($$v) {_vm.$set(_vm.value, \"email\", $$v)},expression:\"value.email\"}})],1),_c('FormGroup',{attrs:{\"name\":'사용여부',\"required\":true}},[_c('CheckSlider',{model:{value:(_vm.value.isUse),callback:function ($$v) {_vm.$set(_vm.value, \"isUse\", $$v)},expression:\"value.isUse\"}})],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport StorageView from '@gnb/components/Preference/Mail/Storage/StorageView.vue'\r\nimport DatePicker from '@appbase/components/DatePicker/DatePicker.vue'\r\nimport { ModalLayout } from '@appbase/templates'\r\nimport PopupModal from '@gnb/components/Common/PopupModal.vue'\r\nimport { FormGroup, TextBoxField } from '@appbase/components/forms'\r\nimport RecipientField from '@gnb/components/Common/RecipientField.vue';\r\nimport CheckSlider from '@gnb/components/Common/CheckSlider.vue'\r\nimport api from '@gnb/api/common'\r\n\r\n@Component({\r\n components:{\r\n PopupModal,\r\n ModalLayout,\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n StorageView,\r\n DatePicker,\r\n FormGroup,\r\n TextBoxField,\r\n RecipientField,\r\n CheckSlider\r\n }\r\n})\r\nexport default class MultiAccountModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Object}) value!: gnb.multiMail;\r\n @Prop({type: Boolean}) show!: false;\r\n @Prop({type: Object}) tempRecipients!: orgmap.UserItem;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n requiredRecipients: orgmap.UserItem[] = [];\r\n title: string = '';\r\n buttonTitle: string = '';\r\n tempMultiList: gnb.multiMail = {} as gnb.multiMail;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n \r\n @Watch('value')\r\n onChangedValues(){\r\n if(this.value && this.value.personCode){\r\n api.getUserByPersonCode(this.value.personCode).then((res:any)=>{\r\n this.requiredRecipients = [res];\r\n });\r\n }\r\n if(this.value.id){\r\n this.title='계정 수정'\r\n this.buttonTitle = '수정'\r\n }else{\r\n this.title='새 계정 추가';\r\n this.buttonTitle = '저장'\r\n }\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n \r\n get placeholder(){\r\n if(this.requiredRecipients.length > 0){\r\n return null;\r\n }else{\r\n return '멀티계정 대상을 입력하세요.';\r\n }\r\n } \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n validateEmail(value: string){\r\n const emailRegex = new RegExp(`^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$`)\r\n if (!emailRegex.test(value) && value.length > 0) {\r\n return { succeed: false, reason: 'invalid' }\r\n }else{\r\n return { succeed: true }\r\n }\r\n }\r\n\r\n async save(){\r\n if(this.requiredRecipients.length < 1){\r\n await(window as any).alertAsync('멀티계정을 사용할 사용자를 선택해주세요');\r\n return false;\r\n }else{\r\n this.value.personCode = this.requiredRecipients[0].personCode;\r\n let validate = this.validateEmail(this.value.email)\r\n if(validate.succeed === true){\r\n this.$emit('save');\r\n this.requiredRecipients = [];\r\n }else{\r\n await(window as any).alertAsync('이메일 형식이 올바르지 않습니다. 이메일 형식을 확인해주세요.')\r\n }\r\n }\r\n }\r\n\r\n async getUserItem(email:string){\r\n return await api.getUserInfoByEmail(email).then((res)=>{\r\n return {\r\n displayName: res.items[0]?.displayName,\r\n titleName: res.items[0]?.titleName,\r\n deptName: res.items[0]?.deptName,\r\n email: res.items[0]?.email \r\n } \r\n });\r\n }\r\n\r\n created(){\r\n this.tempMultiList = this.value;\r\n }\r\n\r\n \r\n}","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MultiAccountModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MultiAccountModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultiAccountModal.vue?vue&type=template&id=7365299e&\"\nimport script from \"./MultiAccountModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./MultiAccountModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('p',{staticClass:\"ft-m\"},[_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":_vm.open}},[_vm._v(\"새 계정 추가\")])]),_c('table',{staticClass:\"grd\",staticStyle:{\"width\":\"100%\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"사용자\")]),_c('th',[_vm._v(\"계정(이메일)\")]),_c('th',[_vm._v(\"사용여부\")]),_c('th')])]),_c('tbody',_vm._l((_vm.multiList.filter(function (multi){\n return !multi.isDeleted})),function(multi,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(multi.text))]),_c('td',{staticClass:\"letter-space-m\"},[_vm._v(_vm._s(multi.email))]),_c('td',{staticClass:\"letter-space-m\"},[_vm._v(_vm._s(multi.isUse?'사용':'미사용'))]),_c('td',{staticClass:\"vertical-top\"},[_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"disabled\":index == 0},on:{\"click\":function($event){return _vm.move(index, index - 1)}}},[_c('i',{staticClass:\"icon-fux-arrow-up2\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"disabled\":index == _vm.lastIndex},on:{\"click\":function($event){return _vm.move(index, index + 1)}}},[_c('i',{staticClass:\"icon-fux-arrow-down2\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.edit(multi)}}},[_c('i',{staticClass:\"icon-fux-edit\"})]),_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.deleteMulti(multi)}}},[_c('i',{staticClass:\"icon-fux-bin\"})])])])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\nimport MultiAccountModal from './Modals/MultiAccountModal.vue'\r\nimport api from '@gnb/api/common'\r\n\r\n@Component({\r\n components:{MultiAccountModal,ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,Dropdown}\r\n ,methods:{\r\n ...mapActions({\r\n download: types.DOWNLOAD_PC,\r\n loading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class MultiAccountView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type:Array}) value!: gnb.multiMail[];\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n lastIndex: number = 0;\r\n multiList: Array = [];\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n @Watch('value')\r\n onChangeValue(){\r\n this.multiList = this.value;\r\n api.getMultiMailList().then((res)=>{\r\n this.multiList = res.map((mail)=>{\r\n mail.text = '';\r\n this.getUserInfo(mail.personCode).then((res)=>{\r\n mail.text = res;\r\n });\r\n return mail;\r\n });\r\n });\r\n this.lastIndex = this.value.filter((multi: gnb.multiMail) => {\r\n return !multi.isDeleted;\r\n })?.length - 1;\r\n this.$emit('changeMultiList', this.value);\r\n }\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async getUserInfo(personCode:string){\r\n return await api.getUserByPersonCode(personCode).then( (res)=>{\r\n return res.deptName+'/'+res.displayName+'('+res.personCode+')'\r\n });\r\n }\r\n\r\n open(){\r\n this.$emit('open')\r\n }\r\n\r\n move(from: number, to: number) {\r\n this.$emit('move', from, to);\r\n this.multiList.splice(to, 0, this.multiList.splice(from, 1)[0]);\r\n return this.multiList;\r\n }\r\n\r\n edit(item: gnb.multiMail) {\r\n this.$emit('edit', item)\r\n }\r\n\r\n async deleteMulti(item: gnb.multiMail) {\r\n const message = '해당 멀티계정을 삭제하시겠습니까?';\r\n if (await(window as any).confirmAsync(message) == false) {\r\n return false;\r\n } else {\r\n item.isDeleted = true;\r\n this.$emit('delete', item)\r\n }\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C R E A T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.onChangeValue();\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MultiAccountView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MultiAccountView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultiAccountView.vue?vue&type=template&id=cab5018e&\"\nimport script from \"./MultiAccountView.ts?vue&type=script&lang=ts&\"\nexport * from \"./MultiAccountView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport RuleView from '@gnb/components/Preference/Mail/Rule/RuleView.vue'\r\nimport AddRule from '@gnb/components/Preference/Mail/Rule/AddRule.vue'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\nimport api from '@gnb/api/common'\r\nimport MultiAccountModal from './Modals/MultiAccountModal.vue'\r\nimport MultiAccountView from '@gnb/components/Preference/Mail/MultiAccount/MultiAccountView.vue'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n RuleView,\r\n AddRule,\r\n MultiAccountView,\r\n MultiAccountModal\r\n }, \r\n methods:{\r\n ...mapActions({\r\n })\r\n },\r\n computed:{\r\n ...mapGetters({\r\n })\r\n }\r\n})\r\nexport default class MultiAccount extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n show: boolean = false;\r\n header: string = '멀티계정 목록';\r\n multiList: Array = [];\r\n selectedItem: gnb.multiMail = {\r\n personCode: '',\r\n email: '',\r\n isUse: false,\r\n isDeleted: false,\r\n displayOrder: 1,\r\n createdId: '',\r\n createdDate: new Date(),\r\n updatedId: '',\r\n updatedDate: new Date(),\r\n }\r\n\r\n tempRecipients: orgmap.UserItem = {\r\n comCode:'',\r\n deptCode:'',\r\n deptName:'',\r\n displayName:'',\r\n email:'',\r\n id:'',\r\n parentDeptCode:'',\r\n personCode:'',\r\n selected: false,\r\n titleName:''\r\n } as orgmap.UserItem;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getMultiMailList(){\r\n api.getMultiMailList().then((res:gnb.multiMail[])=>{\r\n this.multiList = res;\r\n })\r\n }\r\n\r\n move(from: number, to: number){\r\n this.multiList.forEach((m,index)=>{\r\n if(index === from){\r\n m.displayOrder = to + 1;\r\n }else if(index === to){\r\n m.displayOrder = from + 1;\r\n }\r\n });\r\n }\r\n \r\n edit(item:gnb.multiMail){\r\n this.show = true;\r\n this.selectedItem = item;\r\n }\r\n\r\n save(){\r\n if(this.selectedItem?.id){\r\n let id = parseInt(this.selectedItem.id as string);\r\n this.selectedItem.id = id;\r\n api.setMultiMail([this.selectedItem]).then(async ()=>{\r\n await(window as any).alertAsync('수정되었습니다.')\r\n })\r\n }else{\r\n this.selectedItem.displayOrder = this.multiList.length + 1;\r\n api.setMultiMail([this.selectedItem]).then(async ()=>{\r\n await(window as any).alertAsync('저장되었습니다.')\r\n })\r\n }\r\n this.selectedItem = {} as gnb.multiMail;\r\n this.tempRecipients = {} as orgmap.UserItem ;\r\n this.close();\r\n }\r\n\r\n deleteItem(item:any){\r\n this.multiList.forEach((m)=>{\r\n if(m.id == item.id){\r\n m.isDeleted = true;\r\n }\r\n })\r\n }\r\n\r\n saveList(){\r\n // this.multiList.filter((mail)=>{return !mail.isDeleted}).map((mail)=>{\r\n // if(!mail.isDeleted){\r\n // mail.displayOrder = this.multiList.filter((mail)=>{return !mail.isDeleted}).indexOf(mail)\r\n // }else{\r\n // mail.displayOrder = 0;\r\n // }\r\n // })\r\n //this.multiList.forEach((mail)=>{if(mail.isDeleted){mail.displayOrder = 0}})\r\n api.setMultiMail(this.multiList).then(async (res)=>{\r\n await(window as any).alertAsync('저장되었습니다.');\r\n });\r\n }\r\n\r\n open(){\r\n this.selectedItem = {\r\n personCode: '',\r\n email: '',\r\n isUse: false,\r\n isDeleted: false,\r\n displayOrder: 1,\r\n createdId: '',\r\n createdDate: new Date(),\r\n updatedId: '',\r\n updatedDate: new Date(),\r\n }\r\n this.show = true;\r\n }\r\n \r\n close(){\r\n this.show = false;\r\n this.getMultiMailList();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n \r\n created(){\r\n this.getMultiMailList();\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MultiAccount.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MultiAccount.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultiAccount.vue?vue&type=template&id=5f683c46&\"\nimport script from \"./MultiAccount.ts?vue&type=script&lang=ts&\"\nexport * from \"./MultiAccount.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',{staticClass:\"description m-b-30\"},[_vm._v(\"전자메일로 일정을 공유할 수 있습니다. 공유하고자 하는 사람의 이메일이나 이름을 입력하시거나, 조직도를 이용하여 선택하세요.\")]),_c('CalendarSharedView')]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('div',{staticClass:\"fm-group-input vertical-top\"},[_c('div',{staticClass:\"autocomplete-wrap flex-1\"},[_c('div',{staticClass:\"search-bar\"},[_c('input',{staticClass:\"w-100 ft-m\",attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder}})])]),_c('span',{staticClass:\"addon\"},[_c('a',{staticClass:\"btn sub-btn btn-basic-outline m-l-xs\",attrs:{\"onclick\":\"window.open('../../org/page/Pop_Organization.html','popup_example','top=100,left=100, menubar=no, scrollbars=no, status=no, width=1200,height=700')\"}},[_vm._v(\"조직도\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n }\r\n})\r\nexport default class CalendarSharedView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n placeholder:string = this.$t('전자메일_주소_또는_이름을_입력하세요').toString();\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarSharedView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarSharedView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarSharedView.vue?vue&type=template&id=ee5e6fcc&\"\nimport script from \"./CalendarSharedView.ts?vue&type=script&lang=ts&\"\nexport * from \"./CalendarSharedView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport CalendarSharedView from './CalendarSharedView.vue'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n CalendarSharedView\r\n }\r\n})\r\nexport default class CalendarShared extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n header:string = this.$t('W_Schedule_ShareSchedule').toString();\r\n\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarShared.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarShared.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarShared.vue?vue&type=template&id=4927de58&\"\nimport script from \"./CalendarShared.ts?vue&type=script&lang=ts&\"\nexport * from \"./CalendarShared.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return _vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\"})})},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"cancel\":function($event){return _vm.$emit('cancel')},\"save\":_vm.handleSave}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('Dropdown',{style:('width:200px;'),attrs:{\"items\":_vm.calendar,\"selected\":_vm.firstday},on:{\"change\":_vm.selectDay}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport { Component, Prop, PropSync, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport api from '@gnb/api/common'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapGetters,mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types';\r\n\r\ntype SortField = {\r\n key: string;\r\n name: string;\r\n contraction: string;\r\n selected: boolean;\r\n};\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n})\r\n\r\nexport default class CalendarView extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n name:string = this.$t('W_Settings_CalendarFirstday').toString();\r\n firstday: string = '';\r\n selected: string = 'monday';\r\n calendarList: gnb.CalendarInfo = {\r\n actionType: '',\r\n config: null,\r\n createdDate: '',\r\n createdId: '',\r\n eumNoCondition: null,\r\n eumPageNumber: null,\r\n eumRowsPerPage: null,\r\n eumSearchCategory: null,\r\n eumSearchKey: null,\r\n firstDay: 0,\r\n firstDayMax: null,\r\n firstDayMin: null,\r\n isCreate: false,\r\n isDelete: false,\r\n isRead: false,\r\n isUpdate: false,\r\n persoN_CODE: '',\r\n rowNum: 0,\r\n seq: 0,\r\n updatedDate: '',\r\n updatedId: '',\r\n usE_TA_CONFIG: false,\r\n viewMode: 0,\r\n viewModeMax: null,\r\n viewModeMin: null,\r\n workingEndTime: '',\r\n workingStartTime: '',\r\n workingWeek: '',\r\n };\r\n calendar: SortField[] = [\r\n {\r\n key: '1',\r\n name: this.$t('W_Settings_Monday').toString(),\r\n contraction: this.$t('W_Mail_Mon').toString(),\r\n selected: false,\r\n },\r\n {\r\n key: '2',\r\n name: this.$t('W_Settings_Tuesday').toString(),\r\n contraction: this.$t('W_Mail_Tue').toString(),\r\n selected: false,\r\n },\r\n {\r\n key: '3',\r\n name: this.$t('W_Settings_Wednesday').toString(),\r\n contraction: this.$t('W_Mail_Wed').toString(),\r\n selected: false,\r\n },\r\n {\r\n key: '4',\r\n name: this.$t('W_Settings_Thursday').toString(),\r\n contraction: this.$t('W_Mail_Thur').toString(),\r\n selected: false,\r\n },\r\n {\r\n key: '5',\r\n name: this.$t('W_Settings_Friday').toString(),\r\n contraction: this.$t('W_Mail_Fri').toString(),\r\n selected: false,\r\n },\r\n {\r\n key: '6',\r\n name: this.$t('W_Settings_Saturday').toString(),\r\n contraction: this.$t('W_Mail_Sat').toString(),\r\n selected: false,\r\n },\r\n {\r\n key: '0',\r\n name: this.$t('W_Settings_Sunday').toString(),\r\n contraction: this.$t('W_Mail_Sun').toString(),\r\n selected: false,\r\n },\r\n ];\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectDay(value: string) {\r\n if (value) {\r\n this.firstday = value;\r\n }\r\n }\r\n \r\n save(){\r\n this.calendarList.firstDay = parseInt(this.firstday);\r\n api.setCalendarInfo(this.calendarList).then(async (succeed)=>{\r\n if(succeed){\r\n await(window as any).alertAsync('저장되었습니다.');\r\n }\r\n })\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('calendarList')\r\n onChanged(){\r\n this.firstday = this.calendarList.firstDay.toString();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n api.getCalendarInfo(this.user.personCode).then((res)=>{\r\n this.calendarList = res;\r\n if(this.calendarList){\r\n this.loading(false);\r\n }\r\n })\r\n }\r\n\r\n}","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarView.vue?vue&type=template&id=72664cfe&\"\nimport script from \"./CalendarView.ts?vue&type=script&lang=ts&\"\nexport * from \"./CalendarView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport CalendarView from './CalendarView.vue'\r\nimport { mapGetters,mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types';\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n CalendarView\r\n },\r\n methods: {\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Calendar extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [CalendarView]\r\n }\r\n\r\n header: string = this.$t('일정_보기').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n\r\n}","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Calendar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Calendar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Calendar.vue?vue&type=template&id=6dd2af94&\"\nimport script from \"./Calendar.ts?vue&type=script&lang=ts&\"\nexport * from \"./Calendar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return _vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\",attrs:{\"settingInfo\":_vm.settingInfo}})})},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('TabOrder',{on:{\"order\":function (value) { return _vm.mySetting.mySetting.tabOrder = value; }},model:{value:(_vm.mySetting.mySetting.tabOrder),callback:function ($$v) {_vm.$set(_vm.mySetting.mySetting, \"tabOrder\", $$v)},expression:\"mySetting.mySetting.tabOrder\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ul',[_c('li',[_vm._v(_vm._s(_vm.$t('항목_선택_후__순서를_변경해주세요')))])]),_c('div',{staticClass:\"space-m\"}),_c('button',{staticClass:\"btn sub-btn btn-blue-outline\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){return _vm.up()}}},[_vm._v(\"▲ \"+_vm._s(_vm.$t('W_Common_MoveUp')))]),_c('button',{staticClass:\"btn sub-btn btn-blue-outline\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){return _vm.down()}}},[_vm._v(\"▼ \"+_vm._s(_vm.$t('W_Common_MoveDown')))]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"dp-flex vertical-top\"},[_vm._m(0),_c('form',{staticClass:\"setting-tab-order\"},_vm._l((_vm.tabList),function(tab){return _c('div',{key:tab.idx,staticClass:\"radio-label label-bgblue m-b-s\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTab),expression:\"selectedTab\"}],attrs:{\"type\":\"radio\",\"name\":\"group\",\"id\":(\"radio\" + (tab.idx))},domProps:{\"value\":tab.idx,\"checked\":_vm._q(_vm.selectedTab,tab.idx)},on:{\"change\":function($event){_vm.selectedTab=tab.idx}}}),_c('label',{attrs:{\"for\":(\"radio\" + (tab.idx))}},[_vm._v(_vm._s(tab.name))])])}),0)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"setting-tab-order-num\"},[_c('li',[_vm._v(\"1\")]),_c('li',[_vm._v(\"2\")]),_c('li',[_vm._v(\"3\")])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\n\r\ndeclare type tab = { idx: string; name: string; };\r\n\r\n@Component({\r\n name: 'TabOrder',\r\n components: { },\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n }),\r\n ...mapMutations({\r\n }),\r\n },\r\n})\r\nexport default class TabOrder extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: String, default: '0,1,2' }) value!: string;\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n defaultTabOrder: string = '0,1,2';\r\n tabs: Array = [ { idx: '0', name: this.$t('W_Pending_box').toString() }, { idx: '1', name: this.$t('내가_기안한_문서함').toString() }, { idx: '2', name: this.$t('W_DocumentList_6').toString() } ];\r\n selectedTab = '';\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get tabList(){\r\n return this.tabs;\r\n }\r\n\r\n set tabList(value: Array){\r\n this.tabs = value;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 현재 선택한 결재함을 기준으로 목록의 순서를 변경합니다.\r\n * @param list 결재함 목록\r\n */\r\n modifyList(list: Array){\r\n const selected = this.selectedTab;\r\n let newList : Array = [];\r\n let last = null;\r\n for(var x of list){\r\n if(selected.includes(x.idx)){\r\n last = newList.length > 0 ? newList.pop() : null;\r\n newList.push(x);\r\n if(last){\r\n newList.push(last);\r\n last = null;\r\n }\r\n }\r\n else{\r\n newList.push(x);\r\n }\r\n }\r\n return newList;\r\n }\r\n\r\n /**\r\n * 선택한 결재함의 순서를 위로 올립니다.\r\n */\r\n up(){\r\n this.tabList = this.modifyList(this.tabList);\r\n }\r\n\r\n /**\r\n * 선택한 결재함의 순서를 아래로 내립니다.\r\n */\r\n down(){\r\n this.tabList = this.modifyList(this.tabList.reverse()).reverse();\r\n }\r\n\r\n setTabSort(newTabOrder: string, oldTabOrder: string) { \r\n const _this = this;\r\n const list : Array = [];\r\n if(oldTabOrder.length === 0){\r\n newTabOrder.split(',').forEach(order => {\r\n list.push(_this.tabs.find((x: tab) => x.idx === order) as tab);\r\n })\r\n this.tabList = list;\r\n }\r\n \r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 결재함 순서 값을 처음 전달 받을 때에만 목록을 정렬합니다.\r\n * @param newTabOrder \r\n * @param oldTabOrder \r\n */\r\n @Watch('value')\r\n onTabOrderChanged(newTabOrder: string, oldTabOrder: string){ \r\n this.setTabSort(newTabOrder, oldTabOrder);\r\n }\r\n\r\n /**\r\n * 결재함 목록의 순서가 변경될 때 마다 순서를 상위 컴포넌트로 전달합니다.\r\n * @param newList 결재함 목록\r\n */\r\n @Watch('tabList')\r\n onTabListChanged(newList: Array){\r\n const order = newList.map(tab => tab.idx);\r\n var orderStr = order.toString();\r\n this.$emit('order', orderStr);\r\n }\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n \r\n }\r\n\r\n created() {\r\n this.setTabSort(this.value, '');\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./TabOrder.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./TabOrder.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TabOrder.vue?vue&type=template&id=0aac7112&\"\nimport script from \"./TabOrder.ts?vue&type=script&lang=ts&\"\nexport * from \"./TabOrder.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, PropSync, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport TabOrder from './TabOrder.vue'\r\nimport * as types from '@gnb/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\n@Component({\r\n components:{\r\n TabOrder,\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n }\r\n ,computed:{\r\n ...mapGetters({\r\n mySetting: types.SETTINGS_MYSETTING_DATA,\r\n })\r\n }\r\n ,methods:{\r\n ...mapActions({\r\n saveSetting: types.SETTINGS_MYSETTING_SAVE,\r\n })\r\n }\r\n})\r\nexport default class ChangeApprovalOrder extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n name:string = this.$t('메인_결재함_순서_변경').toString();\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) settingInfo!: gnb.TA_MYSETTING;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n saveSetting!: (payload: { data: gnb.TA_MYSETTING, isFirst: boolean }) => Promise;\r\n mySetting!: gnb.CM_MySetting;\r\n \r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n\r\n save(){\r\n this.settingInfo.updatedDate = new Date();\r\n this.saveSetting({ data: this.settingInfo, isFirst: false })\r\n .then(() => {\r\n });\r\n }\r\n \r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangeApprovalOrder.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangeApprovalOrder.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChangeApprovalOrder.vue?vue&type=template&id=1b97c589&\"\nimport script from \"./ChangeApprovalOrder.ts?vue&type=script&lang=ts&\"\nexport * from \"./ChangeApprovalOrder.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('Checkbox',{attrs:{\"name\":_vm.name},on:{\"change\":_vm.change},model:{value:(_vm.settingInfo.isApmReuse),callback:function ($$v) {_vm.$set(_vm.settingInfo, \"isApmReuse\", $$v)},expression:\"settingInfo.isApmReuse\"}}),_c('div',{staticClass:\"space-m\"}),_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t('해당_옵션이_활성되면__임시저장_문서함의_문서가_상신시에도_남아있습니다___단__첨부파일은_초기화됩니다'))),_c('br'),_vm._v(_vm._s(_vm.$t('옵션_유무에_상관없이_문서_재사용시_첨부파일은_유지되지_않습니다')))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown,Checkbox} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n Checkbox\r\n }\r\n ,methods:{\r\n ...mapActions({\r\n saveSetting: types.SETTINGS_MYSETTING_SAVE,\r\n })\r\n }\r\n})\r\nexport default class DocumentMaintenance extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n name:string = this.$t('임시_저장_문서_유지').toString();\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) settingInfo!: gnb.TA_MYSETTING;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n saveSetting!: (payload: { data: gnb.TA_MYSETTING, isFirst: boolean }) => Promise;\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n change(item:boolean){\r\n this.settingInfo.isApmReuse = item;\r\n }\r\n//2023.12.11 YSJ Modified 환경설정 서명항목 제거\r\n save(){\r\n this.settingInfo.updatedDate = new Date();\r\n this.saveSetting({ data: this.settingInfo, isFirst: false })\r\n .then(async (res: boolean) => {\r\n if (res) {\r\n await(window as any).alertAsync(this.$t('적용되었습니다').toString());\r\n }\r\n else {\r\n await(window as any).alertAsync(this.$t('적용하는_도중에_문제가_발생했습니다').toString());\r\n }\r\n });\r\n }\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./DocumentMaintenance.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./DocumentMaintenance.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentMaintenance.vue?vue&type=template&id=4e26a98b&\"\nimport script from \"./DocumentMaintenance.ts?vue&type=script&lang=ts&\"\nexport * from \"./DocumentMaintenance.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport ChangeApprovalOrder from './ChangeApprovalOrder.vue'\r\nimport DocumentMaintenance from './DocumentMaintenance.vue'\r\nimport { mapActions, mapGetters} from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\n\r\n//2023.12.11 YSJ Modified 환경설정 서명항목 제거\r\n//import Signature from './Signature.vue'\r\n\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n ChangeApprovalOrder,\r\n DocumentMaintenance\r\n //2023.12.11 YSJ Modified 환경설정 서명항목 제거\r\n //Signature\r\n },\r\n methods: {\r\n ...mapActions({\r\n load: types.SETTINGS_MYSETTING_LOAD,\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Setting extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n settingInfo: gnb.TA_MYSETTING = {} as gnb.TA_MYSETTING;\r\n header:string = this.$t('W_Common_Settings').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n //2023.12.11 YSJ Modified 환경설정 서명항목 제거\r\n //return [ChangeApprovalOrder, DocumentMaintenance, Signature]\r\n return [ChangeApprovalOrder, DocumentMaintenance]\r\n }\r\n isLoading !: boolean;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n loading!: (option: boolean) => void;\r\n load!: () => Promise;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[];\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created(){\r\n this.loading(true);\r\n this.load().then((res)=>{\r\n this.settingInfo = res.mySetting;\r\n if(this.settingInfo){\r\n this.loading(false);\r\n }\r\n });\r\n \r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Setting.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Setting.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=7145e0e3&\"\nimport script from \"./Setting.ts?vue&type=script&lang=ts&\"\nexport * from \"./Setting.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('ConfrontationView',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}]})]},proxy:true},{key:\"footer\",fn:function(){return undefined},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('div',[_c('span',{staticClass:\"ft-gray\"},[_vm._v(_vm._s(_vm.$t('W_Requester'))+\" : \")]),_c('span',[_vm._v(_vm._s((_vm.userLang == 'ko-kr' ? _vm.user.displayName : _vm.user.displayNameEng)))])])])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"delegator-wrap box-blue dp-flex\"},[_c('div',{staticClass:\"fm-group\"},[_c('label',{staticClass:\"control-label b\"},[_vm._v(_vm._s(_vm.$t('양식명'))),_c('span',{staticClass:\"required\"},[_vm._v(\"*\")])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"block\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selApplication),expression:\"selApplication\"}],staticClass:\"fm-def\",staticStyle:{\"width\":\"200px\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selApplication=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"selected\":\"selected\"},domProps:{\"value\":-1}},[_vm._v(_vm._s(_vm.$t('모든양식')))]),_vm._l((_vm.appList),function(application){return _c('option',{key:application.applicationId,domProps:{\"value\":application.applicationId}},[_vm._v(\" \"+_vm._s((_vm.userLang == 'ko-kr' ? application.applicationName : application.applicationNameEn ))+\" \")])})],2)])]),_c('div',{staticClass:\"fm-group\"},[_c('label',{staticClass:\"control-label b\"},[_vm._v(_vm._s(_vm.$t('대결_사유'))),_c('span',{staticClass:\"required\"},[_vm._v(\"*\")])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"block\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selReason),expression:\"selReason\"}],staticClass:\"fm-def\",staticStyle:{\"width\":\"200px\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selReason=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.reasons),function(reason,idx){return _c('option',{key:idx,domProps:{\"value\":idx}},[_vm._v(_vm._s(reason))])}),0)])]),_c('div',{staticClass:\"fm-group\"},[_c('label',{staticClass:\"control-label b\"},[_vm._v(_vm._s(_vm.$t('시작_일자'))),_c('span',{staticClass:\"required\"},[_vm._v(\"*\")])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"block\"},[_c('DatePicker',{model:{value:(_vm.mstart),callback:function ($$v) {_vm.mstart=$$v},expression:\"mstart\"}})],1)]),_c('div',{staticClass:\"fm-group\"},[_c('label',{staticClass:\"control-label b\"},[_vm._v(_vm._s(_vm.$t('종료_일자'))),_c('span',{staticClass:\"required\"},[_vm._v(\"*\")])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"block\"},[_c('DatePicker',{model:{value:(_vm.mend),callback:function ($$v) {_vm.mend=$$v},expression:\"mend\"}})],1)]),_c('div',{staticClass:\"fm-group\"},[_c('label',{staticClass:\"control-label b\"},[_vm._v(_vm._s(_vm.$t('대결자'))),_c('span',{staticClass:\"required\"},[_vm._v(\"*\")])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"block search-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.delegatorName),expression:\"delegatorName\"}],staticClass:\"fm-def\",staticStyle:{\"width\":\"250px\"},attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder,\"readonly\":\"\"},domProps:{\"value\":(_vm.delegatorName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.delegatorName=$event.target.value}}}),_c('i',{staticClass:\"icon-fux-search\",on:{\"click\":_vm.openOrgmap}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"fm-group\"},[_c('label',{staticClass:\"control-label b\"},[_vm._v(_vm._s(_vm.$t('W_Requester')))]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"block\"},[_c('input',{staticClass:\"fm-def\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":_vm.user.displayName}})])])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"btn sub-btn btn-basic-outline\",on:{\"click\":function($event){return _vm.submit()}}},[_c('i',{staticClass:\"icon-fux-add m-r-xs ft-s\"}),_vm._v(_vm._s(_vm.$t('대결자_등록')))])])]),_c('div',{staticClass:\"space-l\"}),_c('div',{staticClass:\"divide-row divide-gray\"}),_c('table',{staticClass:\"grd tbl-fixed\",staticStyle:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"widht\":\"25%\"}}),_c('col',{attrs:{\"widht\":\"15%\"}}),_c('col',{attrs:{\"widht\":\"20%\"}}),_c('col',{attrs:{\"widht\":\"15%\"}}),_c('col',{attrs:{\"widht\":\"15%\"}}),_c('col',{attrs:{\"widht\":\"5%\"}}),_c('col',{attrs:{\"widht\":\"5%\"}})]),_c('tbody',_vm._l((_vm.delegatorList),function(delegator,idx){return _c('tr',{key:idx},[_c('td',[_vm._v(_vm._s(delegator.displayName))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.getReason(delegator.reason)))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.getApplicationName(delegator.applicationId)))]),_c('td',[_vm._v(_vm._s(_vm.getDate(delegator.startDate)))]),_c('td',[_vm._v(_vm._s(_vm.getDate(delegator.endDate)))]),_c('td',{staticClass:\"align-center\"},[_c('span',{staticClass:\"badge badge-green letter-s\"},[_vm._v(_vm._s(_vm.getStatus(delegator.startDate, delegator.endDate)))])]),_c('td',{staticClass:\"align-center\"},[_c('a',{staticClass:\"btn ico-btn ico-s\",on:{\"click\":function($event){return _vm.deleteDelegator(false, delegator.seq)}}},[_c('i',{staticClass:\"icon-fux-close\"})])])])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport DatePicker from '@appbase/components/DatePicker/DatePicker.vue'\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex'\r\nimport * as types from '@gnb/store/types'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\nimport * as accountTypes from '@account/store/types';\r\nimport { openPopup } from '@appbase/util/popup-helper';\r\nimport { createEventBus, getDispatchData, removeEventBus } from '@appbase/util/eventBus';\r\nimport api from '@gnb/api/common'\r\nconst ORG_LIST = '$org/list';\r\n\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n DatePicker\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n applicationList: types.APPLICATION_LIST_DATA,\r\n list: types.SETTINGS_DELEGATOR_LIST_DATA,\r\n userCurrent: accountTypes.CURRENT\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n loadApplicationList: types.APPLICATION_LIST_LOAD,\r\n loadDelegationList: types.SETTINGS_DELEGATOR_LIST_LOAD,\r\n add: types.SETTINGS_DELEGATOR_ADD,\r\n remove: types.SETTINGS_DELEGATOR_REMOVE,\r\n loading: types.COMMON_LOADDING\r\n }),\r\n ...mapMutations({\r\n }),\r\n },\r\n})\r\nexport default class ConfrontationView extends Vue {\r\n\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n \r\n selApplication: number = -1; //선택한 양식\r\n selReason: number = 0; //선택한 사유\r\n selDelegator: gnb.DelegateItem = {\r\n displayName: '',\r\n email: '',\r\n }; // 선택한 대결자\r\n start: string = dateutil.uGetDateFormat('yyyy-MM-DD'); //선택한 시작일\r\n end: string = dateutil.uGetDateFormat('yyyy-MM-DD'); // 선택한 종료일\r\n reasons: Array = [ this.$t('W_ETC').toString(), this.$t('W_Vacation').toString(), this.$t('W_Business_trip').toString(), this.$t('W_Training2').toString() ]; // 대결 사유\r\n dateFormat: string = 'yyyy-MM-dd'; // 달력 일자 형식\r\n mstart: string = dateutil.uGetDateFormat('yyyy-MM-DD', new Date()); // 달력 시작일자\r\n mend: string = dateutil.uGetDateFormat('yyyy-MM-DD', new Date()); // 달력 종료일자\r\n placeholder: string = this.$t('placeholder').toString();\r\n checkedAll: boolean = false; // 전체선택 여부\r\n mList: Array = [];\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User;\r\n userCurrent!: account.TCurrent;\r\n applicationList!: gnb.CM_ApplicationList;\r\n list!: gnb.CM_DelegationList;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadApplicationList!: (payload: { comCode: string, personCode?: string }) => void;\r\n loadDelegationList!: (personCode: string) => Promise;\r\n add!: (payload: gnb.CM_DelegationItem) => Promise;\r\n remove!: (payload: gnb.CM_DelegationItem) => Promise;\r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get appList(){\r\n return this.applicationList.applicationGroupList\r\n .flatMap(g => g.applicationItemList.map(x => x.applicationItem))\r\n .concat(this.applicationList.applicationGroupList\r\n .flatMap(g => g.applicationSubGroupList)\r\n .flatMap(sg => sg.applicationSubItemList.map((i:gnb.CM_ApplicationSubItem) => i.applicationSubItem))\r\n );\r\n }\r\n\r\n get delegatorName(){\r\n return this.selDelegator ? this.selDelegator.displayName : '';\r\n }\r\n\r\n get delegatorList(){\r\n return this.mList;\r\n }\r\n\r\n set delegatorList(value: Array){\r\n this.mList = value;\r\n }\r\n\r\n get allChecked(){\r\n return this.delegatorList.length === 0 ? false : this.delegatorList.length === this.delegatorList.filter((x:gnb.TA_DELEGATION) => x.checked === true).length;\r\n }\r\n\r\n set allChecked(value: boolean){\r\n this.delegatorList = this.delegatorList.map(x => {\r\n return {\r\n ...x,\r\n checked: value\r\n }\r\n })\r\n }\r\n\r\n get userLang(){\r\n let lang = 'ko-kr'\r\n if (this.userCurrent && this.userCurrent.userConfig){\r\n lang = this.userCurrent.userConfig.language.toLowerCase()\r\n }\r\n return lang\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 팝업 창으로 조직도를 엽니다.\r\n */\r\n openOrgmap(){\r\n let eventName;\r\n let items;\r\n\r\n const options = {\r\n addableDept: false,\r\n single: true,\r\n containers: [\r\n {\r\n id: 0,\r\n name: this.$t('선택된_사람').toString(),\r\n height: '1',\r\n items: items\r\n },\r\n ]\r\n };\r\n openPopup(\r\n 'addConfrontation',\r\n '/orgmap',\r\n { event: ORG_LIST, option: options },\r\n {\r\n width: 1024,\r\n height: 700,\r\n isFrame: this.isTeams\r\n }\r\n )\r\n }\r\n\r\n handlePopupResult(){\r\n let orgData = getDispatchData(ORG_LIST) || {};\r\n let memberList: gnb.memberInfo[] = [];\r\n\r\n if (orgData.length > 0 && orgData[0].items.length > 0) {\r\n for (let i = 0; i < orgData[0].items.length; i++){\r\n let item = orgData[0].items[i];\r\n let member: gnb.memberInfo = {\r\n text: item.text,\r\n value: item.value,\r\n email: item.value,\r\n selected: false\r\n }\r\n \r\n memberList.push(member);\r\n }\r\n }\r\n\r\n this.selDelegator = {\r\n displayName: memberList[0].text,\r\n email: memberList[0].value\r\n }\r\n }\r\n\r\n /**\r\n * 선택한 사용자를 대결자로 지정합니다.\r\n * @param value [{ personCode: string, displayName: string, ... }]\r\n */\r\n setDelegator(value: Array){\r\n this.selDelegator = value[0];\r\n }\r\n\r\n /**\r\n * 대결자를 등록하기 전에 유효성을 검사합니다.\r\n * @returns \r\n */\r\n async validateDelegator(): Promise{\r\n const sDate = dateutil.uGetDateOnly(dateutil.IEDate(this.start));\r\n const eDate = dateutil.uGetDateOnly(dateutil.IEDate(this.end));\r\n if(!this.selDelegator){\r\n await(window as any).alertAsync(this.$t('대결자를_선택하시기_바랍니다').toString());\r\n return false;\r\n }\r\n else if(this.selDelegator.personCode === this.user.personCode){\r\n await(window as any).alertAsync(this.$t('자신을_대결자로_할_수_없습니다').toString());\r\n return false;\r\n }\r\n else if(this.start === ''){\r\n await(window as any).alertAsync(this.$t('시작일자를_선택하시기_바랍니다').toString());\r\n return false;\r\n }\r\n else if(this.end === ''){\r\n await(window as any).alertAsync(this.$t('종료일자를_선택하시기_바랍니다').toString());\r\n return false;\r\n }\r\n else if( sDate > eDate){\r\n await(window as any).alertAsync(this.$t('시작일자가_종료일자보다_클_수_없습니다').toString());\r\n return false;\r\n }\r\n // else if(!this.validateList(sDate, eDate)){\r\n // await(window as any).alertAsync('등록할 수 없습니다');\r\n // return false;\r\n // }\r\n else{\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * 기존 대결자 목록과 유효성 검사\r\n * @param sDate 시작일자\r\n * @param eDate 종료일자\r\n * @returns \r\n */\r\n validateList(sDate: Date, eDate: Date){\r\n // const list = this.delegatorList;\r\n // const applicationId = this.selApplication;\r\n // // 모든양식의 경우\r\n // if(applicationId === -1){\r\n // return list.findIndex(x => x.applicationId === null \r\n // && dateutil.uGetInDateBoundaryEqual(dateutil.IEDate(x.startDate), dateutil.IEDate(x.endDate), sDate, eDate)) < 0\r\n // }\r\n // else{\r\n // return list.findIndex(x => x.applicationId === applicationId \r\n // && dateutil.uGetInDateBoundaryEqual(dateutil.IEDate(x.startDate), dateutil.IEDate(x.endDate), sDate, eDate)) < 0\r\n // }\r\n }\r\n\r\n /**\r\n * 대결자를 등록합니다.\r\n */\r\n async submit(){\r\n if(await this.validateDelegator() && this.selDelegator.email !==''){\r\n if(!this.selDelegator.personCode){\r\n api.getUserInfoByEmail(this.selDelegator.email).then((res)=>{\r\n this.selDelegator.personCode = res.items[0].personCode;\r\n\r\n let data = {\r\n personCode: this.user.personCode,\r\n delegatorCode: this.selDelegator.personCode,\r\n applicationId: this.selApplication === -1 ? null : this.selApplication,\r\n reason: this.selReason,\r\n startDate: this.mstart,\r\n endDate: this.mend,\r\n createdId: this.user.personCode,\r\n } as gnb.TA_DELEGATION;\r\n this.add({ delegation: data }).then(async (res) =>{\r\n if(res){\r\n await(window as any).alertAsync(this.$t('등록되었습니다').toString());\r\n this.loadDelegationList(this.user.personCode)\r\n .then((res: gnb.CM_DelegationList) => {\r\n this.mList = res.delegationList.map(x => { \r\n return {\r\n ...x.delegation,\r\n checked: false,\r\n }\r\n });\r\n });\r\n }\r\n else{\r\n await(window as any).alertAsync(this.$t('등록이_되지_않았습니다').toString());\r\n }\r\n })\r\n .catch(async (err: Error) => {\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString() + '
' + err.message);\r\n })\r\n })\r\n }else{\r\n let data = {\r\n personCode: this.user.personCode,\r\n delegatorCode: this.selDelegator.personCode,\r\n applicationId: this.selApplication === -1 ? null : this.selApplication,\r\n reason: this.selReason,\r\n startDate: this.mstart,\r\n endDate: this.mend,\r\n createdId: this.user.personCode,\r\n } as gnb.TA_DELEGATION;\r\n this.add({ delegation: data }).then(async (res) =>{\r\n if(res){\r\n await(window as any).alertAsync(this.$t('등록되었습니다').toString());\r\n this.loadDelegationList(this.user.personCode)\r\n .then((res: gnb.CM_DelegationList) => {\r\n this.mList = res.delegationList.map(x => { \r\n return {\r\n ...x.delegation,\r\n checked: false,\r\n }\r\n });\r\n });\r\n }\r\n else{\r\n await(window as any).alertAsync(this.$t('등록이_되지_않았습니다').toString());\r\n }\r\n })\r\n .catch(async (err: Error) => {\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString() + '
' + err.message);\r\n })\r\n }\r\n \r\n }else{\r\n await(window as any).alertAsync(this.$t('대결자를_설정_후_등록_버튼을_클릭해주시기_바랍니다').toString());\r\n }\r\n }\r\n\r\n /**\r\n * 대결자를 삭제합니다.\r\n * @param value seq 값\r\n */\r\n async deleteDelegator(isChecked: boolean = false, value?: number){\r\n if(await(window as any).confirmAsync(this.$t('선택한_대결자를_삭제하시겠습니까').toString())){\r\n if(!isChecked){\r\n const data = {\r\n seq: value,\r\n personCode: this.user.personCode,\r\n } as gnb.TA_DELEGATION;\r\n this.remove({ delegation: data }).then(async (res) => {\r\n if(res){\r\n await(window as any).alertAsync(this.$t('삭제되었습니다').toString());\r\n this.loadDelegationList(this.user.personCode)\r\n .then((res: gnb.CM_DelegationList) => {\r\n this.mList = res.delegationList.map(x => { \r\n return {\r\n ...x.delegation,\r\n checked: false,\r\n }\r\n });\r\n });\r\n }\r\n else{\r\n await(window as any).alertAsync(this.$t('삭제가_되지_않았습니다').toString());\r\n }\r\n })\r\n .catch(async (err: Error) => {\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString() + '
' + err.message);\r\n })\r\n }\r\n else{\r\n this.delegatorList.filter((x:gnb.TA_DELEGATION) => x.checked === true).forEach((delegator, idx, array) =>{\r\n const data = {\r\n seq: delegator.seq,\r\n personCode: this.user.personCode,\r\n } as gnb.TA_DELEGATION;\r\n this.remove({ delegation: data }).then(async (res) => {\r\n if(idx === array.length -1){\r\n if(res){\r\n await(window as any).alertAsync(this.$t('삭제되었습니다').toString());\r\n this.loadDelegationList(this.user.personCode)\r\n .then((res: gnb.CM_DelegationList) => {\r\n this.mList = res.delegationList.map(x => { \r\n return {\r\n ...x.delegation,\r\n checked: false,\r\n }\r\n });\r\n });\r\n }\r\n else{\r\n await(window as any).alertAsync(this.$t('삭제가_되지_않았습니다').toString());\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 날짜 값을 문자열로 변환합니다.\r\n * @param value 일자\r\n * @returns \r\n */\r\n getDate(value: string){\r\n return dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(value));\r\n }\r\n\r\n /**\r\n * 대결 사유를 문자열로 변환합니다.\r\n * @param value 대결 사유\r\n */\r\n getReason(value: number){\r\n return this.reasons.find((x, idx) => idx === value);\r\n }\r\n\r\n /**\r\n * 양식ID로 양식명을 조회합니다.\r\n * @param value 양식 ID\r\n */\r\n getApplicationName(value: number){\r\n return this.appList.find(x => x.applicationId === value)?.applicationName || this.$t('모든양식').toString();\r\n }\r\n\r\n /**\r\n * 시작일과 종료일로 진행여부를 확인합니다.\r\n * @param start 시작일\r\n * @param end 종료일\r\n */\r\n getStatus(start: string, end: string){\r\n const today = new Date();\r\n const sDate = dateutil.IEDate(start);\r\n const eDate = dateutil.IEDate(end);\r\n if(today < sDate){\r\n return this.$t('W_Code_ApprovalLineStatus_A3').toString();\r\n }\r\n else if(dateutil.uGetIsInDate(today, sDate, eDate)){\r\n return this.$t('진행').toString();\r\n }\r\n else if(today > eDate){\r\n return this.$t('종료').toString();\r\n }\r\n }\r\n\r\n /**\r\n * 진행여부에 따른 css 클래스명을 지정합니다.\r\n * @param start \r\n * @param end \r\n * @returns \r\n */\r\n getStatusStyle(start: string, end: string){\r\n const today = new Date();\r\n const sDate = dateutil.IEDate(start);\r\n const eDate = dateutil.IEDate(end);\r\n if(today < sDate){\r\n return 'fx-sta-lightgray';\r\n }\r\n else if(dateutil.uGetIsInDate(today, sDate, eDate)){\r\n return 'fx-sta-yellow'\r\n }\r\n else if(today > eDate){\r\n return 'fx-sta-darkgray';\r\n }\r\n }\r\n\r\n /**\r\n * 선택한 날짜를 문자열로 변환하여 변수에 할당합니다.\r\n * @param date 선택한 날짜\r\n * @param type 시작일자/종료일자 구분값\r\n */\r\n selectDate(date: Date, type: string){\r\n const dateStr = dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.uGetDateOnly(date));\r\n switch(type){\r\n case 'start':\r\n this.start = dateStr;\r\n break;\r\n case 'end':\r\n this.end = dateStr;\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n createEventBus(window, ORG_LIST, this.handlePopupResult);\r\n const _this = this;\r\n this.loadApplicationList({ comCode: this.user.comCode, personCode: this.user.personCode });\r\n this.loadDelegationList(this.user.personCode)\r\n .then((res: gnb.CM_DelegationList) => {\r\n _this.mList = res.delegationList.map(x => { \r\n return {\r\n ...x.delegation,\r\n checked: false,\r\n }\r\n });\r\n }).then(()=>{\r\n this.loading(false);\r\n });\r\n }\r\n\r\n beforeDestroy(){\r\n removeEventBus(window, ORG_LIST, this.handlePopupResult);\r\n }\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ConfrontationView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ConfrontationView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConfrontationView.vue?vue&type=template&id=4921ebd0&\"\nimport script from \"./ConfrontationView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ConfrontationView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport ConfrontationView from './ConfrontationView.vue'\r\nimport { mapGetters,mapActions } from 'vuex'\r\nimport * as types from '@gnb/store/types';\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n ConfrontationView\r\n },\r\n methods: {\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Confrontation extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n header:string = this.$t('대결자_설정').toString();\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n loading!: (option: boolean) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading !: boolean;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.loading(true);\r\n }\r\n\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Confrontation.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Confrontation.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Confrontation.vue?vue&type=template&id=34834889&\"\nimport script from \"./Confrontation.ts?vue&type=script&lang=ts&\"\nexport * from \"./Confrontation.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('ChangeApprovalPWView')]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',[_c('table',{staticClass:\"grd no-border\",staticStyle:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"10%\"}}),_c('col',{attrs:{\"width\":\"\"}})]),_c('tbody',[_c('tr',[_c('th',{staticClass:\"align-left\"},[_vm._v(_vm._s(_vm.$t('W_NewPassword')))]),_c('td',[_c('input',{staticClass:\"fm-def\",attrs:{\"type\":\"password\",\"placeholder\":_vm.placeholder}})])]),_c('tr',[_c('th',{staticClass:\"align-left\"},[_vm._v(_vm._s(_vm.$t('W_NewPasswordConfirm')))]),_c('td',[_c('input',{staticClass:\"fm-def\",attrs:{\"type\":\"password\",\"placeholder\":_vm.placeholder}})])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown\r\n }\r\n})\r\nexport default class ChangeApprovalPWView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n placeholder:string = this.$t('비밀번호를_입력해_주세요').toString();\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangeApprovalPWView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangeApprovalPWView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChangeApprovalPWView.vue?vue&type=template&id=288ce505&\"\nimport script from \"./ChangeApprovalPWView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ChangeApprovalPWView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport ChangeApprovalPWView from './ChangeApprovalPWView.vue'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n ChangeApprovalPWView\r\n }\r\n})\r\nexport default class ChangeApprovalPW extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n header:string = this.$t('결재_비밀번호_설정').toString();\r\n\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangeApprovalPW.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangeApprovalPW.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChangeApprovalPW.vue?vue&type=template&id=7579596e&\"\nimport script from \"./ChangeApprovalPW.ts?vue&type=script&lang=ts&\"\nexport * from \"./ChangeApprovalPW.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return _vm._l((_vm.contentComponents),function(com,index){return _c(com,{key:index,ref:\"contents\",refInFor:true,tag:\"component\",attrs:{\"settingInfo\":_vm.settingInfo}})})},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('table',{staticClass:\"tbl-basic-bdr\",attrs:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"10%\"}}),_c('col')]),_c('MailApprovalView',{on:{\"change\":function (value) { return _vm.mySetting.mySetting = value; }},model:{value:(_vm.mySetting.mySetting),callback:function ($$v) {_vm.$set(_vm.mySetting, \"mySetting\", $$v)},expression:\"mySetting.mySetting\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveNextMail),expression:\"receiveNextMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveNextMail)?_vm._i(_vm.receiveNextMail,null)>-1:(_vm.receiveNextMail)},on:{\"change\":function($event){var $$a=_vm.receiveNextMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveNextMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveNextMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveNextMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('미결함_도착'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveBeforeMail),expression:\"receiveBeforeMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveBeforeMail)?_vm._i(_vm.receiveBeforeMail,null)>-1:(_vm.receiveBeforeMail)},on:{\"change\":function($event){var $$a=_vm.receiveBeforeMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveBeforeMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveBeforeMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveBeforeMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('기안시_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveAfterMail),expression:\"receiveAfterMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveAfterMail)?_vm._i(_vm.receiveAfterMail,null)>-1:(_vm.receiveAfterMail)},on:{\"change\":function($event){var $$a=_vm.receiveAfterMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveAfterMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveAfterMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveAfterMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('결재완료_후_알림_수신'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveCompleteMail),expression:\"receiveCompleteMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveCompleteMail)?_vm._i(_vm.receiveCompleteMail,null)>-1:(_vm.receiveCompleteMail)},on:{\"change\":function($event){var $$a=_vm.receiveCompleteMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveCompleteMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveCompleteMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveCompleteMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('내가_작성한_문서의_완료_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveCompleteApproveMail),expression:\"receiveCompleteApproveMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveCompleteApproveMail)?_vm._i(_vm.receiveCompleteApproveMail,null)>-1:(_vm.receiveCompleteApproveMail)},on:{\"change\":function($event){var $$a=_vm.receiveCompleteApproveMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveCompleteApproveMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveCompleteApproveMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveCompleteApproveMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('내가_결재한_문서의_완료_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveApproveMail),expression:\"receiveApproveMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveApproveMail)?_vm._i(_vm.receiveApproveMail,null)>-1:(_vm.receiveApproveMail)},on:{\"change\":function($event){var $$a=_vm.receiveApproveMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveApproveMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveApproveMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveApproveMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('내가_결재한_문서의_부결_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveRefMail),expression:\"receiveRefMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveRefMail)?_vm._i(_vm.receiveRefMail,null)>-1:(_vm.receiveRefMail)},on:{\"change\":function($event){var $$a=_vm.receiveRefMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveRefMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveRefMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveRefMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('회람_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.receiveDeptReceiptMail),expression:\"receiveDeptReceiptMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.receiveDeptReceiptMail)?_vm._i(_vm.receiveDeptReceiptMail,null)>-1:(_vm.receiveDeptReceiptMail)},on:{\"change\":function($event){var $$a=_vm.receiveDeptReceiptMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.receiveDeptReceiptMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.receiveDeptReceiptMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.receiveDeptReceiptMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('부서_문서_접수_알림'))+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\nimport * as types from '@gnb/store/types';\r\n\r\n\r\n@Component({\r\n name: 'MailApproval',\r\n components: { },\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n }),\r\n ...mapMutations({\r\n }),\r\n },\r\n})\r\nexport default class MailApproval extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: Object }) value !: gnb.TA_MYSETTING;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get receiveNextMail() {\r\n return this.value.isReceiveNextMail;\r\n }\r\n\r\n set receiveNextMail(value: boolean) {\r\n this.value.isReceiveNextMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get receiveBeforeMail() {\r\n return this.value.isReceiveBeforeMail;\r\n }\r\n\r\n set receiveBeforeMail(value: boolean) {\r\n this.value.isReceiveBeforeMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get receiveAfterMail() {\r\n return this.value.isReceiveAfterMail;\r\n }\r\n\r\n set receiveAfterMail(value: boolean) {\r\n this.value.isReceiveAfterMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get receiveRefMail() {\r\n return this.value.isReceiveRefMail;\r\n }\r\n\r\n set receiveRefMail(value: boolean) {\r\n this.value.isReceiveRefMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get receiveCompleteMail() {\r\n return this.value.isReceiveCompleteMail;\r\n }\r\n\r\n set receiveCompleteMail(value: boolean) {\r\n this.value.isReceiveCompleteMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get receiveCompleteApproveMail() {\r\n return this.value.isReceiveCompleteApproveMail;\r\n }\r\n\r\n set receiveCompleteApproveMail(value: boolean) {\r\n this.value.isReceiveCompleteApproveMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get receiveApproveMail() {\r\n return this.value.isReceiveApproveMail;\r\n }\r\n\r\n set receiveApproveMail(value: boolean) {\r\n this.value.isReceiveApproveMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get receiveDeptReceiptMail() {\r\n return this.value.isReceiveDeptReceiptMail;\r\n }\r\n\r\n set receiveDeptReceiptMail(value: boolean) {\r\n this.value.isReceiveDeptReceiptMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n \r\n }\r\n\r\n created() {\r\n console.log(this.value);\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MailApprovalView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MailApprovalView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MailApprovalView.vue?vue&type=template&id=4409f80e&\"\nimport script from \"./MailApprovalView.ts?vue&type=script&lang=ts&\"\nexport * from \"./MailApprovalView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, PropSync, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport * as types from '@gnb/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport MailApprovalView from './MailApprovalView.vue'\r\n@Component({\r\n components:{ModalHeader,ModalContent,ModalFooter,ContentItem,PreferenceContentTemplate,Dropdown,MailApprovalView}\r\n ,computed:{\r\n ...mapGetters({\r\n mySetting: types.SETTINGS_MYSETTING_DATA,\r\n })\r\n }\r\n ,methods:{\r\n ...mapActions({\r\n saveSetting: types.SETTINGS_MYSETTING_SAVE,\r\n })\r\n }\r\n})\r\nexport default class MailApproval extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n name: string = this.$t('메일_수신여부').toString();\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) settingInfo!: gnb.TA_MYSETTING;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n saveSetting!: (payload: { data: gnb.TA_MYSETTING, isFirst: boolean }) => Promise;\r\n mySetting!: gnb.CM_MySetting;\r\n \r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n\r\n save(){\r\n this.settingInfo.updatedDate = new Date();\r\n this.saveSetting({ data: this.settingInfo, isFirst: false })\r\n .then(() => {\r\n });\r\n }\r\n \r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MailApproval.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MailApproval.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MailApproval.vue?vue&type=template&id=19b1a87b&\"\nimport script from \"./MailApproval.ts?vue&type=script&lang=ts&\"\nexport * from \"./MailApproval.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ContentItem',{attrs:{\"name\":_vm.name}},[_c('table',{staticClass:\"tbl-basic-bdr\",attrs:{\"width\":\"100%\"}},[_c('colgroup',[_c('col',{attrs:{\"width\":\"10%\"}}),_c('col')]),_c('MessageApprovalView',{on:{\"change\":function (value) { return _vm.mySetting.mySetting = value; }},model:{value:(_vm.mySetting.mySetting),callback:function ($$v) {_vm.$set(_vm.mySetting, \"mySetting\", $$v)},expression:\"mySetting.mySetting\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveNextMail),expression:\"tureceiveNextMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveNextMail)?_vm._i(_vm.tureceiveNextMail,null)>-1:(_vm.tureceiveNextMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveNextMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveNextMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveNextMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveNextMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('미결함_도착'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveBeforeMail),expression:\"tureceiveBeforeMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveBeforeMail)?_vm._i(_vm.tureceiveBeforeMail,null)>-1:(_vm.tureceiveBeforeMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveBeforeMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveBeforeMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveBeforeMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveBeforeMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('기안시_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveAfterMail),expression:\"tureceiveAfterMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveAfterMail)?_vm._i(_vm.tureceiveAfterMail,null)>-1:(_vm.tureceiveAfterMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveAfterMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveAfterMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveAfterMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveAfterMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('결재완료_후_알림_수신'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveCompleteMail),expression:\"tureceiveCompleteMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveCompleteMail)?_vm._i(_vm.tureceiveCompleteMail,null)>-1:(_vm.tureceiveCompleteMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveCompleteMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveCompleteMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveCompleteMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveCompleteMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('내가_작성한_문서의_완료_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveCompleteApproveMail),expression:\"tureceiveCompleteApproveMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveCompleteApproveMail)?_vm._i(_vm.tureceiveCompleteApproveMail,null)>-1:(_vm.tureceiveCompleteApproveMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveCompleteApproveMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveCompleteApproveMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveCompleteApproveMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveCompleteApproveMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('내가_결재한_문서의_완료_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveApproveMail),expression:\"tureceiveApproveMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveApproveMail)?_vm._i(_vm.tureceiveApproveMail,null)>-1:(_vm.tureceiveApproveMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveApproveMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveApproveMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveApproveMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveApproveMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('내가_결재한_문서의_부결_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveRefMail),expression:\"tureceiveRefMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveRefMail)?_vm._i(_vm.tureceiveRefMail,null)>-1:(_vm.tureceiveRefMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveRefMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveRefMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveRefMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveRefMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('회람_알림'))+\" \")])]),_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.tureceiveDeptReceiptMail),expression:\"tureceiveDeptReceiptMail\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.tureceiveDeptReceiptMail)?_vm._i(_vm.tureceiveDeptReceiptMail,null)>-1:(_vm.tureceiveDeptReceiptMail)},on:{\"change\":function($event){var $$a=_vm.tureceiveDeptReceiptMail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.tureceiveDeptReceiptMail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.tureceiveDeptReceiptMail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.tureceiveDeptReceiptMail=$$c}}}}),_vm._v(\" \"+_vm._s(_vm.$t('부서_문서_접수_알림'))+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\nimport * as types from '@gnb/store/types';\r\n\r\n\r\n@Component({\r\n name: 'MessageApproval',\r\n components: { },\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n }),\r\n ...mapMutations({\r\n }),\r\n },\r\n})\r\nexport default class MessageApprovalView extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: Object }) value !: gnb.TA_MYSETTING;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n // \r\n\r\n get tureceiveNextMail() {\r\n return this.value.isTUReceiveNextMail;\r\n }\r\n\r\n set tureceiveNextMail(value: boolean) {\r\n this.value.isTUReceiveNextMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get tureceiveBeforeMail() {\r\n return this.value.isTUReceiveBeforeMail;\r\n }\r\n\r\n set tureceiveBeforeMail(value: boolean) {\r\n this.value.isTUReceiveBeforeMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get tureceiveAfterMail() {\r\n return this.value.isTUReceiveAfterMail;\r\n }\r\n\r\n set tureceiveAfterMail(value: boolean) {\r\n this.value.isTUReceiveAfterMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get tureceiveRefMail() {\r\n return this.value.isTUReceiveRefMail;\r\n }\r\n\r\n set tureceiveRefMail(value: boolean) {\r\n this.value.isTUReceiveRefMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get tureceiveCompleteMail() {\r\n return this.value.isTUReceiveCompleteMail;\r\n }\r\n\r\n set tureceiveCompleteMail(value: boolean) {\r\n this.value.isTUReceiveCompleteMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get tureceiveCompleteApproveMail() {\r\n return this.value.isTUReceiveCompleteApproveMail;\r\n }\r\n\r\n set tureceiveCompleteApproveMail(value: boolean) {\r\n this.value.isTUReceiveCompleteApproveMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get tureceiveApproveMail() {\r\n return this.value.isTUReceiveApproveMail;\r\n }\r\n\r\n set tureceiveApproveMail(value: boolean) {\r\n this.value.isTUReceiveApproveMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n get tureceiveDeptReceiptMail() {\r\n return this.value.isTUReceiveDeptReceiptMail;\r\n }\r\n\r\n set tureceiveDeptReceiptMail(value: boolean) {\r\n this.value.isTUReceiveDeptReceiptMail = value;\r\n this.$emit('update:value', this.value);\r\n }\r\n\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n \r\n }\r\n\r\n created() {\r\n console.log(this.value);\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MessageApprovalView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MessageApprovalView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MessageApprovalView.vue?vue&type=template&id=5dc4c169&\"\nimport script from \"./MessageApprovalView.ts?vue&type=script&lang=ts&\"\nexport * from \"./MessageApprovalView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, PropSync, Watch } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem,Dropdown} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport * as types from '@gnb/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport MessageApprovalView from './MessageApprovalView.vue'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n Dropdown,\r\n MessageApprovalView}\r\n ,computed:{\r\n ...mapGetters({\r\n mySetting: types.SETTINGS_MYSETTING_DATA,\r\n })\r\n }\r\n ,methods:{\r\n ...mapActions({\r\n saveSetting: types.SETTINGS_MYSETTING_SAVE,\r\n })\r\n }\r\n})\r\nexport default class MessageApproval extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n name:string = this.$t('메신저_수신여부').toString();\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) settingInfo!: gnb.TA_MYSETTING;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n saveSetting!: (payload: { data: gnb.TA_MYSETTING, isFirst: boolean }) => Promise;\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mySetting!: gnb.CM_MySetting;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n save(){\r\n this.settingInfo.updatedDate = new Date();\r\n this.saveSetting({ data: this.settingInfo, isFirst: false })\r\n .then(async (res: boolean) => {\r\n if (res) {\r\n await(window as any).alertAsync(this.$t('적용되었습니다').toString());\r\n }\r\n else {\r\n await(window as any).alertAsync(this.$t('적용하는_도중에_문제가_발생했습니다').toString());\r\n }\r\n });\r\n }\r\n\r\n created(){\r\n console.log('SettingInfo', this.settingInfo)\r\n }\r\n \r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MessageApproval.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./MessageApproval.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MessageApproval.vue?vue&type=template&id=3e2785b9&\"\nimport script from \"./MessageApproval.ts?vue&type=script&lang=ts&\"\nexport * from \"./MessageApproval.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {ModalHeader, ModalContent, ModalFooter,ContentItem} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { mapActions, mapGetters} from 'vuex'\r\nimport {MailApproval, MessageApproval} from '@gnb/components/Preference/Approval/Reception'\r\nimport * as types from '@gnb/store/types'\r\n@Component({\r\n components:{\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n MailApproval,\r\n MessageApproval\r\n },\r\n methods: {\r\n ...mapActions({\r\n load: types.SETTINGS_MYSETTING_LOAD,\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class Reception extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n settingInfo: gnb.TA_MYSETTING = {} as gnb.TA_MYSETTING;\r\n header: string = this.$t('수신_관리').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponents() {\r\n return [MailApproval, MessageApproval]\r\n }\r\n isLoading !: boolean;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n loading!: (option: boolean) => void;\r\n load!: () => Promise;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[];\r\n contens.forEach((x) => {\r\n x.save();\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created(){\r\n this.loading(true);\r\n this.load().then((res)=>{\r\n this.settingInfo = res.mySetting;\r\n if(this.settingInfo){\r\n this.loading(false);\r\n }\r\n });\r\n \r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Reception.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Reception.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Reception.vue?vue&type=template&id=334f53c8&\"\nimport script from \"./Reception.ts?vue&type=script&lang=ts&\"\nexport * from \"./Reception.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PreferenceContentTemplate',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('ModalHeader',{attrs:{\"header\":_vm.header}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t('프로필_이미지를_변경합니다')))]),_c('p',{staticClass:\"description m-b-30\"},[_vm._v(_vm._s(_vm.$t('삭제버튼_클릭_후_저장하면_HR연동_이미지가_적용됩니다')))]),_vm._l((_vm.contentComponents),function(com,index){return _c(com,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],key:index,ref:\"contents\",refInFor:true,tag:\"component\",attrs:{\"user\":_vm.user}})})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ModalFooter',{on:{\"save\":_vm.handleSave,\"cancel\":function($event){return _vm.$emit('cancel')}}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem\r\n} from '@gnb/components/Common'\r\nimport PreferenceContentTemplate from '@gnb/templates/PreferenceContentTemplate.vue'\r\nimport { ChoosePhoto } from '@gnb/components/Preference/General/ChangePhoto'\r\nimport { mapGetters,mapActions } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as types from '@gnb/store/types';\r\n\r\n@Component({\r\n components: {\r\n ModalHeader,\r\n ModalContent,\r\n ModalFooter,\r\n ContentItem,\r\n PreferenceContentTemplate,\r\n ChoosePhoto\r\n },\r\n methods: {\r\n ...mapActions({\r\n loading: types.COMMON_LOADDING\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n isLoading: types.COMMON_LOADDING\r\n })\r\n }\r\n})\r\nexport default class ChangePhoto extends Vue {\r\n\r\n get contentComponents() {\r\n return [ChoosePhoto]\r\n }\r\n\r\n loading!: (option: boolean) => void;\r\n user!: account.User\r\n loadImageSrc: string | null = null\r\n\r\n header:string = this.$t('사진변경').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleSave() {\r\n const contens = this.$refs.contents as any[]\r\n contens.forEach((x) => {\r\n x.save()\r\n })\r\n }\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E S Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangePhoto.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChangePhoto.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChangePhoto.vue?vue&type=template&id=fe224cba&\"\nimport script from \"./ChangePhoto.ts?vue&type=script&lang=ts&\"\nexport * from \"./ChangePhoto.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"tbl-bdr-view\"},[_c('tr',[_c('th',[_c('div',{staticClass:\"dp-flex\"},[_c('input',{ref:\"files\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":\"uploadImg\",\"accept\":\"image/*\"},on:{\"change\":_vm.fnSaveFileInfo}}),_c('label',{staticClass:\"btn sm-btn btn-basic-outline btn-file\",attrs:{\"for\":\"uploadImg\"}},[_vm._v(_vm._s(_vm.$t('찾아보기')))]),_c('input',{attrs:{\"type\":\"hidden\"}}),_c('button',{staticClass:\"btn sm-btn btn-basic-outline btn-file\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.deleteImage}},[_vm._v(_vm._s(_vm.$t('삭제하기')))])])])]),_c('tr',[_c('td',[_c('div',{staticClass:\"user-profile-uplode align-center ft-gray\",attrs:{\"id\":\"imgView\"}},[_c('img',{attrs:{\"src\":_vm.fileSrc ? _vm.fileSrc : (_vm.loadImageSrc ? _vm.loadImageSrc : '/cm/gres/faux/images/ghost_profile.png'),\"id\":\"imgProfile\",\"alt\":\"미리보기\"}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport api from '@gnb/api'\r\nimport { Component, Watch, Prop } from 'vue-property-decorator'\r\nimport { mapGetters,mapActions } from 'vuex'\r\nimport * as types from '@account/store/types'\r\nimport * as accountTypes from '@gnb/store/types';\r\n\r\n@Component({})\r\nexport default class ChoosePhoto extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n files: any | null = null\r\n fileSrc: any | null = null\r\n fileName: string = '첨부된 파일이 없습니다.'\r\n loadImageSrc: String | null = null\r\n formData: FormData = new FormData()\r\n @Prop({ type: Object }) user!: account.User;\r\n \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n getImageSrc(src: any) {\r\n if(src) {\r\n if(src.toLowerCase().startsWith(\"http\") || src.toLowerCase().startsWith(\"https\")) {\r\n return src;\r\n } \r\n }\r\n return null;\r\n }\r\n\r\n fnSaveFileInfo(e: any) {\r\n this.files = e.target.files[0];\r\n this.fileSrc = URL.createObjectURL(e.target.files[0])\r\n // src = this.fileSrc.substr(5);\r\n this.fileName = e.target.files[0].name\r\n\r\n //this.formData = new FormData();\r\n this.formData.append(\"comCode\", this.user.comCode);\r\n this.formData.append(\"personCode\", this.user.personCode);\r\n this.formData.append(\"files\", this.files);\r\n this.formData.append(\"email\", this.user.email);\r\n }\r\n\r\n personImageSave(formData: FormData) {\r\n return api.common.insertPersonPhotoUpload(formData)\r\n }\r\n\r\n deleteImage() {\r\n this.formData = new FormData();\r\n this.formData.append(\"comCode\", this.user.comCode);\r\n this.formData.append(\"personCode\", this.user.personCode);\r\n this.formData.append(\"email\", this.user.email);\r\n this.files = null;\r\n this.loadImageSrc = null;\r\n this.fileSrc = null;\r\n this.fileName = '첨부된 파일이 없습니다.';\r\n }\r\n\r\n loadImage() {\r\n if(this.user.photoPath != null) {\r\n this.loadImageSrc = this.user.photoPath\r\n }\r\n }\r\n\r\n save() {\r\n this.personImageSave(this.formData).then(async (res: any) => {\r\n if(res == -1) {\r\n await(window as any).alertAsync('저장_실패하였습니다')\r\n } else {\r\n await(window as any).alertAsync('저장하였습니다')\r\n }\r\n })\r\n }\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E S Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.loadImage()\r\n\r\n if(this.loadImageSrc != null){\r\n this.fileName = this.user.personCode + '.png';\r\n }\r\n }\r\n}","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChoosePhoto.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!./ChoosePhoto.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChoosePhoto.vue?vue&type=template&id=c8a995c2&\"\nimport script from \"./ChoosePhoto.ts?vue&type=script&lang=ts&\"\nexport * from \"./ChoosePhoto.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport { mapGetters } from 'vuex'\r\nimport { ModalLayout } from '@appbase/templates'\r\nimport NavigationTab from '../NavigationTab.vue'\r\nimport { MenuInfo } from './menu'\r\nimport { LanguageTime } from '@gnb/components/Preference/General/LanguageTime'\r\nimport { Notice } from '@gnb/components/Preference/General/Notice'\r\nimport { Missed } from '@gnb/components/Preference/Mail/Missed'\r\nimport { Layout } from '@gnb/components/Preference/Mail/Layout'\r\nimport { Signature } from '@gnb/components/Preference/Mail/Signature'\r\nimport { Rule } from '@gnb/components/Preference/Mail/Rule'\r\nimport { Delete } from '@gnb/components/Preference/Mail/Delete'\r\nimport { AutoDelivery } from '@gnb/components/Preference/Mail/AutoDelivery'\r\nimport { AutoReply } from '@gnb/components/Preference/Mail/AutoReply'\r\nimport { Category } from '@gnb/components/Preference/Mail/Category'\r\nimport { Storage } from '@gnb/components/Preference/Mail/Storage'\r\nimport { MultiAccount } from '@gnb/components/Preference/Mail/MultiAccount'\r\nimport { CalendarShared, Calendar } from '../../components/Preference/Calendar'\r\nimport { Setting, Confrontation, ChangeApprovalPW, Reception } from '../../components/Preference/Approval'\r\nimport modalHelper from '@appbase/util/modal-helper'\r\nimport AddRule from '@gnb/components/Preference/Mail/Rule/AddRule.vue'\r\nimport * as types from '@appbase/store/types'\r\nimport { ChangePhoto } from '@gnb/components/Preference/General/ChangePhoto'\r\n\r\n@Component({\r\n components: { \r\n ModalLayout,\r\n NavigationTab, \r\n 'language':LanguageTime, \r\n 'changePhoto':ChangePhoto,\r\n 'notice':Notice, \r\n 'missed': Missed, \r\n 'layout':Layout, \r\n 'signature':Signature,\r\n 'rule':Rule,\r\n 'delete':Delete,\r\n 'autoDelivery':AutoDelivery,\r\n 'autoReply':AutoReply,\r\n 'category':Category,\r\n 'storage':Storage,\r\n 'calendarView':Calendar,\r\n 'calendarShared':CalendarShared,\r\n 'setting':Setting,\r\n 'confrontationView':Confrontation,\r\n 'changeApprovalPassword':ChangeApprovalPW,\r\n 'addRule': AddRule,\r\n 'reception' : Reception,\r\n 'multiAccount' : MultiAccount\r\n },\r\n \r\n computed: {\r\n ...mapGetters({\r\n modal: types.MODAL_CURRENT,\r\n }),\r\n },\r\n})\r\nexport default class PreferneceModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n modal!: appbase.TModalInfo\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n tmenues: MenuInfo[] = [];\r\n mchildren: MenuInfo[] = [];\r\n component: String = \"language\";\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('mchildren')\r\n changedMenues(){\r\n this.clickChildren(this.mchildren);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n changed(items:MenuInfo[]){\r\n this.tmenues = items;\r\n this.getChildrenMenues();\r\n }\r\n\r\n getChildrenMenues(){\r\n var isFirst:boolean = false;\r\n this.tmenues.find((menu)=>{\r\n if(menu.selected && menu.children){\r\n this.mchildren = menu.children;\r\n }\r\n });\r\n this.mchildren.forEach((c)=>{\r\n if(c.selected){\r\n return;\r\n }else{\r\n isFirst = true;\r\n }\r\n })\r\n if(isFirst){\r\n this.mchildren[0].selected = true;\r\n }\r\n }\r\n\r\n clickChildren(items:MenuInfo[]){\r\n const { to }:any = items.find((i)=>{\r\n if(i.selected){\r\n return i;\r\n }\r\n });\r\n if (to) {\r\n this.component = to.name;\r\n }\r\n }\r\n\r\n open(componentName:string){\r\n this.component = componentName;\r\n }\r\n\r\n cancel(){\r\n this.tmenues.forEach((m)=>{\r\n if(m.name==='일반'){\r\n m.selected = true;\r\n }else{\r\n m.selected = false;\r\n }\r\n if(m.children){\r\n m.children.forEach((c)=>{\r\n c.selected = false;\r\n })\r\n }\r\n });\r\n \r\n modalHelper.close();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n mounted() {\r\n this.tmenues = require('./menu').default;\r\n\r\n // 메일전용 사용자 계정은 결재 탭 보여지지 않게\r\n if (Boolean(this.modal.value.isMailOnly)) {\r\n var index = this.tmenues.findIndex(x =>x.name == this.$t('W_Approval').toString())\r\n\r\n if (index > -1)\r\n this.tmenues.splice(index, 1)\r\n }\r\n\r\n this.getChildrenMenues();\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PreferenceModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PreferenceModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PreferenceModal.vue?vue&type=template&id=f715c064&\"\nimport script from \"./PreferenceModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./PreferenceModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import api from '@/api'\r\nimport { FilterConditions } from '../types'\r\nexport default {\r\n //읽지않은 메일이 존재하는 폴더 리스트\r\n getHasUnreadMailFolder():Promise {\r\n return api.get({\r\n url: '/IsuMail/ISU_Folder/hasUnreadMail'\r\n })\r\n },\r\n\r\n //읽지않음 메일 리스트(메인화면)\r\n // getUnreadMailList(): Promise> {\r\n // return api\r\n // .post>({\r\n // url: '/api/ews/Dynamic/list?func=getUnreadMailList',\r\n // data: {\r\n // fields: [\r\n // { key: 'Id' },\r\n // { key: 'Subject' },\r\n // { key: 'IsDraft' }, // 'True' | 'False'\r\n // { key: 'IsRead' },\r\n // { key: 'Importance' },\r\n // { key: 'Preview' },\r\n // { key: 'From', format: 'Name' },\r\n // { key: 'From', format: 'Address', as: 'Address' },\r\n // {\r\n // key: 'DateTimeCreated',\r\n // format: 'yyyy-MM-dd',\r\n // as: 'Date',\r\n // },\r\n // {\r\n // key: 'DateTimeCreated',\r\n // format: 'tt h:mm',\r\n // as: 'Time',\r\n // },\r\n // { key: 'HasAttachments' },\r\n // { key: 'Categories' },\r\n // { key: 'ParentFolderId' },\r\n // { key: 'DisplayTo' },\r\n // ],\r\n // filters: [\r\n // {\r\n // key: 'IsRead',\r\n // value: 'false',\r\n // condition: FilterConditions.IsEqualTo,\r\n // },\r\n // ],\r\n // //pageSize: pageOption.size,\r\n // //offset: pageOption.offset,\r\n // type: 'EmailMessage',\r\n // } as mail.api.DynamicApiOptions,\r\n // })\r\n // .then((items) => {\r\n // items.items = items.items.map((item) => ({\r\n // ...item,\r\n // deleted: false,\r\n // }))\r\n // return items\r\n // })\r\n // },\r\n\r\n getUnreadMailList(parentId: string, size: number, offset: number): Promise> {\r\n return api\r\n .post>({\r\n url: '/api/ews/Dynamic/list?func=getUnreadMailList',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'Subject' },\r\n { key: 'IsDraft' }, // 'True' | 'False'\r\n { key: 'IsRead' },\r\n { key: 'Importance' },\r\n { key: 'Preview' },\r\n { key: 'From', format: 'Name' },\r\n { key: 'From', format: 'Address', as: 'Address' },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'yyyy-MM-dd',\r\n as: 'Date',\r\n },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'tt h:mm',\r\n as: 'Time',\r\n },\r\n { key: 'HasAttachments' },\r\n { key: 'Categories' },\r\n { key: 'ParentFolderId' },\r\n { key: 'DisplayTo' },\r\n ],\r\n filters: [\r\n {\r\n key: 'IsRead',\r\n value: 'false',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n ],\r\n pageSize: size,\r\n offset: offset,\r\n parentId: parentId,\r\n isIncludeChildSearch: true, //포함 여부 추가 2023-05-26\r\n type: 'EmailMessage',\r\n } as mail.api.DynamicApiOptions,\r\n })\r\n .then((items) => {\r\n items.items = items.items.map((item) => ({\r\n ...item,\r\n deleted: false,\r\n }))\r\n return items\r\n })\r\n },\r\n\r\n /**\r\n * 하나 이상의 아이템을 대상 폴더로 이동합니다.\r\n * @param ids 아이템 아이디 목록\r\n * @param destinationFolderId 대상 폴더 아이디\r\n */\r\n moveEmails(ids: string[], destinationFolderId: string): Promise {\r\n if (!ids || ids.length === 0) {\r\n console.error(`ARG_NULL_ERROR: ids is NULL or empty.`)\r\n }\r\n if (!destinationFolderId) {\r\n console.error(`ARG_NULL_ERROR: destinationFolderId is NULL or empty.`)\r\n }\r\n return api.post({\r\n url: '/api/ews/EmailMessage/move',\r\n data: {\r\n ids,\r\n destinationFolderId,\r\n },\r\n })\r\n },\r\n\r\n getFiles(code?: string): Promise {\r\n if (code) {\r\n return api.get({\r\n url: `/file/store/${code}`,\r\n });\r\n } else {\r\n return Promise.resolve([]);\r\n }\r\n },\r\n getSearchPagedList(data: any) : Promise>{\r\n return api\r\n .post>({\r\n url: '/api/ews/Dynamic/list?func=getPagedList',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'Subject' },\r\n { key: 'IsDraft' }, // 'True' | 'False'\r\n { key: 'IsRead' },\r\n { key: 'Importance' },\r\n { key: 'Preview' },\r\n { key: 'From', format: 'Name' },\r\n { key: 'From', format: 'Address', as: 'Address' },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'yyyy-MM-dd',\r\n as: 'Date',\r\n },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'tt h:mm',\r\n as: 'Time',\r\n },\r\n { key: 'HasAttachments' },\r\n { key: 'Categories' },\r\n { key: 'ParentFolderId' },\r\n { key: 'DisplayTo' },\r\n ...data.fields,\r\n ],\r\n filters: data.filters,\r\n parentId: data.parentId,\r\n pageSize: data.pageSize,\r\n offset: data.offset,\r\n sorts: data.sorts,\r\n isIncludeChildSearch: data.isIncludeChildSearch\r\n ,gubun: 'search'\r\n ,type: 'EmailMessage'\r\n\r\n } as mail.api.DynamicApiOptions\r\n })\r\n .then((items) => {\r\n //items.parentId = data.parentId\r\n items.items = items.items.map((item) => ({\r\n ...item,\r\n deleted: false,\r\n }))\r\n return items\r\n })\r\n }\r\n , getPagedList(data: any): Promise> {\r\n return api\r\n .post>({\r\n url: '/api/ews/Dynamic/list?func=getPagedList',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'Subject' },\r\n { key: 'IsDraft' }, // 'True' | 'False'\r\n { key: 'IsRead' },\r\n { key: 'Importance' },\r\n { key: 'Preview' },\r\n { key: 'From', format: 'Name' },\r\n { key: 'From', format: 'Address', as: 'Address' },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'yyyy-MM-dd',\r\n as: 'Date',\r\n },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'tt h:mm',\r\n as: 'Time',\r\n },\r\n { key: 'HasAttachments' },\r\n { key: 'Categories' },\r\n { key: 'ParentFolderId' },\r\n { key: 'DisplayTo' },\r\n ...data.fields,\r\n ],\r\n filters: data.filters,\r\n parentId: data.parentId,\r\n pageSize: data.pageSize,\r\n offset: data.offset,\r\n sorts: data.sorts,\r\n type: 'EmailMessage',\r\n } as mail.api.DynamicApiOptions,\r\n })\r\n .then((items) => {\r\n items.parentId = data.parentId\r\n items.items = items.items.map((item) => ({\r\n ...item,\r\n deleted: false,\r\n }))\r\n return items\r\n })\r\n },\r\n changeReadState(id: string, read: boolean): Promise {\r\n return api.post({\r\n url: '/api/ews/dynamic/set',\r\n data: {\r\n fields: [{ key: 'IsRead', value: read }],\r\n id: id,\r\n type: 'EmailMessage',\r\n } as mail.api.DynamicApiOptions,\r\n })\r\n },\r\n\r\n getAttachments(id: string): Promise {\r\n return api\r\n .post({\r\n url: '/api/ews/dynamic/get',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n {\r\n key: 'Attachments',\r\n format: 'obj:[id,name,contentType,size,contentId]',\r\n filters: [\r\n {\r\n key: 'isInline',\r\n value: false,\r\n operator: 'eq',\r\n },\r\n ],\r\n },\r\n ],\r\n itemId: id,\r\n type: 'EmailMessage',\r\n },\r\n })\r\n .then((res) => {\r\n return res.item.attachments\r\n })\r\n },\r\n\r\n deleteAttachments(id: string, fileIds: string[]): Promise {\r\n return api.delete({\r\n url: '/api/ews/attachment',\r\n data: {\r\n itemId: id,\r\n attachmentIds: fileIds,\r\n },\r\n })\r\n },\r\n /**\r\n * 읽음상태를 가져옵니다.\r\n *\r\n * @param {string} id 메시지 아이디\r\n * @returns {Promise} 읽음/읽지않음 상태\r\n */\r\n getReadState: function(id: string): Promise {\r\n if (!id) {\r\n throw new Error('ARGUMENT_NULL_EXCEPTION: {id}')\r\n }\r\n var data = {\r\n fields: [{ key: 'IsRead' }],\r\n itemId: id,\r\n type: 'EmailMessage',\r\n }\r\n return api\r\n .post({\r\n url: '/api/ews/Dynamic/get',\r\n data: data,\r\n })\r\n .then(function(res) {\r\n return res.item\r\n })\r\n .then(function(item) {\r\n return item.isRead === 'True'\r\n })\r\n },\r\n\r\n /**\r\n * 메시지 아이템을 복제 후 임시 폴더에 저장합니다.\r\n * @param id\r\n * @param method\r\n */\r\n temp(id: string, code: string, method: mail.EmailSendMethods): Promise {\r\n return api.post({\r\n url: '/api/ews/emailmessage/temp',\r\n data: {\r\n id,\r\n method,\r\n code,\r\n },\r\n })\r\n },\r\n getDetail(id: string): Promise {\r\n return api\r\n .post({\r\n url: '/api/ews/dynamic/get',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'Subject' },\r\n { key: 'IsDraft' },\r\n { key: 'Categories' },\r\n { key: 'IsRead' },\r\n { key: 'Importance' },\r\n { key: 'AllowedResponseActions', as: 'actions' },\r\n { key: 'USER_OFFLINE_KEY' },\r\n { key: 'DateTimeCreated', format: 'yyyy-MM-dd' },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'yyyy-MM-dd',\r\n as: 'Date',\r\n },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'tt h:mm',\r\n as: 'Time',\r\n },\r\n { key: 'From', format: 'obj:[name,address]' },\r\n {\r\n key: 'ToRecipients',\r\n format: 'obj:[name,address]',\r\n as: 'to',\r\n },\r\n {\r\n key: 'CcRecipients',\r\n format: 'obj:[name,address]',\r\n as: 'cc',\r\n },\r\n {\r\n key: 'BccRecipients',\r\n format: 'obj:[name,address]',\r\n as: 'bcc',\r\n },\r\n {\r\n key: 'PidTagLastVerbExecuted',\r\n as: 'lastVerb',\r\n },\r\n {\r\n key: 'PidTagLastVerbExecutionTime',\r\n as: 'lastVerbTime',\r\n },\r\n {\r\n key: 'Attachments',\r\n format: 'obj:[id,name,contentType,size,contentId]',\r\n filters: [\r\n {\r\n key: 'isInline',\r\n value: false,\r\n operator: 'eq',\r\n },\r\n ],\r\n },\r\n ],\r\n itemId: id,\r\n type: 'EmailMessage',\r\n },\r\n })\r\n .then((res) => {\r\n return res.item\r\n })\r\n },\r\n\r\n getBody(id: string) {\r\n if (!id) {\r\n throw new Error('ARGUMENT_NULL_EXCEPTION: {id}')\r\n }\r\n return api\r\n .get({\r\n url: '/api/ews/body/chunk',\r\n params: {\r\n itemId: id,\r\n },\r\n })\r\n .then((results) => {\r\n return results.map((chunk) => {\r\n var decodeBase64 = atob(chunk)\r\n var html = decodeURIComponent(decodeBase64)\r\n return html\r\n })\r\n })\r\n .then(function(htmls) {\r\n return htmls.join('')\r\n })\r\n },\r\n\r\n setCategories(id: string, categories: string[]): Promise {\r\n var data = {\r\n fields: [\r\n {\r\n key: 'Categories',\r\n value: categories,\r\n },\r\n ],\r\n id: id,\r\n type: 'EmailMessage',\r\n }\r\n\r\n return api.post({\r\n url: '/api/ews/dynamic/set',\r\n data,\r\n })\r\n },\r\n // delete(id: string): Promise {\r\n // return api.delete({\r\n // url: '/api/ews/emailMessage',\r\n // data: [id],\r\n // });\r\n // },\r\n delete(options: mail.api.DeleteRequestData): Promise {\r\n // return api.delete({\r\n // url: '/api/ews/emailMessage',\r\n // data: options,\r\n // });\r\n return api.post({\r\n url: '/api/ews/emailMessage/delete',\r\n data: options,\r\n })\r\n },\r\n\r\n send(email: mail.EmailSendRequest) {\r\n if (!email) {\r\n throw new Error('ARGUMENT_NULL_EXCEPTION: {email}')\r\n }\r\n return api.post({\r\n url: '/api/ews/EmailMessage',\r\n data: email,\r\n })\r\n },\r\n\r\n getListItem(id: string): Promise {\r\n return api\r\n .post({\r\n url: '/api/ews/dynamic/get',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n {\r\n key: 'From',\r\n format: 'obj:[name,address]',\r\n as: 'from',\r\n },\r\n { key: 'Subject' },\r\n { key: 'IsDraft' }, // 'True' | 'False'\r\n { key: 'IsRead' },\r\n { key: 'Importance' },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'yyyy-MM-dd',\r\n as: 'Date',\r\n },\r\n {\r\n key: 'DateTimeCreated',\r\n format: 'tt h:mm',\r\n as: 'Time',\r\n },\r\n { key: 'HasAttachments' },\r\n { key: 'Categories' },\r\n { key: 'ParentFolderId' },\r\n { key: 'DisplayTo' },\r\n ],\r\n itemId: id,\r\n type: 'EmailMessage',\r\n },\r\n })\r\n .then((res) => {\r\n return res.item\r\n })\r\n },\r\n //문서복호화 파일 저장\r\n createExportEmailFile(itemId: string, attachmentID: string, cid: string): Promise{\r\n return api.get({\r\n url: '/isuMailEws/ISU_Attachment/download',\r\n params: {\r\n itemId: itemId,\r\n attachmentID: attachmentID,\r\n cid: cid\r\n }\r\n })\r\n },\r\n //복호화 파일\r\n getArticleFile(jobId: string): Promise {\r\n return api.get({\r\n url: '/File/ISU_File/export',\r\n params: {\r\n jobId: jobId\r\n }\r\n })\r\n },\r\n}\r\n","import api from '@/api'\r\nimport {\r\n FilterComparisonModes,\r\n FilterConditions,\r\n FilterContainmentModes,\r\n WellKnownFolderName,\r\n} from '../types'\r\nexport default {\r\n //읽지않은 메일이 존재하는 폴더 리스트\r\n getHasUnreadMailFolder():Promise {\r\n return api.get({\r\n url: '/IsuMail/ISU_Folder/hasUnreadMail'\r\n })\r\n },\r\n \r\n getUnreadCount(): Promise {\r\n return api.get({\r\n url: '/api/ews/folder/unread',\r\n params: { folder: 'Inbox' },\r\n })\r\n },\r\n\r\n getFolderTree(parentId?: string): Promise> {\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'DisplayName', as: 'name' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'PR_ATTR_HIDDEN' },\r\n { key: 'UnreadCount' },\r\n { key: 'TotalCount' },\r\n { key: 'ParentFolderId' },\r\n { key: 'USER_IS_FAVORITE', as: 'isFavorite' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Note',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n {\r\n key: 'PR_ATTR_HIDDEN',\r\n value: 'false',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n ],\r\n parentId: parentId || null, // 최초 로드시 기본 목록을 가져오기 위해 null 상태임\r\n wellKnownParentName: WellKnownFolderName.MsgFolderRoot, // parentId가 null이 아닌 경우 이 값은 무시됨. 기본 폴더 목록 가져오기 위함.\r\n type: 'Folder',\r\n }\r\n\r\n return api\r\n .post>({\r\n url: '/api/ews/Dynamic/list',\r\n data: data,\r\n })\r\n .then((res) => {\r\n var newData = {\r\n ...res,\r\n items: res.items\r\n .filter((x) => {\r\n return x.wellKnownFolderName !== 'syncissues'\r\n })\r\n .map(\r\n (item) =>\r\n ({\r\n ...item,\r\n type: 'Folder',\r\n children: null,\r\n hasChildren: item.childFolderCount > 0,\r\n } as mail.MailboxFolder)\r\n ),\r\n }\r\n return newData\r\n })\r\n },\r\n\r\n getFolder(id: string): Promise {\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'DisplayName', as: 'name' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'UnreadCount' },\r\n { key: 'ParentFolderId' },\r\n { key: 'USER_IS_FAVORITE', as: 'isFavorite' },\r\n ],\r\n itemId: id,\r\n type: 'Folder',\r\n }\r\n return api\r\n .post({\r\n url: '/api/ews/dynamic/get',\r\n data: data,\r\n })\r\n .then((res: any) => res.item)\r\n },\r\n\r\n getSubFolderTree(\r\n parentId?: string\r\n ): Promise> {\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'DisplayName', as: 'name' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'PR_ATTR_HIDDEN' },\r\n { key: 'UnreadCount' },\r\n { key: 'ParentFolderId' },\r\n { key: 'USER_IS_FAVORITE', as: 'isFavorite' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Note',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n {\r\n key: 'PR_ATTR_HIDDEN',\r\n value: 'false',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n ],\r\n parentId: parentId || null, // 최초 로드시 기본 목록을 가져오기 위해 null 상태임\r\n // wellKnownParentName: WellKnownFolderName.MsgFolderRoot, // parentId가 null이 아닌 경우 이 값은 무시됨. 기본 폴더 목록 가져오기 위함.\r\n type: 'Folder',\r\n }\r\n\r\n return api\r\n .post>({\r\n url: '/api/ews/Dynamic/list',\r\n data: data,\r\n })\r\n .then((res) => {\r\n var newData = {\r\n ...res,\r\n items: res.items.map(\r\n (item) =>\r\n ({\r\n ...item,\r\n type: 'Folder',\r\n children: null,\r\n hasChildren: item.childFolderCount > 0,\r\n } as mail.MailboxFolder)\r\n ),\r\n }\r\n return newData\r\n })\r\n },\r\n /**\r\n * Set favorite status\r\n * @param options\r\n */\r\n setFavorite: function(options: mail.Favorite): Promise {\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: [{ key: 'USER_IS_FAVORITE', value: options.isFavorite }],\r\n id: options.id,\r\n type: 'Folder',\r\n }\r\n return api.post({\r\n url: '/api/ews/dynamic/set',\r\n data: data,\r\n })\r\n },\r\n /**\r\n * 하나 이상의 폴더를 대상 폴더로 이동합니다.\r\n * @param ids 폴더 아이디\r\n * @param destinationFolderId 대상 폴더 아이디\r\n */\r\n moveFolders(ids: string[], destinationFolderId: string): Promise {\r\n if (!ids || ids.length === 0) {\r\n console.error(`ARG_NULL_ERROR: ids is NULL or empty.`)\r\n }\r\n if (!destinationFolderId) {\r\n console.error(`ARG_NULL_ERROR: destinationFolderId is NULL or empty.`)\r\n }\r\n return api.post({\r\n url: '/api/ews/Folder/move',\r\n data: {\r\n ids,\r\n destinationFolderId,\r\n },\r\n })\r\n },\r\n}\r\n","import api from '@/api';\r\n\r\nexport default {\r\n getFavorites(): Promise> {\r\n return api.get>({\r\n url: '/api/ews/favorite',\r\n })\r\n .then((items) => {\r\n return (\r\n items\r\n // 삼호에서는 범주는 제외하고 폴더만 가져옴\r\n .filter((x) => x.type === 'Folder')\r\n )\r\n })\r\n },\r\n};\r\n","import mail from './mail'\r\nimport folder from './folder'\r\nimport favorite from './favorite'\r\n\r\nexport default {\r\n mail,\r\n folder,\r\n favorite\r\n}","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WriteBody.vue?vue&type=style&index=0&id=d4050fe4&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecipientFields.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.busy),expression:\"busy\"}],staticClass:\"lds-wrap\"},[_c('div',{staticClass:\"lds-ellipsis\"},[_c('div'),_c('div'),_c('div'),_c('div')]),_c('p',[_vm._v(_vm._s(_vm.progressMessge))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Watch, Prop, PropSync } from 'vue-property-decorator';\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex';\r\n\r\n//types\r\n\r\n//components\r\n// import ComponentName from './ComponentName.vue';\r\n\r\n@Component({\r\n components: { \r\n },\r\n computed:{\r\n ...mapGetters({\r\n\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n\r\n }),\r\n ...mapMutations({\r\n\r\n })\r\n }, \r\n})\r\nexport default class ProgressRing extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n \r\n @Prop({type: Boolean, default: false }) busy !: boolean;\r\n @Prop({type: String, default: '조회중 입니다.' }) progressMessge !: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: S E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y L E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n\r\n }\r\n\r\n created() {\r\n\r\n }\r\n} ","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./ProgressRing.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./ProgressRing.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProgressRing.vue?vue&type=template&id=7f2bc7d7&\"\nimport script from \"./ProgressRing.ts?vue&type=script&lang=ts&\"\nexport * from \"./ProgressRing.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ProgressRing.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./BaseLayout.scss?vue&type=style&index=0&lang=scss&\"","export default (function() {\r\n return {\r\n set(key: string, value: any) {\r\n if (!this.isSupported()) {\r\n return\r\n }\r\n\r\n localStorage.setItem(key, JSON.stringify(value))\r\n },\r\n\r\n get(key: string) {\r\n if (!this.isSupported()) {\r\n return\r\n }\r\n\r\n const value = localStorage.getItem(key)\r\n //console.log(key, value)\r\n return value ? JSON.parse(value) : null\r\n },\r\n\r\n remove(key: string) {\r\n if (!this.isSupported()) {\r\n return\r\n }\r\n\r\n localStorage.removeItem(key)\r\n },\r\n\r\n isSupported() {\r\n return typeof Storage !== 'undefined'\r\n },\r\n }\r\n})()\r\n","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WriteForm from '@calendar/components/Write/WriteForm.vue'\r\nimport { AlarmModal, StartDateModal, EndDateModal, FolderModal, MeetingRoomModal, StartTimeModal, EndTimeModal } from '../components/Modals'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport api from '@calendar/api'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as orgTypes from '@orgmap/store/types'\r\nimport { createEventBus, removeEventBus } from '@/util'\r\n\r\n@Component({\r\n components: { \r\n WriteForm,\r\n AlarmModal,\r\n StartDateModal,\r\n EndDateModal, \r\n FolderModal, \r\n MeetingRoomModal, \r\n StartTimeModal,\r\n EndTimeModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n errorMessage: types.COMMON_ERROR_MESSAGE,\r\n currentItem: types.CURRENT_CALENDAR_ITEM,\r\n currentRecurring: types.CALENDAR_CURRENT_RECURRING\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n add: types.CALENDAR_EVENT_ADD,\r\n }),\r\n ...mapMutations({\r\n addCalendar: types.CALENDAR_EVENT_ADD,\r\n messageClear: types.COMMON_ERROR_CLEAR,\r\n setErrorMessage: types.COMMON_ERROR_MESSAGE,\r\n userListClear: orgTypes.ORG_USER_SELECT_CLEAR\r\n }),\r\n },\r\n})\r\nexport default class WriteContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n errorMessage!: string\r\n currentItem!: calendar.CalendarItem\r\n currentRecurring!: calendar.CalendarItemRecurrence\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n add!: () => Promise\r\n \r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n addCalendar!: (value: calendar.CalendarItemContainer) => void\r\n messageClear!: () => void\r\n setErrorMessage!: (value: string) => void\r\n userListClear!: () => void\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n email: mail.WriteEmailData = ({\r\n subject: '',\r\n to: [],\r\n cc: [],\r\n bcc: [],\r\n body: '',\r\n attachments: '',\r\n isBigfile: false,\r\n code: '',\r\n codeValues: [],\r\n importance: 'Normal',\r\n security: 'Normal',\r\n whenToSend: '',\r\n } as unknown) as mail.WriteEmailData\r\n\r\n item: calendar.CalendarItem = {\r\n parentId: '',\r\n hasAttachments: false,\r\n body: '',\r\n location: '',\r\n subject: '',\r\n status: 'S0',\r\n appointmentType: 'Single',\r\n pidLidRecurrenceType: 1,\r\n ui_resourceArray: [] as Array,\r\n resourceId: null,\r\n resources: [] as Array,\r\n recurrence: {} as calendar.CalendarItemRecurrence,\r\n code: '',\r\n codeValues: [] as string[],\r\n importance: 'Normal',\r\n isCancelled: false,\r\n isRecurring: false,\r\n isAllDayEvent: false,\r\n isAllowUpdate: true,\r\n start: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n end: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n starttime: '',\r\n endtime: '',\r\n requiredAttendees: [] as any,\r\n optionalAttendees: [] as any,\r\n isReadyData: false,\r\n reminderMinutesBeforeStart: 15,\r\n } as calendar.CalendarItem\r\n\r\n folderName: string = ''\r\n\r\n showStartDateModal: boolean = false\r\n showEndDateModal: boolean = false\r\n showStartTimeModal: boolean = false\r\n showEndTimeModal: boolean = false\r\n showMeetingRoomModal: boolean = false\r\n showFolderModal: boolean = false\r\n showAlarmModal: boolean = false\r\n\r\n // 회의실 자원예약\r\n selectConference: any | null = null\r\n addCalendarId: string = '' // 추가된 일정 ID 값\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //유효성검사 오류메세지 출력\r\n @Watch('errorMessage')\r\n async onErrorMessageChanged(value: string) {\r\n if (value) {\r\n await(window as any).alertAsync(value)\r\n this.setErrorMessage('')\r\n }\r\n }\r\n\r\n setStartTime(time: string) {\r\n this.item.starttime = time\r\n this.showStartTimeModal = false\r\n }\r\n\r\n setEndTime(time: string) {\r\n this.item.endtime = time\r\n this.showEndTimeModal = false\r\n }\r\n\r\n setFolder(folder: any) {\r\n this.item.parentId = folder.id\r\n this.folderName = folder.displayName\r\n this.showFolderModal = false\r\n }\r\n\r\n setMeetingRoom(room: any) {\r\n //this.item.resources = [{name: room.text, address: room.value}];\r\n //this.item.location = room.text\r\n this.selectConference = room\r\n }\r\n\r\n setReminder(number: number) {\r\n this.item.reminderMinutesBeforeStart = number;\r\n this.showAlarmModal = false;\r\n }\r\n\r\n showModal(value: string) {\r\n eval('this.$data.' + value + ' = true')\r\n }\r\n\r\n //참석자 태그\r\n convertTagToRec(list?: any[]) {\r\n return (\r\n list?.map((r) => ({\r\n name: r.text,\r\n address: r.value,\r\n deptName: r.displayDeptName,\r\n personCode: r.personCode,\r\n })) || []\r\n )\r\n }\r\n\r\n async save() {\r\n if (!this.item.parentId) {\r\n await(window as any).alertAsync(this.$t('M_Mail_PleaseSelectFolder').toString())\r\n return false\r\n }\r\n const invoke = async () => {\r\n const newItem = {\r\n ...this.item,\r\n } as calendar.CalendarItem\r\n newItem.recurrence = this.item.recurrence\r\n // 저장할 때 DateFormat 오류 나서 추가\r\n newItem.start = newItem.start.split('T')[0]\r\n newItem.end = newItem.end.split('T')[0]\r\n \r\n if ((window as any).currentEditor) {\r\n newItem.body = (window as any).currentEditor.getContent()\r\n }\r\n \r\n if (newItem) {\r\n if (\r\n !newItem.isEWS &&\r\n newItem.appointmentType != 'Occurrence' &&\r\n newItem.appointmentType != 'Exception' &&\r\n newItem.recurrence.ui_useRecurring\r\n ) {\r\n newItem.appointmentType = 'RecurringMaster'\r\n }\r\n \r\n if (newItem.isAllDayEvent) {\r\n newItem.starttime = '00:00:00'\r\n newItem.endtime = '00:00:00'\r\n \r\n // '하루종일' 체크했을 때 만약 start와 end날짜가 같다면 end날짜를 +1시켜준다\r\n let eDate = dateutil.IEDate(newItem.end)\r\n eDate.setDate(eDate.getDate() + 1)\r\n // this.item.end = eDate.toISOString().slice(0, 10)\r\n newItem.end = dateutil.uGetDateFormat('yyyy-MM-DD', eDate)\r\n }\r\n \r\n newItem.organizer = {\r\n name: this.User.displayName,\r\n address: this.User.email,\r\n }\r\n ;(newItem as any).personCode = this.User.personCode\r\n \r\n if (isNaN(Number(newItem.parentId))) {\r\n newItem.isEWS = true\r\n }\r\n \r\n if (newItem.recurrence && newItem.recurrence.startDate) {\r\n newItem.recurrence.startDate = dateutil.DateAndTimeSplitor(\r\n newItem.recurrence.startDate\r\n )[0]\r\n }\r\n \r\n if (newItem.recurrence && newItem.recurrence.endDate) {\r\n newItem.recurrence.endDate = dateutil.DateAndTimeSplitor(newItem.recurrence.endDate)[0]\r\n }\r\n \r\n // newItem.requiredAttendees = this.convertTagToRec(newItem.requiredAttendees);\r\n // newItem.optionalAttendees = this.convertTagToRec(newItem.optionalAttendees);\r\n \r\n newItem.requiredAttendees = this.convertTagToRec(this.email.to)\r\n newItem.optionalAttendees = this.convertTagToRec(this.email.cc)\r\n\r\n // 회의실 예약하는 경우 유효성 체크 -> 일정 등록 -> 자원예약 등록\r\n if (this.selectConference) {\r\n\r\n if (newItem.recurrence.ui_useRecurring) {\r\n await(window as any).alertAsync( this.$t(\"회의실_예약시에는_반복일정을_사용할_수_없습니다\").toString())\r\n \r\n return false\r\n }\r\n\r\n if (newItem.requiredAttendees.length == 0) {\r\n await(window as any).alertAsync( this.$t(\"필수_참석자는_1명이상_지정되어야_합니다\").toString())\r\n \r\n return false\r\n }\r\n\r\n let startDate = newItem.start.split('T')[0]\r\n let startTime = newItem.starttime\r\n let endDate = newItem.end.split('T')[0]\r\n let endTime = newItem.endtime\r\n\r\n //종일인경우 체크해야됨\r\n if (newItem.isAllDayEvent == true) {\r\n //종일 옵션이 체크된 경우 값 변경 해야됨\r\n //시작시작은 00:00:00 으로 \r\n //종료시간은 23:59:59 로\r\n startTime = \"00:00:00\"\r\n endDate = startDate\r\n endTime = \"23:59:59\"\r\n }\r\n\r\n api.db_resourceReserve.validationReserveRequestIncludeWait({\r\n reserveRequestId: null,//this.requestInfo?.reserveRequestId,\r\n reserveResourceId: this.selectConference?.resourceId,\r\n startDatetime: new Date(`${startDate}T${startTime}`),\r\n endDatetime: new Date(`${endDate}T${endTime}`),\r\n recurringOption: null//recurringOption ? recurringOption : null\r\n }).then(async result => {\r\n if (result == false) {\r\n await(window as any).alertAsync('선택하신 시간에는 이미 예약되어 있습니다.')\r\n return false\r\n } else {\r\n this.addCalendar({ item: newItem })\r\n this.add().then((res) => {\r\n if (res) {\r\n //this.$router.push({ path: '/calendar/main' })\r\n this.reserveSave()\r\n }\r\n })\r\n }\r\n })\r\n } else {\r\n this.addCalendar({ item: newItem })\r\n return this.add().then((res) => {\r\n if (res) {\r\n this.$router.push({ path: '/calendar/main' })\r\n }\r\n })\r\n }\r\n }\r\n }\r\n \r\n //this.loading(true)\r\n try {\r\n await invoke()\r\n this.userListClear()\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n //this.loading(false)\r\n }\r\n\r\n // 회의실 예약\r\n reserveSave() {\r\n // //에디터 content 입력\r\n // this.reserveContent = this.item.body\r\n // let options = this.currentReccuringOption\r\n // debugger\r\n // return\r\n // //예약 시작 유효청 체크\r\n // //시작일시는 종료일시보다 크거나 같을 수 없음\r\n // if (this.valueValidation() == false) {\r\n // this.contentLoaded = true\r\n // return\r\n // }\r\n\r\n const newItem = {\r\n ...this.item,\r\n } as calendar.CalendarItem\r\n\r\n let startDate = newItem.start.split('T')[0]\r\n let startTime = newItem.starttime\r\n let endDate = newItem.end.split('T')[0]\r\n let endTime = newItem.endtime\r\n\r\n // let isRecursive = false\r\n // let recurringOption: reservedb.RequestRequestOption | null = null\r\n // //반복설정 \r\n // //반복설정이 된 경우\r\n // if (this.currentReccuringOption != null) {\r\n\r\n // isRecursive = true\r\n\r\n // //weekArray 가 타입이 다름 \r\n // //database 에 row 로 입력되기 때문에 sperator(\",\") 추가해서 입력해야됨\r\n // //string[] 로 변경해서 전달\r\n // let weekArray = \"\"\r\n // if (this.currentReccuringOption.daysOfTheWeekArray &&\r\n // this.currentReccuringOption.daysOfTheWeekArray.length > 0) {\r\n // const lastItem = this.currentReccuringOption.daysOfTheWeekArray[this.currentReccuringOption.daysOfTheWeekArray.length - 1]\r\n // this.currentReccuringOption.daysOfTheWeekArray.forEach(week => {\r\n\r\n // //마지막 아이템인 경우 , sperator 생략\r\n // weekArray += week.toString() + (week == lastItem ? \"\" : \",\")\r\n // })\r\n // }\r\n\r\n // recurringOption = {\r\n // recuringType: this.currentReccuringOption.ui_recurringType,\r\n // recuringEndType: parseInt(this.currentReccuringOption.ui_endType),\r\n // recuringStartDate: this.currentReccuringOption.startDate,\r\n // recuringEndDate: this.currentReccuringOption.endDate,\r\n // recuringInterval: this.currentReccuringOption.interval,\r\n // recuringCount: this.currentReccuringOption.numberOfOccurrences,\r\n // recuringDayOfMonth: this.currentReccuringOption.dayOfMonth,\r\n // recuringDayOfWeekArray: weekArray,\r\n // recuringMonth: this.currentReccuringOption.monthValue\r\n // }\r\n\r\n // }\r\n\r\n //종일인경우 체크해야됨\r\n if (newItem.isAllDayEvent == true) {\r\n //종일 옵션이 체크된 경우 값 변경 해야됨\r\n //시작시작은 00:00:00 으로 \r\n //종료시간은 23:59:59 로\r\n startTime = \"00:00:00\"\r\n endDate = startDate\r\n endTime = \"23:59:59\"\r\n }\r\n\r\n var requiredAttendees = this.convertTagToRec(this.email.to)\r\n var optionalAttendees = this.convertTagToRec(this.email.cc)\r\n\r\n console.log('requiredAttendees', requiredAttendees)\r\n\r\n let requestTargets = requiredAttendees.map((item: any) => {\r\n let isDepartment = false\r\n if (item.name == item.deptName) isDepartment = true\r\n\r\n return {\r\n personCode: item.personCode,\r\n isOptional: false,\r\n isDepartment: isDepartment\r\n }\r\n })\r\n\r\n let requestOptionalTargets = optionalAttendees.map((item: any) => {\r\n let isDepartment = false\r\n if (item.name == item.deptName) isDepartment = true\r\n\r\n return {\r\n personCode: item.personCode,\r\n isOptional: true,\r\n isDepartment: isDepartment\r\n }\r\n })\r\n\r\n const resName = this.selectConference?.displayName\r\n\r\n let inputData = {\r\n recursiveDescription: null,//this.recurrenceDesc + \"\\n\" + this.recurrenceIntervalDesc,\r\n reserveResourceId: this.selectConference?.resourceId,\r\n title: this.item.subject,\r\n body: this.item.body,\r\n fileCode: this.item.hasAttachments ? this.item.code : '', //this.files.length > 0 ? this.uploaderConfig.code : \"\",\r\n isRecursive: false, //this.item.isRecurring,\r\n startDate: startDate,\r\n startTime: startTime,\r\n endDate: endDate,\r\n endTime: endTime,\r\n requestPersonCode: this.User.personCode,\r\n isCancel: false,\r\n approvalStatus: 0,\r\n option: null, //recurringOption,\r\n targets: [...requestTargets, ...requestOptionalTargets],\r\n resourceName : resName\r\n } as any\r\n\r\n // //업데이트의 경우 requestId 추가\r\n // if (this.requestInfo != null) {\r\n // if (this.requestInfo.reserveRequestId) {\r\n // inputData.reserveRequestId = this.requestInfo.reserveRequestId\r\n // }\r\n\r\n // //반복일정 중 단건 처리 시 필요 param\r\n // var openQueryVal = this.$route.query.open\r\n // if (this.requestInfo.isRecursive == true && this.isOccurrence == true) {\r\n // inputData.bookingId = parseInt(this.$route.query.bookingId)\r\n // inputData.isOccurrence = true\r\n // }\r\n\r\n // }\r\n\r\n api.db_resourceReserve.createReserveRequest(inputData).then(result => {\r\n var requestId = result\r\n console.log('result', result)\r\n if (requestId > 0) {\r\n\r\n var data = {\r\n reserveRequestId: requestId,\r\n reserveResourceId: this.selectConference?.resourceId,\r\n calendarItemId: this.addCalendarId\r\n }\r\n api.db_resourceReserve.createReserveRequestCalendarMap(data).then(async result => {\r\n if (result) {\r\n let msg = this.$t(\"자원예약이_등록되었습니다\").toString()\r\n \r\n if (this.selectConference?.useApproval) {\r\n //결재 사용 자원인경우 등록 할 때 메세지 추가 처리\r\n \r\n msg += `\\n${this.$t(\"자원예약_승인_이후에_자원이_예약됩니다\").toString()}`\r\n }\r\n await(window as any).alertAsync(msg)\r\n } else {\r\n await(window as any).alertAsync( this.$t(\"자원예약_등록이_실패하였습니다\").toString())\r\n }\r\n\r\n this.$router.push({ path: '/calendar/main' })\r\n })\r\n }\r\n }).finally(() => {\r\n \r\n })\r\n\r\n }\r\n\r\n load() {\r\n let calcDate = new Date()\r\n calcDate.setMinutes(calcDate.getMinutes() + 30)\r\n let event: calendar.CalendarItem = {\r\n start: dateutil.uGetDateFormat('yyyy-MM-DDTH:00:00', calcDate),\r\n end: dateutil.uGetDateFormat('yyyy-MM-DDTH:30:00', calcDate),\r\n isAllDayEvent: false,\r\n //parentId: this.currentFolder?.id,\r\n // isEWS: this.currentFolder ? this.currentFolder.isEWS : true,\r\n } as calendar.CalendarItem\r\n\r\n let _target = 'MY'//this.target || this.$route.query.target\r\n let _pitem = event\r\n\r\n let citem = {} as calendar.CalendarItem\r\n\r\n Object.assign(citem, this.item)\r\n\r\n if (_pitem) {\r\n let obj: calendar.CalendarItem = _pitem\r\n citem = {\r\n ...citem,\r\n ...obj,\r\n } as calendar.CalendarItem\r\n }\r\n\r\n // if (this.$route.query.fid) {\r\n // citem.parentId = this.replaceAll(this.$route.query.fid as string, ' ', '+')\r\n // }\r\n\r\n if (citem.start && (citem.start.indexOf(' ') != -1 || citem.start.indexOf('T') != -1)) {\r\n citem.starttime = dateutil.DateAndTimeSplitor(citem.start)[1]\r\n }\r\n\r\n if (citem.end && (citem.end.indexOf(' ') != -1 || citem.end.indexOf('T') != -1)) {\r\n citem.endtime = dateutil.DateAndTimeSplitor(citem.end)[1]\r\n }\r\n\r\n if (typeof citem.isAllDayEvent === 'string') {\r\n citem.isAllDayEvent = (citem.isAllDayEvent as any) === 'True' ? true : false\r\n // 하루종일 일정일 경우 end에서 하루를 빼줘야 함\r\n if (citem.isAllDayEvent) {\r\n let eDate = dateutil.IEDate(citem.end)\r\n eDate.setDate(eDate.getDate() - 1)\r\n citem.end = dateutil.uGetDateFormat('yyyy-MM-DD', eDate)\r\n }\r\n }\r\n citem.recurrence.startDate = citem.start + ''\r\n citem.recurrence.endDate = dateutil.uGetDateFormat(\r\n 'yyyy-MM-DD',\r\n dateutil.uGetDate(90, dateutil.IEDate(citem.start))\r\n )\r\n\r\n switch (citem.appointmentType) {\r\n case 'Single':\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = false\r\n citem.recurrence.ui_useRecurring = false\r\n break\r\n case 'RecurringMaster':\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = false\r\n citem.recurrence.ui_useRecurringDisplay = true\r\n citem.recurrence.ui_useRecurring = true\r\n break\r\n case 'Occurrence':\r\n case 'Exception':\r\n citem.recurrence.ui_useRecurringButton = false\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = true\r\n citem.recurrence.ui_useRecurring = true\r\n break\r\n defualt: citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = false\r\n citem.recurrence.ui_useRecurring = false\r\n break\r\n }\r\n\r\n this.item = {\r\n ...this.item,\r\n ...citem,\r\n }\r\n\r\n const uid = `uid-${Date.now()}`\r\n this.item.code = `CALENDAR_${this.User.id}_${uid}`\r\n this.item.codeValues = [this.User.comCode, 'Calendar', this.User.email, uid]\r\n\r\n //this.target -> _target으로 수정함\r\n if (_target == 'MY' || _target == 'SHARE') {\r\n api.ews_resource.getRooms().then((res: Array) => {\r\n this.item.ui_resourceArray = [\r\n { text: 'None', value: null },\r\n ...res\r\n .filter((x) => x.depth == 1)\r\n .map((x) => {\r\n return { text: x.name, value: x.address }\r\n }),\r\n ]\r\n this.item.isReadyData = true\r\n //this.loading(false)\r\n })\r\n } else {\r\n api.db_resource.getFindCalendarResource({ Type: 'RM' }).then((res) => {\r\n this.item.ui_resourceArray = [\r\n { text: 'None', value: null },\r\n ...res.map((x) => {\r\n return { text: x.displayName, value: x.id }\r\n }),\r\n ]\r\n this.item.isReadyData = true\r\n //this.loading(false)\r\n })\r\n }\r\n \r\n if(this.$route.query.pvalue) {\r\n let _occitem = this.$route.query.pvalue as string;\r\n \r\n if(_occitem){\r\n this.item = JSON.parse(decodeURIComponent(_occitem)) as calendar.CalendarItem;\r\n }\r\n }\r\n }\r\n\r\n cancel() {\r\n this.userListClear()\r\n this.$router.push({ path: '/calendar/main' })\r\n }\r\n\r\n getAddCalendarId(id: string) {\r\n this.addCalendarId = id\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, 'calendar-close', this.cancel)\r\n createEventBus(window, 'calendar-add-result', this.getAddCalendarId)\r\n\r\n this.item.start = dateutil.DateAndTimeSplitor(this.item.start)[0]\r\n this.item.end = dateutil.DateAndTimeSplitor(this.item.end)[0]\r\n\r\n this.load()\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'calendar-close', this.cancel)\r\n removeEventBus(window, 'calendar-add-result', this.getAddCalendarId)\r\n }\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorProxy.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GnbSiteMap.vue?vue&type=style&index=0&lang=css&\"","const path = '$mail';\r\n\r\nexport const EMAIL_CURRENT = `${path}/email/current`;\r\nexport const EMAIL_SELECT = `${path}/emailSelect`;\r\nexport const EMAIL_SELECT_ALL = `${path}/email/select/all`\r\nexport const EMAIL_SELECT_CLEAR = `${path}/email/select/clear`\r\nexport const EMAIL_DETAIL = `${path}/email/detail`;\r\nexport const FOLDER_LOAD = `${path}/folders/load`;\r\nexport const FOLDER_LIST = `${path}/folders/list`;","/**\r\n * A function that emits a side effect and does not return anything.\r\n */\r\nexport type DebounceProcedure = (...args: any[]) => void;\r\n\r\nexport type DebounceOptions = {\r\n isImmediate: boolean;\r\n};\r\n\r\nexport function debounce(\r\n func: F,\r\n waitMilliseconds = 50,\r\n options: DebounceOptions = {\r\n isImmediate: false,\r\n }\r\n): (this: ThisParameterType, ...args: Parameters) => void {\r\n let timeoutId: ReturnType | undefined;\r\n\r\n return function(this: ThisParameterType, ...args: Parameters) {\r\n const context = this;\r\n\r\n const doLater = function() {\r\n timeoutId = undefined;\r\n if (!options.isImmediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n\r\n const shouldCallNow = options.isImmediate && timeoutId === undefined;\r\n\r\n if (timeoutId !== undefined) {\r\n clearTimeout(timeoutId);\r\n }\r\n\r\n timeoutId = setTimeout(doLater, waitMilliseconds);\r\n\r\n if (shouldCallNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n}\r\n","import accountApi from \"@account/api\";\r\nimport { debounce } from \"./debounce\";\r\nimport { invalidateUrl } from \"./invalidate-url\";\r\ninterface CacheData {\r\n [key: string]: TValue;\r\n}\r\n\r\ninterface ICacheManager {\r\n data: CacheData;\r\n get: (key: string) => Promise;\r\n set: (key: string, value: TValue) => void;\r\n}\r\n\r\nabstract class CacheManagerBase implements ICacheManager {\r\n constructor() {\r\n this.debounceFunction = debounce(this.set);\r\n }\r\n\r\n data: CacheData = Object.create(null);\r\n\r\n abstract get(key: string): Promise;\r\n\r\n set(key: string, value: TValue) {\r\n this.data[key] = value;\r\n }\r\n\r\n debounceFunction!: (key: string, value: TValue) => void;\r\n}\r\n\r\nclass AvatarCacheManager extends CacheManagerBase {\r\n constructor() {\r\n super();\r\n }\r\n\r\n get(email: string) {\r\n var avatar = this.data[email];\r\n if (avatar) {\r\n return Promise.resolve(avatar);\r\n } else {\r\n return accountApi.account.getPhotoUrl(email).then((url) => {\r\n if (!url) {\r\n url = \"/cm/gres/img/ghost.png\";\r\n } else {\r\n url = invalidateUrl(url);\r\n }\r\n console.log(\"image\", url);\r\n this.set(email, url);\r\n return url;\r\n });\r\n }\r\n }\r\n\r\n getByCodes(codes: string[]): Promise {\r\n return accountApi.account.getPhotoUrlByCodes(codes).then((res) => {\r\n res.forEach((p) => this.set(p.personCode, p.photoPath))\r\n return res\r\n })\r\n }\r\n}\r\n\r\nexport type Cache = {\r\n avatar: AvatarCacheManager;\r\n};\r\n\r\nexport const cache: Cache = {\r\n avatar: new AvatarCacheManager(),\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"header\"}},[_c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"header-item align-left\"},[_c('a',{staticClass:\"menu-list-open\",attrs:{\"id\":\"siteMapOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbSiteMap('O')}}},[_c('i',{staticClass:\"icon-fux-app\"})]),_c('h1',{staticClass:\"logo\"},[_c('a',{staticClass:\"index\",on:{\"click\":function($event){return _vm.fnGoHome()}}},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/logo_isu.png\"}})])])]),_c('div',{staticClass:\"header-item align-cneter\"},[_c('ul',{staticClass:\"navigation\"},_vm._l((_vm.menuItems),function(menu){return _c('li',{key:menu.menuId,staticClass:\"depth-1\"},[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.fnGnbClick(menu)}}},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(menu.menuName))])]),(menu.hasChildren && menu.baseUrl != '/Workflow')?_c('div',{staticClass:\"sub-navigation\"},[_c('div',{staticClass:\"inner\"},[_c('div',{staticClass:\"wrap\"},[_c('SubGlobalNavigationBar',{attrs:{\"menuItems\":menu.children,\"menuLevel\":2},on:{\"gnbclick\":function (item) { return _vm.fnGnbClick(item); }}})],1),(menu.imageUrl != '')?_c('div',{staticClass:\"sub-navigation-bnr\"},[_c('img',{attrs:{\"src\":menu.imageUrl}})]):_vm._e()]),_c('div',{staticClass:\"navigation-mask\"})]):_vm._e()])}),0)]),_c('div',{staticClass:\"header-item align-right\"},[_c('ul',{staticClass:\"item-content flex-end\"},[_c('li',[_c('a',{style:((_vm.dispGnbSearch ? 'display:none' : '')),attrs:{\"id\":\"aGnbSearchOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbSearch('O')}}},[_c('i',{staticClass:\"icon-fux-search\"})]),_c('a',{staticClass:\"gnbclose\",style:((_vm.dispGnbSearch ? '' : 'display:none')),attrs:{\"id\":\"aGnbSearchClose\"},on:{\"click\":function($event){return _vm.fnOpenGnbSearch('C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])]),_c('li',[_c('a',{on:{\"click\":_vm.fnOrgPop}},[_c('i',{staticClass:\"icon-fux-organization\"})])]),_c('li',[_c('a',{class:(_vm.UnReadWorkFeedStatus ? 'news-sign' : ''),style:((_vm.dispGnbWorkFeed ? 'display:none' : '')),attrs:{\"id\":\"aGnbWorkFeedOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbWorkFeed('O')}}},[_c('i',{staticClass:\"icon-fux-bell\"})]),_c('a',{staticClass:\"gnbclose\",style:((_vm.dispGnbWorkFeed ? '' : 'display:none')),attrs:{\"id\":\"aGnbWorkFeedClose\"},on:{\"click\":function($event){return _vm.fnOpenGnbWorkFeed('C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])]),_c('li',[_c('a',{style:((_vm.dispGnbBookmark ? 'display:none' : '')),attrs:{\"id\":\"aGnbBookmarkOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbBook('O')}}},[_c('i',{staticClass:\"icon-fux-star\"})]),_c('a',{staticClass:\"gnbclose\",style:((_vm.dispGnbBookmark ? '' : 'display:none')),attrs:{\"id\":\"aGnbBookmarkClose\"},on:{\"click\":function($event){return _vm.fnOpenGnbBook('C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])]),_c('li',{staticStyle:{\"display\":\"none\"}},[_c('a',{style:((_vm.dispGnbQuickMenu ? 'display:none' : '')),attrs:{\"id\":\"aGnbQuickMenuOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbQuickMenu('O')}}},[_c('i',{staticClass:\"icon-fux-applist\"})]),_c('a',{staticClass:\"gnbclose\",style:((_vm.dispGnbQuickMenu ? '' : 'display:none')),attrs:{\"id\":\"aGnbQuickMenuClose\"},on:{\"click\":function($event){return _vm.fnOpenGnbQuickMenu('C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])]),(_vm.isAdmin)?_c('li',[_vm._m(0)]):_vm._e(),_c('li',[_c('ul',{staticClass:\"user-area\"},[_c('li',{staticClass:\"user\"},[_c('a',{attrs:{\"href\":\"#\"}},[_c('div',{staticClass:\"user-img\"},[_c('img',{attrs:{\"src\":_vm.userCurrent.user.photoPath,\"onerror\":\"this.src='/cm/gres/faux/images/ghost.png'\"}})]),_c('i',{staticClass:\"icon-fux-arrow-down-small\"})]),_c('div',{staticClass:\"user-info-lyr\"},[_c('ul',[_c('li',[_c('a',{on:{\"click\":_vm.openModal}},[_vm._v(_vm._s(_vm.$t('W_Common_Settings')))])]),_c('li',[_c('a',{on:{\"click\":_vm.handleLogoff}},[_vm._v(_vm._s(_vm.$t('W_Common_Logout')))])])])])])])])])])]),(_vm.dispGnbSearch)?_c('GnbSearch',{attrs:{\"orgSearchItems\":_vm.orgSearchItems},on:{\"fnGnbSearch\":function ($event) { return _vm.fnGnbSearch($event); }}}):_vm._e(),(_vm.dispGnbWorkFeed)?_c('GnbWorkFeed',{attrs:{\"workFeedItems\":_vm.workFeedItems},on:{\"readWorkFeed\":function (item) { return _vm.fnReadWorkFeed(item); },\"allReadWorkFeed\":function($event){return _vm.fnAllReadWorkFeed()}}}):_vm._e(),(_vm.dispGnbBookmark)?_c('GnbBookmark',{attrs:{\"bookMarkItems\":_vm.bookMarkItems},on:{\"fnDeleteViewBookMarkItem\":function (item) { return _vm.fnDeleteViewBookMarkItem(item); },\"fnBookMarkClick\":function (item) { return _vm.fnBookMarkClick(item); }}}):_vm._e(),(_vm.dispGnbQuickMenu)?_c('GnbQuickMenu',{attrs:{\"quickMenuItems\":_vm.quickMenuItems,\"iconMenuItems\":_vm.iconMenuItems},on:{\"fnQuickMenuClick\":function (item) { return _vm.fnQuickMenuClick(item); },\"fnOpenQuickMenuUserSet\":function($event){return _vm.fnOpenQuickMenuUserSet()},\"fnInsertQuickMenuUserSet\":function (selQuickMenuIds) { return _vm.fnInsertQuickMenuUserSet(selQuickMenuIds); }}}):_vm._e(),(_vm.dispGnbSitemap)?_c('GnbSiteMap',{attrs:{\"siteMapItems\":_vm.siteMapItems,\"userLang\":_vm.userLang},on:{\"onOpenGnbSiteMap\":function (event) { return _vm.fnOpenGnbSiteMap(event); },\"onSiteMapClick\":function (siteMap) { return _vm.fnSiteMapClick(siteMap); }}}):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{attrs:{\"href\":\"http://175.106.97.142/admin\",\"target\":\"iframe-contents\"}},[_c('i',{staticClass:\"icon-fux-setting\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sitemap-wrap\",attrs:{\"id\":\"siteMap\"}},[_c('div',{staticClass:\"sitemap-container\"},[_vm._m(0),_c('div',{staticClass:\"sitemap-body\"},_vm._l((_vm.siteMapItems),function(sitemap){return _c('div',{key:sitemap.menuId,staticClass:\"section hero\"},[_c('div',{staticClass:\"heading\"},[_c('h3',[_vm._v(_vm._s(sitemap.menuName))])]),(sitemap.hasChildren)?_c('ul',{staticClass:\"list-sitemap\"},_vm._l((sitemap.children),function(mSub){return _c('li',{key:mSub.menuId},[_c('span',{staticClass:\"menu accordion-toggle\"},[_c('a',{staticClass:\"name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('gnbclick', mSub)}}},[_vm._v(_vm._s(mSub.menuName))]),(mSub.hasChildren)?_c('b',{staticClass:\"more\"},[_c('i',{staticClass:\"icon-fux-add\",on:{\"click\":function($event){$event.stopPropagation();return _vm.fnExpandSubMenu(mSub.menuId)}}})]):_vm._e()]),(mSub.hasChildren)?_c('div',{staticClass:\"accordion\",attrs:{\"id\":'divSiteMapSub_' + mSub.menuId}},[_c('ul',_vm._l((mSub.children),function(mSub2){return _c('li',{key:mSub2.menuId},[_c('span',{staticClass:\"menu\"},[_c('a',{staticClass:\"name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('gnbclick', mSub2)}}},[_vm._v(_vm._s(mSub2.menuName))])])])}),0)]):_vm._e()])}),0):_vm._e()])}),0)]),_c('div',{attrs:{\"id\":\"siteMapMask\",\"onclick\":\"closeSiteMap()\"}})])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sitemap-head\"},[_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"btn ico-btn ico-l\",attrs:{\"onclick\":\"closeSiteMap()\"}},[_c('i',{staticClass:\"icon-fux-close\"})])])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class SiteMap extends Vue {\r\n @Prop({ type: Array }) siteMapItems!: appbase.cache.TMenuItem[]\r\n\r\n fnExpandSubMenu(menuId: number){\r\n let divSubObj = document.getElementById(\"divSiteMapSub_\" + menuId);\r\n if (divSubObj !== undefined && divSubObj !== null){\r\n if (divSubObj.style.display == \"none\"){\r\n divSubObj.style.display = \"\";\r\n }\r\n else{\r\n divSubObj.style.display = \"none\";\r\n }\r\n }\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./SiteMap.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./SiteMap.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SiteMap.vue?vue&type=template&id=c9666e4c&\"\nimport script from \"./SiteMap.ts?vue&type=script&lang=ts&\"\nexport * from \"./SiteMap.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly\"},[_c('div',{staticClass:\"gnb-ly-head\"},[_c('div',{staticClass:\"search-input\"},[_c('input',{staticClass:\"fm-def\",attrs:{\"type\":\"text\",\"id\":\"txtGnbSearch\",\"placeholder\":_vm.placeholder},on:{\"keyup\":function ($event) { return _vm.$emit('fnGnbSearch', $event); }}}),_c('i',{staticClass:\"icon-fux-search\"})])]),_c('div',{staticClass:\"gnb-ly-body p-all-l\"},[_c('ul',{staticClass:\"list-thumb\"},_vm._l((_vm.orgSearchItems),function(m){return _c('li',{key:m.personCode},[_c('div',{staticClass:\"thumb user bdr-all bdr-gray\"},[_c('img',{attrs:{\"src\":m.photoPath,\"onerror\":\"this.src='/cm/gres/faux/images/ghost.png'\"}})]),_c('div',{staticClass:\"thumb-r\"},[_c('h6',[_vm._v(_vm._s(m.personName))]),_c('div',{staticClass:\"ft-s\"},[_vm._v(_vm._s(m.deptName)+\" / \"+_vm._s(m.titleName))]),_c('div',{staticClass:\"ft-s\"},[_vm._v(_vm._s((m.officeTel != \"\" ? m.officeTel + \" / \" : \"\"))+\" \"+_vm._s(m.mobileTel))])])])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class GnbSearch extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop ({ type: Array }) orgSearchItems!: gnb.OrgPersonSearch[];\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n placeholder: string = this.$t('이름_또는_검색어를_입력하세요').toString();\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbSearch.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbSearch.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GnbSearch.vue?vue&type=template&id=65bb519c&\"\nimport script from \"./GnbSearch.ts?vue&type=script&lang=ts&\"\nexport * from \"./GnbSearch.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly\",attrs:{\"id\":\"gnbBookmark\"}},[_c('div',{staticClass:\"gnb-ly-head\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',[_vm._v(_vm._s(_vm.$t('즐겨찾기')))])])])]),_c('div',{staticClass:\"gnb-ly-body\"},[_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.bookMarkItems),function(m){return _c('li',{key:m.bookMarkId},[_c('div',{staticClass:\"dp-flex flex-between w-100\"},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m\",on:{\"click\":function($event){return _vm.$emit('fnBookMarkClick', m)}}},[_c('div',{staticClass:\"m-r-s\"},[_c('span',{class:(m.subSystemCd == 'WF' ? 'circle circle-lg bg-blue p-all-s' : 'circle circle-lg bg-green p-all-s')},[_c('i',{class:(m.subSystemCd == 'WF' ? 'icon-fux-approval' : 'icon-fux-board')})])]),_c('div',{staticClass:\"ellipsis flex-1\"},[_c('h6',{staticClass:\"ellipsis ft-m no-padding\"},[_vm._v(_vm._s(m.itemText))]),(m.itemPath != '')?_c('div',{staticClass:\"ellipsis ft-s ft-gray\"},[_vm._v(_vm._s(m.itemPath))]):_vm._e()])]),_c('div',{staticClass:\"p-all-m\"},[_c('button',{staticClass:\"btn sub-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.$emit('fnDeleteViewBookMarkItem', m)}}},[_c('i',{staticClass:\"icon-fux-bin\"})])])])])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class GnbBookmark extends Vue {\r\n @Prop({ type: Array }) bookMarkItems!: gnb.BookMarkItem[];\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbBookmark.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbBookmark.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GnbBookmark.vue?vue&type=template&id=44070c75&\"\nimport script from \"./GnbBookmark.ts?vue&type=script&lang=ts&\"\nexport * from \"./GnbBookmark.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly auto\",attrs:{\"id\":\"gnbQuick\"}},[_c('div',{staticClass:\"gnb-ly-body\"},[_c('div',{staticClass:\"gnb-quick-wrap\"},[_c('div',{staticClass:\"gnb-quick-left\"},[_c('div',{staticClass:\"dp-flex vertical-top flex-between flex-1\"},_vm._l((_vm.quickMenuItems),function(quick){return _c('div',{key:quick.quickMenuId,staticClass:\"group\"},[_c('h6',{staticClass:\"ft-blue ft-basic\"},[_vm._v(_vm._s(quick.title))]),_c('div',{staticClass:\"space-m\"}),(quick.hasChildren)?_c('ul',_vm._l((quick.childItems),function(subItem){return _c('li',{key:subItem.quickMenuId},[_c('span',{staticClass:\"bullet bullet-gray\"}),_c('a',{on:{\"click\":function (subItem) { return _vm.$emit('fnQuickMenuClick', subItem); }}},[_vm._v(_vm._s(subItem.title))])])}),0):_vm._e()])}),0),_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.$emit('fnOpenQuickMenuUserSet')}}},[_c('i',{staticClass:\"icon-fux-setting\"})])])])]),_c('div',{staticClass:\"gnb-quick-right\"},_vm._l((_vm.iconMenuItems),function(icon){return _c('a',{key:icon.quickMenuId,on:{\"click\":function (icon) { return _vm.$emit('fnQuickMenuClick', icon); }}},[_c('img',{attrs:{\"src\":icon.filePath}}),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(icon.title))])])}),0)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { createEventBus, removeEventBus, getDispatchData } from '@appbase/util/eventBus';\r\nimport { api } from '@/api';\r\n\r\nconst GNB_QUICKMENU_USERSET = '$gnb/pop/setquickmenu';\r\n\r\n@Component\r\nexport default class GnbQuickMenu extends Vue {\r\n @Prop({ type:Array }) quickMenuItems!: gnb.QuickMenuItem[];\r\n @Prop({ type:Array }) iconMenuItems!: gnb.QuickMenuItem[];\r\n\r\n fnOnChangeQuickMenuUserSet(){\r\n let quickMenuItems: number[] = getDispatchData(GNB_QUICKMENU_USERSET);\r\n let quickMenuIds = ((quickMenuItems !== undefined && quickMenuItems !== null && quickMenuItems.length > 0) ? quickMenuItems.join(';') : '');\r\n this.$emit(\"fnInsertQuickMenuUserSet\", quickMenuIds);\r\n }\r\n\r\n created(){\r\n createEventBus(window, GNB_QUICKMENU_USERSET, this.fnOnChangeQuickMenuUserSet);\r\n }\r\n\r\n beforeDestroy(){\r\n removeEventBus(window, GNB_QUICKMENU_USERSET, this.fnOnChangeQuickMenuUserSet);\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbQuickMenu.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbQuickMenu.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GnbQuickMenu.vue?vue&type=template&id=2f570bbc&\"\nimport script from \"./GnbQuickMenu.ts?vue&type=script&lang=ts&\"\nexport * from \"./GnbQuickMenu.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly\",attrs:{\"id\":\"gnbNoti\"}},[_c('div',{staticClass:\"gnb-ly-head no-border\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',[_vm._v(\"알림\"),_c('span',{staticClass:\"ft-blue ft-400 m-l-xs\"},[_vm._v(_vm._s((_vm.workFeedItems !== undefined && _vm.workFeedItems !== null) ? _vm.workFeedItems.length : 0))])])]),_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn sub-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.$emit('allReadWorkFeed')}}},[_c('i',{staticClass:\"icon-fux-bin\"})])])])]),_c('div',{staticClass:\"gnb-ly-body\"},[_c('ul',{staticClass:\"nav nav-tabs tab-bar tab-equal\"},[_c('li',{class:(_vm.workfeedType == '' ? 'active' : '')},[_c('a',{staticClass:\"ft-basic\",attrs:{\"data-toggle\":\"tab\"},on:{\"click\":function($event){return _vm.fnSetWorkFeedType('')}}},[_vm._v(\"전체\")])]),_c('li',{class:(_vm.workfeedType == 'WF' ? 'active' : '')},[_c('a',{staticClass:\"ft-basic\",attrs:{\"data-toggle\":\"tab\"},on:{\"click\":function($event){return _vm.fnSetWorkFeedType('WF')}}},[_vm._v(\"결재\")])]),_c('li',{class:(_vm.workfeedType == 'BB' ? 'active' : '')},[_c('a',{staticClass:\"ft-basic\",attrs:{\"data-toggle\":\"tab\"},on:{\"click\":function($event){return _vm.fnSetWorkFeedType('BB')}}},[_vm._v(\"게시\")])])]),_c('div',{staticClass:\"tab-content\"},[_c('div',{staticClass:\"tab-pane active\"},[_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.workFeedItems),function(m){return _c('li',{key:m.alarmId,style:((_vm.workfeedType == '' || _vm.workfeedType == m.alarmType) ? '' : 'display:none')},[_c('div',{staticClass:\"dp-flex flex-between w-100\"},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m vertical-top\",on:{\"click\":function (item) { return _vm.$emit('readWorkFeed', m); }}},[_vm._m(0,true),_c('div',{staticClass:\"ellipsis flex-1\"},[_c('div',{staticClass:\"ellipsis line-clamp-2 ft-m\"},[_c('span',{staticClass:\"b m-r-s ft-blue\"},[_vm._v(_vm._s(_vm.getWorkFeedType(m.alarmType)))]),_vm._v(\" \"+_vm._s(m.alarmText)+\" \")]),_c('div',{staticClass:\"ft-s m-t-s ellipsis ft-gray\"},[_c('i',{staticClass:\"icon-fux-user\"}),_vm._v(\" \"+_vm._s(m.createUserName)+\" \"),_c('span',{staticClass:\"divide-hor divide-gray m-r-xs m-l-xs\"}),_vm._v(\" \"+_vm._s(_vm.fnSetDisplayDate(m.createDate))+\" \")])])])])])}),0)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-r-s\"},[_c('span',{staticClass:\"circle circle-lg bg-blue p-all-s\"},[_c('i',{staticClass:\"icon-fux-approval\"})])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class GnbWorkFeed extends Vue {\r\n @Prop({ type: Array }) workFeedItems!: gnb.WorkFeedItem[];\r\n workfeedType: string = ''\r\n\r\n fnSetWorkFeedType(workfeedType: string){\r\n this.workfeedType = workfeedType;\r\n }\r\n\r\n getWorkFeedType(alarmType: string){\r\n let sysName = \"\";\r\n switch(alarmType){\r\n case \"WF\":\r\n sysName = this.$t('W_Approval').toString();\r\n break;\r\n case \"BB\":\r\n sysName = this.$t('게시').toString();\r\n break;\r\n }\r\n return sysName;\r\n }\r\n\r\n fnSetDisplayDate(createDate: Date){\r\n let displayDate = \"\";\r\n let dtNow = new Date();\r\n let dtCreate = new Date(createDate);\r\n if (dtCreate.toISOString().slice(0, 10) == dtNow.toISOString().slice(0, 10)){\r\n displayDate = [(dtCreate.getHours() > 9 ? dtCreate.getHours() : '0' + dtCreate.getHours()), \r\n (dtCreate.getMinutes() > 9 ? dtCreate.getMinutes() : '0' + dtCreate.getMinutes())].join(' : ');\r\n }\r\n else{\r\n displayDate = dtCreate.toISOString().slice(0, 10);\r\n } \r\n\r\n return displayDate;\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbWorkFeed.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbWorkFeed.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GnbWorkFeed.vue?vue&type=template&id=3d26615a&\"\nimport script from \"./GnbWorkFeed.ts?vue&type=script&lang=ts&\"\nexport * from \"./GnbWorkFeed.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PageLayout } from '@appbase/templates'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as usertypes from '@account/store/types'\r\nimport api from '@gnb/api'\r\nimport { openPopup } from '@appbase/util/popup-helper'\r\nimport menuHelper from '@appbase/util/menu-helper'\r\n// components\r\nimport SubGlobalNavigationBar from '@gnb/components/GlobalNavigationBar/SubGlobalNavigationBar.vue'\r\nimport SiteMap from '@gnb/components/GlobalNavigationBar/SiteMap.vue'\r\nimport GnbSearch from '@gnb/components/GlobalNavigationBar/GnbSearch.vue'\r\nimport GnbSiteMap from '@gnb/components/GlobalNavigationBarLeft/GnbSiteMap.vue'\r\nimport GnbBookmark from '@gnb/components/GlobalNavigationBar/GnbBookmark.vue'\r\nimport GnbQuickMenu from '@gnb/components/GlobalNavigationBar/GnbQuickMenu.vue'\r\nimport GnbWorkFeed from '@gnb/components/GlobalNavigationBar/GnbWorkFeed.vue'\r\nimport modalHelper from '@appbase/util/modal-helper'\r\nimport PreferenceModal from '@gnb/components/Preference/PreferenceModal.vue'\r\n@Component({\r\n components: {\r\n PageLayout,\r\n SubGlobalNavigationBar,\r\n GnbSearch,\r\n SiteMap,\r\n GnbSiteMap,\r\n GnbBookmark,\r\n GnbQuickMenu,\r\n GnbWorkFeed,\r\n PreferenceModal,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n userCurrent: usertypes.CURRENT,\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n logout: accountTypes.LOGOUT,\r\n }),\r\n },\r\n})\r\nexport default class GlobalNavigationBar extends Vue {\r\n userCurrent!: account.TCurrent\r\n menuItems: appbase.cache.TMenuItem[] = []\r\n siteMapItems: appbase.cache.TMenuItem[] = []\r\n menuPermission: account.TPermissionMenu[] = []\r\n orgSearchItems: gnb.OrgPersonSearch[] = []\r\n workFeedItems: gnb.WorkFeedItem[] = []\r\n bookMarkItems: gnb.BookMarkItem[] = []\r\n quickMenuItems: gnb.QuickMenuItem[] = []\r\n iconMenuItems: gnb.QuickMenuItem[] = []\r\n isAdmin: boolean = false\r\n personCode: string = ''\r\n comCode: string = ''\r\n userLang: string = ''\r\n employeeNumber: string = ''\r\n displayName: string = ''\r\n payType: string = ''\r\n payTypeGubun: string = ''\r\n\r\n // 알림 관련\r\n UnReadWorkFeedStatus: boolean = false\r\n\r\n // Gnb Item Display Option\r\n dispGnbSearch: boolean = false\r\n dispGnbWorkFeed: boolean = false\r\n dispGnbBookmark: boolean = false\r\n dispGnbQuickMenu: boolean = false\r\n dispGnbSitemap: boolean = false\r\n\r\n logout!: () => Promise\r\n handleLogoff() {\r\n this.logout();\r\n }\r\n\r\n fnGoHome() {\r\n menuHelper.goHome()\r\n }\r\n\r\n fnOpenGnbSiteMap(event: string) {\r\n this.dispGnbSearch = false\r\n this.dispGnbWorkFeed = false\r\n this.dispGnbBookmark = false\r\n this.dispGnbSitemap = event == 'O' ? true : false\r\n this.dispGnbQuickMenu = false\r\n }\r\n\r\n // 메뉴 클릭 이벤트 처리\r\n fnGnbClick(item: appbase.cache.TMenuItem) {\r\n //menuHelper.next(item)\r\n if (item) {\r\n api.gnb.setmenuLog({menuId: item.menuId, personCode: this.userCurrent.user.personCode, comCode: this.userCurrent.user.comCode, menuOldName: item.menuName\r\n }as gnb.MenuItemRequest).then((res)=>{\r\n })\r\n // Menu URL이 있는 경우 Menu 이동\r\n if (item.targetUrl) {\r\n menuHelper.next(item)\r\n } else {\r\n if (item.hasChildren && item.children.length > 0 && item.children[0].targetUrl){\r\n menuHelper.next(item.children[0])\r\n }\r\n }\r\n }\r\n }\r\n async fnSiteMapClick(siteMap: appbase.cache.TMenuItem) {\r\n if (siteMap.targetUrl){\r\n this.fnOpenGnbSiteMap('C')\r\n menuHelper.next(siteMap)\r\n }\r\n else{\r\n if (siteMap.hasChildren && siteMap.children.length > 0 && siteMap.children[0].targetUrl){\r\n this.fnOpenGnbSiteMap('C')\r\n menuHelper.next(siteMap.children[0])\r\n }\r\n else{\r\n await(window as any).alertAsync(this.$t('메뉴_등록된_URL_없음').toString())\r\n }\r\n }\r\n }\r\n\r\n // 검색 버튼 이벤트 처리\r\n fnOpenGnbSearch(event: string) {\r\n this.dispGnbSearch = event == 'O' ? true : false\r\n this.dispGnbWorkFeed = false\r\n this.dispGnbBookmark = false\r\n this.dispGnbQuickMenu = false\r\n this.dispGnbSitemap = false\r\n\r\n if (event == 'O') {\r\n // 팝업 종료 시 검색 데이터 초기화\r\n this.orgSearchItems = []\r\n }\r\n }\r\n\r\n // 사우검색\r\n async fnGnbSearch(event: KeyboardEvent) {\r\n if (event) event.preventDefault()\r\n let searchVal = (document.getElementById('txtGnbSearch')).value\r\n\r\n if (event.code == 'Enter') {\r\n if (searchVal.trim() == '') {\r\n await(window as any).alertAsync('검색어를 입력하세요.')\r\n ;(document.getElementById('txtGnbSearch')).focus()\r\n } else {\r\n // 통합검색으로 이동\r\n }\r\n } else {\r\n // 2자 이상인 경우 검색 시작\r\n if (searchVal.length >= 2) {\r\n let comCode = this.userCurrent.user.comCode\r\n api.gnb.getOrgPersonSearch(searchVal, comCode).then((res: any) => {\r\n if (res) {\r\n this.orgSearchItems = res\r\n } else {\r\n this.orgSearchItems = []\r\n }\r\n })\r\n } else {\r\n this.orgSearchItems = []\r\n }\r\n }\r\n }\r\n\r\n // WorkFeed 버튼 이벤트 처리\r\n fnOpenGnbWorkFeed(event: string) {\r\n this.dispGnbSearch = false\r\n this.dispGnbWorkFeed = event == 'O' ? true : false\r\n this.dispGnbBookmark = false\r\n this.dispGnbQuickMenu = false\r\n this.dispGnbSitemap = false\r\n\r\n if (event == 'O') {\r\n // WorkFeed 데이터 조회\r\n this.fnGetWorkFeedList()\r\n }\r\n }\r\n\r\n // 읽지 않은 WorkFeed 건수 조회\r\n fnGetUnreadWorkFeedCount() {\r\n api.gnb.getWorkFeedUnreadCount(this.personCode, this.comCode).then((res: any) => {\r\n this.UnReadWorkFeedStatus = res > 0 ? true : false\r\n })\r\n }\r\n\r\n // WorkFeed 데이터 조회\r\n fnGetWorkFeedList() {\r\n api.gnb.getWorkFeedList(this.personCode, this.comCode).then((res: any) => {\r\n if (res) {\r\n this.workFeedItems = res\r\n this.UnReadWorkFeedStatus = true\r\n } else {\r\n this.workFeedItems = []\r\n this.UnReadWorkFeedStatus = false\r\n }\r\n })\r\n }\r\n\r\n // WorkFeed Item Click\r\n fnReadWorkFeed(workfeedItem: gnb.WorkFeedItem) {\r\n // Link가 존재하는 경우 호출\r\n if (workfeedItem.itemUrl != '') {\r\n this.fnOpenWindow(workfeedItem.itemUrl, workfeedItem.alarmText, 1024, 900)\r\n }\r\n\r\n api.gnb.setWorkFeedReadStatus(workfeedItem.alarmId, true).then((res: any) => {\r\n if (res > -1) {\r\n //this.fnGetWorkFeedList();\r\n let nIdx = this.workFeedItems.findIndex((x) => x.alarmId == workfeedItem.alarmId)\r\n if (nIdx > -1) this.workFeedItems.splice(nIdx, 1)\r\n if (this.workFeedItems.length == 0) this.UnReadWorkFeedStatus = false\r\n }\r\n })\r\n }\r\n\r\n // WorkFeed 전체 삭제 이벤트 처리\r\n async fnAllReadWorkFeed() {\r\n if (this.UnReadWorkFeedStatus) {\r\n if (await(window as any).confirmAsync('알림내역을 전체 삭제하시겠습니까?')) {\r\n api.gnb.setWorkFeedAllReadStatus(this.personCode, this.comCode).then(async (res: any) => {\r\n if (res > -1) {\r\n await(window as any).alertAsync('삭제 하였습니다.')\r\n //this.fnGetWorkFeedList();\r\n this.workFeedItems = []\r\n this.UnReadWorkFeedStatus = false\r\n } else {\r\n await(window as any).alertAsync('삭제에 실패 하였습니다.')\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n // 즐겨찾기 버튼 이벤트\r\n fnOpenGnbBook(event: string) {\r\n this.dispGnbSearch = false\r\n this.dispGnbWorkFeed = false\r\n this.dispGnbBookmark = event == 'O' ? true : false\r\n this.dispGnbQuickMenu = false\r\n this.dispGnbSitemap = false\r\n\r\n if (event == 'O') {\r\n this.fnGetBookMarkList()\r\n }\r\n }\r\n\r\n // 즐겨찾기 목록 조회\r\n fnGetBookMarkList() {\r\n api.gnb.getBookMarkList(this.personCode, this.comCode).then((res: any) => {\r\n if (res) {\r\n this.bookMarkItems = res\r\n } else {\r\n this.bookMarkItems = []\r\n }\r\n })\r\n }\r\n\r\n // 즐겨찾기 Link 클릭\r\n fnBookMarkClick(bookMarkItem: gnb.BookMarkItem) {\r\n if (bookMarkItem.itemUrl != '') {\r\n switch (bookMarkItem.itemType) {\r\n case 'MU':\r\n let url =\r\n bookMarkItem.itemUrl +\r\n (bookMarkItem.itemId != 0 ? '?MENUID=' + bookMarkItem.itemId : '')\r\n document.location.href = url\r\n break\r\n case 'FO':\r\n this.fnOpenWindow(bookMarkItem.itemUrl, bookMarkItem.itemText, 1024, 900)\r\n break\r\n }\r\n }\r\n }\r\n\r\n // 즐겨찾기 삭제\r\n async fnDeleteViewBookMarkItem(bookMarkItem: gnb.BookMarkItem) {\r\n if (await(window as any).confirmAsync('삭제 하시겠습니까?')) {\r\n api.gnb\r\n .deleteBookMark(bookMarkItem.bookMarkId, this.personCode, this.comCode)\r\n .then(async (res: any) => {\r\n if (res > -1) {\r\n await(window as any).alertAsync('삭제 하였습니다.')\r\n let nIdx = this.bookMarkItems.findIndex((x) => x.bookMarkId == bookMarkItem.bookMarkId)\r\n if (nIdx > -1) {\r\n this.bookMarkItems.splice(nIdx, 1)\r\n }\r\n } else {\r\n await(window as any).alertAsync('삭제에 실패 하였습니다.')\r\n }\r\n })\r\n }\r\n }\r\n\r\n // Quick Menu 버튼 이벤트\r\n fnOpenGnbQuickMenu(event: string) {\r\n this.dispGnbSearch = false\r\n this.dispGnbWorkFeed = false\r\n this.dispGnbBookmark = false\r\n this.dispGnbQuickMenu = event == 'O' ? true : false\r\n this.dispGnbSitemap = false\r\n }\r\n\r\n // 사용자 설정 Quick Menu 목록 조회\r\n fnGetQuickMenuList() {\r\n api.gnb.getUserQuickMenuList(this.personCode, this.comCode, this.employeeNumber, this.displayName, this.payType, this.payTypeGubun, 'U').then((res: any) => {\r\n if (res) {\r\n let resQuickMenuItems: gnb.QuickMenuItem[] = res\r\n this.quickMenuItems = resQuickMenuItems.filter((x) => x.linkType == 'Q')\r\n this.iconMenuItems = resQuickMenuItems.filter((x) => x.linkType == 'I')\r\n } else {\r\n this.quickMenuItems = []\r\n this.iconMenuItems = []\r\n }\r\n })\r\n }\r\n\r\n // Quick Menu Click 이벤트 처리\r\n fnQuickMenuClick(quickItem: gnb.QuickMenuItem) {}\r\n\r\n // 퀵메뉴 설정 팝업 오픈\r\n fnOpenQuickMenuUserSet() {\r\n let url = '/gnb/setquickmenu'\r\n this.fnOpenWindow(url, 'Quick Menu', 700, 900)\r\n }\r\n\r\n // 퀵메뉴 사용지 지정 이벤트 처리\r\n fnInsertQuickMenuUserSet(selQuickMenuItems: string) {\r\n api.gnb\r\n .insertQuickMenuUserSet(this.personCode, this.comCode, selQuickMenuItems)\r\n .then(async (res: any) => {\r\n if (res > -1) {\r\n await(window as any).alertAsync('등록 하였습니다.')\r\n this.fnGetQuickMenuList()\r\n } else {\r\n await(window as any).alertAsync('퀵메뉴 설정 중 오류가 발생 하였습니다.')\r\n }\r\n })\r\n }\r\n\r\n /** 조직도 창 열기 */\r\n fnOrgPop() {\r\n openPopup(\r\n 'gnb',\r\n '/orgmap',\r\n { event: 'OrgPopup', option: { personal: false, public: false, single: true }},\r\n {\r\n width: 1024,\r\n height: 700,\r\n isFrame: this.isTeams\r\n }\r\n )\r\n }\r\n\r\n fnOpenWindow(url: string, title: string, width: number, height: number) {\r\n if (url != '') {\r\n let nWidth = width ? width : 1024\r\n let nHeight = height ? height : 900\r\n let nLeft = (screen.width - nWidth) / 2\r\n let nTop = (screen.height - nHeight) / 2\r\n let property =\r\n 'left=' +\r\n nLeft +\r\n ',top=' +\r\n nTop +\r\n ',height=' +\r\n nWidth +\r\n ',width=' +\r\n nHeight +\r\n ',toolbar=no,scrollbars=no,resizable=yes'\r\n\r\n window.open(url, title, property)\r\n }\r\n }\r\n\r\n // 메뉴 데이터 생성\r\n fnMakeMenuItem(\r\n childItems: appbase.cache.TMenuItem[],\r\n item: appbase.cache.TMenuItem,\r\n itemType: string\r\n ) {\r\n for (let i = 0; i < childItems.length; i++) {\r\n let isPermission =\r\n (itemType == 'S' ? true : childItems[i].isTopVisible) &&\r\n this.menuPermission.find((x) => x.id == childItems[i].menuId)\r\n ? true\r\n : false && childItems[i].callType == 'USER'\r\n\r\n if (isPermission && childItems[i].hasChildren) {\r\n this.fnMakeMenuItem(childItems[i].children, childItems[i], itemType)\r\n }\r\n\r\n if (i == 0) {\r\n item.children = []\r\n item.hasChildren = false\r\n }\r\n if (isPermission) {\r\n item.children.push(childItems[i])\r\n }\r\n }\r\n\r\n if (item.children.length > 0) {\r\n item.hasChildren = true\r\n }\r\n }\r\n\r\n openModal() {\r\n modalHelper.show({ component: PreferenceModal, force: true, value: { aaa: 'aaa' } })\r\n }\r\n\r\n created() {\r\n const { menu } = this.portalCache\r\n const excepts = ['HOME']\r\n this.menuPermission = this.userCurrent.permissions.menues\r\n\r\n // 관리자 여부 및 사용자 정보\r\n this.isAdmin =\r\n this.userCurrent.permissions.isSuperAdmin || this.userCurrent.permissions.isCompanyManager\r\n ? true\r\n : false\r\n this.personCode = this.userCurrent.user.personCode\r\n this.comCode = this.userCurrent.user.comCode\r\n this.employeeNumber = this.userCurrent.user.employeeNumber\r\n\r\n for (let i = 0; i < menu.items.length; i++) {\r\n let mItem: appbase.cache.TMenuItem = menu.items[i]\r\n if (\r\n mItem.isTopVisible == true &&\r\n mItem.callType == 'USER' &&\r\n this.menuPermission.find((x) => x.id == mItem.menuId)\r\n ) {\r\n this.menuItems.push(mItem)\r\n if (mItem.hasChildren) {\r\n this.fnMakeMenuItem(mItem.children, mItem, 'M')\r\n }\r\n }\r\n\r\n if (\r\n !excepts.includes(mItem.callType) &&\r\n this.menuPermission.find((x) => x.id == mItem.menuId)\r\n ) {\r\n this.siteMapItems.push(mItem)\r\n if (mItem.hasChildren) {\r\n this.fnMakeMenuItem(mItem.children, mItem, 'S')\r\n }\r\n }\r\n }\r\n\r\n // 다국어 설정\r\n this.userLang = this.userCurrent.userConfig.language\r\n\r\n // WorkFeed 건수 조회\r\n this.fnGetUnreadWorkFeedCount()\r\n\r\n // Quick Menu 데이터 조회\r\n this.fnGetQuickMenuList()\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GlobalNavigationBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GlobalNavigationBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GlobalNavigationBar.vue?vue&type=template&id=eeb6ec58&\"\nimport script from \"./GlobalNavigationBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./GlobalNavigationBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadAttachment.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./FileListItem.scss?vue&type=style&index=0&lang=scss&\"","if (!window || !document) {\r\n throw new Error('Flowjs needs window and document objects to work')\r\n}\r\nimport { Flow } from './Flow'\r\nexport { FlowOptions } from './FlowOptions'\r\nexport { Flow } from './Flow'\r\nexport { FlowFile } from './FlowFile'\r\nexport { FlowChunk } from './FlowChunk'\r\nexport {\r\n FlowEventNames,\r\n} from './FlowFileHandler'\r\n\r\ndeclare global {\r\n interface Window {\r\n Flow: any\r\n }\r\n}\r\ndeclare var define: any\r\nif (\r\n typeof module === 'object' &&\r\n module &&\r\n typeof module.exports === 'object'\r\n) {\r\n // Expose Flow as module.exports in loaders that implement the Node\r\n // module pattern (including browserify). Do not create the global, since\r\n // the user will be storing it themselves locally, and globals are frowned\r\n // upon in the Node module world.\r\n} else {\r\n // Otherwise expose Flow to the global object as usual\r\n window.Flow = Flow\r\n\r\n // Register as a named AMD module, since Flow can be concatenated with other\r\n // files that may use define, but not via a proper concatenation script that\r\n // understands anonymous AMD modules. A named AMD is safest and most robust\r\n // way to register. Lowercase flow is used because AMD module names are\r\n // derived from file names, and Flow is normally delivered in a lowercase\r\n // file name. Do this after creating the global so that if an AMD module wants\r\n // to call noConflict to hide this version of Flow, it will work.\r\n if (typeof define === 'function' && define.amd) {\r\n define('flow', [], function() {\r\n return Flow\r\n })\r\n }\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadSender.vue?vue&type=style&index=0&lang=scss&\"","\r\nimport { RawLocation } from 'vue-router'\r\nimport { i18n } from '@appbase/util/i18n-setup'\r\ntype VisibleHandler = (menu: MenuInfo) => boolean\r\nexport interface MenuInfo {\r\n name: string\r\n to?: RawLocation\r\n visible?: boolean | VisibleHandler\r\n children?: MenuInfo[]\r\n selected?: boolean\r\n}\r\nconst menues: MenuInfo[] = [\r\n {\r\n name: i18n.t('W_Settings_General').toString(),\r\n selected: true,\r\n children: [\r\n { name: i18n.t('M_Settings_Msg36').toString(), selected: true, to: { name: 'language' } },\r\n { name: i18n.t('사진변경').toString(), selected: false, to: { name: 'changePhoto' } },\r\n // { name: i18n.t('알림').toString(), selected: false, to:{ name: 'notice'}},\r\n ],\r\n },\r\n {\r\n name: i18n.t('W_Mail').toString(),\r\n selected: false,\r\n children: [\r\n { name: i18n.t('레이아웃').toString(), selected: false, to: { name: 'layout' }},\r\n { name: i18n.t('서명').toString(), selected: false, to: { name: 'signature' }},\r\n { name: i18n.t('W_Settings_Rule').toString(), selected: false, to: { name: 'rule' } },\r\n { name: i18n.t('W_Delete').toString(), selected: false, to: { name: 'delete' } },\r\n { name: i18n.t('부재중_설정').toString(), selected: false, to:{ name: 'missed'} },\r\n { name: i18n.t('W_Mail_AutoForwarder').toString(), selected: false, to: { name: 'autoDelivery' } },\r\n // { name: '자동회신', selected: false, to: { name: 'autoReply' } },\r\n //{ name: i18n.t('W_Mail_Category').toString(), selected: false, to: { name: 'category' } },\r\n { name: i18n.t('W_Settings_Storage').toString(), selected: false, to: { name: 'storage' } },\r\n // { name: '멀티계정', selected: false, to: { name: 'multiAccount' } }\r\n ],\r\n },\r\n {\r\n name: i18n.t('일정').toString(),\r\n selected: false,\r\n children: [\r\n { name: i18n.t('일정보기').toString(), selected: false, to: { name: 'calendarView' }},\r\n // { name: '일정공유', selected: false, to: { name: 'calendarShared' }}\r\n ],\r\n },\r\n {\r\n name: i18n.t('W_Approval').toString(),\r\n selected: false,\r\n children: [\r\n { name: i18n.t('W_Settings').toString(), selected: false, to: { name: 'setting' } },\r\n { name: i18n.t('대결자_설정').toString(), selected: false, to: { name: 'confrontationView' } },\r\n { name: i18n.t('수신_관리').toString(), selected: false, to: { name: 'reception' } },\r\n // { name: '결재 비밀번호 설정', selected: false, to: { name: 'changeApprovalPassword' }},\r\n ],\r\n },\r\n]\r\nexport default menues","import axios from 'axios'\r\nimport api from '@/api'\r\nimport { invalidateUrl } from '@appbase/util'\r\nvar process = require('process-nextick-args')\r\n\r\nexport default {\r\n /**\r\n * 사용자 설정 조회\r\n */\r\n getUserConfig(personCode: string): Promise {\r\n return api.get({\r\n url: '/Common/gnb/api/userSetting',\r\n params: {\r\n personCode: personCode,\r\n },\r\n })\r\n },\r\n\r\n /**\r\n * 사용자 설정\r\n */\r\n setUserConfig(item: gnb.UserConfig): Promise {\r\n return api.post({\r\n url: '/Common/gnb/api/userSetting',\r\n data: item,\r\n })\r\n },\r\n\r\n /**\r\n * 알림 설정 조회\r\n */\r\n getAlarmConfig(comCode: string, personCode: string): Promise {\r\n return api.get({\r\n url: '/Common/gnb/api/alarmConfig',\r\n params: {\r\n comCode: comCode,\r\n personCode: personCode,\r\n },\r\n })\r\n },\r\n\r\n /**\r\n * 알림 설정\r\n */\r\n setAlarmConfig(item: gnb.AlarmConfig): Promise {\r\n return api.post({\r\n url: '/Common/gnb/api/alarmConfig',\r\n data: item,\r\n })\r\n },\r\n\r\n /**\r\n * 명함 옵션 리스트를 가져옵니다 (0: 기본명함, 1:한글명함, 2:영문명함, 3:자유명함)\r\n */\r\n getUserBusinessCardStateList(): Promise {\r\n return api.get({\r\n url: '/api/mail/settings/UserCard',\r\n })\r\n },\r\n\r\n /**\r\n * 명함 정보 수정\r\n */\r\n setUserBusinessCardInfo(item: gnb.UserBusinessCard): Promise {\r\n return api.post({\r\n url: '/api/mail/settings/ISU_UserCard/update',\r\n data: item,\r\n })\r\n },\r\n\r\n /**\r\n * 사용자의 명함정보를 가져옵니다\r\n */\r\n getUserBusinessCardInfo(personCode: string): Promise {\r\n return api.post({\r\n url: '/api/mail/settings/ISU_UserCard/get',\r\n data: {\r\n PersonCode: personCode,\r\n },\r\n })\r\n },\r\n\r\n /**\r\n *사용자의 명함옵션을 업데이트 합니다\r\n */\r\n setUserBusinessCardState(item: gnb.UserCardInfo): Promise {\r\n return api.post({\r\n url: '/api/mail/settings/UserCard/updatestate',\r\n data: {\r\n personCode: item.personCode,\r\n usageState: item.usageState,\r\n },\r\n })\r\n },\r\n /**\r\n * 부재중 설정 조회\r\n */\r\n getOOF: (): Promise => {\r\n return api.get({\r\n url: '/api/mail/settings/exchange/oof',\r\n })\r\n },\r\n\r\n /**\r\n * 부재중 설정\r\n */\r\n setOOF: (item: gnb.OOFconfig): Promise => {\r\n return api.post({\r\n url: '/api/mail/settings/exchange/oof',\r\n data: item,\r\n })\r\n },\r\n\r\n /**\r\n * 규칙 조회\r\n */\r\n getRules: (): Promise => {\r\n return api.get({\r\n url: '/api/ews/inboxrule',\r\n })\r\n },\r\n\r\n /**\r\n * 규칙 설정\r\n */\r\n setRules: (item: gnb.rules.Rule[]): Promise => {\r\n return api.post({\r\n url: '/api/ews/inboxrule',\r\n data: {\r\n rules: item,\r\n },\r\n })\r\n },\r\n\r\n /**\r\n * 저장소 폴더별 정보조회\r\n */\r\n getFolderInfo: (): Promise => {\r\n return api.get({\r\n url: '/api/mail/settings/folder',\r\n })\r\n },\r\n\r\n checkDownloadEml(data: gnb.downloadOption): Promise {\r\n return api.post({\r\n url: '/api/ews/folder/archive/check',\r\n data: {\r\n folderId: data.folderId,\r\n start: data.start,\r\n end: data.end,\r\n },\r\n })\r\n },\r\n\r\n downloadPC(data: gnb.downloadOption): Promise {\r\n return axios({\r\n method: 'post',\r\n url: invalidateUrl('/cm/api/ews/folder/archive'),\r\n responseType: 'arraybuffer',\r\n data: {\r\n folderId: data.folderId,\r\n start: data.start,\r\n end: data.end,\r\n },\r\n }).then(function (response) {\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/\r\n\r\n if (data.fileName.indexOf('.') == -1) {\r\n data.fileName += '.zip'\r\n }\r\n\r\n const blob = new Blob([response.data], { type: 'application/zip' })\r\n if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {\r\n ;(window.navigator as any).msSaveOrOpenBlob(blob, data.fileName)\r\n } else {\r\n const link = document.createElement('a')\r\n link.href = window.URL.createObjectURL(blob)\r\n link.download = `${data.fileName}`\r\n link.click()\r\n process.nextTick(() => link.remove())\r\n }\r\n })\r\n },\r\n\r\n delete(options: gnb.DeleteRequestData): Promise {\r\n return api.post({\r\n url: '/api/ews/folder/empty',\r\n data: options,\r\n })\r\n },\r\n\r\n /**\r\n * 하나 이상의 폴더를 대상 폴더로 이동합니다.\r\n *\r\n * @param ids 폴더 아이디\r\n * @param destinationFolderId 대상 폴더 아이디\r\n */\r\n moveFolders(ids: string[], destinationFolderId: string): Promise {\r\n if (!ids || ids.length === 0) {\r\n console.error(`ARG_NULL_ERROR: ids is NULL or empty.`)\r\n }\r\n if (!destinationFolderId) {\r\n console.error(`ARG_NULL_ERROR: destinationFolderId is NULL or empty.`)\r\n }\r\n return api.post({\r\n url: '/api/ews/folder/move',\r\n data: {\r\n ids,\r\n destinationFolderId,\r\n },\r\n })\r\n },\r\n\r\n async getUserInfoByEmail(email: string) {\r\n return await api\r\n .get({\r\n url: '/api/hr/department/info',\r\n params: {\r\n email: email,\r\n },\r\n })\r\n .then((res) => {\r\n return res\r\n })\r\n },\r\n\r\n /**\r\n * 사번으로 해당 사용자의 대결자 목록을 조회합니다.\r\n * @param personCode 사번\r\n * @returns\r\n */\r\n getDelegationList(personCode: string): Promise {\r\n return api\r\n .post({\r\n url: '/workflow/delegate/api/getdelegationlist',\r\n data: {\r\n PersonCode: personCode,\r\n },\r\n })\r\n .then((res) => res)\r\n },\r\n\r\n /**\r\n * 대결자를 추가합니다.\r\n * @param payload 대결자 정보\r\n * @returns\r\n */\r\n setDelegator(payload: gnb.TA_DELEGATION): Promise {\r\n return api\r\n .post({\r\n url: '/workflow/delegate/api/set',\r\n data: payload,\r\n })\r\n .then((res) => res)\r\n },\r\n\r\n /**\r\n * 대결자를 삭제합니다.\r\n * @param payload { Seq: 삭제할 대결자 항목의 번호, DeleteFlag: 삭제여부 }\r\n * @returns\r\n */\r\n removeDelegator(payload: { Seq: number; DeleteFlag: boolean }): Promise {\r\n return api\r\n .post({\r\n url: '/workflow/delegate/api/set',\r\n data: payload,\r\n })\r\n .then((res) => res)\r\n },\r\n\r\n /**\r\n * 양식 트리구조를 가져옵니다\r\n\t 사번이 없는 경우 모두 조회\r\n\t 사번이 있는 경우 권한있는 사용자만 조회\r\n * @param comCode 회사코드\r\n * @param personCode 사번\r\n */\r\n getApplicationList(comCode: string, personCode?: string, sortValue: number = 1): Promise {\r\n return api\r\n .post({\r\n url: '/workflow/home/api/getapplicationlist',\r\n data: {\r\n ComCode: comCode,\r\n PersonCode: personCode,\r\n SortValue: sortValue\r\n },\r\n })\r\n .then((res) => {\r\n //debugger;\r\n return res\r\n })\r\n },\r\n\r\n /**\r\n * 폴더별 정보 조회\r\n */\r\n getFolder(): Promise {\r\n return api\r\n .get({\r\n url: '/api/ews/folder',\r\n })\r\n .then((res): gnb.FolderItem[] => {\r\n return res\r\n })\r\n },\r\n\r\n /**\r\n * 일정 정보 조회\r\n */\r\n getCalendarInfo(personCode: string): Promise {\r\n return api.post({\r\n url: '/api/calendar/UserConfig/get',\r\n data: {\r\n PersonCode: personCode,\r\n },\r\n })\r\n },\r\n\r\n /**\r\n * 일정 정보 변경\r\n */\r\n setCalendarInfo(data: gnb.CalendarInfo): Promise {\r\n return api.post({\r\n url: '/api/calendar/UserConfig/update',\r\n data: data,\r\n })\r\n },\r\n\r\n /**\r\n * 범주 목록 조회\r\n */\r\n getCategoryList(): Promise {\r\n return api.get({\r\n url: '/api/ews/category',\r\n })\r\n },\r\n\r\n /**\r\n * 새범주 생성\r\n */\r\n createCategory(category: gnb.CategoryItem) {\r\n return api.put({\r\n url: '/api/ews/category',\r\n data: {\r\n name: category.name,\r\n color: category.color,\r\n isFavorite: category.isFavorite,\r\n },\r\n })\r\n },\r\n\r\n /**\r\n * 범주 수장\r\n */\r\n updateCategory(category: gnb.CategoryItem) {\r\n return api.post({\r\n url: '/api/ews/category',\r\n data: {\r\n id: category.id,\r\n name: category.name,\r\n color: category.color,\r\n isFavorite: category.isFavorite,\r\n },\r\n })\r\n },\r\n\r\n /**\r\n * 범주 즐겨찾기 설정\r\n */\r\n // setFavoriteStatus(item:any) {\r\n // return api.post({\r\n // url: '/api/ews/category',\r\n // data: item\r\n // });\r\n // },\r\n\r\n /**\r\n * 범주 삭제\r\n */\r\n deleteCategory(id: string) {\r\n console.log('아이디', id)\r\n return api.post({\r\n url: `/api/ews/category/delete?id=${id}`,\r\n })\r\n },\r\n\r\n /**\r\n * 사용자의 환경설정 정보를 조회합니다.\r\n */\r\n getMySetting(): Promise {\r\n return api\r\n .get({\r\n url: '/workflow/mysetting',\r\n })\r\n .then((res) => res)\r\n },\r\n\r\n /**\r\n * 사용자의 환경설정을 추가합니다.\r\n * @param data\r\n */\r\n createMySetting(data: gnb.CM_MySetting): Promise {\r\n return api.post({\r\n url: '/workflow/mysetting/api/create',\r\n data: data,\r\n })\r\n },\r\n\r\n /**\r\n * 사용자의 환경설정을 수정합니다.\r\n * @param data\r\n */\r\n setMysetting(data: gnb.CM_MySetting): Promise {\r\n return api.post({\r\n url: '/workflow/mysetting/api/set',\r\n data: data,\r\n })\r\n },\r\n\r\n //멀티계정 목록조회\r\n getMultiMailList(): Promise{\r\n return api.get({\r\n url:'/api/ISU_MultiMail'\r\n })\r\n },\r\n\r\n //멀티계정 등록\r\n setMultiMail(data: gnb.multiMail[]): Promise {\r\n return api.post({\r\n url: '/api/ISU_MultiMail',\r\n data: data,\r\n })\r\n },\r\n //personcode로 사용자 정보 조회\r\n getUserByPersonCode(personCode: string): Promise {\r\n return api.get({\r\n url: `/api/hr/department/person`,\r\n params: {\r\n personCode,\r\n }\r\n })\r\n },\r\n // 겸직자 선택부서로 활성처리\r\n setConcurrentUserDeptCode(personCode: string, deptCode: string): Promise{\r\n return api.get({\r\n url: `/Common/ConcurrentUser/api/update/deptcode?PersonCode=${personCode}&DeptCode=${deptCode}`,\r\n });\r\n },\r\n\r\n // insertPersonPhotoUpload(comCode: string, personCode: string, files: FileList) {\r\n // let data = {\r\n // comCode: comCode,\r\n // personCode: personCode,\r\n // files: files\r\n // };\r\n // return api.post({\r\n // url: `/IsuCommon/ISU_Gnb/api/imgUpload`,\r\n // data: data,\r\n // headers:{\r\n // 'enctype': 'multipart/form-data',\r\n // 'Content-Type': 'multipart/form-data'\r\n // }\r\n // });\r\n // }\r\n insertPersonPhotoUpload(formData: FormData) {\r\n return api.post({\r\n url: `/IsuCommon/ISU_Gnb/api/imgUpload`,\r\n data: formData,\r\n headers:{\r\n 'enctype': 'multipart/form-data',\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n });\r\n },\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ip-textarea\"},[_c('div',{staticClass:\"form\"},[_c('transition',{attrs:{\"name\":\"slide-fade\",\"mode\":\"in-out\"}},[(!_vm.readonly)?_c('EumEditor',{attrs:{\"mode\":\"editor\",\"value\":_vm.value,\"tinyopts\":_vm.tinyopts,\"dext5opts\":_vm.dext5opts},on:{\"input\":function (value) { return _vm.$emit('input', value); }}}):_c('EumEditor',{attrs:{\"mode\":\"view\",\"value\":_vm.value}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { EumEditor } from '@appbase/components/editor'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n@Component({\r\n components: {\r\n EumEditor\r\n },\r\n computed: mapGetters({\r\n userCurrent: accountTypes.CURRENT,\r\n }),\r\n})\r\nexport default class WriteBody extends Vue {\r\n @Prop({ type: String, default: '' }) value!: string\r\n @Prop({ type: Boolean, default: false }) readonly!: boolean\r\n\r\n userCurrent!: account.TCurrent\r\n\r\n tinyopts: eumEditor.EditorOptions = {\r\n menubar: false,\r\n inline: false,\r\n height: '100%',\r\n // setup: function(e: any) {\r\n // (window as any).currentEditor = e;\r\n // }\r\n }\r\n dext5opts: editor.dext5.DEXT5Config = {\r\n EditorBorder: '0',\r\n Lang: 'ko_KR',\r\n }\r\n\r\n created() {\r\n this.dext5opts.Lang = this.userCurrent.userConfig.language\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteBody.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteBody.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteBody.vue?vue&type=template&id=d4050fe4&scoped=true&\"\nimport script from \"./WriteBody.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteBody.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./WriteBody.vue?vue&type=style&index=0&id=d4050fe4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4050fe4\",\n null\n \n)\n\nexport default component.exports","import { ActionTree } from 'vuex'\r\nimport * as types from './types'\r\nexport default >{\r\n\r\n [types.MODAL_CHANGE](action, option: settings.ModalOption | null) {\r\n action.commit(types.MODAL_CHANGE, option)\r\n },\r\n}\r\n","import { GetterTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.MODAL_CURRENT](state) {\r\n return state.modal\r\n },\r\n\r\n [types.TEAMS](state) {\r\n return state.teams\r\n },\r\n\r\n [types.PAGE_CURRENT](state) {\r\n return state.page.current\r\n },\r\n\r\n [types.MODAL_CHANGE](state) {\r\n return state.modalv2;\r\n },\r\n\r\n [types.SELECT_ATTACHMENT](state): any {\r\n return state.selectAttachment\r\n },\r\n}\r\n","import { MutationTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.MODAL_CURRENT](state, payload: appbase.TModalInfo) {\r\n state.modal = payload\r\n },\r\n\r\n [types.TEAMS](state, payload: boolean) {\r\n state.teams = payload\r\n },\r\n\r\n [types.PAGE_CURRENT](state, payload: appbase.TPageInfo) {\r\n state.page.current = payload\r\n },\r\n\r\n [types.MODAL_CHANGE](state, option: settings.ModalOption | null) {\r\n state.modalv2 = option;\r\n },\r\n\r\n [types.SELECT_ATTACHMENT](state, item: any) {\r\n state.selectAttachment = item\r\n },\r\n}\r\n","import actions from './actions'\r\nimport getters from './getters'\r\nimport mutations from './mutations'\r\nimport store from '@/store'\r\nimport * as msTeams from '@microsoft/teams-js'\r\nimport * as types from './types'\r\n\r\n// Microsoft Teams Setting\r\nmsTeams.initialize(() => {\r\n store.commit(types.TEAMS, true)\r\n})\r\n\r\n// initial state\r\nconst state: appbase.state.AppbaseState = {\r\n modal: null,\r\n modalv2: null,\r\n selectAttachment: null,\r\n teams: false,\r\n page: {\r\n current: Object.create(null),\r\n },\r\n}\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GnbTop.vue?vue&type=style&index=0&id=3215449a&scoped=true&lang=css&\"","import Vue from 'vue'\r\nimport storage from '@/util/local-storage-helper'\r\nconst KEY = 'EventBus'\r\n\r\nexport const createEventBus = function(\r\n obj: any,\r\n eventName: string,\r\n callback: (data: any) => void\r\n) {\r\n if (!obj.eventBus) {\r\n obj.eventBus = new Vue()\r\n }\r\n console.log('createEventBus', eventName, obj.eventBus)\r\n obj.eventBus.$on(eventName, callback)\r\n}\r\n\r\nexport const removeEventBus = function(\r\n obj: any,\r\n eventName: string,\r\n callback: (data: any) => void\r\n) {\r\n if (!obj.eventBus) {\r\n obj.eventBus = new Vue()\r\n }\r\n console.log('removeEventBus', eventName, obj.eventBus)\r\n obj.eventBus.$off(eventName, callback)\r\n}\r\n\r\nexport const dispatchEventBus = function(\r\n obj: any,\r\n eventName: string,\r\n data: any\r\n) {\r\n try {\r\n if (obj.eventBus) {\r\n console.log('dispatchEvent', eventName, obj.eventBus)\r\n var dataset = storage.get(KEY) || {}\r\n dataset[eventName] = data\r\n storage.set(KEY, dataset)\r\n\r\n obj.eventBus.$emit(eventName, data)\r\n }\r\n } catch (e) {\r\n //��Ʋ������ â���� �� CORS����\r\n console.error('dispatchEventError', e)\r\n }\r\n}\r\n\r\nexport const listenEvent = function(\r\n obj: any,\r\n eventName: string,\r\n callback: (data: any) => void\r\n) {\r\n if (obj.eventBus) {\r\n console.log('listenEvent', eventName, obj.eventBus)\r\n obj.eventBus.$on(eventName, callback)\r\n }\r\n}\r\n\r\nexport const getDispatchData = function(\r\n eventName: string\r\n): TResult | null {\r\n var dataset = storage.get(KEY) || {}\r\n return dataset[eventName] as TResult\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"layer-popup\"},[_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component({})\r\nexport default class Modal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./Modal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./Modal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=274890f4&\"\nimport script from \"./Modal.ts?vue&type=script&lang=ts&\"\nexport * from \"./Modal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { FlowEventNames } from '.'\r\nimport { FlowChunk } from './FlowChunk'\r\nimport { FlowFile } from './FlowFile'\r\nimport { FlowOptions } from './FlowOptions'\r\n\r\n// ie10+\r\nconst ie10plus = (window.navigator as any).msPointerEnabled\r\n\r\n/**\r\n * Default read function using the webAPI\r\n *\r\n * @function webAPIFileRead(fileObj, startByte, endByte, fileType, chunk)\r\n * @param fileType MIME type(now properly called \"media type\", but also sometimes \"content type\")\r\n * is a string sent along with a file indicating the type of the file\r\n * (describing the content format, for example, a sound file might be labeled audio/ogg,\r\n * or an image file image/png).\r\n * https://developer.mozilla.org/en-US/docs/Glossary/MIME_type\r\n */\r\nfunction webAPIFileRead(\r\n fileObj: FlowFile,\r\n startByte: number,\r\n endByte: number,\r\n fileType: string,\r\n chunk: FlowChunk\r\n) {\r\n var function_name = 'slice'\r\n\r\n if (fileObj.file.slice) function_name = 'slice'\r\n else if (fileObj.file.mozSlice) function_name = 'mozSlice'\r\n else if (fileObj.file.webkitSlice) function_name = 'webkitSlice'\r\n\r\n chunk.readFinished(fileObj.file[function_name](startByte, endByte, fileType))\r\n}\r\n\r\nconst initialOptions: FlowOptions = {\r\n chunkSize: 1024 * 1024,\r\n forceChunkSize: false,\r\n simultaneousUploads: 3,\r\n singleFile: false,\r\n fileParameterName: 'file',\r\n progressCallbacksInterval: 500,\r\n speedSmoothingFactor: 0.1,\r\n query: {},\r\n headers: {},\r\n withCredentials: false,\r\n preprocess: null,\r\n changeRawDataBeforeSend: null,\r\n method: 'multipart',\r\n testMethod: 'GET',\r\n uploadMethod: 'POST',\r\n prioritizeFirstAndLastChunk: false,\r\n allowDuplicateUploads: false,\r\n target: '/',\r\n testChunks: true,\r\n generateUniqueIdentifier: null,\r\n maxChunkRetries: 0,\r\n chunkRetryInterval: null,\r\n permanentErrors: [404, 413, 415, 500, 501],\r\n successStatuses: [200, 201, 202],\r\n onDropStopPropagation: false,\r\n initFileFn: null,\r\n readFileFn: webAPIFileRead,\r\n}\r\n\r\n/**\r\n * Flow.js is a library providing multiple simultaneous, stable and\r\n * resumable uploads via the HTML5 File API.\r\n * @param [opts]\r\n * @constructor\r\n * @example\r\n * A new Flow object is created with information of what and where to post:\r\n * var flow = new Flow({\r\n * target:'/api/photo/redeem-upload-token',\r\n * query:{upload_token:'my_token'}\r\n * });\r\n * // Flow.js isn't supported, fall back on a different method\r\n * if(!flow.support) location.href = '/some-old-crappy-uploader';\r\n *\r\n * To allow files to be either selected and drag-dropped, you'll assign drop target and a DOM item to be clicked for browsing:\r\n * flow.assignBrowse(document.getElementById('browseButton'));\r\n * flow.assignDrop(document.getElementById('dropTarget'));\r\n *\r\n * After this, interaction with Flow.js is done by listening to events:\r\n * flow.on('fileAdded', function(file, event){\r\n * console.log(file, event);\r\n * });\r\n * flow.on('fileSuccess', function(file,message){\r\n * console.log(file,message);\r\n * });\r\n * flow.on('fileError', function(file, message){\r\n * console.log(file, message);\r\n * });\r\n */\r\nexport class Flow {\r\n //\r\n // ──────────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P E R T I E S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────\r\n //\r\n /**\r\n * Supported by browser?\r\n * A boolean value indicator whether or not Flow.js is supported by the current browser.\r\n * @type {boolean}\r\n */\r\n support!: boolean\r\n\r\n /**\r\n * Check if directory upload is supported\r\n * A boolean value, which indicates if browser supports directory uploads.\r\n * @type {boolean}\r\n */\r\n supportDirectory!: boolean\r\n\r\n /**\r\n * List of FlowFile objects\r\n * An array of FlowFile file objects added by the user (see full docs for this object type below).\r\n * @type {Array.}\r\n */\r\n files!: FlowFile[]\r\n\r\n /**\r\n * Default options for flow.js\r\n * @type {Object}\r\n */\r\n defaults: FlowOptions = initialOptions\r\n\r\n /**\r\n * Current options\r\n * A hash object of the configuration of the Flow.js instance.\r\n * @type {Object}\r\n */\r\n opts: FlowOptions = Object.create(null)\r\n\r\n /**\r\n * List of events:\r\n * key stands for event name\r\n * value array list of callbacks\r\n * @type {}\r\n */\r\n events: { [key: string]: any } = {}\r\n\r\n //\r\n // ────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O N S T R U C T O R : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n constructor(opts: FlowOptions, files: FlowFile[] = []) {\r\n console.log('initialize flow with', opts)\r\n this.support =\r\n typeof File !== 'undefined' &&\r\n typeof Blob !== 'undefined' &&\r\n typeof FileList !== 'undefined' &&\r\n (!!Blob.prototype.slice || !!Blob.prototype.webkitSlice || !!Blob.prototype.mozSlice || false) // slicing files support\r\n if (!this.support) {\r\n return\r\n }\r\n this.supportDirectory =\r\n /Chrome/.test(window.navigator.userAgent) ||\r\n /Firefox/.test(window.navigator.userAgent) ||\r\n /Edge/.test(window.navigator.userAgent)\r\n this.opts = Flow.extend({}, this.defaults, opts || Object.create(null))\r\n\r\n // assign event handlers\r\n const eventHandlerContext = this.opts.on as any\r\n FlowEventNames.forEach((event: string) => {\r\n if (!eventHandlerContext[event]) return\r\n this.on(event, eventHandlerContext[event].bind(eventHandlerContext))\r\n })\r\n this.files = files\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R I V A T E M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * On drop event\r\n * @function\r\n * @param {MouseEvent} event\r\n */\r\n private onDrop(event: any) {\r\n // console.log('flow', 'onDrop', this.opts)\r\n if (this.opts.onDropStopPropagation) {\r\n event.stopPropagation()\r\n }\r\n event.preventDefault()\r\n var dataTransfer = event.dataTransfer\r\n if (dataTransfer.items && dataTransfer.items[0] && dataTransfer.items[0].webkitGetAsEntry) {\r\n this.webkitReadDataTransfer(event)\r\n } else {\r\n this.addFiles(dataTransfer.files, event)\r\n }\r\n }\r\n\r\n /**\r\n * Prevent default\r\n * @function\r\n * @param {MouseEvent} event\r\n */\r\n private preventEvent(event: any) {\r\n // console.log('flow', 'preventEvent', event)\r\n event.preventDefault()\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: P U B L I C M E T H O D S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * Set a callback for an event, possible events:\r\n * - fileSuccess(file, message, chunk) A specific file was completed. First argument file is instance of FlowFile, second argument message contains server response. Response is always a string. Third argument chunk is instance of FlowChunk. You can get response status by accessing xhr object chunk.xhr.status.\r\n * - fileProgress(file, chunk) Uploading progressed for a specific file.\r\n * - fileAdded(file, event) This event is used for file validation. To reject this file return false. This event is also called before file is added to upload queue, this means that calling flow.upload() function will not start current file upload. Optionally, you can use the browser event object from when the file was added.\r\n * - filesAdded(array, event) Same as fileAdded, but used for multiple file validation.\r\n * - filesSubmitted(array, event) Same as filesAdded, but happens after the file is added to upload queue. Can be used to start upload of currently added files.\r\n * - fileRemoved(file) The specific file was removed from the upload queue. Combined with filesSubmitted, can be used to notify UI to update its state to match the upload queue.\r\n * - fileRetry(file, chunk) Something went wrong during upload of a specific file, uploading is being retried.\r\n * - fileError(file, message, chunk) An error occurred during upload of a specific file.\r\n * - uploadStart() Upload has been started on the Flow object.\r\n * - complete() Uploading completed.\r\n * - progress() Uploading progress.\r\n * - error(message, file, chunk) An error, including fileError, occurred.\r\n * - catchAll(event, ...) Listen to all the events listed above with the same callback function.\r\n * @function\r\n * @param {string} event\r\n * @param {Function} callback\r\n */\r\n on(event: string, callback: Function) {\r\n event = event.toLowerCase()\r\n if (!this.events.hasOwnProperty(event)) {\r\n this.events[event] = []\r\n }\r\n this.events[event].push(callback)\r\n }\r\n\r\n /**\r\n * Remove event callback\r\n * @function\r\n * @param {string} [event] removes all events if not specified\r\n * @param {Function} [fn] removes all callbacks of event if not specified\r\n */\r\n off(event: string, fn: Function) {\r\n if (event !== undefined) {\r\n event = event.toLowerCase()\r\n if (fn !== undefined) {\r\n if (this.events.hasOwnProperty(event)) {\r\n Flow.arrayRemove(this.events[event], fn)\r\n }\r\n } else {\r\n delete this.events[event]\r\n }\r\n } else {\r\n this.events = {}\r\n }\r\n }\r\n\r\n /**\r\n * Fire an event\r\n * @function\r\n * @param {string} event event name\r\n * @param {...} args arguments of a callback\r\n * @return {bool} value is false if at least one of the event handlers which handled this event\r\n * returned false. Otherwise it returns true.\r\n */\r\n fire(event: any, ...args: any[]): boolean {\r\n // `arguments` is an object, not array, in FF, so:\r\n args = Array.prototype.slice.call(arguments)\r\n event = event.toLowerCase()\r\n var preventDefault = false\r\n if (this.events.hasOwnProperty(event)) {\r\n Flow.each(\r\n this.events[event],\r\n (callback: Function) => {\r\n preventDefault = callback.apply(this, args.slice(1)) === false || preventDefault\r\n },\r\n this\r\n )\r\n }\r\n if (event != 'catchall') {\r\n args.unshift('catchAll')\r\n preventDefault = this.fire.apply(this, args as any) === false || preventDefault\r\n }\r\n return !preventDefault\r\n }\r\n\r\n /**\r\n * Read webkit dataTransfer object\r\n * @param event\r\n */\r\n webkitReadDataTransfer(event: any) {\r\n var $ = this\r\n var queue = event.dataTransfer.items.length\r\n var files: File[] = []\r\n\r\n /**\r\n * retrieves the directory entries within the directory being read and delivers them in an array.\r\n * @param {FileSystemDirectoryReader} reader\r\n */\r\n const readDirectory = (reader: any) => {\r\n const successCallback = (entries: any[]) => {\r\n if (entries.length) {\r\n queue += entries.length\r\n Flow.each(entries, (entry: any) => {\r\n if (entry.isFile) {\r\n var fullPath = entry.fullPath\r\n entry.file((file: File) => {\r\n fileReadSuccess(file, fullPath)\r\n }, readError)\r\n } else if (entry.isDirectory) {\r\n readDirectory(entry.createReader())\r\n }\r\n })\r\n readDirectory(reader)\r\n } else {\r\n decrement()\r\n }\r\n }\r\n reader.readEntries(successCallback, readError)\r\n }\r\n\r\n const fileReadSuccess = (file: File | null, fullPath: string) => {\r\n if (!file) throw new Error('ARG_NULL_ERROR : file')\r\n // relative path should not start with \"/\"\r\n file.relativePath = fullPath.substring(1)\r\n files.push(file)\r\n decrement()\r\n }\r\n\r\n const readError = (fileError: any) => {\r\n decrement()\r\n throw fileError\r\n }\r\n\r\n const decrement = () => {\r\n if (--queue == 0) {\r\n this.addFiles(files, event)\r\n }\r\n }\r\n\r\n Flow.each(event.dataTransfer.items, (item: DataTransferItem) => {\r\n var entry = item.webkitGetAsEntry()\r\n if (!entry) {\r\n decrement()\r\n return\r\n }\r\n\r\n if (entry.isFile) {\r\n // due to a bug in Chrome's File System API impl - #149735\r\n fileReadSuccess(item.getAsFile(), entry.fullPath)\r\n } else {\r\n readDirectory(entry.createReader())\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Generate unique identifier for a file\r\n * @function\r\n * @param {FlowFile} file\r\n * @returns {string}\r\n */\r\n generateUniqueIdentifier(file: File) {\r\n var custom = this.opts.generateUniqueIdentifier\r\n if (typeof custom === 'function') {\r\n return custom(file)\r\n }\r\n const now = new Date()\r\n\r\n // Some confusion in different versions of Firefox\r\n var relativePath: string =\r\n file.relativePath || file.webkitRelativePath || file.fileName || file.name\r\n // return file.size + '-' + relativePath.replace(/[^0-9a-zA-Z_-]/gim, '')\r\n return (\r\n now.getTime() +\r\n '-' +\r\n file.size +\r\n '-' +\r\n relativePath.replace(/[^0-9a-zA-Zㄱ-ㅎ|ㅏ-ㅣ|가-힣_-]/gim, '')\r\n )\r\n }\r\n\r\n /**\r\n * Upload next chunk from the queue\r\n * @function\r\n * @returns {boolean}\r\n * @private\r\n */\r\n uploadNextChunk(preventEvents?: any): boolean {\r\n // In some cases (such as videos) it's really handy to upload the first\r\n // and last chunk of a file quickly; this let's the server check the file's\r\n // metadata and determine if there's even a point in continuing.\r\n var found = false\r\n if (this.opts.prioritizeFirstAndLastChunk) {\r\n Flow.each(this.files, (file: FlowFile) => {\r\n if (!file.paused && file.chunks.length && file.chunks[0].status() === 'pending') {\r\n file.chunks[0].send()\r\n found = true\r\n return false\r\n }\r\n if (\r\n !file.paused &&\r\n file.chunks.length > 1 &&\r\n file.chunks[file.chunks.length - 1].status() === 'pending'\r\n ) {\r\n file.chunks[file.chunks.length - 1].send()\r\n found = true\r\n return false\r\n }\r\n })\r\n if (found) {\r\n return found\r\n }\r\n }\r\n\r\n // Now, simply look for the next, best thing to upload\r\n Flow.each(this.files, (file: FlowFile) => {\r\n if (!file.paused) {\r\n Flow.each(file.chunks, (chunk: FlowChunk) => {\r\n if (chunk.status() === 'pending') {\r\n chunk.send()\r\n found = true\r\n return false\r\n }\r\n })\r\n }\r\n if (found) {\r\n return false\r\n }\r\n })\r\n if (found) {\r\n return true\r\n }\r\n\r\n // The are no more outstanding chunks to upload, check is everything is done\r\n var outstanding = false\r\n Flow.each(this.files, (file: FlowFile) => {\r\n if ((file as any).status && (file as any).status == 'succeed') {\r\n\r\n }\r\n else if (!file.isComplete()) {\r\n outstanding = true\r\n return false\r\n }\r\n })\r\n if (!outstanding && !preventEvents) {\r\n // All chunks have been uploaded, complete\r\n Flow.async(() => {\r\n this.fire('complete')\r\n }, this)\r\n }\r\n return false\r\n }\r\n\r\n /**\r\n * 선택된 파일 삭제 액션을 하나 또는 이상의 DOM 노드에 할당합니다.\r\n * @param {Element|Array.} domNodes\r\n */\r\n assignDeleteSelectedFiles(domNodes: Element[] | Element, msgNosel: string) {\r\n if (domNodes instanceof Element) {\r\n domNodes = [domNodes]\r\n }\r\n\r\n Flow.each(\r\n domNodes,\r\n (domNode: HTMLInputElement) => {\r\n domNode.addEventListener('click', async (ev) => {\r\n const files = this.files.filter((x) => x.selected)\r\n if (files.length > 0) {\r\n for (var file of files) {\r\n this.removeFile(file)\r\n }\r\n } else {\r\n await(window as any).alertAsync(msgNosel)\r\n }\r\n })\r\n },\r\n this\r\n )\r\n }\r\n\r\n /**\r\n * Assign a browse action to one or more DOM nodes.\r\n * Note: avoid using a and button tags as file upload buttons, use span instead.\r\n * @function\r\n * @param {Element|Array.} domNodes\r\n * @param {boolean} isDirectory Pass in true to allow directories to\r\n * @param {boolean} singleFile prevent multi file upload\r\n * @param {Object} attributes set custom attributes:\r\n * http://www.w3.org/TR/html-markup/input.file.html#input.file-attributes\r\n * eg: accept: 'image/*'\r\n * be selected (Chrome only).\r\n */\r\n assignBrowse(\r\n domNodes: Element[] | Element,\r\n isDirectory?: boolean,\r\n singleFile?: boolean,\r\n attributes?: Object\r\n ) {\r\n if (domNodes instanceof Element) {\r\n domNodes = [domNodes]\r\n }\r\n\r\n Flow.each(\r\n domNodes,\r\n (domNode: HTMLInputElement) => {\r\n var input: HTMLInputElement\r\n if (domNode.tagName === 'INPUT' && domNode.type === 'file') {\r\n input = domNode\r\n } else {\r\n input = document.createElement('input')\r\n input.setAttribute('type', 'file')\r\n // display:none - not working in opera 12\r\n Flow.extend(input.style, {\r\n visibility: 'hidden',\r\n position: 'absolute',\r\n width: '1px',\r\n height: '1px',\r\n })\r\n // for opera 12 browser, input must be assigned to a document\r\n domNode.appendChild(input)\r\n // https://developer.mozilla.org/en/using_files_from_web_applications)\r\n // event listener is executed two times\r\n // first one - original mouse click event\r\n // second - input.click(), input is inside domNode\r\n domNode.addEventListener(\r\n 'click',\r\n () => {\r\n input.click()\r\n },\r\n false\r\n )\r\n }\r\n if (!this.opts.singleFile && !singleFile) {\r\n input.setAttribute('multiple', 'multiple')\r\n }\r\n if (isDirectory) {\r\n input.setAttribute('webkitdirectory', 'webkitdirectory')\r\n }\r\n Flow.each(attributes, (value: string, key: string) => {\r\n input.setAttribute(key, value)\r\n })\r\n // When new files are added, simply append them to the overall list\r\n var $ = this\r\n input.addEventListener(\r\n 'change',\r\n (e: any) => {\r\n if (e.target?.value) {\r\n this.addFiles([...e.target.files], e)\r\n e.target.value = ''\r\n }\r\n },\r\n false\r\n )\r\n },\r\n this\r\n )\r\n }\r\n\r\n /**\r\n * Assign one or more DOM nodes as a drop target.\r\n * @function\r\n * @param {Element|Array.} domNodes\r\n */\r\n assignDrop(domNodes: Element | Element[]) {\r\n let nodes: Element[]\r\n if (typeof (domNodes as Element[]).length === 'undefined') {\r\n nodes = [domNodes as Element]\r\n } else {\r\n nodes = domNodes as Element[]\r\n }\r\n nodes.forEach((domNode) => {\r\n domNode.addEventListener('dragover', this.preventEvent, false)\r\n domNode.addEventListener('dragenter', this.preventEvent, false)\r\n domNode.addEventListener('drop', this.onDrop.bind(this), false)\r\n })\r\n }\r\n\r\n /**\r\n * Un-assign drop event from DOM nodes\r\n * @function\r\n * @param domNodes\r\n */\r\n unAssignDrop(domNodes: Element | Element[]) {\r\n let nodes: Element[]\r\n if (typeof (domNodes as Element[]).length === 'undefined') {\r\n nodes = [domNodes as Element]\r\n } else {\r\n nodes = domNodes as Element[]\r\n }\r\n Flow.each(\r\n nodes,\r\n (domNode: Element) => {\r\n domNode.removeEventListener('dragover', this.preventEvent)\r\n domNode.removeEventListener('dragenter', this.preventEvent)\r\n domNode.removeEventListener('drop', this.onDrop)\r\n },\r\n this\r\n )\r\n }\r\n\r\n /**\r\n * Returns a boolean indicating whether or not the instance is currently\r\n * uploading anything.\r\n * @function\r\n * @returns {boolean}\r\n */\r\n isUploading() {\r\n var uploading = false\r\n Flow.each(this.files, (file: FlowFile) => {\r\n if (file.isUploading()) {\r\n uploading = true\r\n return false\r\n }\r\n })\r\n return uploading\r\n }\r\n\r\n /**\r\n * should upload next chunk\r\n * @function\r\n * @returns {boolean|number}\r\n */\r\n _shouldUploadNext(): false | number {\r\n var num = 0\r\n var should = true\r\n var simultaneousUploads = this.opts.simultaneousUploads\r\n Flow.each(this.files, (file: FlowFile) => {\r\n Flow.each(file.chunks, (chunk: FlowChunk) => {\r\n if (chunk.status() === 'uploading') {\r\n num++\r\n if (num >= simultaneousUploads) {\r\n should = false\r\n return false\r\n }\r\n }\r\n })\r\n })\r\n // if should is true then return uploading chunks's length\r\n return should && num\r\n }\r\n\r\n /**\r\n * Start or resume uploading.\r\n * @function\r\n */\r\n upload() {\r\n // Make sure we don't start too many uploads at once\r\n var ret = this._shouldUploadNext()\r\n if (ret === false) {\r\n return\r\n }\r\n // Kick off the queue\r\n this.fire('uploadStart')\r\n var started = false\r\n for (var num = 1; num <= this.opts.simultaneousUploads - ret; num++) {\r\n started = this.uploadNextChunk(true) || started\r\n }\r\n if (!started) {\r\n Flow.async(() => {\r\n this.fire('complete')\r\n }, this)\r\n }\r\n }\r\n\r\n /**\r\n * Resume uploading.\r\n * @function\r\n */\r\n resume() {\r\n Flow.each(this.files, (file: FlowFile) => {\r\n if ((file as any).status && (file as any).status == 'succeed') {\r\n\r\n }\r\n else if (!file.isComplete()) {\r\n file.resume()\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Pause uploading.\r\n * @function\r\n */\r\n pause() {\r\n Flow.each(this.files, (file: FlowFile) => {\r\n file.pause()\r\n })\r\n }\r\n\r\n /**\r\n * Cancel upload of all FlowFile objects and remove them from the list.\r\n * @function\r\n */\r\n cancel() {\r\n for (var i = this.files.length - 1; i >= 0; i--) {\r\n this.files[i].cancel()\r\n }\r\n }\r\n\r\n /**\r\n * Returns a number between 0 and 1 indicating the current upload progress\r\n * of all files.\r\n * @function\r\n * @returns {number}\r\n */\r\n progress() {\r\n var totalDone = 0\r\n var totalSize = 0\r\n // Resume all chunks currently being uploaded\r\n Flow.each(this.files, (file: FlowFile) => {\r\n totalDone += file.progress() * file.size\r\n totalSize += file.size\r\n })\r\n return totalSize > 0 ? totalDone / totalSize : 0\r\n }\r\n\r\n /**\r\n * Add a HTML5 File object to the list of files.\r\n * @function\r\n * @param {File} file\r\n * @param {Event} [event] event is optional\r\n */\r\n addFile(file: File, event: any) {\r\n this.addFiles([file], event)\r\n }\r\n\r\n /**\r\n * Add a HTML5 File object to the list of files.\r\n * @function\r\n * @param {FileList|Array} fileList\r\n * @param {Event} [event] event is optional\r\n */\r\n addFiles(fileList: File[], event: any) {\r\n // console.log(\r\n // 'flow',\r\n // 'addFiles',\r\n // fileList.length,\r\n // fileList[0],\r\n // fileList,\r\n // event\r\n // )\r\n var files: FlowFile[] = []\r\n if (this.fire('filesAdding', fileList, event) == false) {\r\n return\r\n }\r\n fileList.forEach((file) => {\r\n // https://github.com/flowjs/flow.js/issues/55\r\n if (\r\n (!ie10plus || (ie10plus && file.size > 0)) &&\r\n !(file.size % 4096 === 0 && (file.name === '.' || file.fileName === '.'))\r\n ) {\r\n var uniqueIdentifier = this.generateUniqueIdentifier(file)\r\n if (this.opts.allowDuplicateUploads || !this.getFromUniqueIdentifier(uniqueIdentifier)) {\r\n var f = new FlowFile(this, file, uniqueIdentifier)\r\n if (this.fire('fileAdded', f, event)) {\r\n files.push(f)\r\n }\r\n }\r\n }\r\n })\r\n if (this.fire('filesAdded', files, event)) {\r\n files.forEach((file: FlowFile) => {\r\n if (this.opts.singleFile && this.files.length > 0) {\r\n this.removeFile(this.files[0])\r\n }\r\n this.files.push(file)\r\n })\r\n this.fire('filesSubmitted', files, event)\r\n }\r\n }\r\n\r\n /**\r\n * Cancel upload of a specific FlowFile object from the list.\r\n * @function\r\n * @param {FlowFile} file\r\n */\r\n removeFile(file: FlowFile) {\r\n for (var i = this.files.length - 1; i >= 0; i--) {\r\n if (this.files[i] === file) {\r\n this.files.splice(i, 1)\r\n file.abort()\r\n this.fire('fileRemoved', file)\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Look up a FlowFile object by its unique identifier.\r\n * @function\r\n * @param {string} uniqueIdentifier\r\n * @returns {boolean|FlowFile} false if file was not found\r\n */\r\n getFromUniqueIdentifier(uniqueIdentifier: string): boolean | FlowFile {\r\n var ret: boolean | FlowFile = false\r\n Flow.each(this.files, (file: FlowFile) => {\r\n if (file.uniqueIdentifier === uniqueIdentifier) {\r\n ret = file\r\n }\r\n })\r\n return ret\r\n }\r\n\r\n /**\r\n * Returns the total size of all files in bytes.\r\n * @function\r\n * @returns {number}\r\n */\r\n getSize() {\r\n var totalSize = 0\r\n Flow.each(this.files, (file: FlowFile) => {\r\n totalSize += file.size\r\n })\r\n return totalSize\r\n }\r\n\r\n /**\r\n * Returns the total size uploaded of all files in bytes.\r\n * @function\r\n * @returns {number}\r\n */\r\n sizeUploaded() {\r\n var size = 0\r\n Flow.each(this.files, (file: FlowFile) => {\r\n size += file.sizeUploaded()\r\n })\r\n return size\r\n }\r\n\r\n /**\r\n * Returns remaining time to upload all files in seconds. Accuracy is based on average speed.\r\n * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY`\r\n * @function\r\n * @returns {number}\r\n */\r\n timeRemaining() {\r\n var sizeDelta = 0\r\n var averageSpeed = 0\r\n Flow.each(this.files, (file: FlowFile) => {\r\n if (!file.paused && !file.error) {\r\n sizeDelta += file.size - file.sizeUploaded()\r\n averageSpeed += file.averageSpeed\r\n }\r\n })\r\n if (sizeDelta && !averageSpeed) {\r\n return Number.POSITIVE_INFINITY\r\n }\r\n if (!sizeDelta && !averageSpeed) {\r\n return 0\r\n }\r\n return Math.floor(sizeDelta / averageSpeed)\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: S T A T I C M E T H O D S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * Remove value from array\r\n * @param array\r\n * @param value\r\n */\r\n static arrayRemove(array: any, value: any) {\r\n var index = array.indexOf(value)\r\n if (index > -1) {\r\n array.splice(index, 1)\r\n }\r\n }\r\n\r\n /**\r\n * If option is a function, evaluate it with given params\r\n * @param {*} data\r\n * @param {...} args arguments of a callback\r\n * @returns {*}\r\n */\r\n static evalOpts(data: any, ...args: any[]) {\r\n if (typeof data === 'function') {\r\n // `arguments` is an object, not array, in FF, so:\r\n args = Array.prototype.slice.call(arguments)\r\n data = data.apply(null, args.slice(1))\r\n }\r\n return data\r\n }\r\n\r\n /**\r\n * Execute function asynchronously\r\n * @param fn\r\n * @param context\r\n */\r\n static async(fn: any, context: any) {\r\n setTimeout(fn.bind(context), 0)\r\n }\r\n\r\n /**\r\n * Extends the destination object `dst` by copying all of the properties from\r\n * the `src` object(s) to `dst`. You can specify multiple `src` objects.\r\n * @function\r\n * @param {Object} dst Destination object.\r\n * @param {...Object} src Source object(s).\r\n * @returns {Object} Reference to `dst`.\r\n */\r\n static extend(dst: any, ...args: any[]) {\r\n Flow.each(arguments as any, (obj: any) => {\r\n if (obj !== dst) {\r\n Flow.each(obj, (value: any, key: any) => {\r\n dst[key] = value\r\n })\r\n }\r\n })\r\n return dst\r\n }\r\n\r\n /**\r\n * Iterate each element of an object\r\n * @function\r\n * @param {Array|Object} obj object or an array to iterate\r\n * @param {Function} callback first argument is a value and second is a key.\r\n * @param {Object=} context Object to become context (`this`) for the iterator function.\r\n */\r\n static each(obj: any, callback: any, context?: any) {\r\n if (!obj) {\r\n return\r\n }\r\n var key\r\n // Is Array?\r\n // Array.isArray won't work, not only arrays can be iterated by index https://github.com/flowjs/ng-flow/issues/236#\r\n if (typeof obj.length !== 'undefined') {\r\n for (key = 0; key < obj.length; key++) {\r\n if (callback.call(context, obj[key], key) === false) {\r\n return\r\n }\r\n }\r\n } else {\r\n for (key in obj) {\r\n if (obj.hasOwnProperty(key) && callback.call(context, obj[key], key) === false) {\r\n return\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * FlowFile constructor\r\n * @type {FlowFile}\r\n */\r\n static FlowFile = FlowFile\r\n\r\n /**\r\n * FlowFile constructor\r\n * @type {FlowChunk}\r\n */\r\n static FlowChunk = FlowChunk\r\n\r\n /**\r\n * Library version\r\n * @type {string}\r\n */\r\n static version: string = '<%= version %>'\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',[_c('div',{staticClass:\"ip-subject\"},[_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.subject),expression:\"value.subject\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('일정_제목을_입력하세요').toString()},domProps:{\"value\":(_vm.value.subject)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"subject\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(0),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showStartDateModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Startdate')))]),_c('p',[_vm._v(_vm._s(_vm.startDateText))])]),_c('div',{staticClass:\"time\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showStartTimeModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_StartTime')))]),_c('p',[_vm._v(_vm._s(_vm.value.starttime))])])])])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(1),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showEndDateModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Enddate')))]),_c('p',[_vm._v(_vm._s(_vm.endDateText))])]),_c('div',{staticClass:\"time\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showEndTimeModal')}}},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_EndTime')))]),_c('p',[_vm._v(_vm._s(_vm.value.endtime))])])])])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(2),_c('div',{staticClass:\"form\"},[_c('div',{staticClass:\"con-wrap\"},[_c('div',{staticClass:\"con-left\"},[_c('p',[_vm._v(_vm._s(_vm.$t('W_Schedule_Allday')))])]),_c('div',{staticClass:\"con-right\"},[_c('label',{staticClass:\"switch\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.isAllDayEvent),expression:\"value.isAllDayEvent\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.value.isAllDayEvent)?_vm._i(_vm.value.isAllDayEvent,null)>-1:(_vm.value.isAllDayEvent)},on:{\"change\":function($event){var $$a=_vm.value.isAllDayEvent,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.value, \"isAllDayEvent\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.value, \"isAllDayEvent\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.value, \"isAllDayEvent\", $$c)}}}}),_c('span',{staticClass:\"slider round\"})])])])])]),_c('div',{staticClass:\"ip-rotate\"},[_vm._m(3),_c('div',{staticClass:\"form\",on:{\"click\":_vm.recurring}},[(_vm.value.isRecurring === 'False' && _vm.value.appointmentType != 'RecurringMaster')?_c('a',[_vm._v(_vm._s(_vm.$t('반복설정')))]):_c('a',[_vm._v(_vm._s(_vm.getRecurrencePatternDisplay))])])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(4),_c('div',{staticClass:\"form\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showMeetingRoomModal')}}},[(!_vm.selectConference)?_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_MeetingRoom')))]):_c('a',{staticStyle:{\"color\":\"blue\"}},[_vm._v(_vm._s(_vm.selectConference.groupDisplayName)+\" > \"+_vm._s(_vm.selectConference.displayName))])])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(5),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.location),expression:\"value.location\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Schedule_Location').toString()},domProps:{\"value\":(_vm.value.location)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"location\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(6),_c('div',{staticClass:\"form\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showFolderModal')}}},[(!_vm.value.parentId)?_c('a',[_vm._v(_vm._s(_vm.$t('폴더')))]):_c('a',{staticStyle:{\"color\":\"blue\"}},[_vm._v(_vm._s(_vm.folderName))])])]),_c('RecipientFields',{attrs:{\"type\":'to',\"title\":this.$t('필수참석자').toString(),\"email\":_vm.email},on:{\"change\":function (tags) { return (_vm.email.to = tags); }},model:{value:(_vm.email.to),callback:function ($$v) {_vm.$set(_vm.email, \"to\", $$v)},expression:\"email.to\"}}),_c('RecipientFields',{attrs:{\"type\":'cc',\"title\":this.$t('선택참석자').toString(),\"email\":_vm.email},on:{\"change\":function (tags) { return (_vm.email.cc= tags); }},model:{value:(_vm.email.cc),callback:function ($$v) {_vm.$set(_vm.email, \"cc\", $$v)},expression:\"email.cc\"}}),_c('div',{staticClass:\"ip-notice\"},[_vm._m(7),_c('div',{staticClass:\"form\",on:{\"click\":function($event){return _vm.$emit('showModal', 'showAlarmModal')}}},[(!_vm.value.reminderMinutesBeforeStart)?_c('a',{attrs:{\"id\":\"btnModal\"}},[_vm._v(_vm._s(_vm.$t('일정_미리_알림')))]):_c('a',{attrs:{\"id\":\"btnModal\"}},[_vm._v(_vm._s(_vm.reminderText))])])]),_c('WriteBody',{model:{value:(_vm.value.body),callback:function ($$v) {_vm.$set(_vm.value, \"body\", $$v)},expression:\"value.body\"}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-calendar\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-calendar\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-time\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-rotate\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-location\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-location\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-folder\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-bell\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WriteBody from '@calendar/components/Write/WriteBody.vue'\r\nimport RecipientFields from '@/components/common/RecipientFields.vue'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport { mapMutations } from 'vuex';\r\nimport * as types from '@calendar/store/types'\r\n@Component({\r\n components: {\r\n WriteBody,\r\n RecipientFields\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCurrentItem: types.CURRENT_CALENDAR_ITEM\r\n })\r\n }\r\n})\r\nexport default class WriteForm extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) value!: calendar.CalendarItem;\r\n @Prop({ type: Object }) email!: mail.WriteEmailData;\r\n @Prop({ type: String }) folderName!: string;\r\n @Prop({ type: Object }) selectConference!: any;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrentItem!: (item: calendar.CalendarItem) => void;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n showWeekText: any\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get startDateText() {\r\n return dateutil.uGetDateFormat('yyyy-mm-dd', dateutil.IEDate(this.value.start)); \r\n }\r\n\r\n get endDateText() {\r\n return dateutil.uGetDateFormat('yyyy-mm-dd', dateutil.IEDate(this.value.end)); \r\n }\r\n\r\n get reminderText() {\r\n var number = this.value.reminderMinutesBeforeStart || 0\r\n if(number === 60) {\r\n return this.$t('N시간_전_알림', {number: 1}).toString()\r\n }\r\n else if(number === 1440) {\r\n return this.$t('N일_전_알림', {number: 1}).toString()\r\n }\r\n else if(number === 2880) {\r\n return this.$t('N일_전_알림', {number: 2}).toString()\r\n }\r\n else if(number === 4320) {\r\n return this.$t('N일_전_알림', {number: 3}).toString()\r\n }\r\n else if(number < 60) {\r\n return this.$t('N분_전_알림', {number: number}).toString()\r\n }\r\n }\r\n\r\n /**\r\n * 반복일정 설정 내용을 표시합니다\r\n */\r\n get getRecurrencePatternDisplay() {\r\n let beautifyStartTime\r\n let beautifyEndTime\r\n\r\n if (this.value.starttime && this.value.starttime.length > 3) {\r\n beautifyStartTime = this.value.starttime.substr(0, this.value.starttime.length - 3)\r\n }\r\n if (this.value.endtime && this.value.endtime.length > 3) {\r\n beautifyEndTime = this.value.endtime.substr(0, this.value.endtime.length - 3)\r\n }\r\n\r\n let display: string = ''\r\n //ex) 기간 3일 : 3.00:00:00 -> 3\r\n let scheduleDuration = this.value.scheduleDuration.split('.')[0]\r\n\r\n if (\r\n false &&\r\n this.value.isRecurring.toString() === 'False' &&\r\n this.value.appointmentType != 'RecurringMaster'\r\n ) {\r\n return (display = this.value.pidLidRecurrencePattern)\r\n }\r\n\r\n if (\r\n (this.value.isRecurring &&this.value.isRecurring.toString() === 'True') ||\r\n this.value.appointmentType == 'RecurringMaster'\r\n ) {\r\n if (this.value.appointmentType == 'Occurrence' || this.value.appointmentType == 'Exception') {\r\n display = this.value.pidLidRecurrencePattern\r\n }\r\n //'전체약속'\r\n else {\r\n let beautifyStartDate = this.value.recurrence.startDate.split('T')[0]\r\n let beautifyEndDate\r\n if (this.value.recurrence.endDate != null) {\r\n beautifyEndDate = this.value.recurrence.endDate.split('T')[0]\r\n }\r\n //매일\r\n if (this.value.recurrence.ui_recurringType == 1) {\r\n if (this.value.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매 ${this.value.recurrence.interval}일씩 주기로 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매 ${this.value.recurrence.interval}일씩 주기로 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n //매주\r\n else if (this.value.recurrence.ui_recurringType == 2) {\r\n let weeklist = dateutil.uGetWeekArray([\r\n this.$t('W_Schedule_Sunday').toString(),\r\n this.$t('W_Schedule_Monday').toString(),\r\n this.$t('W_Schedule_Tuesday').toString(),\r\n this.$t('W_Schedule_Wednesday').toString(),\r\n this.$t('W_Schedule_Thursday').toString(),\r\n this.$t('W_Schedule_Friday').toString(),\r\n this.$t('W_Schedule_Saturday').toString(),\r\n ])\r\n // 반복일정 수정할 때 요일 체크한거 화면에 display\r\n let weekArrayString = weeklist\r\n .filter((x: any) => this.value.recurrence.daysOfTheWeekArray?.indexOf(x.value) != -1)\r\n .map((x) => {\r\n return x.text\r\n })\r\n .join(',')\r\n if (this.value.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매${this.value.recurrence.interval}주마다 ${weekArrayString} ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매${this.value.recurrence.interval}주마다 ${weekArrayString} ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n //매월\r\n else if (this.value.recurrence.ui_recurringType == 3) {\r\n if (this.value.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매월 ${this.value.recurrence.interval}개월마다 ${this.value.recurrence.dayOfMonth}일에 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매월 ${this.value.recurrence.interval}개월마다 ${this.value.recurrence.dayOfMonth}일에 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n //매년\r\n else if (this.value.recurrence.ui_recurringType == 4) {\r\n if (this.value.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매년 ${this.value.recurrence.monthValue}월 ${this.value.recurrence.dayOfMonth}일마다 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매년 ${this.value.recurrence.monthValue}월 ${this.value.recurrence.dayOfMonth}일마다 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n }\r\n }\r\n if (!this.value.isEWS) {\r\n this.value.pidLidRecurrencePattern = display\r\n }\r\n return display\r\n }\r\n\r\n // /**\r\n // * 반복일정 설정 내용을 표시합니다\r\n // */\r\n // get getRecurrencePatternDisplay() {\r\n\r\n // let beautifyStartTime;\r\n // let beautifyEndTime;\r\n\r\n // if(this.value.starttime && this.value.starttime.length >3) {\r\n // beautifyStartTime = this.value.starttime.substr(0, this.value.starttime.length -3);\r\n // }\r\n // if(this.value.endtime && this.value.endtime.length >3) {\r\n // beautifyEndTime = this.value.endtime.substr(0, this.value.endtime.length -3);\r\n // }\r\n \r\n // let beautifyEndDate;\r\n // if(this.value.recurrence.endDate != null ) {\r\n // beautifyEndDate = dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.IEDate(this.value.recurrence.endDate));\r\n // }\r\n \r\n // let display: string = '';\r\n \r\n // if(this.value.recurrence.ui_recurringType == 1) {\r\n // if(this.value.recurrence.endDate != null) \r\n // {\r\n // // 매일 / 종료일 특정 날짜\r\n // display = `${beautifyEndDate} 까지 ${this.value.recurrence.interval}일 마다 반복`;\r\n // }\r\n // else\r\n // {\r\n // // 매일 / 종료일 기한 없음\r\n // display = `${this.value.recurrence.interval}일 마다 반복`;\r\n // }\r\n // }\r\n // //매주\r\n // else if(this.value.recurrence.ui_recurringType == 2) {\r\n // let weeklist = dateutil.uGetWeekArray([\r\n // this.$t('W_Schedule_Sunday').toString(),\r\n // this.$t('W_Schedule_Monday').toString(),\r\n // this.$t('W_Schedule_Tuesday').toString(),\r\n // this.$t('W_Schedule_Wednesday').toString(),\r\n // this.$t('W_Schedule_Thursday').toString(),\r\n // this.$t('W_Schedule_Friday').toString(),\r\n // this.$t('W_Schedule_Saturday').toString(),\r\n // ]);\r\n // // 반복일정 수정할 때 요일 체크한거 화면에 display\r\n // this.showWeekText = weeklist.filter((x:any) => \r\n // (this.value.recurrence.daysOfTheWeekArray?.indexOf(x.value) != -1) \r\n // ).map((x) => {return x.text;}).join(',');\r\n\r\n // //this.showWeekText = weekArrayString;\r\n\r\n // if(this.value.recurrence.endDate != null)\r\n // {\r\n // // 매주 / 종료일 특정 날짜\r\n // display = `${beautifyEndDate} 까지 ${this.value.recurrence.interval}주마다 ${this.showWeekText} 반복`;\r\n // }\r\n // else \r\n // {\r\n // // 매주 / 종료일 기한 없음\r\n // display = `${this.value.recurrence.interval}주마다 ${this.showWeekText} 에 반복`;\r\n // }\r\n // }\r\n // //매월\r\n // else if(this.value.recurrence.ui_recurringType == 3) {\r\n // if(this.value.recurrence.endDate != null)\r\n // {\r\n // // 매월 / 종료일 특정 날짜\r\n // display = `${beautifyEndDate} 까지 ${this.value.recurrence.interval}개월마다 ${this.value.recurrence.dayOfMonth}일에 반복`;\r\n // }\r\n // else \r\n // {\r\n // // 매월 / 종료일 기한 없음\r\n // display = `${this.value.recurrence.interval}개월마다 ${this.value.recurrence.dayOfMonth}일에 반복`;\r\n // }\r\n // }\r\n // //매년\r\n // else if(this.value.recurrence.ui_recurringType == 4) {\r\n // if(this.value.recurrence.endDate != null)\r\n // {\r\n // // 매년 / 종료일 특정 날짜\r\n // display = `${beautifyEndDate} 까지 매년 ${this.value.recurrence.monthValue}월 ${this.value.recurrence.dayOfMonth}일마다 반복`;\r\n // }\r\n // else \r\n // {\r\n // // 매년 / 종료일 기한 없음\r\n // display = `매년 ${this.value.recurrence.monthValue}월 ${this.value.recurrence.dayOfMonth}일마다 반복`;\r\n // }\r\n // }\r\n \r\n // if (!this.value.isEWS) {\r\n // this.value.pidLidRecurrencePattern = display;\r\n // }\r\n // return display;\r\n // }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n recurring() {\r\n this.setCurrentItem(this.value)\r\n this.$router.push({ path: '/calendar/recurring' , query: { id: this.value.id } })\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteForm.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteForm.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteForm.vue?vue&type=template&id=8531750e&\"\nimport script from \"./WriteForm.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteForm.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component({\r\n})\r\nexport default class ContactModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean }) show!: boolean;\r\n @Prop({ type: Object }) item!: any;\r\n @Prop({ type: String }) phoneNumber!: string;\r\n\r\n call(phoneNumber: string) {\r\n let Param: any = {};\r\n Param.Type = 'Call';\r\n Param.PhoneNumber = phoneNumber;\r\n this.invokeCSCode(JSON.stringify(Param));\r\n }\r\n\r\n async invokeCSCode(data: any) {\r\n try {\r\n if ((window as any).invokeCSharpAction) {\r\n (window as any).invokeCSharpAction(data);\r\n } else {\r\n var obj = JSON.parse(data);\r\n const link = document.createElement('a');\r\n link.href = 'tel:' + obj.PhoneNumber;\r\n link.click();\r\n (process as any).nextTick(() => link.remove());\r\n }\r\n } catch (err) {\r\n await(window as any).alertAsync(err);\r\n }\r\n }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ViewContainer.vue?vue&type=style&index=0&id=411ef474&scoped=true&lang=css&\"","//i18n-setup.js\r\nimport Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\nimport axios, { AxiosRequestConfig } from 'axios'\r\n\r\nVue.use(VueI18n)\r\n\r\nexport const i18n = new VueI18n({\r\n // locale: 'en', // set locale\r\n // fallbackLocale: 'en',\r\n})\r\n\r\nconst loadedLanguages = ['en'] // our default language that is preloaded\r\n\r\nexport function setI18nLanguage(lang: string, dic: { [key: string]: string }) {\r\n var dicString = JSON.stringify(dic);\r\n console.log(Date.now(), 'before');\r\n dicString = dicString.replace(/\\\\\\\\r\\\\\\\\n/g,'\\\\n').replace(/\\\\\\\\n/g,'\\\\n');\r\n var cdic = JSON.parse(dicString);\r\n i18n.setLocaleMessage(lang, cdic)\r\n console.log(Date.now(), 'after');\r\n i18n.locale = lang\r\n axios.defaults.headers.common['Accept-Language'] = lang\r\n document.querySelector('html')?.setAttribute('lang', lang)\r\n if (!loadedLanguages.includes(lang)) loadedLanguages.push(lang)\r\n return lang\r\n}\r\n\r\nexport function getLangData(item: any, key: string) {\r\n if (i18n.locale == 'ko') {\r\n return item[key];\r\n } else {\r\n return item[key + 'En'] || item[key + 'Eng'] || item[key];\r\n }\r\n}","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./FlowFileUploader.scss?vue&type=style&index=0&lang=scss&\"","const BASE = '$root'\r\n\r\nexport const SIDEBAR_VISIBLE = `${BASE}/sidebar/visible`\r\nexport const CURRENT_MENU = `${BASE}/current/menu`\r\nexport const GLOBAL_BUSY = `${BASE}/busy`\r\nexport const CURRENT_PAGE = `${BASE}/current/page`","import { Dictionary } from 'vue-router/types/router'\r\n\r\nexport function combindWithQuery(url: string, query: { [key: string]: any }): string {\r\n console.log('combindWithQuery', url, query)\r\n let keys: string[]\r\n if (query && (keys = Object.keys(query)).length > 0) {\r\n url += '?'\r\n url += keys\r\n .map((key) => {\r\n var value = query[key]\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value)\r\n }\r\n return `${key}=${encodeURIComponent(value)}`\r\n })\r\n .join('&')\r\n return url\r\n } else {\r\n return url\r\n }\r\n}\r\n\r\nexport function getUrlParamToDictionary(url: string): Dictionary{\r\n var dicObject = {...Object.create(null)};\r\n var urlSplit = url.split('?');\r\n if(urlSplit.length == 2){\r\n let vars = urlSplit[1].split('&');\r\n let tmp = [];\r\n for(var i = 0 ; i < vars.length; i++){\r\n tmp = vars[i].split('=');\r\n if(tmp.length == 2)\r\n {\r\n dicObject[tmp[0].toString()] = tmp[1];\r\n }\r\n }\r\n }\r\n return dicObject;\r\n}\r\n","\r\nimport { Component } from 'vue'\r\nimport { dispatchEventBus } from './eventBus'\r\nimport { invalidateUrl } from './invalidate-url'\r\nimport modalHelper from './modal-helper'\r\nimport { getUrlParamToDictionary } from './url-helper'\r\n\r\nexport type PopupOptions = {\r\n scrollbars?: 'yes' | 'no'\r\n toolbar?: number\r\n directories?: number\r\n menubar?: number\r\n resizable?: number\r\n status?: number | string\r\n width?: number\r\n height?: number\r\n top?: number\r\n left?: number\r\n noinvalidateUrl?: boolean\r\n help?: number | string\r\n scroll?: number | string\r\n //\r\n // modal perperties\r\n //\r\n modal?: boolean\r\n dialogWidth?: number | string\r\n dialogHeight?: number | string\r\n componet?: Component;\r\n componetValue?: any\r\n isFrame?: boolean\r\n}\r\n\r\nexport const openPopup = (\r\n id: string,\r\n url: string,\r\n data: { [key: string]: any },\r\n options: PopupOptions,\r\n closed?: () => void,\r\n eventBus?: { key: string, value: any },\r\n) => {\r\n url = combindWithQuery(url, data)\r\n const style = buildStyle(options)\r\n const newUrl = options.noinvalidateUrl === true ? url : invalidateUrl(url)\r\n console.log('openPopup', newUrl, style)\r\n var newWindow: any\r\n \r\n if (options?.modal === true && (window as any).showModalDialog) {\r\n newWindow = (window as any).showModalDialog(newUrl, `${id}`, style)\r\n } \r\n else if(options.isFrame){\r\n // TODO\r\n //newUrl = AddFrameParam(newUrl);\r\n newWindow = (window as any).showiFrameWindow(newUrl, `popup_${id}`, options);\r\n var createTimeout = function() {\r\n return setTimeout(() => {\r\n if ((window as any).iframeClosed) {\r\n clearTimeout(timeout)\r\n if (closed) {\r\n closed()\r\n }\r\n } else {\r\n timeout = createTimeout()\r\n }\r\n }, 10)\r\n }\r\n var timeout = createTimeout();\r\n }\r\n else if(options.componet){\r\n modalHelper.show({ component: options.componet, force: true, value: {...getUrlParamToDictionary(url), ...options.componetValue, 'width': options.width, 'height': options.height} })\r\n }\r\n else {\r\n newWindow = window.open(newUrl, `${id}`, style)\r\n newWindow?.focus()\r\n }\r\n\r\n // if (callback) {\r\n \r\n \r\n\r\n if (newWindow) { \r\n var createTimeout = function() {\r\n return setTimeout(() => {\r\n if (newWindow?.closed || newWindow?.iframeClosed) {\r\n clearTimeout(timeout)\r\n if (closed) {\r\n closed()\r\n }\r\n } else {\r\n timeout = createTimeout()\r\n }\r\n }, 10)\r\n }\r\n var timeout = createTimeout();\r\n \r\n var setEventBus = function(){\r\n return setTimeout(() => {\r\n if(eventBus){\r\n if(newWindow.eventBus){\r\n dispatchEventBus(newWindow, eventBus.key, eventBus.value);\r\n clearTimeout(timeoutBus);\r\n }\r\n else{\r\n timeoutBus = setEventBus();\r\n }\r\n }\r\n else{\r\n clearTimeout(timeoutBus);\r\n }\r\n }, 50); \r\n }\r\n var timeoutBus = setEventBus();\r\n }\r\n // }\r\n return newWindow\r\n}\r\n\r\nconst combindWithQuery = (url: string, query: { [key: string]: any }): string => {\r\n console.log('combindWithQuery', url, query)\r\n //2022-01-05 기존에 쿼리스트링이 있는 경우는 & 로 추가하도록 수정\r\n let isFirst = true\r\n if(url.includes('?') || url.includes('%3F')){\r\n isFirst = false\r\n }\r\n\r\n\r\n let keys: string[]\r\n if (query && (keys = Object.keys(query)).length > 0) {\r\n url += isFirst ? '?' : '&'\r\n return (url += keys\r\n .map((key) => {\r\n var value = query[key]\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value)\r\n }\r\n return `${key}=${encodeURIComponent(value)}`\r\n })\r\n .join('&'))\r\n } else {\r\n return url\r\n }\r\n}\r\n\r\n/**\r\n * 스크린 기준이 아닌 부모 창의 중앙에 표시\r\n * @param options\r\n */\r\nconst buildStyle = (options: PopupOptions) => {\r\n const defaultOptions: PopupOptions = {\r\n width: 100,\r\n height: 100,\r\n scrollbars: 'yes',\r\n resizable: 1,\r\n }\r\n const finalOptions: PopupOptions = {\r\n ...defaultOptions,\r\n ...options,\r\n }\r\n\r\n const nLeft = window.screenX + window.outerWidth / 2 - finalOptions.width! / 2\r\n const nTop = window.screenY + window.outerHeight / 2 - finalOptions.height! / 2\r\n\r\n finalOptions.left = nLeft\r\n finalOptions.top = nTop\r\n\r\n if (options.modal) {\r\n return Object.keys(finalOptions)\r\n .map((key) => `${key}: ${(finalOptions as any)[key]};`)\r\n .join('')\r\n } else {\r\n const style = Object.keys(finalOptions)\r\n .map((key) => `${key} = ${(finalOptions as any)[key]} `)\r\n .join(',')\r\n return style\r\n }\r\n}\r\n\r\nconst buildStyle_old = (options: PopupOptions) => {\r\n const defaultOptions: PopupOptions = {\r\n width: 100,\r\n height: 100,\r\n scrollbars: 'yes',\r\n resizable: 1,\r\n }\r\n const finalOptions: PopupOptions = {\r\n ...defaultOptions,\r\n ...options,\r\n }\r\n\r\n const currentWindowWidth = window.innerWidth\r\n ? window.innerWidth\r\n : document.documentElement.clientWidth\r\n ? document.documentElement.clientWidth\r\n : screen.width\r\n const currentWindowHeight = window.innerHeight\r\n ? window.innerHeight\r\n : document.documentElement.clientHeight\r\n ? document.documentElement.clientHeight\r\n : screen.height\r\n\r\n const systemZoom = currentWindowWidth / window.screen.availWidth\r\n // Fixes dual-screen position Most browsers Firefox\r\n const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX\r\n const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY\r\n if (!finalOptions.left && finalOptions.width) {\r\n finalOptions.left = (currentWindowWidth - finalOptions.width) / 2 / systemZoom + dualScreenLeft\r\n }\r\n if (!finalOptions.top && finalOptions.height) {\r\n finalOptions.top = (currentWindowHeight - finalOptions.height) / 2 / systemZoom + dualScreenTop\r\n }\r\n\r\n if (options.modal) {\r\n return Object.keys(finalOptions)\r\n .map((key) => `${key}: ${(finalOptions as any)[key]};`)\r\n .join('')\r\n } else {\r\n const style = Object.keys(finalOptions)\r\n .map((key) => `${key} = ${(finalOptions as any)[key]} `)\r\n .join(',')\r\n return style\r\n }\r\n}\r\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./FileList.scss?vue&type=style&index=0&lang=scss&\"","/**\r\n * 페이지 유형 열거자\r\n */\r\nexport enum MenuPageTypes {\r\n /** 전체 빈 페이지 */\r\n FE = 'FE',\r\n /** 전체 페이지 웹파트 */\r\n FW = 'FW',\r\n /** 좌측 메뉴 + 빈 페이지*/\r\n LE = 'LE',\r\n /** 좌측 메뉴 + 웹파트 */\r\n LW = 'LW',\r\n}\r\n\r\nexport enum MenuCallTypes {\r\n /** 예약된 메뉴: 메인 홈 화면 */\r\n HOME = 'HOME',\r\n /** 마이페이지 */\r\n MYPAGE = 'MYPAGE',\r\n /** 시스템 메뉴 */\r\n SYS = 'SYS',\r\n /** 사용자 지정 메뉴 */\r\n USER = 'USER',\r\n}\r\n\r\nexport enum ModalComponentTypes{\r\n /** 게시판(모달) */\r\n BOARD = 'BOARD',\r\n /** 전자결재(IFrame) */\r\n WORKFLOW = 'WORKFLOW',\r\n /** 메일(IFrame) */\r\n MAIL = 'MAIL',\r\n /** 캘린더(IFrame) */\r\n CALENDAR = 'CALENDAR',\r\n}","const regexHelper = {\r\n uri(path: string) {\r\n return /^(.*:)\\/\\/([A-Za-z0-9\\-\\.]+)(:[0-9]+)?(.*)$/.test(path)\r\n },\r\n}\r\n\r\nexport default regexHelper\r\n","import Vue from 'vue'\r\nimport router from '@/router'\r\nimport { MenuCallTypes } from '@appbase/types/enum'\r\nimport { NavigationGuardNext } from 'vue-router'\r\nimport { Dictionary } from 'vue-router/types/router'\r\nimport regexHelper from './regex-helper'\r\nimport { aesEncrypt } from './aes-encrypt'\r\n\r\nclass MenuHelper {\r\n //\r\n // ──────────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P E R T I E S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get cache(): appbase.cache.TPortalCache {\r\n return Vue.prototype.portalCache\r\n }\r\n\r\n get menu() {\r\n return this.cache.menu\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: C O R E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * Recursive finds the menu item by id from the cache\r\n * @param menuId MENUID\r\n * @param cacheItems cached menu items\r\n * @returns found menu item\r\n */\r\n findOne(menuId: number, cacheItems?: appbase.cache.TMenuItem[]): appbase.cache.TMenuItem | null {\r\n if (!cacheItems) cacheItems = this.menu.items\r\n for (var cacheItem of cacheItems!) {\r\n if (cacheItem.menuId === menuId) return cacheItem\r\n else if (cacheItem.hasChildren) {\r\n const found = this.findOne(menuId, cacheItem.children)\r\n if (found) return found\r\n }\r\n }\r\n return null\r\n }\r\n\r\n findOneBySysId(\r\n id: number,\r\n type: string,\r\n cacheItems?: appbase.cache.TMenuItem[]\r\n ): appbase.cache.TMenuItem | null {\r\n if (!cacheItems) cacheItems = this.menu.items\r\n for (var cacheItem of cacheItems!) {\r\n if (cacheItem.systemId === id && cacheItem.menuType === type) return cacheItem\r\n else if (cacheItem.hasChildren) {\r\n const found = this.findOneBySysId(id, type, cacheItem.children)\r\n if (found) return found\r\n }\r\n }\r\n return null\r\n }\r\n\r\n // Left Menu 표시 데이터 목록 조회\r\n getLeftMenuList(menuId: number): appbase.cache.TMenuItem | null {\r\n let menuItem: appbase.cache.TMenuItem | null = this.findOne(menuId)\r\n\r\n if (menuItem) {\r\n if (menuItem.parentMenuId == 0) {\r\n return menuItem\r\n } else {\r\n let isSearch: boolean = true\r\n while (isSearch) {\r\n if (menuItem) {\r\n menuItem = this.findOne(menuItem.parentMenuId)\r\n if (menuItem) {\r\n if (menuItem.parentMenuId == 0) {\r\n isSearch = false\r\n }\r\n } else {\r\n isSearch = false\r\n }\r\n } else {\r\n isSearch = false\r\n }\r\n }\r\n return menuItem\r\n }\r\n }\r\n return null\r\n }\r\n\r\n // MenuId 기준 최상위 Menu 까지 MenuId Path를 반환\r\n getMenuIdFullPath(menuId: number): Array {\r\n let arrMenuPath = new Array()\r\n if (menuId && menuId != 0){\r\n let isLoop: boolean = true\r\n while(isLoop){\r\n let menuItem: appbase.cache.TMenuItem | null\r\n menuItem = this.findOne(menuId)\r\n if (menuItem){\r\n arrMenuPath.push(menuItem.menuId)\r\n menuId = menuItem.parentMenuId\r\n if (menuId == 0){\r\n isLoop = false\r\n }\r\n }\r\n else{\r\n isLoop = false;\r\n }\r\n }\r\n }\r\n return arrMenuPath.reverse()\r\n }\r\n\r\n // 현재 조회중인 MenuId의 2 Level MenuId 조회\r\n getSubMenuId(menuId: number): number | 0 {\r\n let menuIds: number[] = []\r\n let menuItem: appbase.cache.TMenuItem | null\r\n let retMenuId = menuId ? menuId : 0\r\n if (retMenuId != 0) {\r\n let isLoop: boolean = true\r\n menuIds.push(retMenuId)\r\n\r\n while (isLoop) {\r\n if (retMenuId == 0) return 0\r\n menuItem = this.findOne(retMenuId)\r\n if (menuItem) {\r\n if (menuItem?.parentMenuId == 0) {\r\n isLoop = false\r\n } else {\r\n menuIds.push(menuItem.parentMenuId)\r\n retMenuId = menuItem.parentMenuId\r\n }\r\n } else {\r\n isLoop = false\r\n }\r\n }\r\n return menuIds && menuIds.length > 0 ? menuIds[menuIds.length - 2] : 0\r\n }\r\n return 0\r\n }\r\n\r\n findOneByCalltype = (type: MenuCallTypes) => this.menu.items.find((x) => x.callType === type)\r\n\r\n next(item: appbase.cache.TMenuItem, next?: NavigationGuardNext) {\r\n var baseUrl = (item.baseUrl || '').toLowerCase()\r\n var path = (item.targetUrl || '').trim().toLowerCase()\r\n // 기본적으로 항상 MENUID 전달\r\n var query: Dictionary = { MENUID: item.menuId }\r\n // system id가 없을 경우 쿼리 스트링에 포함하지 않음\r\n if (item.systemId) query.SYSID = item.systemId\r\n\r\n // ─────────────────────────────────────────────────────────────────\r\n // 메뉴가 페이지 타입일 경우\r\n if (item.menuType === 'PA') {\r\n if (this._isSameSite(baseUrl, path)) {\r\n if (item.callType === MenuCallTypes.HOME) return router.push({ path })\r\n else return this._proxy(item, query)\r\n } else {\r\n let locationPath = location.pathname.toLowerCase()\r\n if (locationPath.startsWith('/po/')) {\r\n this._proxy(item, query)\r\n } else {\r\n let url = this._combindWithQuery(path, query)\r\n switch (baseUrl.toLowerCase()) {\r\n case '/mail':\r\n case '/workflow':\r\n case '':\r\n baseUrl = '/po'\r\n break\r\n }\r\n window.location.href = process.env.NODE_ENV === 'production' ? baseUrl + url : url\r\n }\r\n }\r\n } else {\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n // 메뉴가 페이지 타입이 아닐 경우\r\n if (path) {\r\n // Path에 MENUID, SYSID 값이 포함되어 있는 경우 처리한다.\r\n let isIncludeParam: boolean = true\r\n if (path.includes('menuid=') || path.includes('sysid=')){\r\n isIncludeParam = false;\r\n path = path.replace('menuid=', 'MENUID=')\r\n path = path.replace('sysid=', 'SYSID=')\r\n }\r\n\r\n // router guard에서 next를 제공한 경우, router guard에 라우트를 위임한다.\r\n if (next) return next({ path, query })\r\n else {\r\n if (this._isSameSite(baseUrl, path)) {\r\n // 동일 사이트일 경우, router.push를 이용하여 라우트\r\n // Home인경우 파라메터를 전달하지 않음\r\n if (item.callType === MenuCallTypes.HOME) return router.push({ path })\r\n else { \r\n if (document.referrer !== location.href) {\r\n var query = {...query, _t: Date.now()} as Dictionary;\r\n }\r\n if (isIncludeParam) return router.push({ path, query})\r\n else return router.push({ path });\r\n } \r\n } else {\r\n // 외부 사이트일 경우, window.location.href를 이용하여 페이지 전환\r\n let url = ''\r\n if (isIncludeParam) url = this._combindWithQuery(path, query)\r\n else url = path\r\n\r\n url = process.env.NODE_ENV === 'production' ? baseUrl + url : url\r\n\r\n if (item.isPopup) window.open(url)\r\n else window.location.href = url\r\n }\r\n }\r\n } else {\r\n throw new Error('[NULL_REFERENCE_ERROR] : path can not be null')\r\n }\r\n }\r\n }\r\n\r\n private _proxy(item: appbase.cache.TMenuItem, query: Dictionary) {\r\n return router.push({\r\n name: 'menu-proxy',\r\n query,\r\n })\r\n }\r\n\r\n private _isSameSite(baseUrl: string, path: string): boolean {\r\n // location.href 로 페이지 전환이 필요한 경우, BASE URL을 가지고 현재 사이트가 라우트 대상 사이트와 동일 사이트인지 계산하여\r\n // full url인 경우 페이지 전환을 위해 false 리턴\r\n if (regexHelper.uri(path)) return false\r\n\r\n if (process.env.NODE_ENV === 'production') {\r\n // 라우트 대상 경로가 현재 페이지 라우트 영역에 포함되어 있는지 검사\r\n const relativeUrl = location.pathname.toLowerCase()\r\n // 현재 사이트의 url이 메뉴에서 설정된 baseUrl로 시작할 경우 동일 라우트 안에 있다고 판정.\r\n if (baseUrl && baseUrl != ''){\r\n return relativeUrl.startsWith(baseUrl)\r\n }\r\n else{\r\n return false\r\n }\r\n } else {\r\n // 코딩 타임에서는 항상 동일 라우트 영역에 있다고 가정\r\n return true\r\n }\r\n }\r\n\r\n private _combindWithQuery = (url: string, query: { [key: string]: any }): string => {\r\n console.log('combindWithQuery', url, query)\r\n let keys: string[]\r\n if (query && (keys = Object.keys(query)).length > 0) {\r\n if (url.indexOf('?') < 0) url += '?'\r\n else url += '&'\r\n url += keys\r\n .map((key) => {\r\n var value = query[key]\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value)\r\n }\r\n return `${key}=${encodeURIComponent(value)}`\r\n })\r\n .join('&')\r\n return url\r\n } else {\r\n return url\r\n }\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: H E L P E R M E T H O D S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n goHome(next?: NavigationGuardNext) {\r\n const homeMenu = this.findOneByCalltype(MenuCallTypes.HOME)\r\n if (homeMenu) {\r\n this.next(homeMenu, next)\r\n } else {\r\n throw new Error(`[NOT_FOUND_ERROR] : Failed to retrieve menu item with calltype 'HOME'.`)\r\n }\r\n }\r\n\r\n setMenuParam(menu: appbase.cache.TMenuItem[], account: appbase.account.TUser){\r\n let menuItems: appbase.cache.TMenuItem[] = menu\r\n this._setParam(menuItems, account);\r\n return menuItems\r\n }\r\n\r\n private _setParam(items: appbase.cache.TMenuItem[], account: appbase.account.TUser){\r\n for(let i = 0; i < items.length; i++){\r\n const { targetUrl, frameUrl } = items[i]\r\n items[i].targetUrl = (targetUrl ? this._replaceUrl(targetUrl, account) : '') \r\n items[i].frameUrl = (frameUrl ? this._replaceUrl(frameUrl, account) : '') \r\n\r\n if (items[i].hasChildren && items[i].children.length > 0){\r\n this._setParam(items[i].children, account)\r\n }\r\n }\r\n }\r\n\r\n private _replaceUrl(url: string, account: appbase.account.TUser){\r\n if (url){\r\n Object.keys(account).forEach(key => url = url.replace(`{${key}}`, aesEncrypt(Object(account)[key])))\r\n }\r\n return url\r\n }\r\n}\r\n\r\nconst menuHelper = new MenuHelper()\r\n\r\nexport default menuHelper\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"profile-img-wrap\"},[_c('div',{staticClass:\"profile-img\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/v1/img/ghost_loading.png\"},on:{\"error\":_vm.error}}):_c('img',{ref:\"userPhoto\",attrs:{\"src\":_vm.avatar.url},on:{\"error\":_vm.errorGhost}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { cache } from '@/util';\r\n@Component({\r\n components: {\r\n },\r\n})\r\nexport default class ProfilePhoto extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n };\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M T E H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getImage(email?: string) {\r\n if (email && email.indexOf('/') == -1) {\r\n this.avatar.loading = true;\r\n cache.avatar.get(email).then((url: string) => {\r\n this.avatar.url = url;\r\n this.avatar.loading = false;\r\n });\r\n }\r\n }\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png';\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/faux/images/ghost.png';\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./ProfilePhoto.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./ProfilePhoto.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProfilePhoto.vue?vue&type=template&id=a0e2100e&\"\nimport script from \"./ProfilePhoto.ts?vue&type=script&lang=ts&\"\nexport * from \"./ProfilePhoto.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sitemap-wrap\",staticStyle:{\"display\":\"block\"},attrs:{\"id\":\"siteMap\"}},[_c('div',{staticClass:\"sitemap-container\"},[_c('div',{staticClass:\"sitemap-head\"},[_c('div',{staticClass:\"mr-auto\"},[_c('div',{staticClass:\"search-bar large\"},[_c('input',{staticClass:\"w-100 radius-100 bg-gray\",attrs:{\"id\":\"txtSearchSiteMap\",\"type\":\"text\",\"placeholder\":_vm.$t('메뉴명_입력_확인')},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.fnSearchSiteMap()}}}),_c('a',{staticClass:\"btn-search\",on:{\"click\":function($event){return _vm.fnSearchSiteMap()}}},[_c('i',{staticClass:\"icon-fux-search\"})])])]),_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"btn ico-btn ico-l\",on:{\"click\":function($event){return _vm.$emit('onOpenGnbSiteMap', 'C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])])]),_c('div',{staticClass:\"sitemap-body\"},_vm._l((_vm.siteMapItems),function(sitemap){return _c('div',{key:sitemap.menuId,staticClass:\"section hero\",style:(_vm.fnIsDisplay(sitemap, 1))},[_c('div',{staticClass:\"heading\"},[_c('h3',[_c('a',{staticClass:\"name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('onSiteMapClick', sitemap)}}},[_vm._v(_vm._s(_vm.fnGetMenuName(sitemap)))])])]),(sitemap.hasChildren && sitemap.baseUrl != '/Workflow')?_c('ul',{staticClass:\"list-sitemap\"},_vm._l((sitemap.children),function(mSub){return _c('li',{key:mSub.menuId,style:(_vm.fnIsDisplay(mSub, 2))},[_c('span',{staticClass:\"menu accordion-toggle\"},[_c('a',{staticClass:\"name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('onSiteMapClick', mSub)}}},[_vm._v(_vm._s(_vm.fnGetMenuName(mSub)))]),(false && mSub.hasChildren)?_c('b',{staticClass:\"more\"},[_c('i',{staticClass:\"icon-fux-add\",on:{\"click\":function($event){$event.stopPropagation();return _vm.fnExpandSubMenu(mSub.menuId)}}})]):_vm._e()]),(mSub.hasChildren)?_c('div',{staticClass:\"accordion\",attrs:{\"id\":'divSiteMapSub_' + mSub.menuId}},[_c('ul',_vm._l((mSub.children),function(mSub2){return _c('li',{key:mSub2.menuId,style:(_vm.fnIsDisplay(mSub2, 3))},[_c('span',{staticClass:\"menu\"},[_c('a',{staticClass:\"name\",attrs:{\"title\":_vm.fnGetMenuName(mSub2)},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('onSiteMapClick', mSub2)}}},[_vm._v(_vm._s(_vm.fnGetMenuName(mSub2)))])])])}),0)]):_vm._e()])}),0):_vm._e()])}),0)]),_c('div',{staticStyle:{\"display\":\"block\"},attrs:{\"id\":\"siteMapMask\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbSiteMap', 'C')}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class GnbSiteMap extends Vue {\r\n @Prop({ type: Array }) siteMapItems!: appbase.cache.TMenuItem[]\r\n @Prop({ type: String }) userLang!: string\r\n siteMapSearchText: string = ''\r\n\r\n fnExpandSubMenu(menuId: number){\r\n let divSubObj = document.getElementById(\"divSiteMapSub_\" + menuId);\r\n if (divSubObj !== undefined && divSubObj !== null){\r\n if (divSubObj.style.display == \"none\"){\r\n divSubObj.style.display = \"\";\r\n }\r\n else{\r\n divSubObj.style.display = \"none\";\r\n }\r\n }\r\n }\r\n\r\n fnGetMenuName(menuItem: appbase.cache.TMenuItem){\r\n return (this.userLang && this.userLang == 'ko-KR' ? menuItem.menuName : menuItem.menuNameEn)\r\n }\r\n\r\n fnSearchSiteMap(){\r\n // 메뉴명 없이 검색 시 모든 Sitemap 데이터 표시\r\n this.siteMapSearchText = (document.getElementById('txtSearchSiteMap')).value; \r\n }\r\n\r\n @Watch('siteMapSearchText')\r\n fnIsDisplay(menuItem: appbase.cache.TMenuItem, level:number)\r\n { \r\n if (this.siteMapSearchText == ''){\r\n return \"\";\r\n }\r\n else{\r\n if (menuItem.menuName){\r\n if (this.fnCheckMenuName(menuItem, level)){\r\n return '';\r\n }\r\n }\r\n }\r\n\r\n return \"display:none\"\r\n }\r\n\r\n fnCheckMenuName(menuItem: appbase.cache.TMenuItem, menuLevel: number){\r\n if (this.userLang.toLowerCase() == 'ko-kr' ? (menuItem.menuName.indexOf(this.siteMapSearchText) > -1)\r\n : (menuItem.menuNameEn.indexOf(this.siteMapSearchText) > -1))\r\n {\r\n return true;\r\n }\r\n else if (menuLevel < 3 && menuItem.hasChildren && menuItem.children.length > 0)\r\n {\r\n for(let i = 0; i < menuItem.children.length; i++){\r\n let isChecke = this.fnCheckMenuName(menuItem.children[i], menuLevel + 1);\r\n if (isChecke) return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbSiteMap.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbSiteMap.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbSiteMap.vue?vue&type=template&id=4a5239c6&\"\nimport script from \"./GnbSiteMap.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbSiteMap.ts?vue&type=script&lang=js&\"\nimport style0 from \"./GnbSiteMap.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingBar.vue?vue&type=style&index=0&lang=scss&\"","const aesJs = {\r\n Ke: [],\r\n Kd: [],\r\n numberOfRounds: {16: 10, 24: 12, 32: 14},\r\n iv: [7, 5, 1, 4, 5, 6, 6, 5, 4, 3, 2, 1, 7, 4, 2, 1 ],\r\n key: \"N0RBQ0ZCMjhEM0FCNjhFQ0IwOTg3QjkxODMzN0RCRks=\",\r\n rcon: [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91],\r\n\r\n // S-box and Inverse S-box (S is for Substitution)\r\n S: [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16],\r\n Si: [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d],\r\n\r\n // Transformations for encryption\r\n T1: [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a],\r\n T2: [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616],\r\n T3: [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16],\r\n T4: [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c],\r\n\r\n // Transformations for decryption\r\n T5: [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742],\r\n T6: [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857],\r\n T7: [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8],\r\n T8: [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0],\r\n\r\n // Transformations for decryption key expansion\r\n U1: [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3],\r\n U2: [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697],\r\n U3: [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46],\r\n U4: [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d],\r\n\r\n\r\n init: function() {\r\n this.Ke = [];\r\n this.Kd = [];\r\n var keyBytes = this.toBytes(base64.decode(this.key));\r\n var rounds = (this.numberOfRounds as any)[keyBytes.length];\r\n var copyKey = this.coerceArray(keyBytes, true);\r\n\r\n for (var i = 0; i <= rounds; i++) {\r\n (this.Ke as any).push([0, 0, 0, 0]);\r\n (this.Kd as any).push([0, 0, 0, 0]);\r\n }\r\n\r\n var roundKeyCount = (rounds + 1) * 4;\r\n var KC = keyBytes.length / 4;\r\n\r\n // convert the key into ints\r\n var tk = this.convertToInt32(copyKey);\r\n\r\n // copy values into round key arrays\r\n var index;\r\n for (var i = 0; i < KC; i++) {\r\n index = i >> 2;\r\n (this.Ke as any)[index][i % 4] = tk[i];\r\n (this.Kd as any)[rounds - index][i % 4] = tk[i];\r\n }\r\n\r\n // key expansion (fips-197 section 5.2)\r\n var rconpointer = 0;\r\n var t = KC, tt;\r\n while (t < roundKeyCount) {\r\n tt = tk[KC - 1];\r\n tk[0] ^= ((this.S[(tt >> 16) & 0xFF] << 24) ^\r\n (this.S[(tt >> 8) & 0xFF] << 16) ^\r\n (this.S[ tt & 0xFF] << 8) ^\r\n this.S[(tt >> 24) & 0xFF] ^\r\n (this.rcon[rconpointer] << 24));\r\n rconpointer += 1;\r\n\r\n // key expansion (for non-256 bit)\r\n if (KC != 8) {\r\n for (var i = 1; i < KC; i++) {\r\n tk[i] ^= tk[i - 1];\r\n }\r\n\r\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\r\n } else {\r\n for (var i = 1; i < (KC / 2); i++) {\r\n tk[i] ^= tk[i - 1];\r\n }\r\n tt = tk[(KC / 2) - 1];\r\n\r\n tk[KC / 2] ^= (this.S[ tt & 0xFF] ^\r\n (this.S[(tt >> 8) & 0xFF] << 8) ^\r\n (this.S[(tt >> 16) & 0xFF] << 16) ^\r\n (this.S[(tt >> 24) & 0xFF] << 24));\r\n\r\n for (var i = (KC / 2) + 1; i < KC; i++) {\r\n tk[i] ^= tk[i - 1];\r\n }\r\n }\r\n\r\n // copy values into round key arrays\r\n var i = 0, r, c;\r\n while (i < KC && t < roundKeyCount) {\r\n r = t >> 2;\r\n c = t % 4;\r\n (this.Ke as any)[r][c] = tk[i];\r\n (this.Kd as any)[rounds - r][c] = tk[i++];\r\n t++;\r\n }\r\n }\r\n\r\n var r, c;\r\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\r\n for (r = 1; r < rounds; r++) {\r\n for (c = 0; c < 4; c++) {\r\n tt = this.Kd[r][c];\r\n (this.Kd as any)[r][c] = (this.U1[(tt >> 24) & 0xFF] ^\r\n this.U2[(tt >> 16) & 0xFF] ^\r\n this.U3[(tt >> 8) & 0xFF] ^\r\n this.U4[ tt & 0xFF]);\r\n }\r\n }\r\n },\r\n\r\n\r\n checkInt(value: any) {\r\n return (parseInt(value) === value);\r\n },\r\n\r\n checkInts(arrayish: number[]) {\r\n if (!this.checkInt(arrayish.length)) { return false; }\r\n\r\n for (var i = 0; i < arrayish.length; i++) {\r\n if (!this.checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n\r\n copyArray: function(sourceArray: any, targetArray: any, targetStart: number, sourceStart?: number, sourceEnd?: number) {\r\n if (sourceStart != null || sourceEnd != null) {\r\n if (sourceArray.slice) {\r\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\r\n } else {\r\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\r\n }\r\n }\r\n\r\n targetArray.set(sourceArray, targetStart);\r\n },\r\n\r\n coerceArray: function(arg: any, copy?: boolean) {\r\n\r\n // ArrayBuffer view\r\n if ((arg as any).buffer && ArrayBuffer.isView(arg) && (arg as any).name === 'Uint8Array') {\r\n\r\n if (copy) {\r\n if ((arg as any).slice) {\r\n arg = (arg as any).slice();\r\n } else {\r\n arg = Array.prototype.slice.call(arg);\r\n }\r\n }\r\n\r\n return arg;\r\n }\r\n\r\n // It's an array; check it is a valid representation of a byte\r\n if (Array.isArray(arg)) {\r\n if (!this.checkInts(arg)) {\r\n throw new Error('Array contains invalid value: ' + arg);\r\n }\r\n\r\n return new Uint8Array(arg);\r\n }\r\n\r\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\r\n if (this.checkInt(arg.length) && this.checkInts(arg)) {\r\n return new Uint8Array(arg);\r\n }\r\n\r\n throw new Error('unsupported array-like object');\r\n },\r\n\r\n pkcs7pad(data: Uint8Array) {\r\n data = this.coerceArray(data, true);\r\n var padder = 16 - (data.length % 16);\r\n var result = new Uint8Array(data.length + padder);\r\n this.copyArray(data, result, 0);\r\n for (var i = data.length; i < result.length; i++) {\r\n result[i] = padder;\r\n }\r\n return result;\r\n },\r\n\r\n pkcs7strip(data: Uint8Array) {\r\n data = this.coerceArray(data, true);\r\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\r\n\r\n var padder = data[data.length - 1];\r\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\r\n\r\n var length = data.length - padder;\r\n for (var i = 0; i < padder; i++) {\r\n if (data[length + i] !== padder) {\r\n throw new Error('PKCS#7 invalid padding byte');\r\n }\r\n }\r\n\r\n var result = new Uint8Array(length);\r\n this.copyArray(data, result, 0, 0, length);\r\n return result;\r\n },\r\n\r\n convertToInt32(bytes: Uint8Array) {\r\n var result = [];\r\n for (var i = 0; i < bytes.length; i += 4) {\r\n result.push(\r\n (bytes[i ] << 24) |\r\n (bytes[i + 1] << 16) |\r\n (bytes[i + 2] << 8) |\r\n bytes[i + 3]\r\n );\r\n }\r\n return result;\r\n },\r\n\r\n toBytes: function(text: string) {\r\n var result = [], i = 0;\r\n text = encodeURI(text);\r\n while (i < text.length) {\r\n var c = text.charCodeAt(i++);\r\n\r\n // if it is a % sign, encode the following 2 bytes as a hex value\r\n if (c === 37) {\r\n result.push(parseInt(text.substr(i, 2), 16))\r\n i += 2;\r\n\r\n // otherwise, just the actual byte\r\n } else {\r\n result.push(c)\r\n }\r\n }\r\n\r\n return this.coerceArray(result);\r\n },\r\n\r\n fromBytes: function(bytes: Uint8Array) {\r\n var result = [], i = 0;\r\n\r\n while (i < bytes.length) {\r\n var c = bytes[i];\r\n\r\n if (c < 128) {\r\n result.push(String.fromCharCode(c));\r\n i++;\r\n } else if (c > 191 && c < 224) {\r\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\r\n i += 2;\r\n } else {\r\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\r\n i += 3;\r\n }\r\n }\r\n\r\n return result.join('');\r\n },\r\n\r\n encrypt: function(plaintext: Uint8Array) {\r\n var lastCipherblock = this.coerceArray(this.iv, true)\r\n plaintext = this.coerceArray(plaintext);\r\n\r\n if ((plaintext.length % 16) !== 0) {\r\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\r\n }\r\n\r\n var ciphertext = new Uint8Array(plaintext.length);\r\n var block = new Uint8Array(16);\r\n\r\n for (var i = 0; i < plaintext.length; i += 16) {\r\n this.copyArray(plaintext, block, 0, i, i + 16);\r\n\r\n for (var j = 0; j < 16; j++) {\r\n block[j] ^= lastCipherblock[j];\r\n }\r\n\r\n lastCipherblock = this.aesEncrypt(block);\r\n this.copyArray(lastCipherblock, ciphertext, i);\r\n }\r\n\r\n return ciphertext;\r\n },\r\n\r\n aesEncrypt: function(plaintext: Uint8Array) {\r\n if (plaintext.length != 16) {\r\n throw new Error('invalid plaintext size (must be 16 bytes)');\r\n }\r\n\r\n this.init();\r\n var rounds = this.Ke.length - 1;\r\n var a = [0, 0, 0, 0];\r\n\r\n // convert plaintext to (ints ^ key)\r\n var t = this.convertToInt32(plaintext);\r\n for (var i = 0; i < 4; i++) {\r\n t[i] ^= this.Ke[0][i];\r\n }\r\n\r\n // apply round transforms\r\n for (var r = 1; r < rounds; r++) {\r\n for (var i = 0; i < 4; i++) {\r\n a[i] = (this.T1[(t[ i ] >> 24) & 0xff] ^\r\n this.T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\r\n this.T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\r\n this.T4[ t[(i + 3) % 4] & 0xff] ^\r\n (this.Ke as any)[r][i]);\r\n }\r\n t = a.slice();\r\n }\r\n\r\n // the last round is special\r\n var result = new Uint8Array(16), tt;\r\n for (var i = 0; i < 4; i++) {\r\n tt = this.Ke[rounds][i];\r\n result[4 * i ] = (this.S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\r\n result[4 * i + 1] = (this.S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\r\n result[4 * i + 2] = (this.S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\r\n result[4 * i + 3] = (this.S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\r\n }\r\n\r\n return result;\r\n },\r\n\r\n decrypt: function(ciphertext: Uint8Array) {\r\n var lastCipherblock = this.coerceArray(this.iv, true);\r\n var cipherArr = this.coerceArray(ciphertext);\r\n\r\n if ((cipherArr.length % 16) !== 0) {\r\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\r\n }\r\n\r\n var plaintext = new Uint8Array(cipherArr.length);\r\n var block = new Uint8Array(16);\r\n\r\n for (var i = 0; i < cipherArr.length; i += 16) {\r\n this.copyArray(cipherArr, block, 0, i, i + 16);\r\n block = this.aesDecrypt(block);\r\n\r\n for (var j = 0; j < 16; j++) {\r\n plaintext[i + j] = block[j] ^ lastCipherblock[j];\r\n }\r\n\r\n this.copyArray(cipherArr, lastCipherblock, 0, i, i + 16);\r\n }\r\n\r\n return plaintext;\r\n },\r\n\r\n aesDecrypt: function(ciphertext: Uint8Array) {\r\n if (ciphertext.length != 16) {\r\n throw new Error('invalid ciphertext size (must be 16 bytes)');\r\n }\r\n\r\n this.init();\r\n\r\n var rounds = this.Kd.length - 1;\r\n var a = [0, 0, 0, 0];\r\n\r\n // convert plaintext to (ints ^ key)\r\n var t = this.convertToInt32(ciphertext);\r\n for (var i = 0; i < 4; i++) {\r\n t[i] ^= this.Kd[0][i];\r\n }\r\n\r\n // apply round transforms\r\n for (var r = 1; r < rounds; r++) {\r\n for (var i = 0; i < 4; i++) {\r\n a[i] = (this.T5[(t[ i ] >> 24) & 0xff] ^\r\n this.T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\r\n this.T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\r\n this.T8[ t[(i + 1) % 4] & 0xff] ^\r\n this.Kd[r][i]);\r\n }\r\n t = a.slice();\r\n }\r\n\r\n // the last round is special\r\n var result = new Uint8Array(16), tt;\r\n for (var i = 0; i < 4; i++) {\r\n tt = this.Kd[rounds][i];\r\n result[4 * i ] = (this.Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\r\n result[4 * i + 1] = (this.Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\r\n result[4 * i + 2] = (this.Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\r\n result[4 * i + 3] = (this.Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\n\r\nconst $utf8 = {\r\n encode: function(input: string) {\r\n if (typeof input !== 'string') return input;\r\n else input = input.replace(/\\r\\n/g, \"\\n\");\r\n var output = \"\", i = 0, charCode;\r\n\r\n for (i; i < input.length; i++) {\r\n charCode = input.charCodeAt(i);\r\n\r\n if (charCode < 128)\r\n output += String.fromCharCode(charCode);\r\n else if ((charCode > 127) && (charCode < 2048))\r\n output += String.fromCharCode((charCode >> 6) | 192),\r\n output += String.fromCharCode((charCode & 63) | 128);\r\n else\r\n output += String.fromCharCode((charCode >> 12) | 224),\r\n output += String.fromCharCode(((charCode >> 6) & 63) | 128),\r\n output += String.fromCharCode((charCode & 63) | 128);\r\n }\r\n\r\n return output;\r\n },\r\n\r\n decode: function(input: string) {\r\n if (typeof input !== 'string') return input;\r\n var output = \"\", i = 0, charCode = 0;\r\n\r\n while (i < input.length) {\r\n charCode = input.charCodeAt(i);\r\n\r\n if (charCode < 128)\r\n output += String.fromCharCode(charCode),\r\n i++;\r\n else if ((charCode > 191) && (charCode < 224))\r\n output += String.fromCharCode(((charCode & 31) << 6) | (input.charCodeAt(i + 1) & 63)),\r\n i += 2;\r\n else\r\n output += String.fromCharCode(((charCode & 15) << 12) | ((input.charCodeAt(i + 1) & 63) << 6) | (input.charCodeAt(i + 2) & 63)),\r\n i += 3;\r\n }\r\n\r\n return output;\r\n }\r\n}\r\n\r\nconst base64 = {\r\n map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\r\n encode: function(input: string) {\r\n if (typeof input !== 'string') return input;\r\n else input = $utf8.encode(input);\r\n var output = \"\", a, b, c, d, e, f, g, i = 0;\r\n\r\n while (i < input.length) {\r\n a = input.charCodeAt(i++);\r\n b = input.charCodeAt(i++);\r\n c = input.charCodeAt(i++);\r\n d = a >> 2;\r\n e = ((a & 3) << 4) | (b >> 4);\r\n f = ((b & 15) << 2) | (c >> 6);\r\n g = c & 63;\r\n\r\n if (isNaN(b)) f = g = 64;\r\n else if (isNaN(c)) g = 64;\r\n\r\n output += this.map.charAt(d) + this.map.charAt(e) + this.map.charAt(f) + this.map.charAt(g);\r\n }\r\n\r\n return output;\r\n },\r\n\r\n decode: function(input: string) { \r\n if (typeof input !== 'string') return input;\r\n else input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n var output = \"\", a, b, c, d, e, f, g, i = 0;\r\n\r\n while (i < input.length) {\r\n d = this.map.indexOf(input.charAt(i++));\r\n e = this.map.indexOf(input.charAt(i++));\r\n f = this.map.indexOf(input.charAt(i++));\r\n g = this.map.indexOf(input.charAt(i++));\r\n\r\n a = (d << 2) | (e >> 4);\r\n b = ((e & 15) << 4) | (f >> 2);\r\n c = ((f & 3) << 6) | g;\r\n\r\n output += String.fromCharCode(a);\r\n if (f != 64) output += String.fromCharCode(b);\r\n if (g != 64) output += String.fromCharCode(c);\r\n }\r\n\r\n return $utf8.decode(output);\r\n }\r\n}\r\n\r\nexport const aesEncrypt = function(plainText: string): string {\r\n var textBytes = aesJs.toBytes(plainText);\r\n var paddingBytes = aesJs.pkcs7pad(textBytes);\r\n var encryptedBytes = aesJs.encrypt(paddingBytes);\r\n return btoa(String.fromCharCode.apply(null, Array.from(encryptedBytes)));\r\n}\r\n\r\nexport const aesDecrypt = function(encoded: string) {\r\n var cipherText = atob(encoded);\r\n var cipherBytes = Uint8Array.from(cipherText, function(b) {\r\n return b.charCodeAt(0);\r\n });\r\n\r\n var decryptedBytes = aesJs.decrypt(cipherBytes);\r\n var stripBytes = aesJs.pkcs7strip(decryptedBytes);\r\n return aesJs.fromBytes(stripBytes);\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./PopupLayout.scss?vue&type=style&index=0&lang=scss&\"","const path = '$orgmap'\r\nconst ACCOUNT = '$account'\r\n\r\nexport const ORG_ME = `${path}/me`\r\nexport const ORG_INIT = `${path}/init`\r\nexport const ORG_LOADING = `${path}/loading`\r\nexport const ORG_EVENT_TYPE = `${path}/event/type`;\r\n\r\nexport const ORG_MEMBER_LIST = `${path}/member/list`\r\nexport const ORG_MEMBER_SELECT = `${path}/member/select`\r\nexport const ORG_MEMBER_SELECT_ALL = `${path}/member/select/all`\r\nexport const ORG_MEMBER_SEARCH = `${path}/member/search`\r\n\r\nexport const ORG_CONTAINER_REGISTER = `${path}/container/register`\r\nexport const ORG_CONTAINER_UPDATE = `${path}/container/update`\r\nexport const ORG_CONTAINER_ITEM_ADD = `${path}/container/item/add`\r\nexport const ORG_CONTAINER_ITEM_DEL = `${path}/container/item/del`\r\nexport const ORG_CONTAINER_ITEM_SELECT = `${path}/container/item/select`\r\nexport const ORG_CONTAINER_ITEM_SELECT_ALL = `${path}/container/item/select/all`\r\nexport const ORG_CONTAINER_ITEM_MOVE_UP = `${path}/container/item/move/up`\r\nexport const ORG_CONTAINER_ITEM_MOVE_DOWN = `${path}/container/item/move/down`\r\nexport const ORG_CONTAINER_DEPT_ITEM_ADD = `${path}/container/dept/item/add`\r\nexport const ORG_CONTAINER_ACTIVATE = `${path}/container/activate`\r\nexport const ORG_CONTAINER_CLEAR = `${path}/container/clear`\r\n\r\nexport const ORG_PUBLIC_FOLDER_LIST = `${path}/public/folder/list`\r\nexport const ORG_PUBLIC_MEMBER_LIST = `${path}/public/member/list`\r\n\r\nexport const ORG_PERSONAL_FOLDER_LIST = `${path}/personal/folder/list`;\r\nexport const ORG_PERSONAL_MEMBER_LIST = `${path}/personal/member/list`;\r\nexport const ORG_PERSONAL_GROUPMEMBER_LIST = `${path}/personal/group-member/list`;\r\n\r\nexport const ORG_USER_SELECT = `${path}/user/select`;\r\nexport const ORG_USER_SELECT_CLEAR = `${path}/user/select/clear`;\r\n\r\nexport const ORG_OPTION_SET = `${path}/option/set`;\r\nexport const ORG_OPTION_GET = `${path}/option/get`;\r\n\r\nexport const ACCOUNT_CURRENT = `${ACCOUNT}/current`","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModalMask',{attrs:{\"show\":_vm.show}},[_c('Modal',{attrs:{\"show\":_vm.show}},[_c('ModalHeader',{attrs:{\"header\":_vm.header,\"check\":_vm.check},on:{\"close\":function($event){return _vm.$emit('close')},\"check\":function($event){return _vm.$emit('check')}}}),_c('ModalBody',[_vm._t(\"body\")],2),_c('ModalBottom',[_vm._t(\"bottom\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layer-pop-header\"},[_c('h4',[_vm._v(_vm._s(_vm.header))]),_c('div',{class:['layer-close', {'left': _vm.check}]},[_c('a',{on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('i',{staticClass:\"icon-close\"})])]),(_vm.check)?_c('div',{staticClass:\"layer-complete\"},[_c('a',{on:{\"click\":function($event){return _vm.$emit('check')}}},[_c('i',{staticClass:\"icon-check-mark\"})])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component({})\r\nexport default class ModalHeader extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: String }) header!: string;\r\n @Prop({ type: Boolean, default: false }) check!: boolean;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalHeader.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalHeader.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalHeader.vue?vue&type=template&id=5dc0775d&\"\nimport script from \"./ModalHeader.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalHeader.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layer-pop-content\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component({})\r\nexport default class ModalBody extends Vue {}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalBody.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalBody.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalBody.vue?vue&type=template&id=d64385a6&\"\nimport script from \"./ModalBody.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalBody.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layer-f-btn-wrap\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component({})\r\nexport default class ModalBottom extends Vue {}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalBottom.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalBottom.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalBottom.vue?vue&type=template&id=17b63e60&\"\nimport script from \"./ModalBottom.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalBottom.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport ModalMask from './ModalMask.vue'\r\nimport Modal from './Modal.vue'\r\nimport ModalHeader from './ModalHeader.vue'\r\nimport ModalBody from './ModalBody.vue'\r\nimport ModalBottom from './ModalBottom.vue'\r\n@Component({\r\n components: {\r\n ModalMask,\r\n Modal,\r\n ModalHeader,\r\n ModalBody,\r\n ModalBottom\r\n },\r\n})\r\nexport default class PopupModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean;\r\n @Prop({ type: String, default: '' }) header!: string;\r\n @Prop({ type: Boolean, default: false }) check!: boolean;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PopupModal.vue?vue&type=template&id=93bb6dce&\"\nimport script from \"./PopupModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./PopupModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export var HttpMethods;\r\n(function (HttpMethods) {\r\n HttpMethods[\"GET\"] = \"get\";\r\n HttpMethods[\"PUT\"] = \"put\";\r\n HttpMethods[\"POST\"] = \"post\";\r\n HttpMethods[\"DELETE\"] = \"delete\";\r\n HttpMethods[\"PATCH\"] = \"patch\";\r\n})(HttpMethods || (HttpMethods = {}));\r\n//# sourceMappingURL=types.js.map","import axios from 'axios';\r\nimport { HttpMethods } from './types';\r\nexport default class AxiosClient {\r\n axiosClient;\r\n constructor(config) {\r\n /**\r\n * A common base instance\r\n * 이 인스턴스를 통해 요청 할 경우 /api 가 자동으로 붙는다.\r\n * 또한, 모든 요청에 인증에 필요한 토큰이나 헤더가 포함된다.\r\n */\r\n this.axiosClient = axios.create(config.requestConfig);\r\n /**\r\n * 요청을 중간에 인터셉트하여 비즈 로직을 수행한다.\r\n */\r\n if (config.interceptors?.request) {\r\n this.axiosClient.interceptors.request.use(config.interceptors.request.onFulfilled, config.interceptors.request.onRejected);\r\n }\r\n /**\r\n * 응답을 중간에 인터셉트하여 비즈로직을 수행한다.\r\n */\r\n if (config.interceptors?.response) {\r\n this.axiosClient.interceptors.response.use(config.interceptors.response.onFulfilled, config.interceptors.response.onRejected);\r\n }\r\n }\r\n /**\r\n * 요청에 맞는 데이터로 렙핑합니다.\r\n * @param {*} method\r\n * @param {*} vlaue\r\n */\r\n wrap(method, data, params) {\r\n return method === HttpMethods.GET ? { params: params } : { data: data };\r\n }\r\n /**\r\n * 요청을 보내고 응답을 우선 처리합니다.\r\n * @param {*} method\r\n * @param {String} url\r\n * @param {*} data\r\n */\r\n send(method, url, userData, userParams, headerValue) {\r\n const data = this.wrap(method, userData, userParams);\r\n // IE에서 GET 호출은 항상 브라우저 캐시하므로 이를 우회하기 위해 URL에 랜덤 version 추가\r\n // console.log('method-GET 1', url);\r\n if (method === HttpMethods.GET) {\r\n url += `${url.includes('?') ? '&' : '?'}v=${Math.random()}`;\r\n // console.log('method-GET 2', url);\r\n }\r\n var config = {\r\n method: method,\r\n url: url,\r\n headers: headerValue || {},\r\n ...data,\r\n };\r\n return this.axiosClient.request(config).then((res) => {\r\n if (res === undefined) {\r\n debugger;\r\n }\r\n const data = JSON.parse(JSON.stringify(res.data));\r\n return data;\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=AxiosClient.js.map","import { HttpMethods, } from './types';\r\nimport AxiosClient from './AxiosClient';\r\nexport * from './types';\r\nexport default class EumApiClient {\r\n apiConfig;\r\n axiosClient;\r\n constructor(userConfig) {\r\n this.apiConfig = {\r\n // baseURL: baseUrl,\r\n timeout: userConfig.timeout,\r\n ...userConfig,\r\n requestConfig: {\r\n ...userConfig.requestConfig,\r\n headers: {\r\n // Authorization: 'Bearer {token}',\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n ...userConfig.requestConfig?.headers,\r\n },\r\n },\r\n };\r\n this.axiosClient = new AxiosClient(this.apiConfig);\r\n }\r\n send(method, option) {\r\n const { url, data, params, headers } = option || {};\r\n const invalidatedUrl = this.invalidateUrl(url || '');\r\n const promise = this.axiosClient\r\n .send(method, invalidatedUrl, data, params, headers);\r\n return promise.then((data) => {\r\n if (data === undefined) {\r\n debugger;\r\n }\r\n /*\r\n 2021-10-20\r\n 단일파일 업로드인경우 (/file/store/flow) Uncaught (in promise) undefined 에러 발생\r\n 예외처리\r\n return Data {\r\n contentType: null\r\n serializerSettings: null\r\n statusCode: null\r\n value: {{resultData}}\r\n }\r\n */\r\n if (data.value) {\r\n return data.value;\r\n }\r\n if (data && data.code === 'ok') {\r\n return data.result;\r\n }\r\n else {\r\n throw (data || {}).error;\r\n }\r\n });\r\n }\r\n get(option) {\r\n return this.send(HttpMethods.GET, option);\r\n }\r\n delete(option) {\r\n return this.send(HttpMethods.DELETE, option);\r\n }\r\n put(option) {\r\n return this.send(HttpMethods.PUT, option);\r\n }\r\n post(option) {\r\n return this.send(HttpMethods.POST, option);\r\n }\r\n patch(option) {\r\n return this.send(HttpMethods.PATCH, option);\r\n }\r\n invalidateUrl(path) {\r\n var rootUrl = this.apiConfig.rootUrl;\r\n var url = '';\r\n if (path.startsWith('/')) {\r\n url = rootUrl + path;\r\n }\r\n else if (path.startsWith('http://') || path.startsWith('https://')) {\r\n url = path;\r\n }\r\n else {\r\n url = path;\r\n }\r\n return url;\r\n }\r\n}\r\n//# sourceMappingURL=index.js.map","import EumApiClient, { EumApiRequestConfig, EumApiResponse } from 'eum-api'\r\nimport router from '@/router'\r\nimport stone from './stone'\r\n\r\nexport const api = {\r\n stone\r\n}\r\n\r\n/**\r\n * 앱 전역에서 Activity Indicator 표시/해제\r\n * @param {*} loading\r\n */\r\nfunction loading(loading: boolean): void {\r\n if (loading) {\r\n }\r\n // store.dispatch({ type: SET_LOADING, loading: loading });\r\n}\r\nconst style = 'background: #222; color: #FF725D'\r\nconst style2 = 'background: #222; color: #CC5B4A'\r\n\r\nexport const globalApi = {}\r\n\r\nconst routeToLogin = () => {\r\n // store.dispatch(types.LOGOUT, true)\r\n}\r\n\r\nexport default new EumApiClient({\r\n rootUrl: '/cm',\r\n interceptors: {\r\n request: {\r\n onFulfilled: (request: EumApiRequestConfig) => {\r\n const { url, data, method, params } = request\r\n const methodName = (method || '').toUpperCase()\r\n // const dataJson = JSON.stringify(data || params, null, 2);\r\n // const headerJson = JSON.stringify(headers, null, 2);\r\n console.log(`%c>>${methodName}: ${url}`, style, data, params)\r\n loading(true)\r\n return request\r\n },\r\n onRejected: function(err: any) {\r\n console.log('request', 'rejected', err, this)\r\n loading(false)\r\n return Promise.reject(err)\r\n },\r\n },\r\n response: {\r\n onFulfilled: (response: EumApiResponse): EumApiResponse => {\r\n const { url, method } = response.config\r\n const methodName = (method || '').toUpperCase()\r\n const { data } = response\r\n console.log(`%c<<${methodName}: ${url}`, style2, data)\r\n loading(false)\r\n if (data.code === 'UnauthorizedAccessException') {\r\n routeToLogin()\r\n throw new Error(data)\r\n } else if (data.code === 'ErrorNonExistentMailbox') {\r\n // 사용자 사서함 존재하지 않음\r\n router.push({\r\n name: data.code,\r\n query: { returnUrl: router.currentRoute.path },\r\n })\r\n }\r\n return response\r\n },\r\n onRejected: (err: any) => {\r\n console.log('response', 'rejected', 'code', err)\r\n loading(false)\r\n if (err?.response?.status == 401) {\r\n routeToLogin()\r\n throw new Error(err)\r\n } else {\r\n return Promise.reject(err.response)\r\n }\r\n },\r\n },\r\n },\r\n})\r\n","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { cache, createEventBus, removeEventBus } from '@/util'\r\nimport api from '@home/api'\r\n@Component({\r\n components: {},\r\n})\r\nexport default class UserDetail extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) person!: orgmap.UserItem\r\n @Prop({ type: String }) personCode!: string\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n userInfo: any = {}\r\n isModalStatus: boolean = false\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n }\r\n email: any = {} as any\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getImage(email?: string) {\r\n //debugger\r\n if (email && email.indexOf('/') == -1) {\r\n this.avatar.loading = true\r\n cache.avatar.get(email).then((url: string) => {\r\n this.avatar.url = url\r\n this.avatar.loading = false\r\n })\r\n }\r\n }\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png'\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/faux/images/ghost.png'\r\n }\r\n\r\n showModal(flag: boolean) {\r\n this.isModalStatus = flag\r\n }\r\n\r\n async writeEmail() {\r\n if (this.person.email) {\r\n this.$router.push({\r\n path: '/mail/write',\r\n query: { id: '', type: 'draft', uid: this.person.email },\r\n })\r\n } else {\r\n await(window as any).alertAsync('이메일 정보가 없습니다.')\r\n }\r\n }\r\n\r\n officeTel() {\r\n var addNumber = this.person.officeTel?.length === 4 ? '061-460-' : '';\r\n location.href = 'tel:' + addNumber + this.person.officeTel;\r\n }\r\n\r\n call(phoneNumber: string) {\r\n let Param: any = {}\r\n Param.Type = 'Call'\r\n Param.PhoneNumber = phoneNumber\r\n this.invokeCSCode(JSON.stringify(Param))\r\n }\r\n\r\n async invokeCSCode(data: any) {\r\n try {\r\n if ((window as any).invokeCSharpAction) {\r\n ;(window as any).invokeCSharpAction(data)\r\n } else {\r\n var obj = JSON.parse(data)\r\n const link = document.createElement('a')\r\n link.href = 'tel:' + obj.PhoneNumber\r\n link.click()\r\n ;(process as any).nextTick(() => link.remove())\r\n }\r\n } catch (err) {\r\n await(window as any).alertAsync(err)\r\n }\r\n }\r\n\r\n back() {\r\n this.$emit('detailViewClose')\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, 'header-back', this.back)\r\n if(this.person){\r\n api.orgmap.getCompanyName(this.person.comCode).then((res)=>{\r\n this.person.companyName = res.companyName\r\n })\r\n }\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-back', this.back)\r\n }\r\n\r\n mounted() {\r\n this.getImage(this.person.email)\r\n }\r\n}\r\n","const path = '$calendar';\r\n\r\n//\r\n// ──────────────────────────────────────────────────── I ──────────\r\n// :::::: C O M M O N : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const ADD_ACTION = `${path}/action/add`;\r\nexport const GET_ACTION = `${path}/action/get`;\r\nexport type ACTION_TYPE = 'FOLDERS' | 'ROOMS' | 'USERS' | 'EVENTS' | 'DAILYEVENTS' | 'SEARCHEVENTS';\r\n\r\nexport const SIDEBAR_CURRENT = `${path}/sidebar/current`;\r\nexport const SIDEBAR_CONTEXT_STATE = `${path}/sidebar/context/state`;\r\nexport const COMMON_COLOR_ARRAY = [\"rgb(255, 0, 0)\", \"rgb(255, 89, 0)\", \"rgb(179, 235, 28)\", \"rgb(58, 253, 2)\", \"rgb(0, 255, 210)\", \"rgb(0, 13, 255)\", \"rgb(5, 0, 193)\", \"rgb(164, 87, 234)\", \"rgb(159, 159, 162)\", \"rgb(255, 255, 255)\", \"rgb(242, 135, 132)\", \"rgb(241, 206, 133)\", \"rgb(230, 240, 134)\", \"rgb(153, 239, 135)\", \"rgb(135, 239, 226)\", \"rgb(136, 156, 238)\", \"rgb(185, 136, 238)\", \"rgb(238, 136, 220)\", \"rgb(179, 196, 193)\", \"rgb(238, 213, 187)\", \"rgb(227, 237, 188)\", \"rgb(190, 235, 213)\", \"rgb(133, 91, 28)\", \"rgb(64, 128, 128)\", \"rgb(139, 175, 16)\", \"rgb(188, 154, 192)\"];\r\n\r\nexport const COMMON_WEEK_ARRAY = ['일','월','화','수','목','금','토'];\r\nexport const COMMON_COLOR_ARRAY_GET = function(index: number): string {\r\n return COMMON_COLOR_ARRAY[index % COMMON_COLOR_ARRAY.length];\r\n}\r\nexport const COMMON_DATE_CURRENT = `${path}/common/datetime/current`;\r\nexport const COMMON_CHANGE_DATE = `${path}/common/datetime/change`;\r\nexport const COMMON_DATE_SELECT = `${path}/common/datetime/select`; \r\nexport const COMMON_DATE_SELECT_TODAY = `${path}/common/datetime/select/today`; \r\nexport const CALENDAR_MAININIT = `${path}/calendar/maininit`;\r\n\r\nexport const COMMON_DATE_MONTH_PREV = `${path}/common/datetime/month/prev`;\r\nexport const COMMON_DATE_MONTH_NEXT = `${path}/common/datetime/month/next`;\r\nexport const COMMON_DATE_SELECT_MONTH = `${path}/common/datetime/month/select`;\r\nexport const COMMON_DATE_SELECT_YEAR = `${path}/common/datetime/year/select`;\r\n\r\nexport const COMMON_DATE_WEEK_PREV = `${path}/common/datetime/week/prev`;\r\nexport const COMMON_DATE_WEEK_NEXT = `${path}/common/datetime/week/next`;\r\n\r\nexport const COMMON_DATE_DATE_PREV = `${path}/common/datetime/date/prev`;\r\nexport const COMMON_DATE_DATE_NEXT = `${path}/common/datetime/date/next`;\r\n\r\nexport const COMMON_CALENDAR_PREV = `${path}/common/calendar/prev`;\r\nexport const COMMON_CALENDAR_NEXT = `${path}/common/calendar/next`;\r\n\r\nexport const COMMON_ERROR_MESSAGE = `${path}/common/errormessage`;\r\nexport const COMMON_ERROR_CLEAR = `${path}/common/errormessage/clear`;\r\n\r\nexport const COMMON_REFRESH = `${path}/common/refresh`;\r\n\r\nexport const COMMON_ROOM_LOAD = `${path}/common/room/load`;\r\nexport const COMMON_ROOM_LIST = `${path}/common/room/list`;\r\n\r\n// 현재 사용자가 누구인지 가져오기\r\nexport const COMMON_CURRNT_USER = `${path}/common/current/user`;\r\nexport const COMMON_TOGGLE_CONTENTMASK = `${path}/common/contentmask/toggle`;\r\nexport const COMMON_SHOW_CONTENTMASK = `${path}/common/contentmask/show`;\r\n\r\n//\r\n// ──────────────────────────────────────────────────────── I ──────────\r\n// :::::: F O L D E R : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const FOLDER_SELECT = `${path}/folder/select`;\r\nexport const FOLDER_LIST_TREE = `${path}/folder/list/tree`;\r\nexport const FOLDER_LOAD_TREE = `${path}/folder/load/tree`;\r\nexport const FOLDER_ADD = `${path}/folder/add`;\r\nexport const FOLDER_EDIT_NAME = `${path}/folder/edit/name`;\r\nexport const FOLDER_EDIT_COLOR = `${path}/folder/edit/color`;\r\nexport const FOLDER_DELETE = `${path}/folder/delete`;\r\nexport const FOLDER_ROOT = `${path}/folder/root`;\r\n\r\n//\r\n// ──────────────────────────────────────────────────────── I ──────────\r\n// :::::: C A L E N D A R : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────────\r\n//\r\nexport const CALENDAR_TODAY_MODE = `${path}/calendar/today/mode`;\r\nexport const CALENDAR_CURRENT_RECURRING = `${path}/calendar/current/recurring`;\r\nexport const CALENDAR_NEXT = `${path}/calendar/next`;\r\nexport const CALENDAR_DATE_NEXT = `${path}/calendar/date/next`;\r\nexport const CURRENT_CALENDAR_ITEM = `${path}/calendar/current/item`;\r\nexport const CALENDAR_DATE_CURRENT = `${path}/calendar/date/current`;\r\nexport const CALENDAR_DATE_SELECT = `${path}/calendar/date/select`;\r\n\r\nexport const CALENDAR_DATETIME_CURRENT = `${path}/calendar/datetime/current`;\r\nexport const CALENDAR_DATETIME_SELECT = `${path}/calendar/datetime/select`;\r\n\r\nexport const CALENDAR_EVENT_SELECT_ID = `${path}/calendar/event/select/id`;\r\n\r\nexport const CALENDAR_EVENT_ADD = `${path}/calendar/event/add`;\r\nexport const CALENDAR_EVENT_EDIT = `${path}/calendar/event/edit`;\r\nexport const CALENDAR_EVENT_ACCEPT = `${path}/calendar/event/accept`;\r\nexport const CALENDAR_EVENT_DECLINE = `${path}/calendar/event/decline`;\r\nexport const CALENDAR_EVENT_CANCEL = `${path}/calendar/event/cancel`;\r\nexport const CALENDAR_EVENT_REMOVE = `${path}/calendar/event/remove`;\r\n\r\nexport const CALENDAR_EVENT_LOAD_LIST = `${path}/calendar/event/load/list`;\r\n\r\nexport const CALENDAR_DAILY_EVENT_LOAD_LIST = `${path}/calendar/daily/event/load/list`;\r\nexport const CALENDAR_DAILY_EVENT_LIST = `${path}/calendar/daily/event/list`;\r\n\r\nexport const CALENDAR_HIDE_SHOW = `${path}/calendar/show/hide`;\r\n\r\nexport const CALENDAR_VIEWMODE_CHANGE = `${path}/calendar/viewmode/change`;\r\nexport const CALENDAR_VIEWMODE = `${path}/calendar/viewmode`;\r\n\r\nexport const CALENDAR_MONTH_MATRIX_LOAD = `${path}/calendar/month/load`;\r\nexport const CALENDAR_MONTH_MATRIX_LIST = `${path}/calendar/month/list`;\r\n\r\nexport const CALENDAR_WEEK_MATRIX_LOAD = `${path}/calendar/week/load`;\r\nexport const CALENDAR_WEEK_MATRIX_LIST = `${path}/calendar/week/list`;\r\n\r\nexport const CALENDAR_DATE_MATRIX_LOAD = `${path}/calendar/date/load`;\r\nexport const CALENDAR_DATE_MATRIX_LIST = `${path}/calendar/date/list`;\r\n\r\nexport const CALENDAR_SEARCH_LOAD = `${path}/calendar/search/load`;\r\nexport const CALENDAR_SEARCH_LIST = `${path}/calendar/search/list`;\r\nexport const CALENDAR_SEARCH_OPTION = `${path}/calendar/search/option`;\r\nexport const CALENDAR_SEARCH_SHOW = `${path}/calendar/search/show`;\r\nexport const CALENDAR_RECURRING_SHOW = `${path}/calendar/recurring/show`;\r\n\r\nexport const CALENDAR_DOWNLOAD = `${path}/calendar/download`;\r\n\r\nexport const CALENDAR_SHARED_SET = `${path}/calendar/shared/set`;\r\nexport const CALENDAR_SHARED_SHOW = `${path}/calendar/shared/show`;\r\n\r\nexport const CALENDAR_FOLDER_NAME = `${path}/calendar/folder/name`;\r\n\r\nexport const CALENDAR_PRINT_LIST = `${path}/calendar/print/list`;\r\n\r\nexport const CALENDAR_RECURRING_LOAD = `${path}/calendar/recurring/edit`;\r\n\r\nexport const CALENDAR_CURRENT_APPOINTMENT = `${path}/calendar/current/appointment`;","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AttachModal.vue?vue&type=style&index=0&lang=css&\"","const path = '$workflow';\r\n\r\n//\r\n// ──────────────────────────────────────────────────────── I ──────────\r\n// :::::: W O R K F L O W : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const WORKFLOW_LIST = `${path}/workflow/list`;\r\nexport const WORKFLOW_CURRENT = `${path}/workflow/current`;\r\nexport const WORKFLOW_CURRENT_CLEAR = `${path}/workflow/current/clear`;\r\nexport const WORKFLOW_USERINFO = `${path}/workflow/userInfo`;\r\nexport const WORKFLOW_SEARCH = `${path}/workflow/search`;\r\nexport const WORKFLOW_FORM_ACTION = `${path}/workflow/set/form/action`;\r\nexport const WORKFLOW_DOCUMENT_PAGES = `${path}/workflow/documentpages/get`;\r\n\r\n// 시스템/양식 옵션\r\nexport const GET_WORKFLOW_OPTIONS = `${path}/workflow/workflowoptions/get`;\r\nexport const ADMIN_APPOPTIONLIST_LOAD = `${path}/get/applicationoptionlist/load`;","export * from './enums';\r\n","import { Flow } from './Flow'\r\nimport { FlowFile } from './FlowFile'\r\nimport { FlowRequestQueryParams } from './FlowRequestQueryParams'\r\n\r\n/**\r\n * Class for storing a single chunk\r\n * @name FlowChunk\r\n * @param {Flow} flowObj\r\n * @param {FlowFile} fileObj\r\n * @param {number} offset\r\n * @constructor\r\n */\r\nexport class FlowChunk {\r\n /**\r\n * Reference to parent flow object\r\n * @type {Flow}\r\n */\r\n flowObj: Flow\r\n\r\n /**\r\n * Reference to parent FlowFile object\r\n * @type {FlowFile}\r\n */\r\n fileObj: FlowFile\r\n\r\n /**\r\n * File offset\r\n * @type {number}\r\n */\r\n offset: number\r\n\r\n /**\r\n * Indicates if chunk existence was checked on the server\r\n * @type {boolean}\r\n */\r\n tested = false\r\n\r\n /**\r\n * Number of retries performed\r\n * @type {number}\r\n */\r\n retries = 0\r\n\r\n /**\r\n * Pending retry\r\n * @type {boolean}\r\n */\r\n pendingRetry = false\r\n\r\n /**\r\n * Preprocess state\r\n * @type {number} 0 = unprocessed, 1 = processing, 2 = finished\r\n */\r\n preprocessState = 0\r\n\r\n /**\r\n * Read state\r\n * @type {number} 0 = not read, 1 = reading, 2 = finished\r\n */\r\n readState = 0\r\n\r\n /**\r\n * Used to store the bytes read\r\n * @type {Blob|string}\r\n */\r\n bytes?: Blob | string = undefined\r\n\r\n /**\r\n * Bytes transferred from total request size\r\n * @type {number}\r\n */\r\n loaded = 0\r\n\r\n /**\r\n * Total request size\r\n * @type {number}\r\n */\r\n total = 0\r\n\r\n /**\r\n * Size of a chunk\r\n * @type {number}\r\n */\r\n chunkSize: number\r\n\r\n /**\r\n * Chunk start byte in a file\r\n * @type {number}\r\n */\r\n startByte: number\r\n\r\n /**\r\n * A specific filename for this chunk which otherwise default to the main name\r\n * @type {string}\r\n */\r\n filename = null\r\n\r\n /**\r\n * Chunk end byte in a file\r\n * @type {number}\r\n */\r\n endByte: number\r\n\r\n /**\r\n * XMLHttpRequest\r\n * @type {XMLHttpRequest}\r\n */\r\n xhr: XMLHttpRequest | null = null\r\n\r\n constructor(flowObj: Flow, fileObj: FlowFile, offset: number) {\r\n this.flowObj = flowObj\r\n this.fileObj = fileObj\r\n this.offset = offset\r\n this.chunkSize = this.fileObj.chunkSize\r\n this.startByte = this.offset * this.chunkSize\r\n this.endByte = this.computeEndByte()\r\n }\r\n\r\n //\r\n // ─── PRIVATE METHODS ────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * Compute the endbyte in a file\r\n *\r\n */\r\n private computeEndByte(): number {\r\n var endByte = Math.min(\r\n this.fileObj.size,\r\n (this.offset + 1) * this.chunkSize\r\n )\r\n if (\r\n this.fileObj.size - endByte < this.chunkSize &&\r\n !this.flowObj.opts.forceChunkSize\r\n ) {\r\n // The last chunk will be bigger than the chunk size,\r\n // but less than 2 * this.chunkSize\r\n endByte = this.fileObj.size\r\n }\r\n return endByte\r\n }\r\n\r\n /**\r\n * Send chunk event\r\n * @param event\r\n * @param {...} args arguments of a callback\r\n */\r\n private event(event: any, args: any) {\r\n args = Array.prototype.slice.call(arguments)\r\n args.unshift(this)\r\n this.fileObj.chunkEvent.apply(this.fileObj, args)\r\n }\r\n\r\n /**\r\n * Catch progress event\r\n * @param {ProgressEvent} event\r\n */\r\n private progressHandler(event: any) {\r\n if (event.lengthComputable) {\r\n this.loaded = event.loaded\r\n this.total = event.total\r\n }\r\n this.event('progress', event)\r\n }\r\n\r\n /**\r\n * Catch test event\r\n * @param {Event} event\r\n */\r\n private testHandler(event: any) {\r\n var status = this.status(true)\r\n if (status === 'error') {\r\n this.event(status, this.message())\r\n this.flowObj.uploadNextChunk()\r\n } else if (status === 'success') {\r\n this.tested = true\r\n this.event(status, this.message())\r\n this.flowObj.uploadNextChunk()\r\n } else if (!this.fileObj.paused) {\r\n // Error might be caused by file pause method\r\n // Chunks does not exist on the server side\r\n this.tested = true\r\n this.send()\r\n }\r\n }\r\n\r\n /**\r\n * Upload has stopped\r\n * @param {Event} event\r\n */\r\n private doneHandler(event: any) {\r\n var status = this.status()\r\n if (status === 'success' || status === 'error') {\r\n delete (this as any).data\r\n this.event(status, this.message())\r\n this.flowObj.uploadNextChunk()\r\n } else if (!this.fileObj.paused) {\r\n this.event('retry', this.message())\r\n this.pendingRetry = true\r\n this.abort()\r\n this.retries++\r\n var retryInterval = this.flowObj.opts.chunkRetryInterval\r\n if (retryInterval !== null) {\r\n setTimeout(() => {\r\n this.send()\r\n }, retryInterval)\r\n } else {\r\n this.send()\r\n }\r\n }\r\n }\r\n\r\n //\r\n // ─── PUBLIC METHODS ─────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * Get params for a request\r\n * @function\r\n */\r\n getParams(): FlowRequestQueryParams {\r\n return {\r\n flowChunkNumber: this.offset + 1,\r\n flowChunkSize: this.chunkSize,\r\n flowCurrentChunkSize: this.endByte - this.startByte,\r\n flowTotalSize: this.fileObj.size,\r\n flowIdentifier: this.fileObj.uniqueIdentifier,\r\n flowFilename: this.fileObj.name,\r\n flowRelativePath: this.fileObj.relativePath,\r\n flowTotalChunks: this.fileObj.chunks.length,\r\n }\r\n }\r\n\r\n /**\r\n * Get target option with query params\r\n * @function\r\n * @param params\r\n * @returns {string}\r\n */\r\n getTarget(target: any, params: any) {\r\n if (params.length == 0) {\r\n return target\r\n }\r\n\r\n if (target.indexOf('?') < 0) {\r\n target += '?'\r\n } else {\r\n target += '&'\r\n }\r\n return target + params.join('&')\r\n }\r\n\r\n /**\r\n * Makes a GET request without any data to see if the chunk has already\r\n * been uploaded in a previous session\r\n * @function\r\n */\r\n test() {\r\n // Set up request and listen for event\r\n this.xhr = new XMLHttpRequest()\r\n this.xhr.addEventListener('load', this.testHandler, false)\r\n this.xhr.addEventListener('error', this.testHandler, false)\r\n var testMethod = Flow.evalOpts(\r\n this.flowObj.opts.testMethod,\r\n this.fileObj,\r\n this\r\n )\r\n var data = this.prepareXhrRequest(testMethod, true)\r\n this.xhr.send(data)\r\n }\r\n\r\n /**\r\n * Finish preprocess state\r\n * @function\r\n */\r\n preprocessFinished() {\r\n // Re-compute the endByte after the preprocess function to allow an\r\n // implementer of preprocess to set the fileObj size\r\n this.endByte = this.computeEndByte()\r\n\r\n this.preprocessState = 2\r\n this.send()\r\n }\r\n\r\n /**\r\n * Finish read state\r\n * @function\r\n */\r\n readFinished(bytes: any) {\r\n this.readState = 2\r\n this.bytes = bytes\r\n this.send()\r\n }\r\n\r\n /**\r\n * Uploads the actual data in a POST call\r\n * @function\r\n */\r\n send() {\r\n var preprocess = this.flowObj.opts.preprocess\r\n var read = this.flowObj.opts.readFileFn\r\n if (typeof preprocess === 'function') {\r\n switch (this.preprocessState) {\r\n case 0:\r\n this.preprocessState = 1\r\n preprocess(this)\r\n return\r\n case 1:\r\n return\r\n }\r\n }\r\n switch (this.readState) {\r\n case 0:\r\n this.readState = 1\r\n read(\r\n this.fileObj,\r\n this.startByte,\r\n this.endByte,\r\n this.fileObj.file.type,\r\n this\r\n )\r\n return\r\n case 1:\r\n return\r\n }\r\n if (this.flowObj.opts.testChunks && !this.tested) {\r\n this.test()\r\n return\r\n }\r\n\r\n this.loaded = 0\r\n this.total = 0\r\n this.pendingRetry = false\r\n\r\n // Set up request and listen for event\r\n this.xhr = new XMLHttpRequest()\r\n this.xhr.upload.addEventListener('progress', this.progressHandler.bind(this), false)\r\n this.xhr.addEventListener('load', this.doneHandler.bind(this), false)\r\n this.xhr.addEventListener('error', this.doneHandler.bind(this), false)\r\n\r\n var uploadMethod = Flow.evalOpts(\r\n this.flowObj.opts.uploadMethod,\r\n this.fileObj,\r\n this\r\n )\r\n var data = this.prepareXhrRequest(\r\n uploadMethod,\r\n false,\r\n this.flowObj.opts.method,\r\n this.bytes as Blob\r\n )\r\n var changeRawDataBeforeSend = this.flowObj.opts.changeRawDataBeforeSend\r\n if (typeof changeRawDataBeforeSend === 'function') {\r\n data = changeRawDataBeforeSend(this, data)\r\n }\r\n this.xhr.send(data)\r\n }\r\n\r\n /**\r\n * Abort current xhr request\r\n * @function\r\n */\r\n abort() {\r\n // Abort and reset\r\n var xhr = this.xhr\r\n this.xhr = null\r\n if (xhr) {\r\n xhr.abort()\r\n }\r\n }\r\n\r\n /**\r\n * 현재 청크 업로드 상태 검색\r\n * @function\r\n * @returns {string} 'pending', 'uploading', 'success', 'error'\r\n */\r\n status(isTest?: boolean) {\r\n if (this.readState === 1) {\r\n return 'reading'\r\n } else if (this.pendingRetry || this.preprocessState === 1) {\r\n // 재 시도를 보류하는 경우 실제로 업로드하는 것과 동일합니다.\r\n // 재 시도가 시작되기 전에 약간의 지연이있을 수 있습니다.\r\n return 'uploading'\r\n } else if (!this.xhr) {\r\n return 'pending'\r\n } else if (this.xhr.readyState < 4) {\r\n // 상태는 실제로 'OPENED', 'HEADERS_RECEIVED'또는 'LOADING'입니다. 즉, 상황이 발생하고 있음을 의미합니다.\r\n return 'uploading'\r\n } else {\r\n if (this.flowObj.opts.successStatuses.indexOf(this.xhr.status) > -1) {\r\n // HTTP 200, perfect\r\n // HTTP 202 Accepted - 처리를 위해 요청이 승인되었지만 처리가 완료되지 않았습니다.\r\n return 'success'\r\n } else if (\r\n this.flowObj.opts.permanentErrors.indexOf(this.xhr.status) > -1 ||\r\n (!isTest && this.retries >= this.flowObj.opts.maxChunkRetries)\r\n ) {\r\n // HTTP 413/415/500/501, permanent error\r\n return 'error'\r\n } else {\r\n // 이런 일이 발생해서는 안되지만 503 서비스를 사용할 수없는 경우 재 시도를 재설정하고 대기열에 추가합니다.\r\n this.abort()\r\n return 'pending'\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get response from xhr request\r\n * @function\r\n * @returns {String}\r\n */\r\n message() {\r\n return this.xhr ? this.xhr.responseText : ''\r\n }\r\n\r\n /**\r\n * Get upload progress\r\n * @function\r\n * @returns {number}\r\n */\r\n progress() {\r\n if (this.pendingRetry) {\r\n return 0\r\n }\r\n var s = this.status()\r\n if (s === 'success' || s === 'error') {\r\n return 1\r\n } else if (s === 'pending') {\r\n return 0\r\n } else {\r\n return this.total > 0 ? this.loaded / this.total : 0\r\n }\r\n }\r\n\r\n /**\r\n * Count total size uploaded\r\n * @function\r\n * @returns {number}\r\n */\r\n sizeUploaded() {\r\n var size = this.endByte - this.startByte\r\n // can't return only chunk.loaded value, because it is bigger than chunk size\r\n if (this.status() !== 'success') {\r\n size = this.progress() * size\r\n }\r\n return size\r\n }\r\n\r\n /**\r\n * Prepare Xhr request. Set query, headers and data\r\n * @param {string} method GET or POST\r\n * @param {bool} isTest is this a test request\r\n * @param {string} [paramsMethod] octet or form\r\n * @param {Blob} [blob] to send\r\n * @returns {FormData|Blob|Null} data to send\r\n */\r\n prepareXhrRequest(\r\n method: any,\r\n isTest: boolean,\r\n paramsMethod?: any,\r\n blob?: Blob\r\n ) {\r\n // Add data from the query options\r\n var query = Flow.evalOpts(\r\n this.flowObj.opts.query,\r\n this.fileObj,\r\n this,\r\n isTest\r\n )\r\n query = Flow.extend(query || {}, this.getParams())\r\n\r\n var target = Flow.evalOpts(\r\n this.flowObj.opts.target,\r\n this.fileObj,\r\n this,\r\n isTest\r\n )\r\n var data: any = null\r\n if (method === 'GET' || paramsMethod === 'octet') {\r\n // Add data from the query options\r\n var params: any[] = []\r\n Flow.each(query, (v: any, k: any) => {\r\n params.push([encodeURIComponent(k), encodeURIComponent(v)].join('='))\r\n })\r\n target = this.getTarget(target, params)\r\n data = blob || null\r\n } else {\r\n // Add data from the query options\r\n data = new FormData()\r\n Flow.each(query, (v: any, k: any) => {\r\n data.append(k, v)\r\n })\r\n if (typeof blob !== 'undefined') {\r\n data.append(\r\n this.flowObj.opts.fileParameterName,\r\n blob,\r\n this.filename || this.fileObj.file.name\r\n )\r\n }\r\n }\r\n\r\n if (!this.xhr) throw new Error('NULL_REF_ERROR: xhr')\r\n const xhr: XMLHttpRequest = this.xhr\r\n\r\n xhr.open(method, target, true)\r\n xhr.withCredentials = this.flowObj.opts.withCredentials\r\n\r\n // Add data from header options\r\n Flow.each(\r\n Flow.evalOpts(this.flowObj.opts.headers, this.fileObj, this, isTest),\r\n (v: any, k: any) => {\r\n xhr.setRequestHeader(k, v)\r\n },\r\n this\r\n )\r\n\r\n return data\r\n }\r\n}\r\n","import api from '@/api'\r\n\r\nexport default {\r\n /**\r\n * 조직도 부서 목록을 조회합니다.\r\n * @param {object} data\r\n * { parentDeptCode: {string}, // 상위 부서 코드\r\n * comCode: {string}, // 회사 코드\r\n * level: {number} // 조회할 트리 레벨 }\r\n */\r\n getOrgTree: function(data: orgmap.DepartmentOption): Promise {\r\n return api.post({\r\n url: '/api/hr/organization/list',\r\n data: data,\r\n })\r\n },\r\n /**\r\n * 부서 코드로 조직도 내 부서 경로를 조회합니다.\r\n * @param {object} data\r\n * { comCode: {string}, // 회사 코드\r\n * deptCode: {string} // 부서 코드 }\r\n */\r\n getDeptPath: function(data: orgmap.DepartmentOption): Promise {\r\n return api.post({\r\n url: '/api/hr/organization/path',\r\n data: data,\r\n })\r\n },\r\n /**\r\n * 사용자의 메일주소로 부서정보를 조회합니다.\r\n */\r\n getUserInfo: function(data: any): Promise {\r\n return api.get({\r\n url: '/api/hr/department/info',\r\n params: { email: data },\r\n })\r\n },\r\n /**\r\n * 회사코드와 부서코드로 부서원을 조회합니다.\r\n * @param {object} data\r\n * { deptCode: {string}, // 부서 코드\r\n * comCode: {string} // 회사 코드\r\n * }\r\n */\r\n getEmployeeList: function(\r\n data: orgmap.DepartmentOption\r\n ): Promise> {\r\n return api.post>({\r\n url: '/api/hr/department/list',\r\n data: data,\r\n })\r\n },\r\n /**\r\n * 검색어로 부서 또는 직원을 조회합니다.\r\n * @param {string} keyword 검색창에 입력한 값\r\n */\r\n searchOrg: function(\r\n options: orgmap.SearchOptions,\r\n comCode: string\r\n ): Promise> {\r\n let { query } = options\r\n if (query) {\r\n query = encodeURIComponent(query)\r\n }\r\n return api.post({\r\n url: '/api/hr/department/search?searchVal=' + query,\r\n data: { comCode: comCode },\r\n })\r\n },\r\n\r\n /**\r\n * 회사 목록을 가져옵니다.\r\n * @returns\r\n */\r\n getCompanies: function(): Promise> {\r\n return api.post({\r\n url: '/api/hr/organization/getcompanies',\r\n })\r\n },\r\n\r\n /**\r\n * 회사 정보를 가져옵니다.\r\n * @returns\r\n */\r\n getCompanyName: function(comCode:string): Promise {\r\n return api.get({\r\n url: '/common/company/api/info',\r\n params: { comCode: comCode },\r\n })\r\n },\r\n}\r\n","import orgmap from './orgmap'\r\n\r\nexport default {\r\n orgmap\r\n}","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleGroupModal.vue?vue&type=style&index=0&lang=scss&\"","//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\nvar script = {\r\n name: 'EumTagInputMobile',\r\n // vue component name\r\n props: {\r\n value: {\r\n type: Array,\r\n default: []\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n useInput: {\r\n type: Boolean,\r\n default: true\r\n },\r\n mailValidMsg: {\r\n type: String,\r\n default: 'email format valid'\r\n },\r\n isShow: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n tags: {\r\n get() {\r\n if (!this.changeByInput) {\r\n this.idxInput = this.value.length;\r\n } else {\r\n this.changeByInput = false;\r\n }\r\n\r\n return this.initTags(this.value);\r\n },\r\n\r\n set(value) {\r\n this.$emit('input', value.filter(t => t.type !== 'input'));\r\n }\r\n\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n text: '',\r\n idxInput: -1,\r\n changeByInput: false,\r\n autoCompleteClearFlag: false,\r\n ignoreBlur: false,\r\n ignoreEnter: false,\r\n showAutoComplete: false\r\n };\r\n },\r\n\r\n mounted() {\r\n if (!window.eumTagInputMobile) {\r\n window.eumTagInputMobile = [];\r\n window.addEventListener('click', e => {\r\n let elem = e.target;\r\n\r\n if (elem) {\r\n if ((elem.className + '').indexOf('eum-tag-inputbox') == -1) {\r\n if (this.showAutoComplete) this.clearAllAutoComplete();\r\n } else {\r\n let uniqueKey = `pos_${elem.offsetTop}_${elem.offsetLeft}`;\r\n window.eumTagInputMobile.forEach(x => {\r\n let tElem = x.$refs.input;\r\n\r\n if (tElem.length) {\r\n tElem = tElem[0];\r\n }\r\n\r\n let tuniqueKey = `pos_${tElem.offsetTop}_${tElem.offsetLeft}`;\r\n\r\n if (tuniqueKey != uniqueKey) {\r\n x.clearAutoComplete(true);\r\n }\r\n });\r\n }\r\n }\r\n }, false);\r\n }\r\n\r\n window.eumTagInputMobile.push(this);\r\n },\r\n\r\n methods: {\r\n initTags(tags) {\r\n const idx = this.idxInput;\r\n const input = {\r\n type: 'input'\r\n };\r\n\r\n if (idx < 0) {\r\n return [...tags, input];\r\n } else {\r\n return [...tags.slice(0, idx), input, ...tags.slice(idx)];\r\n }\r\n },\r\n\r\n clearAllAutoComplete() {\r\n window.eumTagInputMobile.forEach(x => {\r\n x.clearAutoComplete(true);\r\n });\r\n },\r\n\r\n clearAutoComplete(flag) {\r\n if (this.autoCompleteClearFlag == false || flag) {\r\n this.$emit('changeAutoComplete');\r\n }\r\n },\r\n\r\n keyupEvent($event) {\r\n this.text = $event.target.value;\r\n this.$nextTick(() => {\r\n this.$emit('inputKeyDown', $event);\r\n });\r\n },\r\n\r\n blurEvent($event) {\r\n // this.$emit('receiverUpdate');\r\n // setTimeout(() => {\r\n // this.clearAutoComplete();\r\n // }, 10);\r\n if (!this.ignoreBlur) {\r\n if (!this.ignoreEnter) this.enterEvent($event);\r\n }\r\n },\r\n\r\n enterEvent($event) {\r\n this.ignoreBlur = true;\r\n if (this.showAutoComplete) this.clearAutoComplete();\r\n let isEmail = false;\r\n\r\n if (this.text && this.text.length) {\r\n if (/^[a-z0-9][a-z0-9-_\\.]+@([a-z]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\\.[a-z0-9]{2,10}(?:\\.[a-z]{2,10})?$/.test((this.text || '').toLowerCase())) {\r\n isEmail = true;\r\n } else {\r\n alert(this.mailValidMsg);\r\n return;\r\n }\r\n }\r\n\r\n if (!this.ignoreEnter || isEmail) {\r\n this.appendByKey($event);\r\n }\r\n\r\n this.ignoreBlur = false;\r\n },\r\n\r\n appendByKey(moveFocus, obj) {\r\n if (moveFocus === undefined) {\r\n moveFocus = true;\r\n }\r\n\r\n if (this.text) {\r\n this.changeByInput = true;\r\n var idxInput = this.getInputIndex();\r\n var tag = obj || {\r\n text: this.text,\r\n value: this.text,\r\n comCode: this.comCode,\r\n deptCode: this.deptCode\r\n };\r\n this.tags = [...this.tags.slice(0, idxInput), tag, ...this.tags.slice(idxInput)];\r\n this.text = '';\r\n this.$emit('tagAdded', tag);\r\n\r\n if (moveFocus) {\r\n this.setInputFocus();\r\n }\r\n\r\n this.idxInput = idxInput + 1;\r\n }\r\n },\r\n\r\n deleteBykey($event) {\r\n if (!this.text) {\r\n // var idxInput = this.getInputIndex();\r\n var idxDel;\r\n var isLeft;\r\n const keycode = $event.keyCode;\r\n\r\n if (keycode ===\r\n /* backspace */\r\n 8) {\r\n isLeft = true;\r\n idxDel = idxInput - 1;\r\n $event.preventDefault();\r\n } else if (keycode ===\r\n /* delete */\r\n 46) {\r\n isLeft = false;\r\n idxDel = idxInput + 1;\r\n } else {\r\n return;\r\n }\r\n\r\n if (idxDel >= 0) {\r\n const tagDel = this.tags[idxDel];\r\n this.changeByInput = true;\r\n this.tags = [...this.tags.slice(0, idxDel), ...this.tags.slice(idxDel + 1)];\r\n this.$emit('tagDeleted', tagDel);\r\n this.setInputFocus();\r\n this.idxInput = isLeft ? idxInput - 1 : idxInput;\r\n }\r\n }\r\n },\r\n\r\n deleteTag($event, tag) {\r\n var index = this.tags.indexOf(tag);\r\n\r\n if (index >= 0) {\r\n //this.$emit('beforeDeleteTag', tag);\r\n this.changeByInput = true;\r\n this.tags = [...this.tags.slice(0, index), ...this.tags.slice(index + 1)];\r\n this.setInputFocus();\r\n this.$emit('tagDeleted', tag); //this.$emit('afterDeleteTag');\r\n }\r\n },\r\n\r\n moveInput($event) {\r\n var idxInput = this.getInputIndex();\r\n var idxMove;\r\n\r\n if ($event.keyCode ===\r\n /* left */\r\n 37) {\r\n idxMove = idxInput - 1;\r\n }\r\n /* right:39 */\r\n else {\r\n idxMove = idxInput + 1;\r\n }\r\n\r\n if (idxMove >= 0 && idxMove < this.tags.length) {\r\n this.changeByInput = true;\r\n this.idxInput = idxMove;\r\n var tags = [...this.tags.slice(0, idxInput), ...this.tags.slice(idxInput + 1)];\r\n this.tags = [...tags.slice(0, idxMove), this.tags[idxInput], ...tags.slice(idxMove)];\r\n this.setInputFocus();\r\n }\r\n },\r\n\r\n getInputIndex() {\r\n return this.tags.findIndex(t => t.type === 'input');\r\n },\r\n\r\n setInputFocus() {\r\n this.$nextTick(() => this.$refs.input[0].focus());\r\n }\r\n\r\n }\r\n};\r\n\r\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\r\n\r\n/* script */\r\nconst __vue_script__ = script;\r\n/* template */\r\n\r\nvar __vue_render__ = function () {\r\n var _vm = this;\r\n\r\n var _h = _vm.$createElement;\r\n\r\n var _c = _vm._self._c || _h;\r\n\r\n return _c('div', {\r\n staticClass: \"eum-tag-input\"\r\n }, [_c('ul', {\r\n staticClass: \"tag-node-container\"\r\n }, _vm._l(_vm.tags, function (tag, index) {\r\n return _c('li', {\r\n key: index,\r\n staticClass: \"tag-node\"\r\n }, [tag.type === 'input' && _vm.useInput ? _c('div', {\r\n staticClass: \"input-wrapper\"\r\n }, [!_vm.disabled ? _c('input', {\r\n ref: \"input\",\r\n refInFor: true,\r\n staticClass: \"eum-tag-inputbox\",\r\n domProps: {\r\n \"value\": _vm.text\r\n },\r\n on: {\r\n \"keyup\": _vm.keyupEvent,\r\n \"keydown\": [_vm.deleteBykey, function ($event) {\r\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) {\r\n return null;\r\n }\r\n\r\n return _vm.enterEvent.apply(null, arguments);\r\n }],\r\n \"blur\": _vm.blurEvent\r\n }\r\n }) : _vm._e()]) : _c('div', {\r\n staticClass: \"tag-face\"\r\n }, [_c('div', {\r\n staticClass: \"tag-face-content\"\r\n }, [_vm._t(\"default\", null, {\r\n \"tag\": tag\r\n })], 2), _vm._v(\" \"), !_vm.disabled ? _c('div', {\r\n staticClass: \"tag-face-actions\",\r\n on: {\r\n \"click\": function ($event) {\r\n return _vm.deleteTag($event, tag);\r\n }\r\n }\r\n }, [_c('i', {\r\n staticClass: \"icon-close\"\r\n })]) : _vm._e()])]);\r\n }), 0)]);\r\n};\r\n\r\nvar __vue_staticRenderFns__ = [];\r\n/* style */\r\n\r\nconst __vue_inject_styles__ = undefined;\r\n/* scoped */\r\n\r\nconst __vue_scope_id__ = undefined;\r\n/* module identifier */\r\n\r\nconst __vue_module_identifier__ = undefined;\r\n/* functional template */\r\n\r\nconst __vue_is_functional_template__ = false;\r\n/* style inject */\r\n\r\n/* style inject SSR */\r\n\r\n/* style inject shadow dom */\r\n\r\nconst __vue_component__ = /*#__PURE__*/normalizeComponent({\r\n render: __vue_render__,\r\n staticRenderFns: __vue_staticRenderFns__\r\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\r\n\r\n// Import vue component\r\n\r\nconst install = function installEumTagInputMobile(Vue) {\r\n if (install.installed) return;\r\n install.installed = true;\r\n Vue.component('EumTagInputMobile', __vue_component__);\r\n}; // Create module definition for Vue.use()\r\n\r\n\r\nconst plugin = {\r\n install\r\n}; // To auto-install when vue is found\r\n// eslint-disable-next-line no-redeclare\r\n\r\n/* global window, global */\r\n\r\nlet GlobalVue = null;\r\n\r\nif (typeof window !== 'undefined') {\r\n GlobalVue = window.Vue;\r\n} else if (typeof global !== 'undefined') {\r\n GlobalVue = global.Vue;\r\n}\r\n\r\nif (GlobalVue) {\r\n GlobalVue.use(plugin);\r\n} // Inject install function into component - allows component\r\n// to be registered via Vue.use() as well as Vue.component()\r\n\r\n\r\n__vue_component__.install = install; // Export component by default\r\n// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';\r\n// export const RollupDemoDirective = component;\r\n\r\nexport default __vue_component__;\r\n","import 'fetch-polyfill';\r\n\r\nvar img = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAHtElEQVR4nO2dbWwUxxnH/8/e+XxnG/tiKKJNSg322UU2JjJUKFUbiINNkeIUFOxUaqFu4oCCSkurOHWVL6mqNkrTpgohNKFUCrbyUttJlNiFShRsNy+NlBBq+6zI1AQayktMgg0+fHvO7T79QKA+U2f37nZ21zC/L6db/eeZ5/Z/M7OzOzcHSCQSiUQikUgkEolEIpFIrhfI6QSSobW21jM3OFZBml7OCkqIUcyEhWBkA7gBQPbyFRUg4CIDI7j0+oECHmQoR3RovVn+Y4eprk1z+KNcwfUGdDWsuQm6vp7At4NwK4Dcz9MvX1FhFPI8A39XiA/ourc96/u/OmlZsingSgPeqr0lMJGbux7EG8GoBKCYLWvCgMloAB0E681+PdBOP3hYTTrZNHGVAV1bVuYosYx7GfQggC+lEiNJAyZzFoyd/gD/nuoePZ9qkGRxhQHvblqaEYnP3gZCE4D8dGKlYcBn0DkG/zoQPbedNu/6NM1ghphu2qLoblj9zYg2+z0QfoM0T741cD4Bv1UD+f3qnqZVomtzrAV01a/0k8f3OwD3W5lH+i0gAWbQjsBopJF+9GTMysCXcaQFdNV/q0Dx+LoBbIFLusFpIAJvjQWz3lJbmopEVGC7AV33rF5FHr2XgeV2150qDKpgxrvR5qZKq2PbakD3PVXriLgDBtfyLiUPwL7xPU13WxnUNgN6Gqo3gagdgN+uOgXgI8Lz0eaf32dVQFsM6Lq3ei0zdtpVn2AUgJ8eb/lZnUXBxNLTUF1JwIsAPKLrshGFmFrUZ5uq0w5kRTbT0VNfFWLGKwAyRdbjED5W0Ko+21iYThBhBuzduiaTvfQiZuaAa5Y8eDx/5u1bU/6CCTMga1x7HAxLZ0VuhBlLo8Gcx1Itb2oStHvZ/A2f3SBbBMf7coLP70P+3HzMuuHqxmXxTNgsDNBtgY2P9CRb0LAF/HHZ/I0MagZQBsdPPgAwJtQYznx4GmMjF5xO5jIE8A5+ZlNGsgVNdEHUmEpGdjAyfM7pFCZTFg3k/zDZQmbGgEUpJGMLMXXC6RQSIOAhbn04J5kyZgxwQbczHex0AlOZHVXVzckUuBZmpq6CgAe49ScBs3ppgPXMU1XfOrNiaYAQaINZpTRADNXjex660YxQGiAGRVE0U92Q1+qaG945bqiJx1RETp/EiTe7EH5uNy6ePWN1Gm6gEsAOI5EjLcCb6UewoBCLv9uA9e0H8JVbq5xIQyg6823cWmt4Ce94F5SRlY3KR57C3LKbnU7FUggUHB8vNPxQlndBU+ncVIe4Gr3yPjMviMKqGhTX1AJ06V6gx+fDLQ/8Aq/Wf1t0OraieKgcwKHP0wg34JPBAXw6fjHh2Mm3X0fko1OouG/blWNfKF2CYEEhRo8fFZ2SfTCKjSSOdUF9zc9A1+IJx/KLXHvbKSWIuMRI45gBcTWKi8OJVz9KRtJ3c10OLzBSOGaA1x9A9tx5Cccip//jUDZiYEaekcYxA8o3bIbi+d8QFLtwHsPhw06lIwiaZaQQPgjPLilNvArKDWJh1R0ouTNxWU34hT9Bj8enFp/pOG/AHbtaDTXD/e+hr/nplOLf9NGphPcnW09No3Qnjk/EPnz9AP7643poE+56umURY0YC4S1gKno8jui5sxjuP4wjne048cZBu1OwDXKDAXtWlF41EbuOMPytmeNd0LUMA8eMNNIAgTB40EgjDRAIkSINcBIG9RlppAHiGC3yl/QaiaQB4uiiNuNNQSy/DN39tQKrQ85IGHzAjE62ADFoXh0vmRFKA0RAtH/B3gFTSz2kAQIgoMWsVhpgPWd8/pxXzIqlARbDoMe+3PaPqLHyEmYMcM3+alMh9+3z8clEQN+VTAEzBryfYjLCyc5wlwEE/LK0bSCSTBljA4gfTTkjwczP8jmdwmTCI6czdyZbyHDtYsep83133ph3FFBCAObA4XGDQMjJUFCYm4l5AdcsY2Emuntx9z8/SLagsDY8VFO2HYytouK7jCeKOsPbjGVXI+zbzHG1EQbrIq8R3okF+MFUCwsdxf61pqyQvDgEEwuUZiijcVIqvtrRZ/jkazqE9uehfeGjzFgLwPYNUW1gQlFQl87JB2wYUEOd4W4m+g5cPJ9IAZ2ZvrfwtfD+dAPZckUT6uh/FeD7Aeh21CcYjYk3h/7S32ZFMFtnMkM1i9eC+QXM3H3jYkzYGOoIGy/3M4ntU8mhmtJKgF6egQPzKAPrQp3hbiuD2j6pKuoYOKho2hIAb9tddxocYg3LrD75gEOz2oV73/83a+pKEJ6EC3fcmAQDeCIW4K+H9oWF/HbK8btZR2tKv8FMTwEodzqXKfRB4S1Frw28KbISx58HFHYMvHEiMmcpE/8UwMdO5wPgYwK2nYjMWSr65AMuaAGT6a0uz87x6Q0MNAIwtdeChQwz8Ado6uOhfUO27YXmKgMuc2xlgV/PmXUXgzcAWAVxm0ZpINpPQIsyNvbygu7j1/dfmPw/jq9e9MV4hvcugG8HsAKX/i0pHUYA9DD4b14dL5ldvSAK1xswGa6t9Qypg0sUXb9ZV7iYmIoJWMBALgNBAnIAgIEIAaMEXGDgGBMfUVgZ1Il6i/wlvWZWrEkkEolEIpFIJBKJRCKRSCRW81+5M0G0lpP9+wAAAABJRU5ErkJggg==\";\r\n\r\nvar icons8MicrosoftPowerpoint201996 = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n 'default': img\r\n});\r\n\r\nvar img$1 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAFZUlEQVR4nO3df0yUdRwH8Pf3OEA5kYAJOoJZiSn5i1lZmjZWIXOFG87GamZNaiXLDJP8lb9IWC3MRWVhtDRr1PxRmQqmW84JtgLFyU5b4FQSMj0Ew+AOnm9/tJ7zBvk8wfN9vl/i89rY7vu9z/H93L25557nnmMHEEIIIYQQQgghhJCBgslYNHbT3HSAv8YZJgIItmPN6OS77FgGALwcrAZMyzs9ff0eo2LbA4h9Z85jnLNv7F7XxgD8GM9wT1+/+2YlDrt60XG2xvY1ZdHYCqMS2wPgwHi715SGYYJRif3PACBEwpqyGN5XGQGQG1AAklEAklEAklEAklEAklEAklEAklEAklEAklEAkjnNFLmWTJnHOMsFMBZAUF8WvH6uoS83BxjgcDrhjBgKpyusb79LAYYBuHLuf4pxvtWOZkzhgObrhPeyBwD6fQiGATDwpXY00htez1V4vT5upjbo0kXR7fSKmU3QWOFd9BbXAEmnVa1i5kW4T9t8oUz97auN9oIkowAkowAkowAkowAkM3UkbFZ8ZCx+yi1FWMggfe6L6nJkfba2x/pBzhBUL/sS8ZGx+lzBgRLkl39kZVtKs/QZcKH5NxQd/jxgbm7yIxg3YlSP9QtnZAY8+PWXG7Dx0DYrW1Ke5ZugwkPbcL65yb8Ac+DV1Ge61d0yOByLU54MmMv96m20d3qtbklplgfwp68Dq799L2Bu9vgUTI4PPKBelroAkWFD9fGO49+h3F1hdTvKE/IivPPEQRypq9bHjDEsS12gjxOiRiBraoY+vtbehpV7ikS0ojxhe0FLdhWiU+vSx2lJ03DvyHEAgLWzXkCo0/+p9PX7P8TFlt9FtaI0YQG4m+rxybGvA+ZWzXwOE+ISMWfSQ/rc8YbT2FKxU1QbyhN6HJBXVozm6636OGX0Pdg+vwAO9veyGtfw8o430aVpIttQmtAAPG0teL2sOGDutug4/XJJxW5UXXCLbEF5wo+ESyp341TjL93mL13zYN3+D0QvrzxLj4R7EhIUDFfI4B6vYxacS3FV/mpq+9URE97ntUQQ/gxYOfPZgM3OP2LCo5D3aLYVSzgU/zFsXpiJcaOR/WCmPq5trMOP507p4/lT0jH19kkiW1CesACCHA4UPb4cTof/jOaavZux6oajZMYY3p27POCYYKARFkD2jEwk3zpGH1eerUG5+ygq6k+g3H1Un0+MScDilHmi2lCekAASIodjRWpWwNzqve/rl9fs3QyN+187lz78NO6MHSmiFeUJCaAw4xW4Qv17Pvtqj+DY2ZP6uLaxDqVV5fo41BmMTXNywVi//oRJr1geQObkNKQlTdPHXZqGtfu67+9vKCtGR6dPHz9wRzKeuHuW1e0oz9IAolwRyE9fFDBXWrUf7qb6brXnm5u6vQdUkL4Iw4ZEWtmS8iwNoCD9pYAH0NvlQ8GBj/+1/q2DW9Ha/oc+jgwbig3pL1rZkvIMN7pDcu5T+vNnrtpW4yIAvtljjIsE8CzcddPHmD4VIRkFIBkFIBkFIBkFIJmZALqMS2RRegfNFDMBKHvO0NHe/wMwPCPGwd9gYJ/a0cx/FezxXnEAbWZqo2qvim6nRx6D6w0DaNv4w3ZXzhQwsFwASZD+L0scjnaO4CsdCG7xRXOGaDO3CvKpuSW1/e3H4WlJUrYbEQnDZCyLM8WH6UhYZRSAZBSAZBSAZBSAZBSAZBSAZBSAZBSAZBSAZBSAZDICGEj/CGx4XyUEwE8a1/xv1BgV2P8VJlrQOrvXlIWD5RvV2P7eflvdpZ9diTHVDBgFIMauHgZFuOxYBgB8AKoZZ8+f2fK97d8WRQghhBBCCCGEEELU9RctYEHONU7NKAAAAABJRU5ErkJggg==\";\r\n\r\nvar icons8MicrosoftExcel201996 = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n 'default': img$1\r\n});\r\n\r\nvar img$2 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAFV0lEQVR4nO2cT0wjVRzHv49Sigus1CxQQONCBVb+ySYIROFm4nKA3XhZE//c1HjZPbkHE7MaExMTSQx6UG/Gk6dF1z8x4bhYkWQJLGwXWeq6ZFu2iECggG3p81CYmU4LUzvTecPw+yQk815/fe/X953f7703fwAIgiAIgiAIgiAIgiCI4wIT0Wn7Z7ODnPP3ADwDwCnChzwSBTDFgA+nL7Ve1zI2XYD24ZkBDnxvdr8i4Jy/NHO57dphNgVmObMPB7tqdp+iYIy9q2VjugAAbzO/T2G0axkIEABFAvoUheZvFSEAoYAEEAwJIBgSQDAkgGBIAMGQAIIhAQRDAgiGBBAMCSCYwqysXvzkNRSwK+B4GoBDT4e3fvpFz9fBGOAqLUNFfR3Ka6t1tWUFtAXoH3odHF+Dm+BNFnAO7GxsYHFqGgCOvAjZRMA7efciR5bnAygvrbbIqZEb2gIk044l+Xd7ExB0W9UospmEdeX8fMKP9LmfhFZBgiEBBEMCCIYEEAwJIJjsdsIH8OWlF/Bmv/zkxeD7I7g+Hkiz62yowsTwKyl1b38+ii9+nE6zHezx4rur56XyVz9P463hUT1uWhpdETA2G0wpdzVl3pX2tT6eVvd8c21G264mz6F92A1dAtyYfZBSVg/ePr0tNWl1fa0HCNCY2oa6D7uhS4DA0jqCK5tSuavJgwKWvjF9rjldgCcrT+KJirKUOsaAzsYqqRxc2URgaV2Pi5ZH9yR8Q5EiyktcaKgtT/m8sdYNj7tEKu9E49KxOgoaa91wlxZnbNuu6BZg7LY6DaXOA8pBfri6hdHJ+1JZPQ90q76rbtuOGBABKgFUOVw5yGO3H8B3JySV1XODeg6xe/4HDBBgKrCMje2oVFYPojICfP4QfH45rbSePoXHyuSU031GjoCN7SimAst63bM8ugXYTXD4/PJZ3eGtgMuZvIBa5T6Bp2rkOcHnD+L3uSXEdxPJzhlDz96gu5wOtJ0+pbANYTdhg8udGhiyEx5TpIqiQgc66isBAH0t8vo/Fk/g5t0wIjsxzPy1ItX3tiQj5Ky3UhJO3aad0bUT3ke9Wulq8mB8LpSS4ycXwtjeWwH5/EF01FcAkFNUev7PbgXEViKJnB23AIZEwPhcCLG4PA77g6ncAStzvzJlPdvoQXFRYYoAsXgC43OyjQYFFv/TdF43kZ0YJhfCUrmryYPSR5xor0vN6fKxLIbL6UBnQ1XKEnRyIZmqjgOGXQ1VLhkbatwY6Pai0CE377sjD/pCaA3L69tSebDHC2+1PFkfh+XnPoYJMHZbHmDGgMsXzkrl0D8R3A9vSGXOgd8U+4E3+tugvIKhbMvuGBoBypvkypTya4YBVaah8hKXdMw5RUBOhNe2MB9czfiZMv1Idf7Mk+x8cBXhtS2j3LI8ht4RO+jMzTTYE3/IG7Js2rArhgqQ6eZJLJ7A5N1wWn1kJ4Zb9/7Oqg07k/cIuLnwUNqAqckUGcctArQf6zs3ZOkLMu1nekW7cCjTn3YfOsb0VIRgSADBkACCIQEEQwIIJhsBdvPuRY4c6Tcz9tAWgMFvgh854XKVaBtZnGxeUfoYwDf5d+X/c5IXr0QWFyOi/dBDdlF8buhVAFcANMMCrywVMSceLSxDqeOEaFc0+XPk4qFjbHoarbvwraV31kajJQCtggRDAgiGBBAMCSAYEkAwJIBgSADBkACCIQEEQwIIhgQQjAgBotomtkHztwoQgKX/fwL7MqVlYLoAjCU+MLtPUXDgIy0b0wUIXHv5B3AMApgAYMe3MKIAJhjjA/dGLo6IdoYgCIIgCIIgCIIgCIKwDv8BtEiDpqoRtAAAAAAASUVORK5CYII=\";\r\n\r\nvar icons8MicrosoftWord201996 = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n 'default': img$2\r\n});\r\n\r\nvar img$3 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABmJLR0QA/wD/AP+gvaeTAAABjElEQVR4nO3dsU7DQBAG4R8UnhNBlfdvIUDvUNln3+zejHRFCluX/XydlSRmZmbX91t0fSV5P2Ee05s92CPrJ8l9/EjmNnuoomyaPVBRNm2/HL32KF1A2qBUB3n88/lz2u4GVB3kI88opU9KdZCkGUoHkKQRSheQpAlKJ5CkAUo3kKQ4SkeQpDBKV5CkKEpnkKQgSneQpBjKCiBJIZRVQJIiKCuBJAVQVgNJ4CgrgiRglFVBEijKyiAJEKU6yFnrkQPvfb3svTDPCEfudUVXPjTfSd72XCjIee2ax+voXdixbrM3cGFnn+AhJ9ATAksQWILAEgSWILAEgSUILEFgCQJLEFiCwBIEliCwBIElCCxBYAkCSxBYgsASBJYgsASBJQgsQWAJAksQWILAEgSWILAEgSUILEFgCQJLEFiCwBIEliCwBIElCCxBYAkCSxBYgsASBJYgsASBJQgsQWAJAksQWILAEgSWILAEgSUILEFgCQJLEFiCwBr52+8V/kMEnycEliCwBDEzM2vSH3E69/RDBrYkAAAAAElFTkSuQmCC\";\r\n\r\nvar icons8File100 = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n 'default': img$3\r\n});\r\n\r\nfunction getCjsExportFromNamespace (n) {\r\n\treturn n && n['default'] || n;\r\n}\r\n\r\nvar require$$0 = getCjsExportFromNamespace(icons8MicrosoftPowerpoint201996);\r\n\r\nvar require$$1 = getCjsExportFromNamespace(icons8MicrosoftExcel201996);\r\n\r\nvar require$$2 = getCjsExportFromNamespace(icons8MicrosoftWord201996);\r\n\r\nvar require$$3 = getCjsExportFromNamespace(icons8File100);\r\n\r\n// ie10+\r\nvar ie10plus = window.navigator.msPointerEnabled;\r\n/**\r\n * Flow.js is a library providing multiple simultaneous, stable and\r\n * resumable uploads via the HTML5 File API.\r\n * @param [opts]\r\n * @param {number|Function} [opts.chunkSize]\r\n * @param {bool} [opts.forceChunkSize]\r\n * @param {number} [opts.simultaneousUploads]\r\n * @param {bool} [opts.singleFile]\r\n * @param {string} [opts.fileParameterName]\r\n * @param {number} [opts.progressCallbacksInterval]\r\n * @param {number} [opts.speedSmoothingFactor]\r\n * @param {Object|Function} [opts.query]\r\n * @param {Object|Function} [opts.headers]\r\n * @param {bool} [opts.withCredentials]\r\n * @param {Function} [opts.preprocess]\r\n * @param {string} [opts.method]\r\n * @param {string|Function} [opts.testMethod]\r\n * @param {string|Function} [opts.uploadMethod]\r\n * @param {bool} [opts.prioritizeFirstAndLastChunk]\r\n * @param {bool} [opts.allowDuplicateUploads]\r\n * @param {string|Function} [opts.target]\r\n * @param {number} [opts.maxChunkRetries]\r\n * @param {number} [opts.chunkRetryInterval]\r\n * @param {Array.} [opts.permanentErrors]\r\n * @param {Array.} [opts.successStatuses]\r\n * @param {Function} [opts.initFileFn]\r\n * @param {Function} [opts.readFileFn]\r\n * @param {Function} [opts.generateUniqueIdentifier]\r\n * @constructor\r\n */\r\n\r\nfunction Flow(opts) {\r\n /**\r\n * Supported by browser?\r\n * @type {boolean}\r\n */\r\n this.support = typeof File !== 'undefined' && typeof Blob !== 'undefined' && typeof FileList !== 'undefined' && (!!Blob.prototype.slice || !!Blob.prototype.webkitSlice || !!Blob.prototype.mozSlice || false); // slicing files support\r\n\r\n if (!this.support) {\r\n return;\r\n }\r\n /**\r\n * Check if directory upload is supported\r\n * @type {boolean}\r\n */\r\n\r\n\r\n this.supportDirectory = /Chrome/.test(window.navigator.userAgent) || /Firefox/.test(window.navigator.userAgent) || /Edge/.test(window.navigator.userAgent);\r\n /**\r\n * List of FlowFile objects\r\n * @type {Array.}\r\n */\r\n\r\n this.files = [];\r\n /**\r\n * Default options for flow.js\r\n * @type {Object}\r\n */\r\n\r\n this.defaults = {\r\n chunkSize: 1024 * 1024,\r\n forceChunkSize: false,\r\n simultaneousUploads: 3,\r\n singleFile: false,\r\n fileParameterName: 'file',\r\n progressCallbacksInterval: 500,\r\n speedSmoothingFactor: 0.1,\r\n query: {},\r\n headers: {},\r\n withCredentials: false,\r\n preprocess: null,\r\n changeRawDataBeforeSend: null,\r\n method: 'multipart',\r\n testMethod: 'GET',\r\n uploadMethod: 'POST',\r\n prioritizeFirstAndLastChunk: false,\r\n allowDuplicateUploads: false,\r\n target: '/',\r\n testChunks: true,\r\n generateUniqueIdentifier: null,\r\n maxChunkRetries: 0,\r\n chunkRetryInterval: null,\r\n permanentErrors: [404, 413, 415, 500, 501],\r\n successStatuses: [200, 201, 202],\r\n onDropStopPropagation: false,\r\n initFileFn: null,\r\n readFileFn: webAPIFileRead\r\n };\r\n /**\r\n * Current options\r\n * @type {Object}\r\n */\r\n\r\n this.opts = {};\r\n /**\r\n * List of events:\r\n * key stands for event name\r\n * value array list of callbacks\r\n * @type {}\r\n */\r\n\r\n this.events = {};\r\n var $ = this;\r\n /**\r\n * On drop event\r\n * @function\r\n * @param {MouseEvent} event\r\n */\r\n\r\n this.onDrop = function (event) {\r\n if ($.opts.onDropStopPropagation) {\r\n event.stopPropagation();\r\n }\r\n\r\n event.preventDefault();\r\n var dataTransfer = event.dataTransfer;\r\n\r\n if (dataTransfer.items && dataTransfer.items[0] && dataTransfer.items[0].webkitGetAsEntry) {\r\n $.webkitReadDataTransfer(event);\r\n } else {\r\n $.addFiles(dataTransfer.files, event);\r\n }\r\n };\r\n /**\r\n * Prevent default\r\n * @function\r\n * @param {MouseEvent} event\r\n */\r\n\r\n\r\n this.preventEvent = function (event) {\r\n event.preventDefault();\r\n };\r\n /**\r\n * Current options\r\n * @type {Object}\r\n */\r\n\r\n\r\n this.opts = Flow.extend({}, this.defaults, opts || {});\r\n}\r\n\r\nFlow.prototype = {\r\n /**\r\n * Set a callback for an event, possible events:\r\n * fileSuccess(file), fileProgress(file), filesAdding(files, event), fileAdded(file, event),\r\n * fileRemoved(file), fileRetry(file), fileError(file, message),\r\n * complete(), progress(), error(message, file), pause()\r\n * @function\r\n * @param {string} event\r\n * @param {Function} callback\r\n */\r\n on: function (event, callback) {\r\n event = event.toLowerCase();\r\n\r\n if (!this.events.hasOwnProperty(event)) {\r\n this.events[event] = [];\r\n }\r\n\r\n this.events[event].push(callback);\r\n },\r\n\r\n /**\r\n * Remove event callback\r\n * @function\r\n * @param {string} [event] removes all events if not specified\r\n * @param {Function} [fn] removes all callbacks of event if not specified\r\n */\r\n off: function (event, fn) {\r\n if (event !== undefined) {\r\n event = event.toLowerCase();\r\n\r\n if (fn !== undefined) {\r\n if (this.events.hasOwnProperty(event)) {\r\n arrayRemove(this.events[event], fn);\r\n }\r\n } else {\r\n delete this.events[event];\r\n }\r\n } else {\r\n this.events = {};\r\n }\r\n },\r\n\r\n /**\r\n * Fire an event\r\n * @function\r\n * @param {string} event event name\r\n * @param {...} args arguments of a callback\r\n * @return {bool} value is false if at least one of the event handlers which handled this event\r\n * returned false. Otherwise it returns true.\r\n */\r\n fire: function (event, args) {\r\n // `arguments` is an object, not array, in FF, so:\r\n args = Array.prototype.slice.call(arguments);\r\n event = event.toLowerCase();\r\n var preventDefault = false;\r\n\r\n if (this.events.hasOwnProperty(event)) {\r\n each(this.events[event], function (callback) {\r\n preventDefault = callback.apply(this, args.slice(1)) === false || preventDefault;\r\n }, this);\r\n }\r\n\r\n if (event != 'catchall') {\r\n args.unshift('catchAll');\r\n preventDefault = this.fire.apply(this, args) === false || preventDefault;\r\n }\r\n\r\n return !preventDefault;\r\n },\r\n\r\n /**\r\n * Read webkit dataTransfer object\r\n * @param event\r\n */\r\n webkitReadDataTransfer: function (event) {\r\n var $ = this;\r\n var queue = event.dataTransfer.items.length;\r\n var files = [];\r\n each(event.dataTransfer.items, function (item) {\r\n var entry = item.webkitGetAsEntry();\r\n\r\n if (!entry) {\r\n decrement();\r\n return;\r\n }\r\n\r\n if (entry.isFile) {\r\n // due to a bug in Chrome's File System API impl - #149735\r\n fileReadSuccess(item.getAsFile(), entry.fullPath);\r\n } else {\r\n readDirectory(entry.createReader());\r\n }\r\n });\r\n\r\n function readDirectory(reader) {\r\n reader.readEntries(function (entries) {\r\n if (entries.length) {\r\n queue += entries.length;\r\n each(entries, function (entry) {\r\n if (entry.isFile) {\r\n var fullPath = entry.fullPath;\r\n entry.file(function (file) {\r\n fileReadSuccess(file, fullPath);\r\n }, readError);\r\n } else if (entry.isDirectory) {\r\n readDirectory(entry.createReader());\r\n }\r\n });\r\n readDirectory(reader);\r\n } else {\r\n decrement();\r\n }\r\n }, readError);\r\n }\r\n\r\n function fileReadSuccess(file, fullPath) {\r\n // relative path should not start with \"/\"\r\n file.relativePath = fullPath.substring(1);\r\n files.push(file);\r\n decrement();\r\n }\r\n\r\n function readError(fileError) {\r\n decrement();\r\n throw fileError;\r\n }\r\n\r\n function decrement() {\r\n if (--queue == 0) {\r\n $.addFiles(files, event);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Generate unique identifier for a file\r\n * @function\r\n * @param {FlowFile} file\r\n * @returns {string}\r\n */\r\n generateUniqueIdentifier: function (file) {\r\n var custom = this.opts.generateUniqueIdentifier;\r\n\r\n if (typeof custom === 'function') {\r\n return custom(file);\r\n } // Some confusion in different versions of Firefox\r\n\r\n\r\n var relativePath = file.relativePath || file.webkitRelativePath || file.fileName || file.name;\r\n return file.size + '-' + relativePath.replace(/[^0-9a-zA-Z_-]/gim, '');\r\n },\r\n\r\n /**\r\n * Upload next chunk from the queue\r\n * @function\r\n * @returns {boolean}\r\n * @private\r\n */\r\n uploadNextChunk: function (preventEvents) {\r\n // In some cases (such as videos) it's really handy to upload the first\r\n // and last chunk of a file quickly; this let's the server check the file's\r\n // metadata and determine if there's even a point in continuing.\r\n var found = false;\r\n\r\n if (this.opts.prioritizeFirstAndLastChunk) {\r\n each(this.files, function (file) {\r\n if (!file.paused && file.chunks.length && file.chunks[0].status() === 'pending') {\r\n file.chunks[0].send();\r\n found = true;\r\n return false;\r\n }\r\n\r\n if (!file.paused && file.chunks.length > 1 && file.chunks[file.chunks.length - 1].status() === 'pending') {\r\n file.chunks[file.chunks.length - 1].send();\r\n found = true;\r\n return false;\r\n }\r\n });\r\n\r\n if (found) {\r\n return found;\r\n }\r\n } // Now, simply look for the next, best thing to upload\r\n\r\n\r\n each(this.files, function (file) {\r\n if (!file.paused) {\r\n each(file.chunks, function (chunk) {\r\n if (chunk.status() === 'pending') {\r\n chunk.send();\r\n found = true;\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n if (found) {\r\n return false;\r\n }\r\n });\r\n\r\n if (found) {\r\n return true;\r\n } // The are no more outstanding chunks to upload, check is everything is done\r\n\r\n\r\n var outstanding = false;\r\n each(this.files, function (file) {\r\n if (!file.isComplete()) {\r\n outstanding = true;\r\n return false;\r\n }\r\n });\r\n\r\n if (!outstanding && !preventEvents) {\r\n // All chunks have been uploaded, complete\r\n async(function () {\r\n this.fire('complete');\r\n }, this);\r\n }\r\n\r\n return false;\r\n },\r\n getQuery: function () {\r\n return this.opts.query;\r\n },\r\n setQuery: function (query) {\r\n this.opts.query = query;\r\n },\r\n\r\n /**\r\n * Assign a browse action to one or more DOM nodes.\r\n * @function\r\n * @param {Element|Array.} domNodes\r\n * @param {boolean} isDirectory Pass in true to allow directories to\r\n * @param {boolean} singleFile prevent multi file upload\r\n * @param {Object} attributes set custom attributes:\r\n * http://www.w3.org/TR/html-markup/input.file.html#input.file-attributes\r\n * eg: accept: 'image/*'\r\n * be selected (Chrome only).\r\n */\r\n assignBrowse: function (domNodes, isDirectory, singleFile, attributes) {\r\n if (domNodes instanceof Element) {\r\n domNodes = [domNodes];\r\n }\r\n\r\n each(domNodes, function (domNode) {\r\n var input;\r\n\r\n if (domNode.tagName === 'INPUT' && domNode.type === 'file') {\r\n input = domNode;\r\n } else {\r\n input = document.createElement('input');\r\n input.setAttribute('type', 'file'); // display:none - not working in opera 12\r\n\r\n extend(input.style, {\r\n visibility: 'hidden',\r\n position: 'absolute',\r\n width: '1px',\r\n height: '1px'\r\n }); // for opera 12 browser, input must be assigned to a document\r\n\r\n domNode.appendChild(input); // https://developer.mozilla.org/en/using_files_from_web_applications)\r\n // event listener is executed two times\r\n // first one - original mouse click event\r\n // second - input.click(), input is inside domNode\r\n\r\n domNode.addEventListener('click', function () {\r\n input.click();\r\n }, false);\r\n }\r\n\r\n if (!this.opts.singleFile && !singleFile) {\r\n input.setAttribute('multiple', 'multiple');\r\n }\r\n\r\n if (isDirectory) {\r\n input.setAttribute('webkitdirectory', 'webkitdirectory');\r\n }\r\n\r\n each(attributes, function (value, key) {\r\n input.setAttribute(key, value);\r\n }); // When new files are added, simply append them to the overall list\r\n\r\n var $ = this;\r\n input.addEventListener('change', function (e) {\r\n if (e.target.value) {\r\n $.addFiles(e.target.files, e);\r\n e.target.value = '';\r\n }\r\n }, false);\r\n }, this);\r\n },\r\n\r\n /**\r\n * Assign one or more DOM nodes as a drop target.\r\n * @function\r\n * @param {Element|Array.} domNodes\r\n */\r\n assignDrop: function (domNodes) {\r\n if (typeof domNodes.length === 'undefined') {\r\n domNodes = [domNodes];\r\n }\r\n\r\n each(domNodes, function (domNode) {\r\n domNode.addEventListener('dragover', this.preventEvent, false);\r\n domNode.addEventListener('dragenter', this.preventEvent, false);\r\n domNode.addEventListener('drop', this.onDrop, false);\r\n }, this);\r\n },\r\n\r\n /**\r\n * Un-assign drop event from DOM nodes\r\n * @function\r\n * @param domNodes\r\n */\r\n unAssignDrop: function (domNodes) {\r\n if (typeof domNodes.length === 'undefined') {\r\n domNodes = [domNodes];\r\n }\r\n\r\n each(domNodes, function (domNode) {\r\n domNode.removeEventListener('dragover', this.preventEvent);\r\n domNode.removeEventListener('dragenter', this.preventEvent);\r\n domNode.removeEventListener('drop', this.onDrop);\r\n }, this);\r\n },\r\n\r\n /**\r\n * Returns a boolean indicating whether or not the instance is currently\r\n * uploading anything.\r\n * @function\r\n * @returns {boolean}\r\n */\r\n isUploading: function () {\r\n var uploading = false;\r\n each(this.files, function (file) {\r\n if (file.isUploading()) {\r\n uploading = true;\r\n return false;\r\n }\r\n });\r\n return uploading;\r\n },\r\n\r\n /**\r\n * should upload next chunk\r\n * @function\r\n * @returns {boolean|number}\r\n */\r\n _shouldUploadNext: function () {\r\n var num = 0;\r\n var should = true;\r\n var simultaneousUploads = this.opts.simultaneousUploads;\r\n each(this.files, function (file) {\r\n each(file.chunks, function (chunk) {\r\n if (chunk.status() === 'uploading') {\r\n num++;\r\n\r\n if (num >= simultaneousUploads) {\r\n should = false;\r\n return false;\r\n }\r\n }\r\n });\r\n }); // if should is true then return uploading chunks's length\r\n\r\n return should && num;\r\n },\r\n\r\n /**\r\n * Start or resume uploading.\r\n * @function\r\n */\r\n upload: function () {\r\n // Make sure we don't start too many uploads at once\r\n var ret = this._shouldUploadNext();\r\n\r\n if (ret === false) {\r\n return;\r\n } // Kick off the queue\r\n\r\n\r\n this.fire('uploadStart');\r\n var started = false;\r\n\r\n for (var num = 1; num <= this.opts.simultaneousUploads - ret; num++) {\r\n started = this.uploadNextChunk(true) || started;\r\n }\r\n\r\n if (!started) {\r\n async(function () {\r\n this.fire('complete');\r\n }, this);\r\n }\r\n },\r\n\r\n /**\r\n * Resume uploading.\r\n * @function\r\n */\r\n resume: function () {\r\n each(this.files, function (file) {\r\n if (!file.isComplete()) {\r\n file.resume();\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Pause uploading.\r\n * @function\r\n */\r\n pause: function () {\r\n each(this.files, function (file) {\r\n file.pause();\r\n });\r\n },\r\n\r\n /**\r\n * Cancel upload of all FlowFile objects and remove them from the list.\r\n * @function\r\n */\r\n cancel: function () {\r\n for (var i = this.files.length - 1; i >= 0; i--) {\r\n this.files[i].cancel();\r\n }\r\n },\r\n\r\n /**\r\n * Returns a number between 0 and 1 indicating the current upload progress\r\n * of all files.\r\n * @function\r\n * @returns {number}\r\n */\r\n progress: function () {\r\n var totalDone = 0;\r\n var totalSize = 0; // Resume all chunks currently being uploaded\r\n\r\n each(this.files, function (file) {\r\n totalDone += file.progress() * file.size;\r\n totalSize += file.size;\r\n });\r\n return totalSize > 0 ? totalDone / totalSize : 0;\r\n },\r\n\r\n /**\r\n * Add a HTML5 File object to the list of files.\r\n * @function\r\n * @param {File} file\r\n * @param {Event} [event] event is optional\r\n */\r\n addFile: function (file, event) {\r\n this.addFiles([file], event);\r\n },\r\n\r\n /**\r\n * Add a HTML5 File object to the list of files.\r\n * @function\r\n * @param {FileList|Array} fileList\r\n * @param {Event} [event] event is optional\r\n */\r\n addFiles: function (fileList, event) {\r\n var files = [];\r\n\r\n if (this.fire('filesAdding', fileList, event) == false) {\r\n return;\r\n }\r\n\r\n each(fileList, function (file) {\r\n // https://github.com/flowjs/flow.js/issues/55\r\n if ((!ie10plus || ie10plus && file.size > 0) && !(file.size % 4096 === 0 && (file.name === '.' || file.fileName === '.'))) {\r\n var uniqueIdentifier = this.generateUniqueIdentifier(file);\r\n\r\n if (this.opts.allowDuplicateUploads || !this.getFromUniqueIdentifier(uniqueIdentifier)) {\r\n var f = new FlowFile(this, file, uniqueIdentifier);\r\n\r\n if (this.fire('fileAdded', f, event)) {\r\n files.push(f);\r\n }\r\n }\r\n }\r\n }, this);\r\n\r\n if (this.fire('filesAdded', files, event)) {\r\n each(files, function (file) {\r\n if (this.opts.singleFile && this.files.length > 0) {\r\n this.removeFile(this.files[0]);\r\n }\r\n\r\n this.files.push(file);\r\n }, this);\r\n this.fire('filesSubmitted', files, event);\r\n }\r\n },\r\n\r\n /**\r\n * Cancel upload of a specific FlowFile object from the list.\r\n * @function\r\n * @param {FlowFile} file\r\n */\r\n removeFile: function (file) {\r\n for (var i = this.files.length - 1; i >= 0; i--) {\r\n if (this.files[i] === file) {\r\n this.files.splice(i, 1);\r\n file.abort();\r\n this.fire('fileRemoved', file);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Look up a FlowFile object by its unique identifier.\r\n * @function\r\n * @param {string} uniqueIdentifier\r\n * @returns {boolean|FlowFile} false if file was not found\r\n */\r\n getFromUniqueIdentifier: function (uniqueIdentifier) {\r\n var ret = false;\r\n each(this.files, function (file) {\r\n if (file.uniqueIdentifier === uniqueIdentifier) {\r\n ret = file;\r\n }\r\n });\r\n return ret;\r\n },\r\n\r\n /**\r\n * Returns the total size of all files in bytes.\r\n * @function\r\n * @returns {number}\r\n */\r\n getSize: function () {\r\n var totalSize = 0;\r\n each(this.files, function (file) {\r\n totalSize += file.size;\r\n });\r\n return totalSize;\r\n },\r\n\r\n /**\r\n * Returns the total size uploaded of all files in bytes.\r\n * @function\r\n * @returns {number}\r\n */\r\n sizeUploaded: function () {\r\n var size = 0;\r\n each(this.files, function (file) {\r\n size += file.sizeUploaded();\r\n });\r\n return size;\r\n },\r\n\r\n /**\r\n * Returns remaining time to upload all files in seconds. Accuracy is based on average speed.\r\n * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY`\r\n * @function\r\n * @returns {number}\r\n */\r\n timeRemaining: function () {\r\n var sizeDelta = 0;\r\n var averageSpeed = 0;\r\n each(this.files, function (file) {\r\n if (!file.paused && !file.error) {\r\n sizeDelta += file.size - file.sizeUploaded();\r\n averageSpeed += file.averageSpeed;\r\n }\r\n });\r\n\r\n if (sizeDelta && !averageSpeed) {\r\n return Number.POSITIVE_INFINITY;\r\n }\r\n\r\n if (!sizeDelta && !averageSpeed) {\r\n return 0;\r\n }\r\n\r\n return Math.floor(sizeDelta / averageSpeed);\r\n }\r\n};\r\n/**\r\n * FlowFile class\r\n * @name FlowFile\r\n * @param {Flow} flowObj\r\n * @param {File} file\r\n * @param {string} uniqueIdentifier\r\n * @constructor\r\n */\r\n\r\nfunction FlowFile(flowObj, file, uniqueIdentifier) {\r\n /**\r\n * Reference to parent Flow instance\r\n * @type {Flow}\r\n */\r\n this.flowObj = flowObj;\r\n /**\r\n * Used to store the bytes read\r\n * @type {Blob|string}\r\n */\r\n\r\n this.bytes = null;\r\n /**\r\n * Reference to file\r\n * @type {File}\r\n */\r\n\r\n this.file = file;\r\n /**\r\n * File name. Some confusion in different versions of Firefox\r\n * @type {string}\r\n */\r\n\r\n this.name = file.fileName || file.name;\r\n /**\r\n * File size\r\n * @type {number}\r\n */\r\n\r\n this.size = file.size;\r\n /**\r\n * Relative file path\r\n * @type {string}\r\n */\r\n\r\n this.relativePath = file.relativePath || file.webkitRelativePath || this.name;\r\n /**\r\n * File unique identifier\r\n * @type {string}\r\n */\r\n\r\n this.uniqueIdentifier = uniqueIdentifier === undefined ? flowObj.generateUniqueIdentifier(file) : uniqueIdentifier;\r\n /**\r\n * Size of Each Chunk\r\n * @type {number}\r\n */\r\n\r\n this.chunkSize = 0;\r\n /**\r\n * List of chunks\r\n * @type {Array.}\r\n */\r\n\r\n this.chunks = [];\r\n /**\r\n * Indicated if file is paused\r\n * @type {boolean}\r\n */\r\n\r\n this.paused = false;\r\n /**\r\n * Indicated if file has encountered an error\r\n * @type {boolean}\r\n */\r\n\r\n this.error = false;\r\n /**\r\n * Average upload speed\r\n * @type {number}\r\n */\r\n\r\n this.averageSpeed = 0;\r\n /**\r\n * Current upload speed\r\n * @type {number}\r\n */\r\n\r\n this.currentSpeed = 0;\r\n /**\r\n * Date then progress was called last time\r\n * @type {number}\r\n * @private\r\n */\r\n\r\n this._lastProgressCallback = Date.now();\r\n /**\r\n * Previously uploaded file size\r\n * @type {number}\r\n * @private\r\n */\r\n\r\n this._prevUploadedSize = 0;\r\n /**\r\n * Holds previous progress\r\n * @type {number}\r\n * @private\r\n */\r\n\r\n this._prevProgress = 0;\r\n this.bootstrap();\r\n}\r\n\r\nFlowFile.prototype = {\r\n /**\r\n * Update speed parameters\r\n * @link http://stackoverflow.com/questions/2779600/how-to-estimate-download-time-remaining-accurately\r\n * @function\r\n */\r\n measureSpeed: function () {\r\n var timeSpan = Date.now() - this._lastProgressCallback;\r\n\r\n if (!timeSpan) {\r\n return;\r\n }\r\n\r\n var smoothingFactor = this.flowObj.opts.speedSmoothingFactor;\r\n var uploaded = this.sizeUploaded(); // Prevent negative upload speed after file upload resume\r\n\r\n this.currentSpeed = Math.max((uploaded - this._prevUploadedSize) / timeSpan * 1000, 0);\r\n this.averageSpeed = smoothingFactor * this.currentSpeed + (1 - smoothingFactor) * this.averageSpeed;\r\n this._prevUploadedSize = uploaded;\r\n },\r\n\r\n /**\r\n * For internal usage only.\r\n * Callback when something happens within the chunk.\r\n * @function\r\n * @param {FlowChunk} chunk\r\n * @param {string} event can be 'progress', 'success', 'error' or 'retry'\r\n * @param {string} [message]\r\n */\r\n chunkEvent: function (chunk, event, message) {\r\n switch (event) {\r\n case 'progress':\r\n if (Date.now() - this._lastProgressCallback < this.flowObj.opts.progressCallbacksInterval) {\r\n break;\r\n }\r\n\r\n this.measureSpeed();\r\n this.flowObj.fire('fileProgress', this, chunk);\r\n this.flowObj.fire('progress');\r\n this._lastProgressCallback = Date.now();\r\n break;\r\n\r\n case 'error':\r\n this.error = true;\r\n this.abort(true);\r\n this.flowObj.fire('fileError', this, message, chunk);\r\n this.flowObj.fire('error', message, this, chunk);\r\n break;\r\n\r\n case 'success':\r\n if (this.error) {\r\n return;\r\n }\r\n\r\n this.measureSpeed();\r\n this.flowObj.fire('fileProgress', this, chunk);\r\n this.flowObj.fire('progress');\r\n this._lastProgressCallback = Date.now();\r\n\r\n if (this.isComplete()) {\r\n this.currentSpeed = 0;\r\n this.averageSpeed = 0;\r\n this.flowObj.fire('fileSuccess', this, message, chunk);\r\n }\r\n\r\n break;\r\n\r\n case 'retry':\r\n this.flowObj.fire('fileRetry', this, chunk);\r\n break;\r\n }\r\n },\r\n\r\n /**\r\n * Pause file upload\r\n * @function\r\n */\r\n pause: function () {\r\n this.paused = true;\r\n this.abort();\r\n },\r\n\r\n /**\r\n * Resume file upload\r\n * @function\r\n */\r\n resume: function () {\r\n this.paused = false;\r\n this.flowObj.upload();\r\n },\r\n\r\n /**\r\n * Abort current upload\r\n * @function\r\n */\r\n abort: function (reset) {\r\n this.currentSpeed = 0;\r\n this.averageSpeed = 0;\r\n var chunks = this.chunks;\r\n\r\n if (reset) {\r\n this.chunks = [];\r\n }\r\n\r\n each(chunks, function (c) {\r\n if (c.status() === 'uploading') {\r\n c.abort();\r\n this.flowObj.uploadNextChunk();\r\n }\r\n }, this);\r\n },\r\n\r\n /**\r\n * Cancel current upload and remove from a list\r\n * @function\r\n */\r\n cancel: function () {\r\n this.flowObj.removeFile(this);\r\n },\r\n\r\n /**\r\n * Retry aborted file upload\r\n * @function\r\n */\r\n retry: function () {\r\n this.bootstrap();\r\n this.flowObj.upload();\r\n },\r\n\r\n /**\r\n * Clear current chunks and slice file again\r\n * @function\r\n */\r\n bootstrap: function () {\r\n if (typeof this.flowObj.opts.initFileFn === 'function') {\r\n this.flowObj.opts.initFileFn(this);\r\n }\r\n\r\n this.abort(true);\r\n this.error = false; // Rebuild stack of chunks from file\r\n\r\n this._prevProgress = 0;\r\n var round = this.flowObj.opts.forceChunkSize ? Math.ceil : Math.floor;\r\n this.chunkSize = evalOpts(this.flowObj.opts.chunkSize, this);\r\n var chunks = Math.max(round(this.size / this.chunkSize), 1);\r\n\r\n for (var offset = 0; offset < chunks; offset++) {\r\n this.chunks.push(new FlowChunk(this.flowObj, this, offset));\r\n }\r\n },\r\n\r\n /**\r\n * Get current upload progress status\r\n * @function\r\n * @returns {number} from 0 to 1\r\n */\r\n progress: function () {\r\n if (this.error) {\r\n return 1;\r\n }\r\n\r\n if (this.chunks.length === 1) {\r\n this._prevProgress = Math.max(this._prevProgress, this.chunks[0].progress());\r\n return this._prevProgress;\r\n } // Sum up progress across everything\r\n\r\n\r\n var bytesLoaded = 0;\r\n each(this.chunks, function (c) {\r\n // get chunk progress relative to entire file\r\n bytesLoaded += c.progress() * (c.endByte - c.startByte);\r\n });\r\n var percent = bytesLoaded / this.size; // We don't want to lose percentages when an upload is paused\r\n\r\n this._prevProgress = Math.max(this._prevProgress, percent > 0.9999 ? 1 : percent);\r\n return this._prevProgress;\r\n },\r\n\r\n /**\r\n * Indicates if file is being uploaded at the moment\r\n * @function\r\n * @returns {boolean}\r\n */\r\n isUploading: function () {\r\n var uploading = false;\r\n each(this.chunks, function (chunk) {\r\n if (chunk.status() === 'uploading') {\r\n uploading = true;\r\n return false;\r\n }\r\n });\r\n return uploading;\r\n },\r\n\r\n /**\r\n * Indicates if file is has finished uploading and received a response\r\n * @function\r\n * @returns {boolean}\r\n */\r\n isComplete: function () {\r\n var outstanding = false;\r\n each(this.chunks, function (chunk) {\r\n var status = chunk.status();\r\n\r\n if (status === 'pending' || status === 'uploading' || status === 'reading' || chunk.preprocessState === 1 || chunk.readState === 1) {\r\n outstanding = true;\r\n return false;\r\n }\r\n });\r\n return !outstanding;\r\n },\r\n\r\n /**\r\n * Count total size uploaded\r\n * @function\r\n * @returns {number}\r\n */\r\n sizeUploaded: function () {\r\n var size = 0;\r\n each(this.chunks, function (chunk) {\r\n size += chunk.sizeUploaded();\r\n });\r\n return size;\r\n },\r\n\r\n /**\r\n * Returns remaining time to finish upload file in seconds. Accuracy is based on average speed.\r\n * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY`\r\n * @function\r\n * @returns {number}\r\n */\r\n timeRemaining: function () {\r\n if (this.paused || this.error) {\r\n return 0;\r\n }\r\n\r\n var delta = this.size - this.sizeUploaded();\r\n\r\n if (delta && !this.averageSpeed) {\r\n return Number.POSITIVE_INFINITY;\r\n }\r\n\r\n if (!delta && !this.averageSpeed) {\r\n return 0;\r\n }\r\n\r\n return Math.floor(delta / this.averageSpeed);\r\n },\r\n\r\n /**\r\n * Get file type\r\n * @function\r\n * @returns {string}\r\n */\r\n getType: function () {\r\n return this.file.type && this.file.type.split('/')[1];\r\n },\r\n\r\n /**\r\n * Get file extension\r\n * @function\r\n * @returns {string}\r\n */\r\n getExtension: function () {\r\n return this.name.substr((~-this.name.lastIndexOf('.') >>> 0) + 2).toLowerCase();\r\n }\r\n};\r\n/**\r\n * Default read function using the webAPI\r\n *\r\n * @function webAPIFileRead(fileObj, startByte, endByte, fileType, chunk)\r\n *\r\n */\r\n\r\nfunction webAPIFileRead(fileObj, startByte, endByte, fileType, chunk) {\r\n var function_name = 'slice';\r\n if (fileObj.file.slice) function_name = 'slice';else if (fileObj.file.mozSlice) function_name = 'mozSlice';else if (fileObj.file.webkitSlice) function_name = 'webkitSlice';\r\n chunk.readFinished(fileObj.file[function_name](startByte, endByte, fileType));\r\n}\r\n/**\r\n * Class for storing a single chunk\r\n * @name FlowChunk\r\n * @param {Flow} flowObj\r\n * @param {FlowFile} fileObj\r\n * @param {number} offset\r\n * @constructor\r\n */\r\n\r\n\r\nfunction FlowChunk(flowObj, fileObj, offset) {\r\n /**\r\n * Reference to parent flow object\r\n * @type {Flow}\r\n */\r\n this.flowObj = flowObj;\r\n /**\r\n * Reference to parent FlowFile object\r\n * @type {FlowFile}\r\n */\r\n\r\n this.fileObj = fileObj;\r\n /**\r\n * File offset\r\n * @type {number}\r\n */\r\n\r\n this.offset = offset;\r\n /**\r\n * Indicates if chunk existence was checked on the server\r\n * @type {boolean}\r\n */\r\n\r\n this.tested = false;\r\n /**\r\n * Number of retries performed\r\n * @type {number}\r\n */\r\n\r\n this.retries = 0;\r\n /**\r\n * Pending retry\r\n * @type {boolean}\r\n */\r\n\r\n this.pendingRetry = false;\r\n /**\r\n * Preprocess state\r\n * @type {number} 0 = unprocessed, 1 = processing, 2 = finished\r\n */\r\n\r\n this.preprocessState = 0;\r\n /**\r\n * Read state\r\n * @type {number} 0 = not read, 1 = reading, 2 = finished\r\n */\r\n\r\n this.readState = 0;\r\n /**\r\n * Bytes transferred from total request size\r\n * @type {number}\r\n */\r\n\r\n this.loaded = 0;\r\n /**\r\n * Total request size\r\n * @type {number}\r\n */\r\n\r\n this.total = 0;\r\n /**\r\n * Size of a chunk\r\n * @type {number}\r\n */\r\n\r\n this.chunkSize = this.fileObj.chunkSize;\r\n /**\r\n * Chunk start byte in a file\r\n * @type {number}\r\n */\r\n\r\n this.startByte = this.offset * this.chunkSize;\r\n /**\r\n * A specific filename for this chunk which otherwise default to the main name\r\n * @type {string}\r\n */\r\n\r\n this.filename = null;\r\n /**\r\n * Compute the endbyte in a file\r\n *\r\n */\r\n\r\n this.computeEndByte = function () {\r\n var endByte = Math.min(this.fileObj.size, (this.offset + 1) * this.chunkSize);\r\n\r\n if (this.fileObj.size - endByte < this.chunkSize && !this.flowObj.opts.forceChunkSize) {\r\n // The last chunk will be bigger than the chunk size,\r\n // but less than 2 * this.chunkSize\r\n endByte = this.fileObj.size;\r\n }\r\n\r\n return endByte;\r\n };\r\n /**\r\n * Chunk end byte in a file\r\n * @type {number}\r\n */\r\n\r\n\r\n this.endByte = this.computeEndByte();\r\n /**\r\n * XMLHttpRequest\r\n * @type {XMLHttpRequest}\r\n */\r\n\r\n this.xhr = null;\r\n var $ = this;\r\n /**\r\n * Send chunk event\r\n * @param event\r\n * @param {...} args arguments of a callback\r\n */\r\n\r\n this.event = function (event, args) {\r\n args = Array.prototype.slice.call(arguments);\r\n args.unshift($);\r\n $.fileObj.chunkEvent.apply($.fileObj, args);\r\n };\r\n /**\r\n * Catch progress event\r\n * @param {ProgressEvent} event\r\n */\r\n\r\n\r\n this.progressHandler = function (event) {\r\n if (event.lengthComputable) {\r\n $.loaded = event.loaded;\r\n $.total = event.total;\r\n }\r\n\r\n $.event('progress', event);\r\n };\r\n /**\r\n * Catch test event\r\n * @param {Event} event\r\n */\r\n\r\n\r\n this.testHandler = function (event) {\r\n var status = $.status(true);\r\n\r\n if (status === 'error') {\r\n $.event(status, $.message());\r\n $.flowObj.uploadNextChunk();\r\n } else if (status === 'success') {\r\n $.tested = true;\r\n $.event(status, $.message());\r\n $.flowObj.uploadNextChunk();\r\n } else if (!$.fileObj.paused) {\r\n // Error might be caused by file pause method\r\n // Chunks does not exist on the server side\r\n $.tested = true;\r\n $.send();\r\n }\r\n };\r\n /**\r\n * Upload has stopped\r\n * @param {Event} event\r\n */\r\n\r\n\r\n this.doneHandler = function (event) {\r\n var status = $.status();\r\n\r\n if (status === 'success' || status === 'error') {\r\n delete this.data;\r\n $.event(status, $.message());\r\n $.flowObj.uploadNextChunk();\r\n } else if (!$.fileObj.paused) {\r\n $.event('retry', $.message());\r\n $.pendingRetry = true;\r\n $.abort();\r\n $.retries++;\r\n var retryInterval = $.flowObj.opts.chunkRetryInterval;\r\n\r\n if (retryInterval !== null) {\r\n setTimeout(function () {\r\n $.send();\r\n }, retryInterval);\r\n } else {\r\n $.send();\r\n }\r\n }\r\n };\r\n}\r\n\r\nFlowChunk.prototype = {\r\n /**\r\n * Get params for a request\r\n * @function\r\n */\r\n getParams: function () {\r\n return {\r\n flowChunkNumber: this.offset + 1,\r\n flowChunkSize: this.chunkSize,\r\n flowCurrentChunkSize: this.endByte - this.startByte,\r\n flowTotalSize: this.fileObj.size,\r\n flowIdentifier: this.fileObj.uniqueIdentifier,\r\n flowFilename: this.fileObj.name,\r\n flowRelativePath: this.fileObj.relativePath,\r\n flowTotalChunks: this.fileObj.chunks.length\r\n };\r\n },\r\n\r\n /**\r\n * Get target option with query params\r\n * @function\r\n * @param params\r\n * @returns {string}\r\n */\r\n getTarget: function (target, params) {\r\n if (params.length == 0) {\r\n return target;\r\n }\r\n\r\n if (target.indexOf('?') < 0) {\r\n target += '?';\r\n } else {\r\n target += '&';\r\n }\r\n\r\n return target + params.join('&');\r\n },\r\n\r\n /**\r\n * Makes a GET request without any data to see if the chunk has already\r\n * been uploaded in a previous session\r\n * @function\r\n */\r\n test: function () {\r\n // Set up request and listen for event\r\n this.xhr = new XMLHttpRequest();\r\n this.xhr.addEventListener('load', this.testHandler, false);\r\n this.xhr.addEventListener('error', this.testHandler, false);\r\n var testMethod = evalOpts(this.flowObj.opts.testMethod, this.fileObj, this);\r\n var data = this.prepareXhrRequest(testMethod, true);\r\n this.xhr.send(data);\r\n },\r\n\r\n /**\r\n * Finish preprocess state\r\n * @function\r\n */\r\n preprocessFinished: function () {\r\n // Re-compute the endByte after the preprocess function to allow an\r\n // implementer of preprocess to set the fileObj size\r\n this.endByte = this.computeEndByte();\r\n this.preprocessState = 2;\r\n this.send();\r\n },\r\n\r\n /**\r\n * Finish read state\r\n * @function\r\n */\r\n readFinished: function (bytes) {\r\n this.readState = 2;\r\n this.bytes = bytes;\r\n this.send();\r\n },\r\n\r\n /**\r\n * Uploads the actual data in a POST call\r\n * @function\r\n */\r\n send: function () {\r\n var preprocess = this.flowObj.opts.preprocess;\r\n var read = this.flowObj.opts.readFileFn;\r\n\r\n if (typeof preprocess === 'function') {\r\n switch (this.preprocessState) {\r\n case 0:\r\n this.preprocessState = 1;\r\n preprocess(this);\r\n return;\r\n\r\n case 1:\r\n return;\r\n }\r\n }\r\n\r\n switch (this.readState) {\r\n case 0:\r\n this.readState = 1;\r\n read(this.fileObj, this.startByte, this.endByte, this.fileObj.file.type, this);\r\n return;\r\n\r\n case 1:\r\n return;\r\n }\r\n\r\n if (this.flowObj.opts.testChunks && !this.tested) {\r\n this.test();\r\n return;\r\n }\r\n\r\n this.loaded = 0;\r\n this.total = 0;\r\n this.pendingRetry = false; // Set up request and listen for event\r\n\r\n this.xhr = new XMLHttpRequest();\r\n this.xhr.upload.addEventListener('progress', this.progressHandler, false);\r\n this.xhr.addEventListener('load', this.doneHandler, false);\r\n this.xhr.addEventListener('error', this.doneHandler, false);\r\n var uploadMethod = evalOpts(this.flowObj.opts.uploadMethod, this.fileObj, this);\r\n var data = this.prepareXhrRequest(uploadMethod, false, this.flowObj.opts.method, this.bytes);\r\n var changeRawDataBeforeSend = this.flowObj.opts.changeRawDataBeforeSend;\r\n\r\n if (typeof changeRawDataBeforeSend === 'function') {\r\n data = changeRawDataBeforeSend(this, data);\r\n }\r\n\r\n this.xhr.send(data);\r\n },\r\n\r\n /**\r\n * Abort current xhr request\r\n * @function\r\n */\r\n abort: function () {\r\n // Abort and reset\r\n var xhr = this.xhr;\r\n this.xhr = null;\r\n\r\n if (xhr) {\r\n xhr.abort();\r\n }\r\n },\r\n\r\n /**\r\n * Retrieve current chunk upload status\r\n * @function\r\n * @returns {string} 'pending', 'uploading', 'success', 'error'\r\n */\r\n status: function (isTest) {\r\n if (this.readState === 1) {\r\n return 'reading';\r\n } else if (this.pendingRetry || this.preprocessState === 1) {\r\n // if pending retry then that's effectively the same as actively uploading,\r\n // there might just be a slight delay before the retry starts\r\n return 'uploading';\r\n } else if (!this.xhr) {\r\n return 'pending';\r\n } else if (this.xhr.readyState < 4) {\r\n // Status is really 'OPENED', 'HEADERS_RECEIVED'\r\n // or 'LOADING' - meaning that stuff is happening\r\n return 'uploading';\r\n } else {\r\n if (this.flowObj.opts.successStatuses.indexOf(this.xhr.status) > -1) {\r\n // HTTP 200, perfect\r\n // HTTP 202 Accepted - The request has been accepted for processing, but the processing has not been completed.\r\n return 'success';\r\n } else if (this.flowObj.opts.permanentErrors.indexOf(this.xhr.status) > -1 || !isTest && this.retries >= this.flowObj.opts.maxChunkRetries) {\r\n // HTTP 413/415/500/501, permanent error\r\n return 'error';\r\n } else {\r\n // this should never happen, but we'll reset and queue a retry\r\n // a likely case for this would be 503 service unavailable\r\n this.abort();\r\n return 'pending';\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Get response from xhr request\r\n * @function\r\n * @returns {String}\r\n */\r\n message: function () {\r\n return this.xhr ? this.xhr.responseText : '';\r\n },\r\n\r\n /**\r\n * Get upload progress\r\n * @function\r\n * @returns {number}\r\n */\r\n progress: function () {\r\n if (this.pendingRetry) {\r\n return 0;\r\n }\r\n\r\n var s = this.status();\r\n\r\n if (s === 'success' || s === 'error') {\r\n return 1;\r\n } else if (s === 'pending') {\r\n return 0;\r\n } else {\r\n return this.total > 0 ? this.loaded / this.total : 0;\r\n }\r\n },\r\n\r\n /**\r\n * Count total size uploaded\r\n * @function\r\n * @returns {number}\r\n */\r\n sizeUploaded: function () {\r\n var size = this.endByte - this.startByte; // can't return only chunk.loaded value, because it is bigger than chunk size\r\n\r\n if (this.status() !== 'success') {\r\n size = this.progress() * size;\r\n }\r\n\r\n return size;\r\n },\r\n\r\n /**\r\n * Prepare Xhr request. Set query, headers and data\r\n * @param {string} method GET or POST\r\n * @param {bool} isTest is this a test request\r\n * @param {string} [paramsMethod] octet or form\r\n * @param {Blob} [blob] to send\r\n * @returns {FormData|Blob|Null} data to send\r\n */\r\n prepareXhrRequest: function (method, isTest, paramsMethod, blob) {\r\n // Add data from the query options\r\n var query = evalOpts(this.flowObj.opts.query, this.fileObj, this, isTest);\r\n query = extend(query || {}, this.getParams());\r\n var target = evalOpts(this.flowObj.opts.target, this.fileObj, this, isTest);\r\n var data = null;\r\n\r\n if (method === 'GET' || paramsMethod === 'octet') {\r\n // Add data from the query options\r\n var params = [];\r\n each(query, function (v, k) {\r\n params.push([encodeURIComponent(k), encodeURIComponent(v)].join('='));\r\n });\r\n target = this.getTarget(target, params);\r\n data = blob || null;\r\n } else {\r\n // Add data from the query options\r\n data = new FormData();\r\n each(query, function (v, k) {\r\n data.append(k, v);\r\n });\r\n\r\n if (typeof blob !== 'undefined') {\r\n data.append(this.flowObj.opts.fileParameterName, blob, this.filename || this.fileObj.file.name);\r\n }\r\n }\r\n\r\n this.xhr.open(method, target, true);\r\n this.xhr.withCredentials = this.flowObj.opts.withCredentials; // Add data from header options\r\n\r\n each(evalOpts(this.flowObj.opts.headers, this.fileObj, this, isTest), function (v, k) {\r\n this.xhr.setRequestHeader(k, v);\r\n }, this);\r\n return data;\r\n }\r\n};\r\n/**\r\n * Remove value from array\r\n * @param array\r\n * @param value\r\n */\r\n\r\nfunction arrayRemove(array, value) {\r\n var index = array.indexOf(value);\r\n\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n }\r\n}\r\n/**\r\n * If option is a function, evaluate it with given params\r\n * @param {*} data\r\n * @param {...} args arguments of a callback\r\n * @returns {*}\r\n */\r\n\r\n\r\nfunction evalOpts(data, args) {\r\n if (typeof data === 'function') {\r\n // `arguments` is an object, not array, in FF, so:\r\n args = Array.prototype.slice.call(arguments);\r\n data = data.apply(null, args.slice(1));\r\n }\r\n\r\n return data;\r\n}\r\n\r\nFlow.evalOpts = evalOpts;\r\n/**\r\n * Execute function asynchronously\r\n * @param fn\r\n * @param context\r\n */\r\n\r\nfunction async(fn, context) {\r\n setTimeout(fn.bind(context), 0);\r\n}\r\n/**\r\n * Extends the destination object `dst` by copying all of the properties from\r\n * the `src` object(s) to `dst`. You can specify multiple `src` objects.\r\n * @function\r\n * @param {Object} dst Destination object.\r\n * @param {...Object} src Source object(s).\r\n * @returns {Object} Reference to `dst`.\r\n */\r\n\r\n\r\nfunction extend(dst, src) {\r\n each(arguments, function (obj) {\r\n if (obj !== dst) {\r\n each(obj, function (value, key) {\r\n dst[key] = value;\r\n });\r\n }\r\n });\r\n return dst;\r\n}\r\n\r\nFlow.extend = extend;\r\n/**\r\n * Iterate each element of an object\r\n * @function\r\n * @param {Array|Object} obj object or an array to iterate\r\n * @param {Function} callback first argument is a value and second is a key.\r\n * @param {Object=} context Object to become context (`this`) for the iterator function.\r\n */\r\n\r\nfunction each(obj, callback, context) {\r\n if (!obj) {\r\n return;\r\n }\r\n\r\n var key; // Is Array?\r\n // Array.isArray won't work, not only arrays can be iterated by index https://github.com/flowjs/ng-flow/issues/236#\r\n\r\n if (typeof obj.length !== 'undefined') {\r\n for (key = 0; key < obj.length; key++) {\r\n if (callback.call(context, obj[key], key) === false) {\r\n return;\r\n }\r\n }\r\n } else {\r\n for (key in obj) {\r\n if (obj.hasOwnProperty(key) && callback.call(context, obj[key], key) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n\r\nFlow.each = each;\r\n/**\r\n * FlowFile constructor\r\n * @type {FlowFile}\r\n */\r\n\r\nFlow.FlowFile = FlowFile;\r\n/**\r\n * FlowFile constructor\r\n * @type {FlowChunk}\r\n */\r\n\r\nFlow.FlowChunk = FlowChunk;\r\n/**\r\n * Library version\r\n * @type {string}\r\n */\r\n\r\nFlow.version = '<%= version %>';\r\nvar flow = Flow;\r\n\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\nvar script = {};\r\n\r\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\r\n\r\n/* script */\r\nconst __vue_script__ = script;\r\n/* template */\r\n\r\nvar __vue_render__ = function () {\r\n var _vm = this;\r\n\r\n var _h = _vm.$createElement;\r\n\r\n var _c = _vm._self._c || _h;\r\n\r\n return _vm._m(0);\r\n};\r\n\r\nvar __vue_staticRenderFns__ = [function () {\r\n var _vm = this;\r\n\r\n var _h = _vm.$createElement;\r\n\r\n var _c = _vm._self._c || _h;\r\n\r\n return _c('table', {\r\n staticClass: \"flow-list\"\r\n }, [_c('colgroup', [_c('col', {\r\n attrs: {\r\n \"width\": \"\"\r\n }\r\n }), _vm._v(\" \"), _c('col', {\r\n attrs: {\r\n \"width\": \"250px\"\r\n }\r\n }), _vm._v(\" \"), _c('col', {\r\n attrs: {\r\n \"width\": \"100px\"\r\n }\r\n }), _vm._v(\" \"), _c('col', {\r\n attrs: {\r\n \"width\": \"80px\"\r\n }\r\n })]), _vm._v(\" \"), _c('tr', [_c('th', [_vm._v(\"Status\")]), _vm._v(\" \"), _c('th', [_vm._v(\"Name\")]), _vm._v(\" \"), _c('th', [_vm._v(\"Size\")]), _vm._v(\" \"), _c('th', [_vm._v(\"Progress\")]), _vm._v(\" \"), _c('th', [_vm._v(\"Actions\")])])]);\r\n}];\r\n/* style */\r\n\r\nconst __vue_inject_styles__ = undefined;\r\n/* scoped */\r\n\r\nconst __vue_scope_id__ = undefined;\r\n/* module identifier */\r\n\r\nconst __vue_module_identifier__ = undefined;\r\n/* functional template */\r\n\r\nconst __vue_is_functional_template__ = false;\r\n/* style inject */\r\n\r\n/* style inject SSR */\r\n\r\n/* style inject shadow dom */\r\n\r\nconst __vue_component__ = /*#__PURE__*/normalizeComponent({\r\n render: __vue_render__,\r\n staticRenderFns: __vue_staticRenderFns__\r\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\r\n\r\nvar img$4 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAYAAACJxx+AAAAAGklEQVQYV2Pwarf5D8NAwADCyGIMowqIUwAAnJO2ldo7HlkAAAAASUVORK5CYII=\";\r\n\r\nvar pause = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n 'default': img$4\r\n});\r\n\r\nvar img$5 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAKCAYAAACJxx+AAAAARUlEQVQYlWPward5AMQODLgAUPI/FC8AYgF8CkD4AxAH4FMAwweAWAGfAphpDfgUgPAEXAouALEBLkcW4HLkBlzexBtQAGO/YbROsq3TAAAAAElFTkSuQmCC\";\r\n\r\nvar resume = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n 'default': img$5\r\n});\r\n\r\nvar img$6 = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sEDw4oLHzVH5kAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAWklEQVQY042QUQrAMAhDozfrX8/UffdM3Vd3tOxnLWFzYEAQH6gJSGKORpKIajGboxGPSu0G0XUem7lCBdqX2s1IfoBqLfK/s++ZIymPfgrNRI9HBtPxIBv4Da5baG9ObScpAAAAAElFTkSuQmCC\";\r\n\r\nvar cancel = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n 'default': img$6\r\n});\r\n\r\nvar require$$0$1 = getCjsExportFromNamespace(pause);\r\n\r\nvar require$$1$1 = getCjsExportFromNamespace(resume);\r\n\r\nvar require$$2$1 = getCjsExportFromNamespace(cancel);\r\n\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\n//\r\nvar script$1 = {\r\n props: {\r\n file: Object\r\n },\r\n\r\n data() {\r\n return {\r\n icons: {\r\n resume: null,\r\n cancel: null,\r\n pause: null\r\n },\r\n images: ({} = {\r\n doc: ['docx', 'docm', 'doc', 'dotx', 'dotm', 'dot', 'rtf'],\r\n excel: ['xlsx', 'xlsm', 'xlsb', 'xls', 'csv', 'xltx'],\r\n ppt: ['pptx', 'pptm', 'ppt', 'potx', 'potm', 'pot', 'ppsx', 'ppsm', 'pps'],\r\n img: ['png', 'jpg', 'jpeg', 'gif'],\r\n pdf: ['pdf'],\r\n txt: ['txt', 'log', 'xml'],\r\n zip: ['zip', '7z', 'gz']\r\n })\r\n };\r\n },\r\n\r\n created() {\r\n this.icons.pause = require$$0$1;\r\n this.icons.resume = require$$1$1;\r\n this.icons.cancel = require$$2$1;\r\n },\r\n\r\n methods: {\r\n getExtensions(filename) {\r\n return filename.split('.').pop();\r\n },\r\n\r\n imageUrl(file) {\r\n const ext = this.getExtensions(file.name);\r\n var aa = 'default';\r\n\r\n if (ext) {\r\n var key = Object.keys(this.images).find(key => {\r\n var supports = this.images[key];\r\n return supports.includes(ext === null || ext === void 0 ? void 0 : ext.toLowerCase());\r\n });\r\n\r\n if (key) {\r\n aa = key;\r\n }\r\n }\r\n\r\n return `/cm/gres/v1/img/type_${aa}.png`;\r\n },\r\n\r\n getSize(size) {\r\n return readablizeBytes(size);\r\n },\r\n\r\n downlaod() {\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(this.file.blob, this.file.name);\r\n } else {\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(this.file.blob);\r\n link.download = `${this.file.name}`;\r\n link.click();\r\n }\r\n },\r\n\r\n readablizeBytes(bytes) {\r\n var s = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'];\r\n var e = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + s[e];\r\n }\r\n\r\n }\r\n};\r\n\r\n/* script */\r\nconst __vue_script__$1 = script$1;\r\n/* template */\r\n\r\nvar __vue_render__$1 = function () {\r\n var _vm = this;\r\n\r\n var _h = _vm.$createElement;\r\n\r\n var _c = _vm._self._c || _h;\r\n\r\n return _c('div', [_c('div', {\r\n staticClass: \"con-left\"\r\n }, [_c('div', {\r\n staticClass: \"image attach-file\"\r\n }, [_c('img', {\r\n attrs: {\r\n \"src\": _vm.imageUrl(_vm.file)\r\n }\r\n })])]), _vm._v(\" \"), _c('div', {\r\n staticClass: \"con-right\"\r\n }, [_c('h6', {\r\n staticClass: \"file-name\"\r\n }, [_vm._v(_vm._s(_vm.file.name))]), _vm._v(\" \"), _c('p', {\r\n staticClass: \"file-size\"\r\n }, [_vm._v(\" \" + _vm._s(_vm.readablizeBytes(_vm.file.size)))])]), _vm._v(\" \"), _c('div', {\r\n staticClass: \"con-right m-l-l\"\r\n }, [_c('a', {\r\n on: {\r\n \"click\": function ($event) {\r\n return _vm.$emit('delete', _vm.file);\r\n }\r\n }\r\n }, [_c('i', {\r\n staticClass: \"icon-close\"\r\n })])])]);\r\n};\r\n\r\nvar __vue_staticRenderFns__$1 = [];\r\n/* style */\r\n\r\nconst __vue_inject_styles__$1 = undefined;\r\n/* scoped */\r\n\r\nconst __vue_scope_id__$1 = undefined;\r\n/* module identifier */\r\n\r\nconst __vue_module_identifier__$1 = undefined;\r\n/* functional template */\r\n\r\nconst __vue_is_functional_template__$1 = false;\r\n/* style inject */\r\n\r\n/* style inject SSR */\r\n\r\n/* style inject shadow dom */\r\n\r\nconst __vue_component__$1 = /*#__PURE__*/normalizeComponent({\r\n render: __vue_render__$1,\r\n staticRenderFns: __vue_staticRenderFns__$1\r\n}, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, false, undefined, undefined, undefined);\r\n\r\n//\r\nvar script$2 = {\r\n components: {\r\n FileListHeader: __vue_component__,\r\n FileListItem: __vue_component__$1\r\n },\r\n props: {\r\n files: Array\r\n }\r\n};\r\n\r\n/* script */\r\nconst __vue_script__$2 = script$2;\r\n/* template */\r\n\r\nvar __vue_render__$2 = function () {\r\n var _vm = this;\r\n\r\n var _h = _vm.$createElement;\r\n\r\n var _c = _vm._self._c || _h;\r\n\r\n return _c('div', {\r\n staticClass: \"read-file-wrap\"\r\n }, _vm._l(_vm.files, function (file, index) {\r\n return _c(\"file-list-item\", {\r\n key: index,\r\n tag: \"div\",\r\n staticClass: \"file-item\",\r\n class: 'flow-file-' + file.uniqueIdentifier,\r\n attrs: {\r\n \"file\": file\r\n },\r\n on: {\r\n \"delete\": function (file) {\r\n return _vm.$emit('delete', file);\r\n },\r\n \"resume\": function (file) {\r\n return _vm.$emit('resume', file);\r\n }\r\n }\r\n });\r\n }), 1);\r\n};\r\n\r\nvar __vue_staticRenderFns__$2 = [];\r\n/* style */\r\n\r\nconst __vue_inject_styles__$2 = undefined;\r\n/* scoped */\r\n\r\nconst __vue_scope_id__$2 = \"data-v-38e252f4\";\r\n/* module identifier */\r\n\r\nconst __vue_module_identifier__$2 = undefined;\r\n/* functional template */\r\n\r\nconst __vue_is_functional_template__$2 = false;\r\n/* style inject */\r\n\r\n/* style inject SSR */\r\n\r\n/* style inject shadow dom */\r\n\r\nconst __vue_component__$2 = /*#__PURE__*/normalizeComponent({\r\n render: __vue_render__$2,\r\n staticRenderFns: __vue_staticRenderFns__$2\r\n}, __vue_inject_styles__$2, __vue_script__$2, __vue_scope_id__$2, __vue_is_functional_template__$2, __vue_module_identifier__$2, false, undefined, undefined, undefined);\r\n\r\nvar script$3 = {\r\n components: {\r\n FileList: __vue_component__$2\r\n },\r\n directives: {\r\n flow: {\r\n inserted: function (el, binding, vnode) {\r\n console.log('inserted');\r\n const flowDrop = '#flowDrop'; // const flowBrowseImage = '';\r\n\r\n const {\r\n flow,\r\n browseButton,\r\n browseFolderButton\r\n } = vnode.context;\r\n\r\n const query = query => window.document.body.querySelector(query);\r\n\r\n if (flow) {\r\n {\r\n let found = query(flowDrop);\r\n\r\n if (found) {\r\n flow.assignDrop(found);\r\n }\r\n }\r\n\r\n if (browseButton) {\r\n let found = query(browseButton);\r\n\r\n if (found) {\r\n flow.assignBrowse(found);\r\n }\r\n }\r\n\r\n if (browseFolderButton) {\r\n let found = query(browseFolderButton);\r\n\r\n if (found) {\r\n flow.assignBrowse(found, true);\r\n }\r\n } // if (flowBrowseImage) {\r\n // var found = query(flowBrowseImage);\r\n // flow.assignBrowse(found, false, false, {\r\n // accept: 'image/*',\r\n // });\r\n // }\r\n\r\n } else {\r\n throw new Error('The flow object has not been initialized.');\r\n }\r\n }\r\n }\r\n },\r\n props: {\r\n uploadUrl: String,\r\n deleteUrl: String,\r\n deleteMethod: String,\r\n code: String,\r\n codeValues: Array,\r\n chunkSize: Number,\r\n simultaneousUploads: Number,\r\n value: Array,\r\n browseButton: String,\r\n browseFolderButton: String,\r\n customDelete: Function,\r\n // (files: any[]) => Promise\r\n\r\n /**\r\n * 전체 파일 크기 제한.\r\n */\r\n totalSizeLimit: Number,\r\n totalSizeLimitExcessMessage: String,\r\n emptyFileDenialMessage: String,\r\n\r\n /**\r\n * 업로드 제한 파일 확장자\r\n */\r\n bannedExtentions: Array,\r\n //[\".\",]\r\n bannedExtentionMessage: String\r\n },\r\n watch: {\r\n browseButton(value) {\r\n console.log('eum-file-upload', 'browseButton', this.flow, value);\r\n\r\n if (this.flow && value) {\r\n this.flow.assignBrowse(value);\r\n }\r\n },\r\n\r\n browseFolderButton(value) {\r\n if (this.flow && value) {\r\n this.flow.assignBrowse(value, true);\r\n }\r\n },\r\n\r\n code(value) {\r\n if (this.flow) {\r\n this.flow.setQuery({ ...this.flow.getQuery(),\r\n code: value\r\n });\r\n }\r\n },\r\n\r\n codeValues(value) {\r\n if (this.flow) {\r\n this.flow.setQuery({ ...this.flow.getQuery(),\r\n codeValues: value\r\n });\r\n }\r\n }\r\n\r\n },\r\n computed: {\r\n files: {\r\n get() {\r\n return this.value;\r\n },\r\n\r\n set(value) {\r\n this.$emit('input', value);\r\n }\r\n\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n flow: null,\r\n isNotSupported: false,\r\n dragin: false\r\n };\r\n },\r\n\r\n methods: {\r\n upload() {\r\n this.flow.upload();\r\n },\r\n\r\n resume() {\r\n this.flow.resume();\r\n },\r\n\r\n pause() {\r\n this.flow.pause();\r\n this.$emit('stateChanged', 'paused');\r\n },\r\n\r\n cancel() {\r\n this.flow.cancel();\r\n this.$emit('stateChanged', 'canceled');\r\n this.deleteAllFiles();\r\n },\r\n\r\n selected(file) {\r\n file.selected = true;\r\n this.$emit('selectionChanged', this.files.filter(f => f.selected));\r\n },\r\n\r\n deleteSelectedFiles() {\r\n const files = this.files.filter(f => f.selected);\r\n\r\n if (files.length == 0) {\r\n return alert('삭제하려는 파일을 선택하세요.');\r\n }\r\n\r\n this.deleteFiles(files);\r\n },\r\n\r\n deleteAllFiles() {\r\n this.deleteFiles(this.files);\r\n },\r\n\r\n pauseFile(file) {\r\n const {\r\n id\r\n } = file; // Find a FlowFile object.\r\n\r\n console.log('flow.files', this.flow.files);\r\n var found = this.flow.files.find(f => id === f.uniqueIdentifier);\r\n console.log('pauseFile', file, found);\r\n\r\n if (found) {\r\n if (!found.paused) {\r\n found.pause();\r\n }\r\n }\r\n },\r\n\r\n resumeFile(file) {\r\n const {\r\n id\r\n } = file; // Find a FlowFile object.\r\n\r\n console.log('flow.files', this.flow.files);\r\n var found = this.flow.files.find(f => id === f.uniqueIdentifier);\r\n console.log('resumeFile', file, found);\r\n\r\n if (found) {\r\n if (found.paused) {\r\n console.log('resume');\r\n found.resume();\r\n } else {\r\n console.log('retry');\r\n found.retry();\r\n }\r\n }\r\n },\r\n\r\n deleteFiles(files\r\n /*: File[]*/\r\n ) {\r\n console.log('eum-file-upload', 'deleteFiles', files);\r\n const flow = this.flow;\r\n\r\n const processResult = origins => {\r\n for (let idx in origins) {\r\n const file = origins[idx];\r\n var flowFile = flow.files.filter(uf => file.id === uf.uniqueIdentifier)[0];\r\n\r\n if (flowFile) {\r\n // Remove files from flow queue.\r\n flow.removeFile(flowFile);\r\n } else {\r\n this.fileRemoved(file);\r\n }\r\n }\r\n };\r\n\r\n const customs = files.filter(file => file.custom === true);\r\n\r\n if (customs && customs.length > 0) {\r\n this.customDelete(customs).then(succeed => {\r\n if (succeed) {\r\n processResult(customs);\r\n }\r\n });\r\n }\r\n\r\n const origins = files; //.filter((file) => !file.custom);\r\n\r\n if (origins && origins.length > 0) {\r\n var data = {\r\n code: this.code,\r\n codeValues: this.codeValues,\r\n fileNames: origins.map(f => f.name)\r\n };\r\n return fetch(this.deleteUrl, {\r\n method: this.deleteMethod || 'post',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json' // 'Content-Type': 'multipart/form-data'\r\n\r\n },\r\n body: JSON.stringify(data)\r\n }).then(() => {\r\n processResult(origins);\r\n });\r\n }\r\n },\r\n\r\n secondsToStr(temp) {\r\n function numberEnding(number) {\r\n return number > 1 ? 's' : '';\r\n }\r\n\r\n var years = Math.floor(temp / 31536000);\r\n\r\n if (years) {\r\n return years + ' year' + numberEnding(years);\r\n }\r\n\r\n var days = Math.floor((temp %= 31536000) / 86400);\r\n\r\n if (days) {\r\n return days + ' day' + numberEnding(days);\r\n }\r\n\r\n var hours = Math.floor((temp %= 86400) / 3600);\r\n\r\n if (hours) {\r\n return hours + ' hour' + numberEnding(hours);\r\n }\r\n\r\n var minutes = Math.floor((temp %= 3600) / 60);\r\n\r\n if (minutes) {\r\n return minutes + ' minute' + numberEnding(minutes);\r\n }\r\n\r\n var seconds = temp % 60;\r\n return seconds + ' second' + numberEnding(seconds);\r\n },\r\n\r\n readablizeBytes(bytes) {\r\n var s = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'];\r\n var e = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + s[e];\r\n },\r\n\r\n setFileState(id, state) {\r\n console.log('setFileState', id, state);\r\n var file = this.files.filter(f => f.id === id)[0];\r\n file.status = state;\r\n },\r\n\r\n filesAdding(files) {\r\n console.log('eum-file-upload', 'filesAdding', files);\r\n\r\n if ([...files].filter(f => f.size === 0).length > 0) {\r\n if (typeof this.emptyFileDenialMessage === 'string') {\r\n alert(this.emptyFileDenialMessage);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n if (typeof this.totalSizeLimit === 'number') {\r\n if ([...this.files, ...files].map(f => f.size).reduce((a, b) => a + b, 0) > this.totalSizeLimit) {\r\n if (typeof this.totalSizeLimitExcessMessage === 'string') {\r\n alert(this.totalSizeLimitExcessMessage);\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n\r\n if (this.bannedExtentions != undefined && this.bannedExtentions != null) {\r\n var filtered = [...files].filter(f => {\r\n var match = f.name.match(/[^.]+$/);\r\n var extension = match == null ? '' : match[0];\r\n if (this.bannedExtentions.indexOf(extension) >= 0) return true;else return false;\r\n });\r\n\r\n if (filtered.length > 0) {\r\n alert(this.bannedExtentionMessage);\r\n return false;\r\n }\r\n }\r\n },\r\n\r\n //#region [ Handle file upload events ]\r\n fileAdded(fileData) {\r\n this.$emit('change');\r\n console.log('fileAdded', fileData.file.type, fileData); // Create a blob field\r\n\r\n fileData.blob = '';\r\n let URL = window.URL || window.webkitURL;\r\n\r\n if (URL && URL.createObjectURL && fileData.file) {\r\n fileData.blob = URL.createObjectURL(fileData.file);\r\n } // Thumbnails\r\n\r\n\r\n fileData.thumb = '';\r\n const filetype = fileData.file.type || '';\r\n\r\n if (fileData.blob && filetype.substr(0, 6) === 'image/') {\r\n fileData.thumb = fileData.blob;\r\n } else {\r\n const icons = {\r\n 'officedocument.presentationml.presentation': require$$0,\r\n 'officedocument.spreadsheetml.sheet': require$$1,\r\n 'officedocument.wordprocessingml.document': require$$2\r\n };\r\n const iconNames = Object.keys(icons).filter(key => filetype.includes(key));\r\n\r\n if (iconNames && iconNames.length > 0) {\r\n fileData.thumb = icons[iconNames[0]];\r\n } else {\r\n fileData.thumb = require$$3;\r\n }\r\n }\r\n\r\n this.files.push({\r\n id: fileData.uniqueIdentifier,\r\n uniqueIdentifier: fileData.uniqueIdentifier,\r\n name: fileData.name,\r\n size: fileData.size,\r\n percent: '',\r\n status: 'ready',\r\n time: '',\r\n selected: false,\r\n thumb: fileData.thumb,\r\n blob: fileData.file\r\n });\r\n this.$emit('itemsChanged', this.files);\r\n },\r\n\r\n fileRemoved(file) {\r\n this.$emit('change'); // Remove files from file list UI\r\n\r\n var results = this.files.filter(f => f.id === file.id);\r\n\r\n if (results.length > 0) {\r\n var index = this.files.indexOf(results[0]);\r\n this.files.splice(index, 1);\r\n }\r\n\r\n this.$emit('itemsChanged', this.files);\r\n },\r\n\r\n filesSubmitted(file) {\r\n this.flow.upload();\r\n },\r\n\r\n complete() {\r\n this.$emit('stateChanged', 'complete');\r\n },\r\n\r\n fileSuccess(file) {\r\n console.log('fileSuccess', file);\r\n const {\r\n uniqueIdentifier\r\n } = file;\r\n this.setFileState(uniqueIdentifier, 'succeed');\r\n },\r\n\r\n fileError(file) {\r\n console.log('fileError', file); // file.resume();\r\n\r\n this.fileProgress(file);\r\n },\r\n\r\n fileRetry(file, chunk) {},\r\n\r\n fileProgress(file) {\r\n const {\r\n uniqueIdentifier,\r\n error\r\n } = file;\r\n this.setFileState(uniqueIdentifier, error ? 'error' : 'uploading');\r\n const fileState = this.files.filter(f => f.id === uniqueIdentifier)[0];\r\n console.log('fileProgress', file, file.error, file.progress());\r\n const percent = file.error ? 0 : Math.floor(file.progress() * 100); // const percent = Math.floor(file.progress() * 100);\r\n\r\n console.log('fileProgress.percent', percent);\r\n const size = this.readablizeBytes(file.averageSpeed);\r\n const time = this.secondsToStr(file.timeRemaining());\r\n fileState.percent = percent;\r\n fileState.sizePerSeconds = size;\r\n fileState.time = time;\r\n },\r\n\r\n uploadStart(file) {\r\n this.$emit('stateChanged', 'uploading');\r\n },\r\n\r\n catchAll(file) {} //#endregion\r\n\r\n\r\n },\r\n\r\n created() {\r\n if (!this.flow) {\r\n const flow$1 = this.flow = new flow({\r\n target: this.uploadUrl,\r\n singleFile: false,\r\n simultaneousUploads: this.simultaneousUploads,\r\n chunkSize: this.chunkSize,\r\n testChunks: false,\r\n chunkRetryInterval: 10,\r\n query: {\r\n code: this.code,\r\n codeValues: this.codeValues\r\n }\r\n });\r\n console.log('file-upload', 'initFlow', 'begin', flow$1);\r\n\r\n if (!flow$1.support) {\r\n this.isNotSupported = true;\r\n }\r\n\r\n const events = {\r\n fileAdded: this.fileAdded,\r\n filesAdding: this.filesAdding,\r\n fileRemoved: this.fileRemoved,\r\n filesSubmitted: this.filesSubmitted,\r\n complete: this.complete,\r\n fileSuccess: this.fileSuccess,\r\n fileError: this.fileError,\r\n fileProgress: this.fileProgress,\r\n uploadStart: this.uploadStart,\r\n catchAll: this.catchAll,\r\n fileRetry: this.fileRetry\r\n };\r\n Object.keys(events).forEach(name => flow$1.on(name, events[name]));\r\n this.$emit('stateChanged', 'ready');\r\n }\r\n }\r\n\r\n};\r\n\r\n/* script */\r\nconst __vue_script__$3 = script$3;\r\n/* template */\r\n\r\nvar __vue_render__$3 = function () {\r\n var _vm = this;\r\n\r\n var _h = _vm.$createElement;\r\n\r\n var _c = _vm._self._c || _h;\r\n\r\n return _c('div', {}, [_vm.code && _vm.codeValues && _vm.codeValues.length > 0 ? _c('div', {\r\n directives: [{\r\n name: \"flow\",\r\n rawName: \"v-flow\"\r\n }],\r\n ref: \"flowDrop\",\r\n class: {\r\n 'file-dragover': _vm.dragin\r\n },\r\n attrs: {\r\n \"id\": \"flowDrop\"\r\n },\r\n on: {\r\n \"dragenter\": function ($event) {\r\n _vm.dragin = true;\r\n },\r\n \"dragend\": function ($event) {\r\n _vm.dragin = false;\r\n },\r\n \"dragleave\": function ($event) {\r\n _vm.dragin = false;\r\n },\r\n \"drop\": function ($event) {\r\n _vm.dragin = false;\r\n }\r\n }\r\n }, [_vm.files && _vm.files.length > 0 ? _c('FileList', {\r\n staticStyle: {\r\n \"width\": \"100%\"\r\n },\r\n attrs: {\r\n \"files\": _vm.files\r\n },\r\n on: {\r\n \"pause\": function (file) {\r\n return _vm.pauseFile(file);\r\n },\r\n \"delete\": function (file) {\r\n return _vm.deleteFiles([file]);\r\n },\r\n \"resume\": function (file) {\r\n return _vm.resumeFile(file);\r\n }\r\n }\r\n }) : _vm._e()], 1) : _vm._e()]);\r\n};\r\n\r\nvar __vue_staticRenderFns__$3 = [];\r\n/* style */\r\n\r\nconst __vue_inject_styles__$3 = undefined;\r\n/* scoped */\r\n\r\nconst __vue_scope_id__$3 = undefined;\r\n/* module identifier */\r\n\r\nconst __vue_module_identifier__$3 = undefined;\r\n/* functional template */\r\n\r\nconst __vue_is_functional_template__$3 = false;\r\n/* style inject */\r\n\r\n/* style inject SSR */\r\n\r\n/* style inject shadow dom */\r\n\r\nconst __vue_component__$3 = /*#__PURE__*/normalizeComponent({\r\n render: __vue_render__$3,\r\n staticRenderFns: __vue_staticRenderFns__$3\r\n}, __vue_inject_styles__$3, __vue_script__$3, __vue_scope_id__$3, __vue_is_functional_template__$3, __vue_module_identifier__$3, false, undefined, undefined, undefined);\r\n\r\n// Import vue component\r\n\r\nconst install = function installEumFileUpload(Vue) {\r\n if (install.installed) return;\r\n install.installed = true;\r\n Vue.component('EumFileUpload', __vue_component__$3);\r\n}; // Create module definition for Vue.use()\r\n\r\n\r\nconst plugin = {\r\n install\r\n}; // To auto-install when vue is found\r\n// eslint-disable-next-line no-redeclare\r\n\r\n/* global window, global */\r\n\r\nlet GlobalVue = null;\r\n\r\nif (typeof window !== 'undefined') {\r\n GlobalVue = window.Vue;\r\n} else if (typeof global !== 'undefined') {\r\n GlobalVue = global.Vue;\r\n}\r\n\r\nif (GlobalVue) {\r\n GlobalVue.use(plugin);\r\n} // Inject install function into component - allows component\r\n// to be registered via Vue.use() as well as Vue.component()\r\n\r\n\r\n__vue_component__$3.install = install; // Export component by default\r\n// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';\r\n// export const RollupDemoDirective = component;\r\n\r\nexport default __vue_component__$3;\r\n","export { default as PopupModal } from './PopupModal.vue'","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleFolderList.vue?vue&type=style&index=0&id=9b3ba204&lang=scss&scoped=true&\"","export enum ContactFolderType{\r\n /**\r\n * Database 버전 개인 연락처\r\n */\r\n PC,\r\n /**\r\n * 부서 연락처\r\n */\r\n DC,\r\n /**\r\n * 공용 연락처\r\n */\r\n Public,\r\n /**\r\n * Exchange 버전 개인 연락처\r\n */\r\n Personal,\r\n /**\r\n * 즐겨찾기한 연락처\r\n */\r\n Favorite,\r\n /**\r\n * 공유받은 연락처\r\n */\r\n Shared,\r\n /**\r\n * 공유한 연락처\r\n */\r\n Sharing\r\n}\r\n\r\nexport enum ContactsStoredType{\r\n /**\r\n * database 버전\r\n */\r\n DB,\r\n /**\r\n * exchage 버전\r\n */\r\n EWS\r\n}\r\n\r\nexport enum ShareType{\r\n notShared,\r\n shared\r\n}\r\n\r\nexport enum PublicSearchConditions{\r\n UserName,\r\n UserId\r\n}","const BASE = '$appbase'\r\n\r\nexport const MODAL_CURRENT = `${BASE}/modal`\r\nexport const PAGE_CURRENT = `${BASE}/page/info`\r\nexport const TEAMS = `${BASE}/teams`\r\n\r\nexport const MODAL_CHANGE = `${BASE}/modal/change`\r\nexport const SELECT_ATTACHMENT = `${BASE}/select/attachment`;\r\n","import api from '@/api';\r\nimport * as dateutil from '@/util/date-helper.ts';\r\nimport axios from 'axios';\r\nimport { invalidateUrl } from '@appbase/util'\r\n\r\nexport default {\r\n /**\r\n * 새로운 일정을 생성합니다\r\n */\r\n createEvent(data: mail.api.DynamicApiOptions): Promise {\r\n return api.post({\r\n url: '/api/ews/Calendar/create?funcName=createEvent',\r\n data: data\r\n });\r\n },\r\n\r\n /**\r\n * 일정을 수정합니다.\r\n */\r\n editEvent(data: mail.api.DynamicApiOptions): Promise {\r\n return api.post({\r\n url: '/api/ews/Calendar/set?funcName=editEvent',\r\n data: data\r\n });\r\n },\r\n\r\n getBody(id: string) {\r\n if (!id) {\r\n throw new Error(\"ARGUMENT_NULL_EXCEPTION: {id}\");\r\n }\r\n return api\r\n .get({\r\n url: \"/api/ews/body/appointmentChunk?funcName=getBody\",\r\n params: {\r\n itemId: id,\r\n },\r\n })\r\n .then((results) => {\r\n return results.map((chunk) => {\r\n var decodeBase64 = atob(chunk);\r\n var html = decodeURIComponent(decodeBase64);\r\n return html;\r\n });\r\n })\r\n .then(function (htmls) {\r\n return htmls.join(\"\");\r\n });\r\n },\r\n\r\n /**\r\n * 폴더의 일정들을 가져옵니다\r\n * @param {string} parentId root folder ID\r\n * @param {string} startdate 시작일\r\n * @param {string} enddate 종료일\r\n */\r\n getCalendarEvents(parentId: string, startdate: Date, enddate: Date): Promise> {\r\n return api\r\n .post({\r\n url: '/api/ews/Dynamic/list?funcName=getCalendarEvents',\r\n data: {\r\n fields: [\r\n { key: \"Id\" },\r\n { key: \"ParentFolderId\" },\r\n { key: \"Subject\" },\r\n { key: \"DisplayTo\" },\r\n { key: \"TimeZone\" },\r\n { key: \"Sensitivity\" },\r\n { key: \"Importance\" },\r\n { key: \"ReminderDueBy\" },\r\n { key: \"Location\" },\r\n { key: \"LegacyFreeBusyStatus\" },\r\n { key: \"Organizer\", format: \"obj:[name,address]\" },\r\n //{ key: \"hasAttachments\" },\r\n { key: \"IsRecurring\" },\r\n { key: \"IsFromMe\" },\r\n { key: \"IsCancelled\" },\r\n { key: \"IsAllDayEvent\" }, \r\n { key: \"Start\", \"format\": \"yyyy-MM-dd HH:mm:ss\" },\r\n { key: \"End\", \"format\": \"yyyy-MM-dd HH:mm:ss\" },\r\n { key: \"Duration\", \"as\": \"ScheduleDuration\" },\r\n { key: \"DateTimeCreated\", \"format\": \"yyyy-MM-dd HH:mm:ss\" },\r\n //{ key: \"RequiredAttendees\", \"format\": \"obj:[name,address]\" },\r\n { key: \"Categories\" },\r\n { key: \"PidLidRecurrenceType\" },\r\n { key: \"PidLidRecurrencePattern\" },\r\n // { key: \"Recurrence\" },\r\n ],\r\n filters: [\r\n {\r\n operator: \"OR\",\r\n filters: [\r\n {\r\n operator: \"AND\",\r\n filters: [\r\n {\r\n key: \"Start\",\r\n value: dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', startdate),\r\n valueType: \"datetime\",\r\n valueFormat: \"yyyy-MM-dd HH:mm:ss\",\r\n condition: \"IsGreaterThanOrEqualTo\" // Start >= start\r\n },\r\n {\r\n key: \"Start\",\r\n value: dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', enddate),\r\n valueType: \"datetime\",\r\n valueFormat: \"yyyy-MM-dd HH:mm:ss\",\r\n condition: \"IsLessThanOrEqualTo\" // <= Start <= end\r\n }\r\n ]\r\n },\r\n {\r\n operator: \"AND\",\r\n filters: [\r\n {\r\n key: \"Start\",\r\n value: dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', startdate),\r\n valueType: \"datetime\",\r\n valueFormat: \"yyyy-MM-dd HH:mm:ss\",\r\n condition: \"IsLessThanOrEqualTo\" // Start <= start\r\n },\r\n {\r\n key: \"End\",\r\n value: dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', startdate),\r\n valueType: \"datetime\",\r\n valueFormat: \"yyyy-MM-dd HH:mm:ss\",\r\n condition: \"IsGreaterThanOrEqualTo\" // End >= start\r\n }\r\n ]\r\n },\r\n ],\r\n }\r\n ],\r\n parentId: parentId,\r\n pageSize: 100,\r\n offset: 0,\r\n sorts: [\r\n { \"field\": \"Start\", \"dir\": \"desc\" }\r\n ],\r\n type: \"Calendar\"\r\n }\r\n })\r\n .then((res: any) => {\r\n return res.items.map((item: calendar.CalendarItem, idx: number) => {\r\n var rlt = {\r\n ...item,\r\n index: idx,\r\n isEWS: true,\r\n };\r\n return rlt;\r\n });\r\n });\r\n },\r\n\r\n /**\r\n * 폴더의 일정들을 가져옵니다\r\n * @param {string} parentId root folder ID\r\n * @param {string} startdate 시작일\r\n * @param {string} enddate 종료일\r\n */\r\n getCalendarDailyEvents(parentId: string, date: Date): Promise> {\r\n return api\r\n .post({\r\n url: '/api/ews/Dynamic/list?funcName=getCalendarDailyEvents',\r\n data: {\r\n fields: [\r\n { key: \"Id\" },\r\n { key: \"ParentFolderId\" },\r\n { key: \"Subject\" },\r\n { key: \"DisplayTo\" },\r\n { key: \"TimeZone\" },\r\n { key: \"Sensitivity\" },\r\n { key: \"Importance\" },\r\n { key: \"ReminderDueBy\" },\r\n { key: \"Location\" },\r\n { key: \"LegacyFreeBusyStatus\" },\r\n { key: \"Organizer\", format: \"obj:[name,address]\" },\r\n //{ key: \"hasAttachments\" },\r\n { key: \"IsRecurring\" },\r\n { key: \"IsFromMe\" },\r\n { key: \"IsCancelled\" },\r\n { key: \"IsAllDayEvent\" },\r\n { key: \"Start\", \"format\": \"yyyy-MM-dd HH:mm:ss\" },\r\n { key: \"End\", \"format\": \"yyyy-MM-dd HH:mm:ss\" },\r\n { key: \"Duration\", \"as\": \"ScheduleDuration\" },\r\n { key: \"DateTimeCreated\", \"format\": \"yyyy-MM-dd\" },\r\n //{ key: \"RequiredAttendees\", \"format\": \"obj:[name,address]\" },\r\n { key: \"Categories\" },\r\n { key: \"PidLidRecurrenceType\" },\r\n { key: \"PidLidRecurrencePattern\" },\r\n { key: \"ReminderMinutesBeforeStart\"},\r\n // { key: \"Recurrence\" },\r\n // {key: \"PidLidRecurring\"},\r\n // {key: \"PidLidRecurring\"},\r\n ],\r\n filters: [\r\n {\r\n operator: \"AND\",\r\n filters: [\r\n {\r\n key: \"Start\",\r\n value: dateutil.uGetDateFormat('yyyy-MM-DD 23:59:59', date),\r\n valueType: \"datetime\",\r\n valueFormat: \"yyyy-MM-dd HH:mm:ss\",\r\n condition: \"IsLessThanOrEqualTo\"\r\n },\r\n {\r\n key: \"End\",\r\n value: dateutil.uGetDateFormat('yyyy-MM-DD 00:00:00', date),\r\n valueType: \"datetime\",\r\n valueFormat: \"yyyy-MM-dd HH:mm:ss\",\r\n condition: \"IsGreaterThanOrEqualTo\"\r\n }\r\n ]\r\n },\r\n ],\r\n parentId: parentId,\r\n pageSize: 100,\r\n offset: 0,\r\n sorts: [\r\n { \"field\": \"Start\", \"dir\": \"desc\" }\r\n ],\r\n type: \"Calendar\"\r\n }\r\n })\r\n .then((res: any) => {\r\n return res.items.map((item: calendar.CalendarItem, idx: number) => {\r\n var rlt = {\r\n ...item,\r\n index: idx,\r\n isEWS: true,\r\n };\r\n return rlt;\r\n })\r\n });\r\n },\r\n\r\n getDetail(id: string): Promise {\r\n return api\r\n .post({\r\n url: \"/api/ews/dynamic/get?funcName=getDetail\",\r\n data: {\r\n fields: [\r\n { key: \"Id\" },\r\n { key: \"ParentFolderId\" },\r\n { key: \"AllowedResponseActions\" },\r\n { key: \"Subject\" },\r\n { key: \"DisplayTo\" },\r\n { key: \"TimeZone\" },\r\n { key: \"Sensitivity\" },\r\n { key: \"Importance\" },\r\n { key: \"ReminderDueBy\" },\r\n { key: \"Location\" },\r\n { key: \"LegacyFreeBusyStatus\" },\r\n { key: \"Organizer\", format: \"obj:[name,address]\" },\r\n //{ key: \"hasAttachments\" },\r\n { key: \"MyResponseType\" },\r\n { key: \"IsRecurring\" },\r\n { key: \"IsFromMe\" },\r\n { key: \"IsCancelled\" },\r\n { key: \"IsAllDayEvent\" },\r\n { key: \"Start\", \"format\": \"yyyy-MM-dd HH:mm:ss\" },\r\n { key: \"End\", \"format\": \"yyyy-MM-dd HH:mm:ss\" },\r\n { key: \"Duration\", \"as\": \"ScheduleDuration\" },\r\n { key: \"DateTimeCreated\", \"format\": \"yyyy-MM-dd\" },\r\n { key: \"RequiredAttendees\", format: \"obj:[name,address]\", as: \"requiredAttendees\" },\r\n { key: \"OptionalAttendees\", format: \"obj:[name,address]\", as: \"optionalAttendees\" },\r\n { key: \"Categories\" },\r\n { key: \"PidLidRecurrenceType\" },\r\n { key: \"PidLidRecurrencePattern\" },\r\n { key: \"PidLidRecurring\" },\r\n { key: \"Recurrence\" },\r\n { key: \"ReminderMinutesBeforeStart\"},\r\n { key: \"Resources\", format: \"obj:[name,address]\" },\r\n { key: \"AppointmentType\" },\r\n {\r\n key: 'Attachments',\r\n format: 'obj:[id,name,contentType,size]',\r\n filters: [\r\n {\r\n key: 'isInline',\r\n value: false,\r\n operator: 'eq',\r\n },\r\n ],\r\n },\r\n ],\r\n itemId: id,\r\n type: \"Calendar\",\r\n },\r\n })\r\n .then((res) => {\r\n console.log('데이터',res)\r\n res.item.isEWS = true;\r\n if (res.item.resources.length) {\r\n res.item.resourceId = res.item.resources[0].address;\r\n }\r\n return res.item;\r\n });\r\n },\r\n\r\n /**\r\n * 일정을 삭제합니다.\r\n * @param {object} id 선택한 일정 폴더 ID [ id ]\r\n */\r\n deleteEvent(id: string): Promise {\r\n return api.post({\r\n url: '/api/ews/Calendar/delete?funcName=deleteEvent',\r\n data: { id: id },\r\n });\r\n },\r\n\r\n /**\r\n * 일정을 수락합니다.\r\n * @param {object} id 선택한 일정 폴더 ID [ id ]\r\n */\r\n acceptEvent(id: string) {\r\n return api.post({\r\n url: '/api/ews/Calendar/accept?funcName=acceptEvent',\r\n data: { id: id },\r\n });\r\n },\r\n\r\n /**\r\n * 일정을 거절합니다.\r\n * @param {object} id 선택한 일정 폴더 ID [ id ]\r\n */\r\n declineEvent(id: string) {\r\n return api.post({\r\n url: '/api/ews/Calendar/decline?funcName=declineEvent',\r\n data: { id: id },\r\n });\r\n },\r\n\r\n /**\r\n * 일정을 취소합니다.\r\n * @param {object} id 선택한 일정 폴더 ID [ id ]\r\n */\r\n cancelEvent(item: calendar.CalendarItem) {\r\n return api.post({\r\n url: '/api/ews/Calendar/cancel?funcName=cancelEvent',\r\n data: { \r\n id: item.id,\r\n body: item.body,\r\n },\r\n });\r\n },\r\n\r\n /**\r\n * 반복일정 마스터 아이디를 가져옵니다\r\n * @param id \r\n */\r\n getRecurringMasterID(id: string) {\r\n return api.post({\r\n url: '/api/ews/Calendar/getmasterid?funcName=getRecurringMasterID',\r\n data: {\r\n id: id,\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * 폴더의 일정들을 가져옵니다\r\n * @param {string} parentId root folder ID\r\n * @param {string} startdate 시작일\r\n * @param {string} enddate 종료일\r\n */\r\n searchCalendarEventList(item: calendar.SearchOptions) {\r\n return api.post>({\r\n url: '/api/ews/Calendar/search?funcName=searchCalendarEventList',\r\n data: {\r\n EwsFolderIDArray: item.EwsFolderIDArray || null,\r\n EwsFolderID: item.ParentFolderID || null, \r\n StartDate: item.StartDate || null, \r\n EndDate: item.EndDate || null,\r\n Keyword: item.Keyword || null, \r\n Subject: item.Subject || null,\r\n Location: item.Location || null, \r\n OrganizerAddress: item.OrganizerAddress || null, \r\n PersonCode: item.PersonCode, \r\n RequiredAttendees: null, \r\n OptionalAttendees: null, \r\n EumNoCondition: false, \r\n EumPageNumber: item.EumPageNumber || 1, \r\n EumRowsPerPage: item.EumRowsPerPage || 9999, \r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let result = {\r\n ...data,\r\n isEWS: true,\r\n };\r\n return result;\r\n });\r\n });;\r\n },\r\n\r\n /**\r\n * 폴더의 일정들을 가져옵니다 (반복일정 포함)\r\n * @param {string} parentId root folder ID\r\n * @param {string} startdate 시작일\r\n * @param {string} enddate 종료일\r\n */\r\n getCalendarEventListWithRecurrence(item: calendar.SearchOptions) {\r\n return api.post>({\r\n url: '/api/ews/Calendar/list?funcName=getCalendarEventListWithRecurrence',\r\n data: {\r\n EwsFolderIDArray: item.EwsFolderIDArray || null,\r\n EwsFolderID: item.ParentFolderID || null, \r\n StartDate: item.StartDate || null, \r\n EndDate: item.EndDate || null, \r\n Subject: item.Subject || null,\r\n Location: item.Location || null, \r\n OrganizerAddress: item.OrganizerAddress || null, \r\n PersonCode: item.PersonCode, \r\n RequiredAttendees: null, \r\n OptionalAttendees: null, \r\n EumNoCondition: false, \r\n EumPageNumber: item.EumPageNumber || 1, \r\n EumRowsPerPage: item.EumRowsPerPage || 9999, \r\n }\r\n }).then((res) => {\r\n return res.map((data) => {\r\n let result = {\r\n ...data,\r\n isEWS: true,\r\n };\r\n return result;\r\n });\r\n });;\r\n },\r\n\r\n /**\r\n * 연락처 목록을 파일로 다운로드 합니다\r\n * @param data \r\n * @param {enum} type DB,exchange 버전 구분\r\n */\r\n downloadCalendarList(item: calendar.SearchOptions){\r\n return axios({\r\n method: 'post',\r\n url: invalidateUrl('/api/ews/calendar/download?funcName=downloadCalendarList'),\r\n responseType: 'arraybuffer',\r\n data: {\r\n EwsFolderIDArray: item.EwsFolderIDArray || null,\r\n EwsFolderID: item.ParentFolderID || null, \r\n FolderIDArray: item.FolderIDArray || null,\r\n StartDate: item.StartDate || null, \r\n EndDate: item.EndDate || null,\r\n Keyword: item.Keyword || null, \r\n Subject: item.Subject || null,\r\n Location: item.Location || null, \r\n OrganizerAddress: item.OrganizerAddress || null, \r\n PersonCode: item.PersonCode, \r\n RequiredAttendees: null, \r\n OptionalAttendees: null, \r\n EumNoCondition: false, \r\n EumPageNumber: item.EumPageNumber || 1, \r\n EumRowsPerPage: item.EumRowsPerPage || 9999, \r\n }\r\n }).then(function(response){\r\n console.log('response', response);\r\n const disposition = response.headers['content-disposition'];\r\n const filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n const matches = filenameRegex.exec(disposition);\r\n var fileName = '';\r\n if (matches != null && matches[1]) {\r\n fileName = matches[1].replace(/['\"]/g, '');\r\n if (fileName) {\r\n fileName = decodeURIComponent(fileName);\r\n }\r\n }\r\n const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});\r\n //IE 경우\r\n if(window.navigator && window.navigator.msSaveOrOpenBlob){\r\n window.navigator.msSaveOrOpenBlob(blob, fileName);\r\n }else{\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = `${fileName}`;\r\n link.click();\r\n (process as any).nextTick(() => link.remove());\r\n }\r\n });\r\n },\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.editorComponent,_vm._g(_vm._b({ref:\"editor\",tag:\"component\",class:['eum-editor-proxy' ].concat( _vm.classNames)},'component',Object.assign({}, _vm.$attrs, {type: _vm.type, mode: _vm.mode}),false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"dext5\",rawName:\"v-dext5:loaded\",value:(_vm.handleLoaded),expression:\"handleLoaded\",arg:\"loaded\"}],staticClass:\"form-control-container\",attrs:{\"id\":_vm.editorId}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DirectiveOptions } from 'vue'\r\nimport DextEditor from './Dext5Editor'\r\n\r\ndeclare var DEXT5: editor.dext5.DEXT5\r\ndeclare var Dext5editor: any\r\n\r\nvar callbacks: { [key: string]: Function } = {}\r\nvar loadedEditorIds: string[] = []\r\n\r\n/** DEXT5 Editor 초기화된 상태 */\r\nexport function loaded(id: string) {\r\n return loadedEditorIds.includes(id)\r\n}\r\n\r\nexport function unload(id: string) {\r\n const idx = loadedEditorIds.indexOf(id)\r\n if (idx >= 0) {\r\n loadedEditorIds = [...loadedEditorIds.slice(0, idx), ...loadedEditorIds.slice(idx + 1)]\r\n }\r\n DEXT5.destroy(id)\r\n}\r\n\r\n;(window as any).dext_key_event = function (\r\n keyEvent: any,\r\n eventObject: any,\r\n currElem: any,\r\n editorId: any\r\n) {\r\n if (keyEvent == \"keydown\" && eventObject.code === \"Enter\") {\r\n if (typeof (window.parent as any)._CONST_MODAL_EVENT === \"function\") {\r\n (window.parent as any)._CONST_MODAL_EVENT();\r\n }\r\n }\r\n};\r\n\r\n;(window as any).dext_editor_loaded_event = function (editor: any) {\r\n loadedEditorIds.push(editor.ID as string)\r\n if (callbacks[editor.ID]) {\r\n callbacks[editor.ID]()\r\n }\r\n\r\n if ((window as any).EditorReadyBase) {\r\n (window as any).EditorReadyBase(editor);\r\n }\r\n\r\n if ((window as any).EditorReady) {\r\n (window as any).EditorReady(editor);\r\n }\r\n}\r\n\r\nconst defaultOptions: editor.dext5.DEXT5Config = {\r\n ...Object.create({}),\r\n ...{\r\n Mode: 'editor',\r\n Width: '100%',\r\n },\r\n}\r\n\r\nconst editorDirective: DirectiveOptions = {\r\n inserted: (el, binding, vnode) => {\r\n const ctx = vnode.context as DextEditor\r\n const { editorId, initialValue, dext5opts: options, mode } = ctx\r\n const { rawName, value } = binding as any\r\n console.log('inserted', editorId, rawName, value)\r\n if (rawName === 'v-dext5:loaded') {\r\n callbacks[editorId] = value\r\n }\r\n\r\n DEXT5.config = {\r\n ...DEXT5.config,\r\n ...defaultOptions,\r\n ...options,\r\n EditorHolder: editorId,\r\n }\r\n DEXT5.config.Mode = mode === 'editor' ? 'editor' : 'view'\r\n console.log('DEXT5.config:', DEXT5.config);\r\n // // ────────────────────────────────────────────────────────────────────────────────\r\n // // DEXT5 Editor Config\r\n // // DEXT5.config.PasteImageBase64 = '1'\r\n // // DEXT5.config.UploadMethod = 'base64'\r\n // // DEXT5.config.UploadUrl = '/assets/libs/dext5editor/handler/upload_handler.ashx'\r\n // DEXT5.config.Width = '100%' //넓이\r\n // DEXT5.config.Height = '100%' //높이\r\n // // DEXT5.config.SkinName = 'silver'\r\n // DEXT5.config.EditorHolder = editorId\r\n // // DEXT5.config.AutoStartUp = '1' // 컨트롤에서 Holder가 준비 완료될때까지 대기한 다음 초기화 진행\r\n (DEXT5.config as any).ReturnEventKeyboard = \"1\";\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n // Initialize Editor\r\n new Dext5editor(editorId)\r\n DEXT5.setBodyValue(initialValue, editorId)\r\n \r\n if ((window as any).EditorBodyAddedBase) {\r\n (window as any).EditorBodyAddedBase(ctx, initialValue);\r\n }\r\n\r\n if ((window as any).EditorBodyAdded) {\r\n (window as any).EditorBodyAdded(ctx, initialValue);\r\n }\r\n },\r\n}\r\nexport default editorDirective\r\n","import { Component, Prop, Vue, Watch } from 'vue-property-decorator'\r\nimport editorDirective, { loaded, unload } from './dext5-directive'\r\nconst { v4: uuidv4 } = require('uuid')\r\n\r\ndeclare var DEXT5: editor.dext5.DEXT5\r\n\r\n@Component({\r\n name: 'dext5-editor',\r\n directives: {\r\n dext5: editorDirective,\r\n },\r\n})\r\nexport default class Dext5Editor extends Vue implements editor.IEumEditor {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n /** 본문 문자열 */\r\n @Prop({ type: String, default: '' }) private value!: string\r\n @Prop({ type: String, default: 'editor' }) mode!: editor.EditorMode\r\n /** 에디터 초기화 기 기본 몬문 문자열 */\r\n @Prop({ type: String, default: '' }) initialValue!: string\r\n /** 에디터 비활성화 여부 */\r\n @Prop({ type: Boolean, default: false }) disabled!: boolean\r\n /** 에디터 초기화 옵션 */\r\n @Prop({ type: Object }) dext5opts!: editor.dext5.DEXT5Config\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n /** 고유 키 생성 : 화면에 여러개의 에디터가 존재할 경우 ID 값이 고유해야함 */\r\n editorId!: string\r\n /** 본문 문자열 */\r\n body: string = '

 

'\r\n /** 문문 문자열을 주기적으로 가져오기 위한 타이머 */\r\n timer: any = null\r\n /** 컴포넌트 폐기 이후 본문을 가져오는 타이머가 동작하지 않도록하기 위함 */\r\n disposed: boolean = false\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H E S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('value')\r\n onValueChanged(val: string) {\r\n console.log('onValueChanged', val)\r\n if (val === this.body) return // 최적화\r\n if (!this.loaded()) return // 에디터 초기화 전에는 initialValue로만 본문 설정 가능\r\n this.setBodyValue(val) // 에디터와 로컬 body 상태 설정\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n // editor unique id\r\n const uuid = uuidv4() as any\r\n this.editorId = 'editor' + uuid.replaceAll('-', '')\r\n // 본문 변경사항을 감시하는 타이머 시작\r\n // Timer가 동작함에 따라 에디터가 깜빡이는 증상이 었어서 주석 처리함.\r\n // this.startTimer()\r\n }\r\n\r\n beforeDestroy() {\r\n this.disposed = true\r\n clearTimeout(this.timer)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 에디터가 초기화되기 전에 value 값이 업데이트되는 경우를 위해\r\n * 에디터가 로드된 다음 다시 시도\r\n */\r\n handleLoaded() {\r\n const { initialValue, value } = this\r\n if (!initialValue && value) {\r\n this.setBodyValue(this.value)\r\n }\r\n }\r\n\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n // Private Methods\r\n\r\n /** DEXT5 Editor 초기화된 상태 */\r\n loaded(): boolean {\r\n return loaded(this.editorId)\r\n }\r\n\r\n // private startTimer(): void {\r\n // const _this = this\r\n // this.timer = setTimeout(() => {\r\n // const { loaded, body, getBodyValue, notifyChangeBody, startTimer, disposed, timer } = _this\r\n // // 컴포넌트가 폐기된 경우 타이머 리소스 해제\r\n // clearTimeout(timer)\r\n // if (disposed) {\r\n // return\r\n // }\r\n // if (loaded()) {\r\n // // 본문의 변경사항이 있을 경우, 변경사항을 알림\r\n // const curBody = getBodyValue()\r\n // if (body.length !== curBody.length) {\r\n // notifyChangeBody(curBody)\r\n // }\r\n // }\r\n // // 타이머 다시 시작\r\n // if (!disposed) {\r\n // startTimer()\r\n // }\r\n // }, 1000)\r\n // }\r\n\r\n // private notifyChangeBody(body: string) {\r\n // if (this.loaded()) {\r\n // console.log('notifyChangeBody', this.loaded(), ',', this.body, ',', body)\r\n // this.body = body\r\n // this.$emit('input', body)\r\n // }\r\n // }\r\n\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n // Public Methods (To access from other components)\r\n\r\n /** 에디터 본문 컨텐츠를 가져옵니다. */\r\n public getBodyValue(): string {\r\n return DEXT5.getBodyValue(this.editorId)\r\n }\r\n\r\n /** 에디터의 고유 아이디를 가져옵니다. */\r\n public getEditorId(): string {\r\n return this.editorId\r\n }\r\n\r\n /** 컨텐츠를 에디터 본문으로 설정합니다. */\r\n public setBodyValue(value: string): void {\r\n console.log('setBodyValue', this.loaded(), value)\r\n // img 사이즈 보정\r\n var newDiv = document.createElement('div')\r\n newDiv.innerHTML = value\r\n var imgs = newDiv.getElementsByTagName('img') as any\r\n for (var i=0; i< imgs.length; i ++) {\r\n let img = newDiv.getElementsByTagName('img')[i] as HTMLImageElement;\r\n img.style.width = '100%'\r\n img.style.height = ''\r\n }\r\n\r\n this.body = newDiv.innerHTML\r\n this.$nextTick(() => DEXT5.setBodyValue(newDiv.innerHTML, this.editorId))\r\n }\r\n\r\n /** 본문이 비어있는 상태인지 검사합니다. */\r\n public isEmpty(): boolean {\r\n return DEXT5.isEmpty(this.editorId)\r\n }\r\n\r\n /** 에디터 본문을 빈 값으로 초기화합니다. */\r\n public clear(): void {\r\n DEXT5.setBodyValue('', this.editorId)\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Dext5Editor.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./Dext5Editor.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dext5Editor.vue?vue&type=template&id=6ca985ca&scoped=true&\"\nimport script from \"./Dext5Editor.ts?vue&type=script&lang=ts&\"\nexport * from \"./Dext5Editor.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ca985ca\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('editor',{attrs:{\"initialValue\":_vm.mInitialValue,\"init\":_vm.editorOptions,\"disabled\":_vm.disabled,\"outputFormat\":_vm.outputFormat},on:{\"onKeyDown\":_vm.onKeyDown,\"onInit\":_vm.onInit},model:{value:(_vm.content),callback:function ($$v) {_vm.content=$$v},expression:\"content\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TinyEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TinyEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TinyEditor.vue?vue&type=template&id=4c981417&\"\nimport script from \"./TinyEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./TinyEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator'\r\nimport Dext5Editor from './Dext5Editor/Dext5Editor.vue'\r\nimport TinyEditor from './TinyEditor/TinyEditor.vue'\r\n\r\n// 전체 솔루션에 일괄적용하려면 이 상수를 수정하세요.\r\nconst DEFAULT_EDITOR: editor.EditorTypes = 'dext5'\r\n\r\n@Component\r\nexport default class EditorProxy extends Vue {\r\n @Prop({ type: String }) type!: editor.EditorTypes\r\n @Prop({ type: String, default: 'editor', required: true }) mode!: editor.EditorMode\r\n\r\n get classNames() {\r\n const { type, mode } = this\r\n const globalType = this.getAppConfig('EditorType') as editor.EditorTypes\r\n return ['eum-editor-type-' + (type || globalType || DEFAULT_EDITOR), 'eum-editor-mode-' + mode]\r\n }\r\n\r\n get editorComponent() {\r\n const { type } = this\r\n const globalType = this.getAppConfig('EditorType') as editor.EditorTypes\r\n switch (type || globalType || DEFAULT_EDITOR) {\r\n case 'dext5':\r\n return Dext5Editor\r\n\r\n case 'tiny':\r\n return TinyEditor\r\n\r\n default:\r\n throw new Error('[NOT_SUPPORTED_ERROR]: ' + type)\r\n }\r\n }\r\n\r\n public getEditor(): editor.IEumEditor {\r\n return this.$refs.editor as any as editor.IEumEditor\r\n }\r\n\r\n created() {\r\n console.log('111', this)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorProxy.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorProxy.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditorProxy.vue?vue&type=template&id=50273726&\"\nimport script from \"./EditorProxy.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditorProxy.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EditorProxy.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import axios from 'axios'\r\n\r\nexport default {\r\n loadMenuCache(comCode: string, version: number): Promise {\r\n return axios({\r\n method: 'GET',\r\n url: `/cm/gres/libs/portal-cache/menu-${comCode.toLowerCase()}.json?ver=${version}`,\r\n }).then((res) => res.data)\r\n },\r\n loadQuickMenuCache(comCode: string, version: number): Promise {\r\n return axios({\r\n method: 'GET',\r\n url: `/cm/gres/libs/portal-cache/quick-menu-${comCode.toLowerCase()}.json?ver=${version}`,\r\n }).then((res) => res.data)\r\n },\r\n loadWebpartCache(comCode: string, version: number): Promise {\r\n return axios({\r\n method: 'GET',\r\n url: `/cm/gres/libs/portal-cache/webpart-${comCode.toLowerCase()}.json?ver=${version}`,\r\n }).then((res) => res.data)\r\n },\r\n loadDictionary(lang: string, version: number): Promise {\r\n return axios({\r\n method: 'GET',\r\n url: `/cm/gres/libs/portal-cache/${lang}.json?ver=${version}`,\r\n }).then((res) => res.data)\r\n },\r\n}\r\n","import client from '@/api'\r\n\r\nexport default {\r\n /**\r\n * 대용량 첨부 템플릿을 가져옵니다.\r\n * @param {string} code 대용량 첨부 그룹 코드\r\n * @returns template html string\r\n */\r\n deleteFiles: function(code: string, codeValues: string[], fileNames: string[], fileIdentifiers?:string[]): Promise {\r\n return client.post({\r\n url: '/file/store/delete',\r\n data: { code, codeValues, fileNames, fileIdentifiers },\r\n })\r\n },\r\n\r\n getFiles(code?: string): Promise {\r\n if (code) {\r\n return client.get({\r\n url: `/file/store/${code}`,\r\n })\r\n } else {\r\n return Promise.resolve([])\r\n }\r\n },\r\n\r\n download(code: string, filename: string): void {\r\n const url = `file/download?code=${code}&filename=${filename}`\r\n window.open(url)\r\n },\r\n\r\n downloadCheck(code: string, filename: string): Promise {\r\n return client.get({\r\n // url: `/file/download/check?code=${code}&filename=${filename}`,\r\n url: '/file/download/check',\r\n params: {\r\n code: code,\r\n filename: filename,\r\n },\r\n })\r\n },\r\n\r\n deleteByCode(code: string): Promise {\r\n return client.delete({\r\n url: `/file/store/${code}`,\r\n })\r\n },\r\n\r\n docViewerKeyRequest(payload: any){\r\n return client.post({\r\n url: '/common/outinterface/api/request',\r\n data: payload\r\n })\r\n },\r\n\r\n swapFileSort(payload: any) {\r\n return client.post({\r\n url: `/file/store/swapfilesort?sourceId=${payload.sourceId}&targetId=${payload.targetId}`,\r\n })\r\n }\r\n}\r\n","import api from \"@/api\";\r\n\r\nexport default {\r\n getCheckBookmark(personCode: string, comCode: string, urlPath: string, urlSearch: string, itemId: number) {\r\n return api.get({\r\n url: \"/Common/Gnb/api/bookmark/checkbookmark\",\r\n params: {\r\n PersonCode: personCode,\r\n ComCode: comCode,\r\n UrlPath: urlPath,\r\n UrlSearch: urlSearch,\r\n ItemId: itemId,\r\n },\r\n });\r\n },\r\n deleteBookmark(personCode: string, comCode: string, bookMarkId: number) {\r\n return api.get({\r\n url: \"/Common/Gnb/api/bookmark/delete\",\r\n params: {\r\n PersonCode: personCode,\r\n ComCode: comCode,\r\n BookMarkId: bookMarkId,\r\n },\r\n });\r\n },\r\n insertBookmark(personCode: string, comCode: string, itemId: number, menuText: string, menuTextEn: string, itemType: string, itemUrl: string) {\r\n return api.get({\r\n url: \"/Common/Gnb/api/bookmark/simpleinsert\",\r\n params: {\r\n PersonCode: personCode,\r\n ComCode: comCode,\r\n ItemId: itemId,\r\n MenuText: menuText,\r\n MenuTextEn: menuTextEn,\r\n ItemType: itemType,\r\n ItemUrl: itemUrl,\r\n },\r\n });\r\n },\r\n /** 2024-09-12 개선사항 적용하기 위해 사용되는 api 호출\r\n * param 없음. 새 게시글이 등록 된 BoardId를 가져옴**/\r\n\r\n fetchNewArticleBoardId() {\r\n return api.get({\r\n url: \"/api/BoardApi/Board/newArticleBoard\",\r\n });\r\n },\r\n};\r\n","import api from '@/api'\r\n\r\nexport default {\r\n getTeamsLists(params :basemail.graphOption) : Promise {\r\n return api.post({\r\n url: '/api/ISU_Graph/api/jointeams/',\r\n data : params \r\n })\r\n },\r\n\r\n getchannelsList(params :basemail.graphOption) : Promise {\r\n return api.post({\r\n url: '/api/ISU_Graph/api/channelslist/',\r\n data : params \r\n })\r\n },\r\n\r\n getTeamsChannelsList(params :basemail.graphOption) : Promise {\r\n return api.post({\r\n url: '/api/ISU_Graph/api/teamschannelslist/',\r\n data : params \r\n })\r\n },\r\n\r\n getChannelsDetail(params :basemail.graphOption) : Promise {\r\n return api.post({\r\n url: '/api/ISU_Graph/api/channelsdetail/',\r\n data : params \r\n })\r\n },\r\n\r\n getoneDriveList(params :basemail.graphOption) : Promise {\r\n return api.post({\r\n url: '/api/ISU_Graph/api/onedrivelistitem/',\r\n data : params \r\n })\r\n },\r\n\r\n getoneDriveListChildren(params :basemail.graphOption) : Promise {\r\n return api.post({\r\n url: '/api/ISU_Graph/api/onedrivelistChildrenitem/',\r\n data : params \r\n })\r\n },\r\n\r\n getoneDriveItemsChildren(params :basemail.graphOption) : Promise {\r\n return api.post({\r\n url: '/api/ISU_Graph/api/drivesitemschildren/',\r\n data : params \r\n })\r\n }, \r\n \r\n}\r\n","import api from '@/api'\r\n\r\nexport interface RoleGroup {\r\n roleId: number\r\n comCode: string\r\n subSystemCode: string\r\n roleName: string\r\n roleNameEn: string\r\n roleType: string\r\n roleDescription: string\r\n permissionValue: number\r\n isSpecialRole: boolean\r\n useYN: boolean\r\n createdId: string\r\n createdDate: Date\r\n updatedId: string\r\n updatedDate: Date\r\n actionType: string\r\n}\r\n\r\nexport default {\r\n getRoleGroups(): Promise {\r\n return api.get({\r\n url: '/Common/Role/api'\r\n })\r\n }\r\n}\r\n","import cache from './portal-cache'\r\nimport file from './file'\r\nimport subcontent from './subcontent'\r\nimport attachment from './attachment'\r\nimport role from './role' //권한추가\r\n\r\nexport default { cache, file, subcontent, attachment, role } //role 추가\r\n\r\n","import { ActionTree } from 'vuex'\r\nimport * as types from './types'\r\nimport api from '../api'\r\nimport router from '@/router'\r\n\r\nexport interface LoginActionPayload {\r\n username: string\r\n password: string\r\n}\r\n\r\nexport default >{\r\n async [types.LOGIN](action, payload: LoginActionPayload) {\r\n const result = await api.auth.login(payload.username, payload.password)\r\n action.commit(types.CURRENT, result)\r\n return result\r\n },\r\n\r\n async [types.LOGINEX](action, payload: LoginActionPayload) {\r\n const result = await api.auth.loginex(payload.username)\r\n action.commit(types.CURRENT, result)\r\n return result\r\n },\r\n\r\n async [types.LOGINHINT](action, payload: LoginActionPayload) {\r\n const result = await api.auth.loginHint(payload.username)\r\n action.commit(types.CURRENT, result)\r\n return result\r\n },\r\n\r\n async [types.CURRENT](action, payload) {\r\n const result = await api.account.getCurrentUser()\r\n action.commit(types.CURRENT, result)\r\n return result\r\n },\r\n\r\n async [types.LOGOUT](action, payload) {\r\n const result = await api.auth.logout()\r\n action.commit(types.CURRENT, null)\r\n \r\n if (location.host.indexOf('localhost') > -1 || location.host == 'gwt.isu.co.kr') { \r\n router.push({ name: 'login' })\r\n }\r\n else {\r\n //ADFS logout\r\n // const url = `${window.location.origin}/cm`\r\n // window.location.href = `${url}/account/adfs/adfslogout`\r\n let iframe = document.getElementById('iframe_logout') as HTMLIFrameElement\r\n const url = `${window.location.origin}/cm`\r\n iframe.src = `${url}/account/adfs/adfslogout`\r\n }\r\n return result\r\n },\r\n}\r\n","import { GetterTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.CURRENT](state) {\r\n return state.current\r\n },\r\n\r\n [types.USER](state) {\r\n return state.current?.user\r\n },\r\n}\r\n","import { MutationTree } from 'vuex'\r\nimport * as types from './types'\r\n\r\nexport default >{\r\n [types.CURRENT](state, payload: account.TCurrent) {\r\n state.current = payload\r\n },\r\n}\r\n","import actions from './actions'\r\nimport getters from './getters'\r\nimport mutations from './mutations'\r\n\r\n// initial state\r\nconst state: account.state.AccountState = {\r\n current: null,\r\n}\r\n\r\nexport default {\r\n state,\r\n actions,\r\n getters,\r\n mutations,\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('MobileContainer',{on:{\"selectItem\":_vm.selectItem}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.departments)?_c('DepartmentList',{attrs:{\"items\":_vm.departments,\"headerField\":\"deptName\",\"childrenField\":\"children\",\"hasChildrenField\":function (item) { return item.hasChildren === 'TRUE'; }},on:{\"selectItem\":_vm.selectItem,\"select\":_vm.toggleDepartmentAsync}}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Watch } from 'vue-property-decorator';\r\n// components\r\nimport { DepartmentList } from '../components';\r\nimport api from '@orgmap/api';\r\nimport { mapGetters } from 'vuex';\r\nimport * as accountTypes from '@account/store/types'\r\n@Component({\r\n name: 'MobileContainer',\r\n components: { DepartmentList },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER\r\n })\r\n }\r\n})\r\nexport default class MobileContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n departments: orgmap.TDepartmentTreeItem[] = []\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User; \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectItem(dept: any) {\r\n this.$emit('selectItem', dept);\r\n }\r\n\r\n /**\r\n * 자신의 부서까지 트리를 확장하고 부서원 목록을 표시합니다.\r\n */\r\n getUserDept() {\r\n api.hr.getDeptPath({\r\n comCode: this.user.comCode,\r\n deptCode: this.user.deptCode,\r\n })\r\n .then(async (res) => {\r\n var pathArr = res.items[0].path.split('/').slice(1)\r\n var findDept: orgmap.TDepartmentTreeItem[] = []\r\n\r\n for (var path of pathArr) {\r\n var dept: orgmap.TDepartmentTreeItem | null = null\r\n dept = this.departments.filter(\r\n (x: orgmap.TDepartmentTreeItem) => x.deptCode === path\r\n )[0]\r\n\r\n if (!dept && findDept.length) {\r\n dept = findDept.filter((x: orgmap.TDepartmentTreeItem) => x.deptCode === path)[0]\r\n }\r\n\r\n if (dept) {\r\n console.log('dept', dept)\r\n await this.toggleDepartmentAsync(dept)\r\n findDept = []\r\n dept?.children?.map((x) => {\r\n findDept.push(x)\r\n })\r\n }\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * 부서 노드를 토글합니다.\r\n * 부서를 확장하여 하위 부서 및 사용자 목록을 표시합니다.\r\n * @param dept 클릭한 부서 객체\r\n */\r\n async toggleDepartmentAsync(dept: orgmap.TDepartmentTreeItem) {\r\n dept.expanded = !dept.expanded\r\n if (!dept.users) {\r\n const result = await api.hr.getEmployeeList({\r\n level: 2,\r\n comCode: dept.comCode,\r\n deptCode: dept.deptCode,\r\n parentDeptCode: '',\r\n } as orgmap.DepartmentOption)\r\n dept.users = result.items.map((user: any) => ({\r\n ...user,\r\n selected: false,\r\n }))\r\n }\r\n if (!dept.children) {\r\n dept.children = await this.getOrgTreeAsync(dept.deptCode, dept.comCode)\r\n }\r\n }\r\n\r\n /**\r\n * 부서 트리를 로드합니다.\r\n */\r\n async getOrgTreeAsync(\r\n parentDeptCode: string = '',\r\n compCode: string\r\n ): Promise> {\r\n if (!compCode) compCode = 'FL'\r\n const defaultDeptState = {\r\n expanded: false,\r\n selected: false,\r\n children: null,\r\n users: null,\r\n }\r\n const result = await api.hr.getOrgTree({\r\n level: 2,\r\n comCode: compCode,\r\n deptCode: '',\r\n parentDeptCode: parentDeptCode,\r\n })\r\n console.log('result', result)\r\n const mapResult = (dept: any) => ({ ...dept, ...defaultDeptState })\r\n const departments = result?.map(mapResult) as Array\r\n console.log('departments', departments)\r\n return departments.length ? this.flatToHierarchy(departments) : []\r\n }\r\n\r\n /**\r\n * 플랫한 구조의 데이터를 트리 구조로 변환합니다.\r\n * @param flat 플랫한 구조의 데이터\r\n * @returns 트리 구조로 정재된 데이터\r\n */\r\n flatToHierarchy(flat: Array) {\r\n console.log('flat', flat)\r\n var roots: any[] = []\r\n var all: any = {}\r\n var flatArr: Array = []\r\n for (var item of flat) {\r\n all[item.id] = {\r\n ...item,\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n } as orgmap.TDepartmentTreeItem\r\n flatArr.push(all[item.id])\r\n }\r\n flatArr.forEach(function(item) {\r\n console.log('item', item)\r\n const parentCode = item.parentDeptCode\r\n if (!parentCode) {\r\n roots.push(item)\r\n } else if (parentCode in all) {\r\n var p = all[parentCode] as orgmap.TDepartmentTreeItem\r\n if (!('children' in p) || !p.children) {\r\n p.children = []\r\n }\r\n p.children.push(item)\r\n } else {\r\n roots.push(item)\r\n }\r\n })\r\n\r\n return roots\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async created() {\r\n this.departments = await this.getOrgTreeAsync('', this.user.comCode)\r\n this.getUserDept()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MobileContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MobileContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileContainer.vue?vue&type=template&id=69a6b088&\"\nimport script from \"./MobileContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./MobileContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n// components\r\nimport MobileContainer from '../containers/MobileContainer.vue';\r\n\r\n@Component({\r\n name: 'MobileView',\r\n components: { MobileContainer },\r\n})\r\nexport default class MobileView extends Vue {\r\n selectItem(item: any) {\r\n this.$emit('selectItem', item);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MobileView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MobileView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileView.vue?vue&type=template&id=1ff577f0&\"\nimport script from \"./MobileView.ts?vue&type=script&lang=ts&\"\nexport * from \"./MobileView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { FlowFile } from '@appbase/libs/flowjs'\r\n\r\nexport type ConvertToFlowFileInfo = {\r\n /** 파일 이름 */\r\n name: string\r\n /** 파일 크기 (byte) */\r\n size: number\r\n uniqueIdentifier: string\r\n type: string\r\n}\r\n\r\n/**\r\n * Flow에서 동작하기 위한 최소한의 구성\r\n */\r\nconst initialFlowFileInfo = {\r\n abort: () => {},\r\n percent: 100,\r\n status: 'succeed',\r\n selected: false\r\n}\r\n\r\nconst flowHelper = {\r\n readablizeBytes(bytes: number, digits: number = 2) {\r\n var s = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']\r\n var e = Math.floor(Math.log(bytes) / Math.log(1024))\r\n return (bytes / Math.pow(1024, e)).toFixed(digits) + ' ' + s[e]\r\n },\r\n secondsToStr(time: number) {\r\n function numberEnding(value: number) {\r\n return value > 1 ? 's' : ''\r\n }\r\n var years = Math.floor(time / 31536000)\r\n if (years) return years + ' year' + numberEnding(years)\r\n\r\n var days = Math.floor((time %= 31536000) / 86400)\r\n if (days) return days + ' day' + numberEnding(days)\r\n\r\n var hours = Math.floor((time %= 86400) / 3600)\r\n if (hours) return hours + ' hour' + numberEnding(hours)\r\n\r\n var minutes = Math.floor((time %= 3600) / 60)\r\n if (minutes) return minutes + ' minute' + numberEnding(minutes)\r\n\r\n var seconds = time % 60\r\n return seconds + ' second' + numberEnding(seconds)\r\n },\r\n\r\n /**\r\n * 직접 첨부한 파일이 아닌 서버에서 파일목록을 가져올 때 기본적으로\r\n * 가져야하는 속성을 포함하여 FlowFile를 만들어냅니다.\r\n * @param data\r\n * @returns instance of FlowFile\r\n */\r\n convertToFlowFile(data: ConvertToFlowFileInfo): FlowFile {\r\n //name, size\r\n // abort() 목록에서 삭제 시 호출되는 함수\r\n return {\r\n ...Object.create(null),\r\n ...initialFlowFileInfo,\r\n ...data,\r\n }\r\n },\r\n}\r\n\r\nexport default flowHelper\r\n","export const getGUID = function(upperCase: boolean = true): string {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1)\r\n }\r\n\r\n var guid = s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4()\r\n\r\n if (upperCase) {\r\n return guid.toUpperCase()\r\n } else {\r\n return guid.toLowerCase()\r\n }\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayName.vue?vue&type=style&index=0&id=76b34a56&scoped=true&lang=css&\"","import { Flow } from './Flow'\r\nimport { FlowChunk } from './FlowChunk'\r\ndeclare global {\r\n interface File {\r\n [key: string]: any\r\n fileName: string\r\n relativePath: string\r\n slice: Function\r\n mozSlice: Function\r\n webkitSlice: Function\r\n }\r\n interface Blob {\r\n webkitSlice: Function\r\n mozSlice: Function\r\n }\r\n interface FileSystemEntry {\r\n createReader: () => any\r\n }\r\n}\r\n/**\r\n * FlowFile class\r\n * @name FlowFile\r\n * @param {Flow} flowObj\r\n * @param {File} file\r\n * @param {string} uniqueIdentifier\r\n * @constructor\r\n */\r\nexport class FlowFile {\r\n /**\r\n * Reference to parent Flow instance\r\n * @type {Flow}\r\n */\r\n flowObj!: Flow\r\n\r\n /**\r\n * Reference to file\r\n * @type {File}\r\n */\r\n file!: File\r\n\r\n /**\r\n * File name. Some confusion in different versions of Firefox\r\n * @type {string}\r\n */\r\n name!: string\r\n\r\n /**\r\n * File size\r\n * @type {number}\r\n */\r\n size!: number\r\n\r\n /**\r\n * Relative file path\r\n * @type {string}\r\n */\r\n relativePath!: string\r\n\r\n /**\r\n * File unique identifier\r\n * @type {string}\r\n */\r\n uniqueIdentifier!: string\r\n\r\n /**\r\n * Size of Each Chunk\r\n * @type {number}\r\n */\r\n chunkSize: number = 0\r\n\r\n /**\r\n * List of chunks\r\n * @type {Array.}\r\n */\r\n chunks: FlowChunk[] = []\r\n\r\n /**\r\n * Indicated if file is paused\r\n * @type {boolean}\r\n */\r\n paused: boolean = false\r\n\r\n /**\r\n * Indicated if file has encountered an error\r\n * @type {boolean}\r\n */\r\n error: boolean = false\r\n\r\n /**\r\n * Average upload speed\r\n * @type {number}\r\n */\r\n averageSpeed: number = 0\r\n\r\n /**\r\n * Current upload speed\r\n * @type {number}\r\n */\r\n currentSpeed: number = 0\r\n\r\n /**\r\n * upload percentages\r\n */\r\n percent: number = 0\r\n\r\n /**\r\n * is selected\r\n */\r\n selected: boolean = false\r\n\r\n /**\r\n * Date then progress was called last time\r\n * @type {number}\r\n * @private\r\n */\r\n private _lastProgressCallback: number = Date.now()\r\n\r\n /**\r\n * Previously uploaded file size\r\n * @type {number}\r\n * @private\r\n */\r\n private _prevUploadedSize: number = 0\r\n\r\n /**\r\n * Holds previous progress\r\n * @type {number}\r\n * @private\r\n */\r\n private _prevProgress: number = 0\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O N S T R U C T O R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n constructor(flowObj: Flow, file: File, uniqueIdentifier: string) {\r\n this.flowObj = flowObj\r\n this.file = file\r\n this.name = file.fileName || file.name\r\n this.size = file.size\r\n this.relativePath =\r\n file.relativePath || file.webkitRelativePath || this.name\r\n this.uniqueIdentifier =\r\n uniqueIdentifier === undefined\r\n ? flowObj.generateUniqueIdentifier(file)\r\n : uniqueIdentifier\r\n this.bootstrap()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R I V A T E M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: P U B L I C M E T H O D S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * Update speed parameters\r\n * @link http://stackoverflow.com/questions/2779600/how-to-estimate-download-time-remaining-accurately\r\n * @function\r\n */\r\n measureSpeed() {\r\n var timeSpan = Date.now() - this._lastProgressCallback\r\n if (!timeSpan) {\r\n return\r\n }\r\n var smoothingFactor = this.flowObj.opts.speedSmoothingFactor\r\n var uploaded = this.sizeUploaded()\r\n // Prevent negative upload speed after file upload resume\r\n this.currentSpeed = Math.max(\r\n ((uploaded - this._prevUploadedSize) / timeSpan) * 1000,\r\n 0\r\n )\r\n this.averageSpeed =\r\n smoothingFactor * this.currentSpeed +\r\n (1 - smoothingFactor) * this.averageSpeed\r\n this._prevUploadedSize = uploaded\r\n }\r\n\r\n /**\r\n * For internal usage only.\r\n * Callback when something happens within the chunk.\r\n * @function\r\n * @param {FlowChunk} chunk\r\n * @param {string} event can be 'progress', 'success', 'error' or 'retry'\r\n * @param {string} [message]\r\n */\r\n chunkEvent(chunk: FlowChunk, event: string, message: string) {\r\n switch (event) {\r\n case 'progress':\r\n if (\r\n Date.now() - this._lastProgressCallback <\r\n this.flowObj.opts.progressCallbacksInterval\r\n ) {\r\n break\r\n }\r\n this.measureSpeed()\r\n this.flowObj.fire('fileProgress', this, chunk)\r\n this.flowObj.fire('progress')\r\n this._lastProgressCallback = Date.now()\r\n break\r\n case 'error':\r\n this.error = true\r\n this.abort(true)\r\n this.flowObj.fire('fileError', this, message, chunk)\r\n this.flowObj.fire('error', message, this, chunk)\r\n break\r\n case 'success':\r\n if (this.error) {\r\n return\r\n }\r\n this.measureSpeed()\r\n this.flowObj.fire('fileProgress', this, chunk)\r\n this.flowObj.fire('progress')\r\n this._lastProgressCallback = Date.now()\r\n if (this.isComplete()) {\r\n this.currentSpeed = 0\r\n this.averageSpeed = 0\r\n this.flowObj.fire('fileSuccess', this, message, chunk)\r\n }\r\n break\r\n case 'retry':\r\n this.flowObj.fire('fileRetry', this, chunk)\r\n break\r\n }\r\n }\r\n\r\n /**\r\n * Pause file upload\r\n * @function\r\n */\r\n pause(): void {\r\n this.paused = true\r\n this.abort()\r\n }\r\n\r\n /**\r\n * Resume file upload\r\n * @function\r\n */\r\n resume(): void {\r\n this.paused = false\r\n this.flowObj.upload()\r\n }\r\n\r\n /**\r\n * Abort current upload\r\n * @function\r\n */\r\n abort(reset: boolean = false) {\r\n this.currentSpeed = 0\r\n this.averageSpeed = 0\r\n var chunks = this.chunks\r\n if (reset) {\r\n this.chunks = []\r\n }\r\n Flow.each(\r\n chunks,\r\n (c: FlowChunk) => {\r\n if (c.status() === 'uploading') {\r\n c.abort()\r\n this.flowObj.uploadNextChunk()\r\n }\r\n },\r\n this\r\n )\r\n }\r\n\r\n /**\r\n * Cancel current upload and remove from a list\r\n * @function\r\n */\r\n cancel() {\r\n this.flowObj.removeFile(this)\r\n }\r\n\r\n /**\r\n * Retry aborted file upload\r\n * @function\r\n */\r\n retry() {\r\n this.bootstrap()\r\n this.flowObj.upload()\r\n }\r\n\r\n /**\r\n * Clear current chunks and slice file again\r\n * @function\r\n */\r\n bootstrap() {\r\n if (typeof this.flowObj.opts.initFileFn === 'function') {\r\n var ret = this.flowObj.opts.initFileFn(this)\r\n if (ret && 'then' in ret) {\r\n ret.then(this._bootstrap.bind(this))\r\n return\r\n }\r\n }\r\n this._bootstrap()\r\n }\r\n\r\n _bootstrap() {\r\n this.abort(true)\r\n this.error = false\r\n // Rebuild stack of chunks from file\r\n this._prevProgress = 0\r\n var round = this.flowObj.opts.forceChunkSize ? Math.ceil : Math.floor\r\n this.chunkSize = Flow.evalOpts(this.flowObj.opts.chunkSize, this)\r\n var chunks = Math.max(round(this.size / this.chunkSize), 1)\r\n for (var offset = 0; offset < chunks; offset++) {\r\n this.chunks.push(new FlowChunk(this.flowObj, this, offset))\r\n }\r\n }\r\n\r\n /**\r\n * Get current upload progress status\r\n * @function\r\n * @returns {number} from 0 to 1\r\n */\r\n progress() {\r\n if (this.error) {\r\n return 1\r\n }\r\n if (this.chunks.length === 1) {\r\n this._prevProgress = Math.max(\r\n this._prevProgress,\r\n this.chunks[0].progress()\r\n )\r\n return this._prevProgress\r\n }\r\n // Sum up progress across everything\r\n var bytesLoaded = 0\r\n Flow.each(this.chunks, (c: FlowChunk) => {\r\n // get chunk progress relative to entire file\r\n bytesLoaded += c.progress() * (c.endByte - c.startByte)\r\n })\r\n var percent = bytesLoaded / this.size\r\n // We don't want to lose percentages when an upload is paused\r\n this._prevProgress = Math.max(\r\n this._prevProgress,\r\n percent > 0.9999 ? 1 : percent\r\n )\r\n return this._prevProgress\r\n }\r\n\r\n /**\r\n * Indicates if file is being uploaded at the moment\r\n * @function\r\n * @returns {boolean}\r\n */\r\n isUploading() {\r\n var uploading = false\r\n Flow.each(this.chunks, (chunk: FlowChunk) => {\r\n if (chunk.status() === 'uploading') {\r\n uploading = true\r\n return false\r\n }\r\n })\r\n return uploading\r\n }\r\n\r\n /**\r\n * Indicates if file is has finished uploading and received a response\r\n * @function\r\n * @returns {boolean}\r\n */\r\n isComplete() {\r\n var outstanding = false\r\n Flow.each(this.chunks, (chunk: FlowChunk) => {\r\n var status = chunk.status()\r\n if (\r\n status === 'pending' ||\r\n status === 'uploading' ||\r\n status === 'reading' ||\r\n chunk.preprocessState === 1 ||\r\n chunk.readState === 1\r\n ) {\r\n outstanding = true\r\n return false\r\n }\r\n })\r\n return !outstanding\r\n }\r\n\r\n /**\r\n * Count total size uploaded\r\n * @function\r\n * @returns {number}\r\n */\r\n sizeUploaded() {\r\n var size = 0\r\n Flow.each(this.chunks, (chunk: FlowChunk) => {\r\n size += chunk.sizeUploaded()\r\n })\r\n return size\r\n }\r\n\r\n /**\r\n * Returns remaining time to finish upload file in seconds. Accuracy is based on average speed.\r\n * If speed is zero, time remaining will be equal to positive infinity `Number.POSITIVE_INFINITY`\r\n * @function\r\n * @returns {number}\r\n */\r\n timeRemaining() {\r\n if (this.paused || this.error) {\r\n return 0\r\n }\r\n var delta = this.size - this.sizeUploaded()\r\n if (delta && !this.averageSpeed) {\r\n return Number.POSITIVE_INFINITY\r\n }\r\n if (!delta && !this.averageSpeed) {\r\n return 0\r\n }\r\n return Math.floor(delta / this.averageSpeed)\r\n }\r\n\r\n /**\r\n * Get file type\r\n * @function\r\n * @returns {string}\r\n */\r\n getType() {\r\n return this.file.type && this.file.type.split('/')[1]\r\n }\r\n\r\n /**\r\n * Get file extension\r\n * @function\r\n * @returns {string}\r\n */\r\n getExtension() {\r\n return this.name\r\n .substr((~-this.name.lastIndexOf('.') >>> 0) + 2)\r\n .toLowerCase()\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────────────── I ──────────\r\n // :::::: S T A T I C M E T H O D S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────────────\r\n //\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"align-center loading-bar-wrapper\"},[_vm._m(0),_c('span',{staticClass:\"dp-block b\"},[_vm._v(_vm._s(_vm.message))])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"lds-bar\"},[_c('div'),_c('div'),_c('div')])}]\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadingBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadingBar.vue?vue&type=template&id=0fec5931&\"\nimport script from \"./LoadingBar.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadingBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoadingBar.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('GnbTop'),(false)?_c('GnbLeft'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"sidenav-float-wrap\"}},[_c('div',{staticClass:\"sidenav-mask\"}),_c('div',{staticClass:\"sidenav-tab-wrap\"},[_c('div',{staticClass:\"sidenav-tab-inner\"},[_c('ul',{staticClass:\"sidenav-tabs\"},_vm._l((_vm.menuItems),function(item){return _c('GnbItem',{key:item.menuId,attrs:{\"menuItem\":item,\"topMenuId\":_vm.topMenuId,\"userLang\":_vm.userLang},on:{\"onMenuClick\":function (item) { return _vm.fnMenuClick(item); }}})}),1),_c('ul',{staticClass:\"bottom\"},[_c('li',{staticClass:\"sidenav-tab\"},[_c('a',{on:{\"click\":function($event){return _vm.fnSystemSetting()}}},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/sidenav_ico_setting.png\"}}),_c('div',{staticClass:\"ft-s ft-gray\"},[_vm._v(_vm._s(_vm.$t('W_Common_Settings')))])])]),(_vm.isAdmin)?_c('li',{staticClass:\"sidenav-tab\"},[_c('a',{on:{\"click\":function($event){return _vm.fnAdminMenu()}}},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/sidenav_ico_setting.png\"}}),_c('div',{staticClass:\"ft-s ft-gray\"},[_vm._v(_vm._s(_vm.$t('관리자')))])])]):_vm._e(),_c('li',{staticClass:\"sidenav-tab\"},[_c('a',{on:{\"click\":_vm.handleLogoff}},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/sidenav_ico_logout.png\"}}),_c('div',{staticClass:\"ft-s ft-gray\"},[_vm._v(_vm._s(_vm.$t('W_Common_Logout')))])])])])]),(_vm.isDisplaySubMenu)?_c('div',{staticClass:\"sidenav-tab-content\",attrs:{\"id\":\"sideNav\"}},[_c('GnbItemSub',{attrs:{\"menuItems\":_vm.subMenuItems,\"topMenuName\":_vm.topMenuName,\"userLang\":_vm.userLang},on:{\"onMenuClick\":function (item) { return _vm.fnMenuClick(item); },\"onCloseSubMenu\":function($event){return _vm.fnCloseSubMenu()}}})],1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:['sidenav-tab', (_vm.isSelected ? 'active' : '')]},[_c('a',{on:{\"click\":function($event){return _vm.$emit('onMenuClick', _vm.menuItem)}}},[(_vm.menuItem.imageUrl != '')?_c('img',{attrs:{\"src\":_vm.menuItem.imageUrl}}):_vm._e(),_c('div',{staticClass:\"ft-s ft-gray\"},[_vm._v(_vm._s(_vm.fnGetMenuName(_vm.menuItem)))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n\r\n@Component({\r\n name: 'gnb-item'\r\n})\r\nexport default class GnbItem extends Vue {\r\n @Prop({type:Object}) menuItem!: appbase.cache.TMenuItem\r\n @Prop({type:Number}) topMenuId!: number\r\n @Prop({type:String}) userLang!: string\r\n\r\n @Watch('topMenuId')\r\n get isSelected(){\r\n return this.menuItem.menuId === this.topMenuId; \r\n }\r\n\r\n fnGetMenuName(menuItem: appbase.cache.TMenuItem){\r\n return (this.userLang && this.userLang.toLowerCase() == 'ko-kr' ? menuItem.menuName : menuItem.menuNameEn)\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbItem.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbItem.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbItem.vue?vue&type=template&id=567bcffc&\"\nimport script from \"./GnbItem.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbItem.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidenav-tab-panel\",staticStyle:{\"display\":\"block\"}},[_c('div',{staticClass:\"sidenav-inner\"},[_c('div',{staticClass:\"sidenav-scroll-no\"},[_c('div',{staticClass:\"sidenav-subtitle\"},[_c('div',{staticClass:\"mr-auto ellipsis\"},[_c('h6',{staticClass:\"ellipsis\"},[_vm._v(_vm._s(_vm.topMenuName))])]),_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"btn sm-btn btn-gray\",attrs:{\"id\":\"sideNavClose\"},on:{\"click\":function($event){return _vm.$emit('onCloseSubMenu')}}},[_c('i',{staticClass:\"icon-fux-close\"})])])])]),_c('div',{staticClass:\"sidenav-scroll\"},_vm._l((_vm.menuItems),function(item){return _c('GnbItemSubItem',{key:item.menuId,attrs:{\"item\":item,\"userLang\":_vm.userLang},on:{\"expand\":function (item) { return _vm.fnExpandItem(item); },\"itemclick\":function (item) { return _vm.fnMenuClick(item); }}})}),1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['mn-node', (_vm.customClass)]},[_c('div',{staticClass:\"mn-top\"},[(_vm.item.hasChildren)?_c('span',{staticClass:\"nav-folded\"},[_c('i',{staticClass:\"icon-fux-add-square\",attrs:{\"id\":'i_GnbItem_' + _vm.item.menuId},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('expand', _vm.item)}}})]):_c('span',{staticClass:\"nav-item\"},[_c('i',{staticClass:\"nav-bullet\"})]),_c('span',{staticClass:\"menu-name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('itemclick', _vm.item)}}},[_c('a',{staticClass:\"name\"},[_vm._v(_vm._s((_vm.userLang.toLowerCase() == 'ko-kr' ? _vm.item.menuName : _vm.item.menuNameEn)))])])]),(_vm.item.hasChildren)?_c('div',{staticClass:\"mn-sub\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":'div_GnbItem_sub_' + _vm.item.menuId}},_vm._l((_vm.item.children),function(child){return _c('gnbsub-item',{key:child.menuId,attrs:{\"item\":child,\"userLang\":_vm.userLang},on:{\"expand\":function (item) { return _vm.$emit('expand', item); },\"itemclick\":function (item) { return _vm.$emit('itemclick', item); }}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n name: 'gnbsub-item'\r\n})\r\nexport default class GnbItemSubItem extends Vue {\r\n @Prop({type:Object}) item!: appbase.cache.TMenuItem;\r\n @Prop({type:String}) userLang!: string;\r\n\r\n get customClass(){\r\n if (this.item.customClass){\r\n return this.item.customClass;\r\n }\r\n return \"\"; \r\n } \r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbItemSubItem.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbItemSubItem.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbItemSubItem.vue?vue&type=template&id=f59081a8&\"\nimport script from \"./GnbItemSubItem.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbItemSubItem.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\nimport menuHelper from '@appbase/util/menu-helper'\r\nimport GnbItemSubItem from '@gnb/components/GlobalNavigationBarLeft/GnbItemSubItem.vue'\r\n\r\n@Component({\r\n components: { GnbItemSubItem }\r\n})\r\nexport default class GnbIUtemSub extends Vue {\r\n @Prop({type: Array}) menuItems!: appbase.cache.TMenuItem[]\r\n @Prop({type:String}) topMenuName!: string\r\n @Prop({type:String}) userLang!: string\r\n selMenuId: number = 0;\r\n\r\n fnExpandItem(item: appbase.cache.TMenuItem){\r\n let iObj = document.getElementById('i_GnbItem_' + item.menuId)\r\n let subObj = document.getElementById('div_GnbItem_sub_' + item.menuId)\r\n\r\n if (iObj) {\r\n if (iObj.classList.contains('icon-fux-minus-square')) {\r\n iObj.classList.remove('icon-fux-minus-square')\r\n iObj.classList.add('icon-fux-add-square')\r\n subObj?.setAttribute('style', 'display:none')\r\n } else {\r\n iObj.classList.remove('icon-fux-add-square')\r\n iObj.classList.add('icon-fux-minus-square')\r\n subObj?.removeAttribute('style')\r\n }\r\n }\r\n }\r\n\r\n fnMenuClick(item: appbase.cache.TMenuItem){\r\n if (item && item.targetUrl == '' && item.hasChildren){\r\n this.fnExpandItem(item);\r\n }\r\n else{\r\n this.$emit('onMenuClick', item);\r\n }\r\n }\r\n\r\n created()\r\n {\r\n if (this.$route.query.MENUID){\r\n let menuId = Number(this.$route.query.MENUID)\r\n let subMenuId: number = menuHelper.getSubMenuId(menuId);\r\n if (subMenuId != 0)\r\n {\r\n this.selMenuId = subMenuId;\r\n }\r\n }\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbItemSub.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbItemSub.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbItemSub.vue?vue&type=template&id=27982c4d&\"\nimport script from \"./GnbItemSub.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbItemSub.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport menuHelper from '@appbase/util/menu-helper'\r\nimport modalHelper from '@appbase/util/modal-helper'\r\n// components\r\nimport GnbItem from '@gnb/components/GlobalNavigationBarLeft/GnbItem.vue'\r\nimport GnbItemSub from '@gnb/components/GlobalNavigationBarLeft/GnbItemSub.vue'\r\nimport PreferenceModal from '@gnb/components/Preference/PreferenceModal.vue'\r\n\r\n@Component({\r\n components: {\r\n GnbItem,\r\n GnbItemSub,\r\n PreferenceModal,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n userCurrent: accountTypes.CURRENT,\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n logout: accountTypes.LOGOUT,\r\n }),\r\n },\r\n})\r\nexport default class GnbLeft extends Vue {\r\n userCurrent!: account.TCurrent\r\n menuItems: appbase.cache.TMenuItem[] = []\r\n subMenuItems: appbase.cache.TMenuItem[] = []\r\n menuPermission: account.TPermissionMenu[] = []\r\n isAdmin: boolean = false\r\n isDisplaySubMenu: boolean = false\r\n topMenuName: string = ''\r\n topMenuId: number = 0\r\n userLang: string = ''\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n logout!: () => Promise\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // 메뉴 클릭 이벤트\r\n fnMenuClick(item: appbase.cache.TMenuItem) {\r\n if (item) {\r\n // Menu URL이 있는 경우 Menu 이동\r\n if (item.targetUrl) {\r\n this.fnCloseSubMenu()\r\n menuHelper.next(item)\r\n } else {\r\n // 1 Level 메뉴 중 URL이 없고 하위 메뉴가 존재할 경우 Sub Menu 표시\r\n if (item.parentMenuId == 0 && item.hasChildren && item.children.length > 0) {\r\n // Submenu가 표시중이며, 동일한 1 Level Menu를 클릭할 경우 Submenu를 닫아준다.\r\n if (this.isDisplaySubMenu && this.subMenuItems[0].parentMenuId == item.menuId){\r\n this.fnCloseSubMenu()\r\n }\r\n else{\r\n this.subMenuItems = item.children\r\n this.isDisplaySubMenu = true\r\n this.topMenuName = (this.userLang && this.userLang == 'ko-KR' ? item.menuName : item.menuNameEn)\r\n }\r\n } else {\r\n // URL 값은 없으나, 하위 메뉴의 첫 번째 Menu가 Target URL이 존재하는 경우 해당 URL로 이동\r\n if (item.hasChildren && item.children.length > 0 && item.children[0].targetUrl) {\r\n this.fnCloseSubMenu()\r\n menuHelper.next(item.children[0])\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n fnCloseSubMenu() {\r\n this.isDisplaySubMenu = false\r\n this.subMenuItems = []\r\n }\r\n\r\n // 환경설정\r\n fnSystemSetting() {\r\n modalHelper.show({ component: PreferenceModal, force: true, value: { aaa: 'aaa' } })\r\n }\r\n // 관리자 페이지\r\n fnAdminMenu() {\r\n // TODO : 관리자 페이지 Link 변경 필요\r\n document.location.href = 'http://175.106.97.142/admin'\r\n }\r\n\r\n // 메뉴 데이터 생성\r\n fnMakeMenuItem(\r\n childItems: appbase.cache.TMenuItem[],\r\n item: appbase.cache.TMenuItem,\r\n itemType: string\r\n ) {\r\n for (let i = 0; i < childItems.length; i++) {\r\n let isPermission =\r\n (itemType == 'S' ? true : childItems[i].isTopVisible) &&\r\n this.menuPermission.find((x) => x.id == childItems[i].menuId)\r\n ? true\r\n : false && childItems[i].callType == 'USER'\r\n\r\n if (isPermission && childItems[i].hasChildren) {\r\n this.fnMakeMenuItem(childItems[i].children, childItems[i], itemType)\r\n }\r\n\r\n if (i == 0) {\r\n item.children = []\r\n item.hasChildren = false\r\n }\r\n if (isPermission) {\r\n item.children.push(childItems[i])\r\n }\r\n }\r\n\r\n if (item.children.length > 0) {\r\n item.hasChildren = true\r\n }\r\n }\r\n\r\n // 메뉴 영역 밖에서 클릭 시 SubMenu 숨김 처리\r\n onClickEventCheck(e: Event) {\r\n let element = this.$el\r\n let eventTarget = e.target as HTMLElement\r\n if (element !== eventTarget && !element.contains(eventTarget) && this.isDisplaySubMenu) {\r\n this.fnCloseSubMenu()\r\n }\r\n }\r\n\r\n handleLogoff() {\r\n this.logout();\r\n }\r\n\r\n @Watch('$route.query')\r\n fnChangeUrl(){\r\n this.topMenuId = 0\r\n if (this.$route.query.MENUID){\r\n let paramMenuId = Number(this.$route.query.MENUID);\r\n let menuItem = menuHelper.getLeftMenuList(paramMenuId);\r\n if (menuItem){\r\n this.topMenuId = menuItem.menuId\r\n }\r\n }\r\n }\r\n\r\n created() {\r\n const excepts = ['MYPAGE']\r\n const { menu } = this.portalCache\r\n let mItems: appbase.cache.TMenuItem[] = menuHelper.setMenuParam(menu.items, this.userCurrent.user)\r\n this.menuPermission = this.userCurrent.permissions.menues\r\n this.isAdmin =\r\n this.userCurrent.permissions.isSuperAdmin || this.userCurrent.permissions.isCompanyManager\r\n ? true\r\n : false\r\n\r\n for (let i = 0; i < mItems.length; i++) {\r\n let mItem: appbase.cache.TMenuItem = mItems[i]\r\n if (\r\n mItem.isTopVisible == true &&\r\n !excepts.includes(mItem.callType) &&\r\n this.menuPermission.find((x) => x.id == mItem.menuId)\r\n ) {\r\n this.menuItems.push(mItem)\r\n if (mItem.hasChildren) {\r\n this.fnMakeMenuItem(mItem.children, mItem, 'M')\r\n }\r\n }\r\n }\r\n\r\n // 사용자 언어\r\n this.userLang = this.userCurrent.userConfig.language\r\n\r\n document.addEventListener('click', this.onClickEventCheck)\r\n // URL 변경 체크\r\n this.fnChangeUrl();\r\n }\r\n\r\n destroyed() {\r\n document.removeEventListener('click', this.onClickEventCheck)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbLeft.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbLeft.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbLeft.vue?vue&type=template&id=942f2694&\"\nimport script from \"./GnbLeft.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbLeft.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"header\"}},[_c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"header-item align-left\"},[(!_vm.isMailOnly)?_c('a',{staticClass:\"menu-list-open\",on:{\"click\":function($event){return _vm.fnOpenGnbSiteMap('O')}}},[_c('i',{staticClass:\"icon-fux-app\"})]):_vm._e(),_c('h1',{staticClass:\"logo\"},[(!_vm.isMailOnly)?_c('a',{staticClass:\"index\",on:{\"click\":function($event){return _vm.fnGoHome()}}},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/logo_isu.png\"}})]):_c('a',{staticClass:\"index\"},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/logo_isu.png\"}})])])]),(!_vm.isMailOnly)?_c('div',{staticClass:\"header-item align-center\"},[_c('ul',{staticClass:\"navigation\"},_vm._l((_vm.menuItems),function(menu,index){return _c('li',{key:menu.menuId,staticClass:\"depth-1\"},[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.fnGnbClick(menu)}}},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.userLang == 'ko-KR' ? menu.menuName : menu.menuNameEn))])]),(menu.hasChildren && menu.baseUrl != '/Workflow')?_c('div',{staticClass:\"sub-navigation\"},[_c('div',{staticClass:\"inner\",style:(index == 0 ? 'padding-left:206px;' : (index == 3 ? 'padding-left:502px;' : (index == 4 ? 'padding-left:604px;' : '')))},[_c('div',{staticClass:\"wrap\"},[_c('SubGlobalNavigationBar',{attrs:{\"menuItems\":menu.children,\"menuLevel\":2,\"userLang\":_vm.userLang},on:{\"gnbclick\":function (item) { return _vm.fnGnbClick(item); }}})],1),(menu.imageUrl != '')?_c('div',{staticClass:\"sub-navigation-bnr\"},[_c('img',{attrs:{\"src\":menu.imageUrl}})]):_vm._e()]),_c('div',{staticClass:\"navigation-mask\"})]):_vm._e()])}),0)]):_vm._e(),_c('div',{staticClass:\"header-item align-right\"},[(!_vm.isMailOnly)?_c('ul',{staticClass:\"item-content flex-end\"},[(_vm.userCurrent && _vm.userCurrent.user && _vm.userCurrent.user.concurrentUsers)?_c('li',{staticClass:\"userinfo\"},[_c('span',{staticClass:\"name username\"},[_vm._v(_vm._s(_vm.fnUserDisplay(_vm.userCurrent.user, 0)))]),_c('span',{staticClass:\"name\"},[_vm._v(_vm._s((_vm.fnUserDisplay(_vm.userCurrent.user, 2) != '' && _vm.fnUserDisplay(_vm.userCurrent.user, 2) != null) ? '(' + _vm.fnUserDisplay(_vm.userCurrent.user, 2) + ')' : ''))]),_c('a',{class:( _obj = {}, _obj['active'] = _vm.is_concurrent_active, _obj ),staticStyle:{\"position\":\"relative\",\"padding\":\"5px\"},attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){_vm.is_concurrent_active = !_vm.is_concurrent_active},\"mouseenter\":function($event){_vm.is_concurrent_active = true},\"mouseleave\":function($event){_vm.is_concurrent_active = false}}},[_c('i',{staticClass:\"icon-fux-arrow-down-small\",staticStyle:{\"font-size\":\"11px\"}}),_c('div',{staticClass:\"user-info-lyr\"},[_c('ul',_vm._l((_vm.userCurrent.user.concurrentUsers),function(cuser,index){return _c('li',{key:index},[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.selectUser(cuser)}}},[_c('span',{staticClass:\"name username\"},[_vm._v(_vm._s(_vm.fnUserDisplay(cuser, 0)))]),_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.fnUserDisplay(cuser, 2) != '' && _vm.fnUserDisplay(cuser, 2) != null ? '(' + _vm.fnUserDisplay(cuser, 2) + ')' : ''))])])])}),0)])])]):_c('li',{staticClass:\"userinfo\"},[_c('span',{staticClass:\"name username\"},[_vm._v(_vm._s(_vm.fnUserDisplay(_vm.userCurrent.user, 0)))]),_c('span',{staticClass:\"name\"},[_vm._v(_vm._s((_vm.fnUserDisplay(_vm.userCurrent.user, 2) != '' && _vm.fnUserDisplay(_vm.userCurrent.user, 2) != null) ? '(' + _vm.fnUserDisplay(_vm.userCurrent.user, 2) + ')' : ''))])]),_c('li',[_c('a',{attrs:{\"id\":\"gnbSearchOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbSearch('O')}}},[_c('i',{staticClass:\"icon-fux-search\",attrs:{\"title\":\"검색\"}})])]),_c('li',[_c('a',{on:{\"click\":function($event){return _vm.fnOrgPop()}}},[_c('i',{staticClass:\"icon-fux-organization\",attrs:{\"title\":\"조직도\"}})])]),_c('li',[_c('a',{class:_vm.UnReadWorkFeedStatus ? 'news-sign' : '',attrs:{\"id\":\"gnbNotiOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbWorkFeed('O')}}},[_c('i',{staticClass:\"icon-fux-bell\",attrs:{\"title\":\"알림\"}})])]),_c('li',[_c('a',{attrs:{\"id\":\"gnbBookmarkOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbBook('O')}}},[_c('i',{staticClass:\"icon-fux-star\",attrs:{\"title\":\"즐겨찾기\"}})])]),_c('li',[_c('a',{attrs:{\"id\":\"gnbQuickkOpen\"},on:{\"click\":function($event){return _vm.fnOpenGnbQuickMenu('O')}}},[_c('i',{staticClass:\"icon-fux-global\",attrs:{\"title\":\"퀵메뉴\"}})])]),(_vm.isAdmin)?_c('li',[_c('a',{attrs:{\"href\":_vm.adminUrl,\"target\":\"iframe-contents\"}},[_c('i',{staticClass:\"icon-fux-setting\",attrs:{\"title\":\"관리자\"}})])]):_vm._e(),_c('li',[_c('ul',{staticClass:\"user-area\"},[_c('li',{staticClass:\"user\"},[_c('a',{attrs:{\"href\":\"#\"}},[_c('div',{staticClass:\"user-img\"},[_c('img',{attrs:{\"src\":_vm.userCurrent.user.photoPath,\"onerror\":\"this.src='/cm/gres/faux/images/ghost.png'\"}})]),_c('i',{staticClass:\"icon-fux-arrow-down-small\"})]),_c('div',{staticClass:\"user-info-lyr\"},[_c('ul',[_c('li',[_c('a',{on:{\"click\":_vm.openModal}},[_vm._v(_vm._s(_vm.$t(\"W_Common_Settings\")))])]),_c('li',[_c('a',{on:{\"click\":_vm.handleLogoff}},[_vm._v(_vm._s(_vm.$t(\"W_Common_Logout\")))])])])])])])])]):_c('ul',{staticClass:\"item-content flex-end\"},[(_vm.userCurrent && _vm.userCurrent.user && _vm.userCurrent.user.concurrentUsers)?_c('li',{staticClass:\"userinfo\"},[_c('span',{staticClass:\"name username\"},[_vm._v(_vm._s(_vm.fnUserDisplay(_vm.userCurrent.user, 0)))]),_c('span',{staticClass:\"name\"},[_vm._v(\"(\"+_vm._s(_vm.fnUserDisplay(_vm.userCurrent.user, 3))+\", \"+_vm._s(_vm.fnUserDisplay(_vm.userCurrent.user, 2))+\")\")]),_c('a',{class:( _obj$1 = {}, _obj$1['active'] = _vm.is_concurrent_active, _obj$1 ),staticStyle:{\"position\":\"relative\",\"padding\":\"5px\"},attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){_vm.is_concurrent_active = !_vm.is_concurrent_active},\"mouseenter\":function($event){_vm.is_concurrent_active = true},\"mouseleave\":function($event){_vm.is_concurrent_active = false}}},[_c('i',{staticClass:\"icon-fux-arrow-down-small\",staticStyle:{\"font-size\":\"11px\"}}),_c('div',{staticClass:\"user-info-lyr\"},[_c('ul',_vm._l((_vm.userCurrent.user.concurrentUsers),function(cuser,index){return _c('li',{key:index},[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.selectUser(cuser)}}},[_c('span',{staticClass:\"name username\"},[_vm._v(_vm._s(_vm.fnUserDisplay(cuser, 0)))]),_c('span',{staticClass:\"name\"},[_vm._v(\"(\"+_vm._s(_vm.fnUserDisplay(cuser, 3))+\", \"+_vm._s(_vm.fnUserDisplay(cuser, 2))+\")\")])])])}),0)])])]):_c('li',{staticClass:\"userinfo\"},[_c('span',{staticClass:\"name username\"},[_vm._v(_vm._s(_vm.fnUserDisplay(_vm.userCurrent.user, 0)))]),_c('span',{staticClass:\"name\"},[_vm._v(\"(\"+_vm._s(_vm.fnUserDisplay(_vm.userCurrent.user, 2))+\")\")])]),_c('li',[_c('ul',{staticClass:\"user-area\"},[_c('li',{staticClass:\"user\"},[_c('a',{attrs:{\"href\":\"#\"}},[_c('div',{staticClass:\"user-img\"},[_c('img',{attrs:{\"src\":_vm.userCurrent.user.photoPath,\"onerror\":\"this.src='/cm/gres/faux/images/ghost.png'\"}})]),_c('i',{staticClass:\"icon-fux-arrow-down-small\"})]),_c('div',{staticClass:\"user-info-lyr\"},[_c('ul',[_c('li',[_c('a',{on:{\"click\":_vm.openModal}},[_vm._v(_vm._s(_vm.$t(\"W_Common_Settings\")))])]),_c('li',[_c('a',{on:{\"click\":_vm.handleLogoff}},[_vm._v(_vm._s(_vm.$t(\"W_Common_Logout\")))])])])])])])])])])]),_c('transition',{attrs:{\"name\":\"slide-fade\",\"mode\":\"out-in\"}},[(_vm.dispGnbSearch)?_c('GnbSearch',{attrs:{\"orgList\":_vm.orgList,\"articleList\":_vm.articleList,\"workflowList\":_vm.workflowList,\"counts\":_vm.searchCounts,\"userLang\":_vm.userLang},on:{\"onGnbSearch\":function ($event) { return _vm.fnGnbSearch($event); },\"onSelectedGnbSearch\":function (event) { return _vm.fnSelectedGnbSearch(event); },\"onOpenGnbSearch\":function (event) { return _vm.fnOpenGnbSearch(event); },\"onMoreSearch\":function (searchType) { return _vm.fnMoreSearch(searchType); }}}):_vm._e(),(_vm.dispGnbWorkFeed)?_c('GnbWorkFeed',{attrs:{\"workFeedItems\":_vm.workFeedItems,\"userLang\":_vm.userLang},on:{\"onOpenGnbWorkFeed\":function (event) { return _vm.fnOpenGnbWorkFeed(event); },\"onReadWorkfeed\":function (item) { return _vm.fnReadWorkfeed(item); }}}):_vm._e(),(_vm.dispGnbBookmark)?_c('GnbBookmark',{attrs:{\"bookMarkItems\":_vm.bookMarkItems,\"userLang\":_vm.userLang},on:{\"onOpenGnbBook\":function (event) { return _vm.fnOpenGnbBook(event); },\"onBookmarkClick\":function (bookmarkItem) { return _vm.fnBookmarkClick(bookmarkItem); },\"delBookmarkItem\":function (bookmarkItem) { return _vm.delBookmarkItem(bookmarkItem); }}}):_vm._e(),(_vm.dispGnbQuickMenu)?_c('GnbQuickMenu',{attrs:{\"quickMenuItems\":_vm.quickMenuItems,\"userLang\":_vm.userLang},on:{\"onOpenGnbQuickMenu\":function (event) { return _vm.fnOpenGnbQuickMenu(event); },\"onQuickMenuClick\":function (item) { return _vm.fnQuickMenuClick(item); },\"onInsertQuickMenuUserSet\":function (quickMenuIds) { return _vm.fnInsertQuickMenuUserSet(quickMenuIds); }}}):_vm._e()],1),(_vm.dispGnbSitemap)?_c('GnbSiteMap',{attrs:{\"siteMapItems\":_vm.siteMapItems,\"userLang\":_vm.userLang},on:{\"onOpenGnbSiteMap\":function (event) { return _vm.fnOpenGnbSiteMap(event); },\"onSiteMapClick\":function (siteMap) { return _vm.fnSiteMapClick(siteMap); }}}):_vm._e(),(_vm.userCurrent)?_c('FloatingChat'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly\",attrs:{\"id\":\"gnbSearch\"}},[_c('div',{staticClass:\"gnb-ly-head no-border\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn sm-btn btn-gray\",attrs:{\"id\":\"gnbSearchClose\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbSearch', 'C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])])]),_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',[_vm._v(\" \"+_vm._s(_vm.$t('빠른검색'))),_c('span',{staticClass:\"m-l-m\"}),_c('input',{attrs:{\"type\":\"checkbox\",\"id\":\"cbxSelectedSearch\"},on:{\"change\":function (event) { return _vm.$emit('onSelectedGnbSearch', event); }}}),_c('span',{staticClass:\"ft-m ft-400 m-l-xs\"},[_vm._v(_vm._s(_vm.$t('본문_포함')))])])])]),_c('div',{staticClass:\"space-s\"}),_c('div',{staticClass:\"search-input\"},[_c('input',{staticClass:\"fm-def\",attrs:{\"type\":\"text\",\"id\":\"txtGnbSearch\",\"placeholder\":_vm.$t('이름_또는_검색어를_입력하세요')},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return (function ($event) { return _vm.$emit('onGnbSearch', $event); }).apply(null, arguments)}}}),_c('a',{on:{\"click\":function ($event) { return _vm.$emit('onGnbSearch', $event); }}},[_c('i',{staticClass:\"icon-fux-search\"})])])]),_c('div',{staticClass:\"gnb-ly-body\"},[_c('div',{staticClass:\"m-b-l\"},[_c('div',{staticClass:\"list-thumb-head\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',{staticClass:\"ft-basic no-margin\"},[_vm._v(_vm._s(_vm.$t('사용자'))),_c('span',{staticClass:\"ft-400 m-l-xs\"},[_vm._v(\"(\"+_vm._s(_vm.$t('총'))+\" \"),_c('b',{staticClass:\"ft-blue\"},[_vm._v(_vm._s(_vm.counts[0]))]),_vm._v(\" \"+_vm._s(_vm.$t('건'))+\")\")])])]),(_vm.orgList && _vm.orgList.length > 0)?_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"ft-m p-all-s vertical-top\",on:{\"click\":function($event){return _vm.$emit('onMoreSearch', 'ORG')}}},[_vm._v(_vm._s(_vm.$t('더보기'))),_c('i',{staticClass:\"icon-fux-forward m-l-s\"})])]):_vm._e()]),(_vm.orgList && _vm.orgList.length == 0)?_c('div',{staticClass:\"not-found\"},[_c('img',{staticClass:\"m-b-l\",attrs:{\"src\":\"/cm/gres/faux/images/no_data.png\"}}),_c('span',{staticClass:\"ft-m ft-gray\"},[_vm._v(_vm._s(_vm.$t('조회된_데이터가_없습니다')))])]):_vm._e(),(_vm.orgList && _vm.orgList.length > 0)?_c('ul',{staticClass:\"list-thumb\"},_vm._l((_vm.orgList.slice(0, 3)),function(user){return _c('li',{key:user.id},[_c('div',{staticClass:\"dp-flex flex-between p-all-s w-100\"},[_c('div',{staticClass:\"link dp-flex ellipsis p-all-m vertical-top w-100\"},[_c('div',{staticClass:\"thumbnail-m thumbnail-radius thumbnail-user m-r-l\"},[_c('img',{attrs:{\"src\":user.photoPath || '/cm/gres/faux/images/ghost.png',\"alt\":\"User Profile Image\",\"onerror\":\"this.src='/cm/gres/faux/images/ghost.png'\"}})]),_c('div',{staticClass:\"ellipsis flex-1\"},[_c('h6',{staticClass:\"ft-m no-padding ellipsis ft-400 no-margin\"},[_vm._v(_vm._s((_vm.userLang && _vm.userLang.toLowerCase() == 'ko-kr' ? user.displayName : user.displayNameEng)))]),_c('div',{staticClass:\"ellipsis\",staticStyle:{\"padding-top\":\"5px\"}},[_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s((_vm.userLang && _vm.userLang.toLowerCase() == 'ko-kr' ? user.companyName : user.companyNameEng)))])]),_c('div',{staticClass:\"ellipsis\"},[_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s((_vm.userLang && _vm.userLang.toLowerCase() == 'ko-kr' ? user.deptName : user.deptNameEn)))]),_c('span',{staticClass:\"divide-hor divide-gray m-r-xs m-l-xs\"}),_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s((_vm.userLang && _vm.userLang.toLowerCase() == 'ko-kr' ? user.titleName : user.titleNameEn)))])]),_c('div',{staticClass:\"ellipsis\"},[_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s(user.officeTel || 'N/A'))]),_c('span',{staticClass:\"divide-hor divide-gray m-r-xs m-l-xs\"}),_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s(user.mobileTel || 'N/A'))])])])])])])}),0):_vm._e()]),_c('div',{staticClass:\"m-b-l\"},[_c('div',{staticClass:\"list-thumb-head\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',{staticClass:\"ft-basic no-margin\"},[_vm._v(_vm._s(_vm.$t('게시판'))),_c('span',{staticClass:\"ft-400 m-l-xs\"},[_vm._v(\"(\"+_vm._s(_vm.$t('총'))+\" \"),_c('b',{staticClass:\"ft-blue\"},[_vm._v(_vm._s(_vm.counts[1]))]),_vm._v(\" \"+_vm._s(_vm.$t('건'))+\")\")])])]),(_vm.articleList && _vm.articleList.length > 0)?_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"ft-m p-all-s vertical-top\",on:{\"click\":function($event){return _vm.$emit('onMoreSearch', 'BOARD')}}},[_vm._v(_vm._s(_vm.$t('더보기'))),_c('i',{staticClass:\"icon-fux-forward m-l-s\"})])]):_vm._e()]),(!_vm.articleList || _vm.articleList.length == 0)?_c('div',{staticClass:\"not-found\"},[_c('img',{staticClass:\"m-b-l\",attrs:{\"src\":\"/cm/gres/faux/images/no_data.png\"}}),_c('span',{staticClass:\"ft-m ft-gray\"},[_vm._v(_vm._s(_vm.$t('조회된_데이터_없음')))])]):_vm._e(),(_vm.articleList && _vm.articleList.length > 0)?_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.articleList.slice(0, 3)),function(article){return _c('li',{key:article.articleId},[_c('div',{staticClass:\"dp-flex flex-between p-all-s w-100\",on:{\"click\":function($event){return _vm.fnVieArticle(article.articleId, article.boardId)}}},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m vertical-top w-100\"},[_c('div',{staticClass:\"ellipsis flex-1\"},[_c('h6',{staticClass:\"ft-m no-padding ellipsis ft-400\"},[_vm._v(_vm._s(article.title))]),_c('div',[_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s(article.createdUserName))]),_c('span',{staticClass:\"divide-hor divide-gray m-r-xs m-l-xs\"}),_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s(_vm.fnDisplayDate(article.createdDate)))])])])])])])}),0):_vm._e()]),_c('div',{staticClass:\"m-b-l\"},[_c('div',{staticClass:\"list-thumb-head\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',{staticClass:\"ft-basic no-margin\"},[_vm._v(_vm._s(_vm.$t('전자결재'))),_c('span',{staticClass:\"ft-400 m-l-xs\"},[_vm._v(\"(\"+_vm._s(_vm.$t('총'))+\" \"),_c('b',{staticClass:\"ft-blue\"},[_vm._v(_vm._s(_vm.counts[2]))]),_vm._v(\" \"+_vm._s(_vm.$t('건'))+\")\")])])]),(_vm.workflowList && _vm.workflowList.length > 0)?_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"ft-m p-all-s vertical-top\",on:{\"click\":function($event){return _vm.$emit('onMoreSearch', 'WORKFLOW')}}},[_vm._v(_vm._s(_vm.$t('더보기'))),_c('i',{staticClass:\"icon-fux-forward m-l-s\"})])]):_vm._e()]),(!_vm.workflowList || _vm.workflowList.length == 0)?_c('div',{staticClass:\"not-found\"},[_c('img',{staticClass:\"m-b-l\",attrs:{\"src\":\"/cm/gres/faux/images/no_data.png\"}}),_c('span',{staticClass:\"ft-m ft-gray\"},[_vm._v(_vm._s(_vm.$t('조회된_데이터_없음')))])]):_vm._e(),(_vm.workflowList && _vm.workflowList.length > 0)?_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.workflowList.slice(0, 3)),function(workflow,index){return _c('li',{key:index},[_c('div',{staticClass:\"dp-flex flex-between p-all-s w-100\",on:{\"click\":function($event){return _vm.onClickWorkflowItem(workflow)}}},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m vertical-top w-100\"},[_c('div',{staticClass:\"ellipsis flex-1\"},[_c('h6',{staticClass:\"ft-m no-padding ellipsis ft-400\"},[_vm._v(_vm._s(_vm.getWorkflowTitle(workflow)))]),_c('div',[_c('span',{staticClass:\"ft-m\"},[_vm._v(_vm._s(workflow.approvalStatus)+\" \")]),(workflow.itemType.toLowerCase()=='document')?[_c('span',{staticClass:\"divide-hor divide-gray m-r-xs m-l-xs\"}),_c('span',{staticClass:\"ft-m\"},[_vm._v(\" \"+_vm._s(((workflow.reqName) + \" \"))+\" \")]),_c('span',{staticClass:\"divide-hor divide-gray m-r-xs m-l-xs\"}),_c('span',{staticClass:\"ft-m\"},[_vm._v(\" \"+_vm._s(_vm.convertDatetime(workflow.createdDate))+\" \")])]:[_c('span',{staticClass:\"ft-m\"},[_vm._v(\" \"+_vm._s(_vm.convertDatetime(workflow.createdDate))+\" \")])]],2)])])])])}),0):_vm._e()])]),_c('div',{attrs:{\"id\":\"gnbLyMask\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbSearch', 'C')}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { openPopup } from '@appbase/util/popup-helper' \r\nimport * as dateHelper from '@appbase/util/date-helper'\r\n\r\n@Component\r\nexport default class GnbSearch extends Vue {\r\n @Prop({type:Array}) orgList!: orgmap.UserItem[]\r\n @Prop({type:Array}) articleList!: gnbarticle.Article[]\r\n @Prop({type:Array}) workflowList!: Array\r\n @Prop({type:Array}) counts!: Array //조직도, 게시판, 전자결재 순\r\n @Prop({type:String}) userLang!: string\r\n\r\n // searchselected: boolean = false\r\n\r\n // @Watch('selectedSearch')\r\n // onSelectedSearchChanged(newVal: boolean) {\r\n // if (this.searchselected != newVal)\r\n // this.$emit(\"onSelectedGnbSearch\", newVal)\r\n // }\r\n\r\n fnDisplayDate(date: Date){\r\n let dtDate = new Date(date);\r\n return dtDate.toISOString().slice(0, 10);\r\n }\r\n\r\n fnVieArticle(articleId: number, boardId: number){\r\n openPopup('', `/BoardPopup/readPopup?SYSID=${boardId}&ARTICLEID=${articleId}`, {}, {\r\n width: 1024,\r\n height: 700,\r\n isFrame: this.isTeams\r\n });\r\n }\r\n\r\n getWorkflowTitle(item:gnbTotalSearch.workflowSearchItems){\r\n if(item.itemType.toLowerCase() == \"document\"){ //결재문서\r\n return `[결재문서] ${item.subject}`\r\n \r\n }else{ //양식\r\n return `[결재양식] ${item.applicationName}`\r\n }\r\n \r\n }\r\n\r\n convertDatetime(datetime:string){\r\n \r\n return dateHelper.uGetDateFormat_UTC(\"yyyy-MM-DD H:i:s\",new Date(datetime))\r\n }\r\n\r\n onClickWorkflowItem(item:gnbTotalSearch.workflowSearchItems){\r\n \r\n let url =\"\"\r\n const now = Date.now()\r\n if(item.itemType.toLowerCase() ==\"document\"){\r\n url = `/workflow/page/form?apmid=${item.apmId}&appid=${item.applicationId}&storekey=${now}&pop=1`\r\n }else{\r\n url = `/workflow/page/form?appid=${item.applicationId}&storekey=${now}&pop=1`\r\n }\r\n openPopup(`formpoup_${now}}`, \r\n url,{},\r\n {\r\n width: 1200,\r\n height: 760,\r\n scrollbars: 'no',\r\n menubar: 0,\r\n top: 0,\r\n left: 0,\r\n resizable: 1,\r\n noinvalidateUrl: true,\r\n isFrame: this.isTeams\r\n });\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbSearch.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbSearch.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbSearch.vue?vue&type=template&id=0d1d50da&\"\nimport script from \"./GnbSearch.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbSearch.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly\",attrs:{\"id\":\"gnbNoti\"}},[_c('div',{staticClass:\"gnb-ly-head no-border\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn sm-btn btn-gray\",attrs:{\"id\":\"gnbNotiClose\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbWorkFeed', 'C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])])]),_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',[_vm._v(_vm._s(_vm.$t('알림'))),_c('span',{staticClass:\"ft-blue ft-400 m-l-xs\"},[_vm._v(_vm._s((_vm.workFeedItems ? _vm.workFeedItems.length : 0)))])])])])]),_c('div',{staticClass:\"gnb-ly-body\"},[_c('ul',{staticClass:\"nav nav-tabs tab-bar tab-equal\"},[_c('li',{class:(_vm.workfeedType == '' ? 'active' : '')},[_c('a',{staticClass:\"ft-basic\",attrs:{\"data-toggle\":\"tab\"},on:{\"click\":function($event){return _vm.fnSetWorkFeedType('')}}},[_vm._v(_vm._s(_vm.$t('전체')))])]),_c('li',{class:(_vm.workfeedType == 'WF' ? 'active' : '')},[_c('a',{staticClass:\"ft-basic\",attrs:{\"data-toggle\":\"tab\"},on:{\"click\":function($event){return _vm.fnSetWorkFeedType('WF')}}},[_vm._v(_vm._s(_vm.$t('결재')))])]),_c('li',{class:(_vm.workfeedType == 'BB' ? 'active' : '')},[_c('a',{staticClass:\"ft-basic\",attrs:{\"data-toggle\":\"tab\"},on:{\"click\":function($event){return _vm.fnSetWorkFeedType('BB')}}},[_vm._v(_vm._s(_vm.$t('게시')))])])]),_c('div',{staticClass:\"tab-content\"},[_c('div',{staticClass:\"tab-pane active\",attrs:{\"id\":\"tab1\"}},[_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.workFeedItems),function(m){return _c('li',{key:m.alarmId,style:((_vm.workfeedType == '' || _vm.workfeedType == m.alarmType) ? '' : 'display:none')},[_c('div',{staticClass:\"dp-flex flex-between p-all-s w-100\"},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m vertical-top\",on:{\"click\":function (item) { return _vm.$emit('onReadWorkfeed', m); }}},[_c('div',{staticClass:\"thumbnail-m thumbnail-radius m-r-l\"},[_c('img',{attrs:{\"src\":_vm.getWorkFeedImage(m.alarmType)}})]),_c('div',{staticClass:\"ellipsis flex-1\"},[_c('div',{staticClass:\"ellipsis line-clamp-2 ft-m\"},[_c('span',{class:['b', 'm-r-s', _vm.getWorkFeedStyle(m.alarmType)]},[_vm._v(_vm._s(_vm.getWorkFeedType(m.alarmType)))]),_vm._v(\" \"+_vm._s((_vm.userLang && _vm.userLang == 'ko-KR' ? m.alarmText : m.alarmTextEng ))+\" \")]),_c('div',{staticClass:\"ft-s m-t-s ellipsis ft-gray\"},[_c('i',{staticClass:\"icon-fux-user\"}),_vm._v(\" \"+_vm._s(m.createUserName)+\" \"),_c('span',{staticClass:\"divide-hor divide-gray m-r-xs m-l-xs\"}),_vm._v(\" \"+_vm._s(_vm.fnSetDisplayDate(m.createDate))+\" \")])])])])])}),0)]),_c('div',{staticClass:\"tab-pane\",attrs:{\"id\":\"tab2\"}}),_c('div',{staticClass:\"tab-pane\",attrs:{\"id\":\"tab3\"}})])]),_c('div',{attrs:{\"id\":\"gnbLyMask\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbWorkFeed', 'C')}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class GnbWorkFeed extends Vue {\r\n @Prop({ type: Array }) workFeedItems!: gnb.WorkFeedItem[];\r\n @Prop({ type: String }) userLang!: string\r\n workfeedType: string = ''\r\n\r\n fnSetWorkFeedType(workfeedType: string){\r\n this.workfeedType = workfeedType;\r\n }\r\n\r\n getWorkFeedType(alarmType: string){\r\n let sysName = \"\";\r\n switch(alarmType){\r\n case \"WF\":\r\n sysName = this.$t('결재').toString();\r\n break;\r\n case \"BB\":\r\n sysName = this.$t('게시').toString();\r\n break;\r\n default:\r\n sysName = this.$t('알림').toString() \r\n break;\r\n }\r\n return sysName;\r\n }\r\n\r\n getWorkFeedStyle(alarmType: string){\r\n let className = ''\r\n switch(alarmType){\r\n case \"WF\":\r\n className = 'ft-blue';\r\n break;\r\n case \"BB\":\r\n className = 'ft-green';\r\n break;\r\n default:\r\n className = 'ft-orange'\r\n break; \r\n }\r\n return className\r\n }\r\n\r\n getWorkFeedImage(alarmType: string){\r\n let sysImg = \"\";\r\n switch(alarmType){\r\n case \"WF\":\r\n sysImg = '/cm/gres/faux/images/ico_approval.png';\r\n break;\r\n case \"BB\":\r\n sysImg = '/cm/gres/faux/images/ico_board.png';\r\n break;\r\n default:\r\n sysImg = '/cm/gres/faux/images/ico_notice_default.png'\r\n break;\r\n }\r\n return sysImg;\r\n }\r\n\r\n fnSetDisplayDate(createDate: Date){\r\n let displayDate = \"\";\r\n let dtNow = new Date();\r\n let dtCreate = new Date(createDate);\r\n if (dtCreate.toISOString().slice(0, 10) == dtNow.toISOString().slice(0, 10)){\r\n displayDate = [(dtCreate.getHours() > 9 ? dtCreate.getHours() : '0' + dtCreate.getHours()), \r\n (dtCreate.getMinutes() > 9 ? dtCreate.getMinutes() : '0' + dtCreate.getMinutes())].join(' : ');\r\n }\r\n else{\r\n displayDate = dtCreate.toISOString().slice(0, 10);\r\n } \r\n\r\n return displayDate;\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbWorkFeed.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbWorkFeed.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbWorkFeed.vue?vue&type=template&id=f2124e8a&\"\nimport script from \"./GnbWorkFeed.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbWorkFeed.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly\",attrs:{\"id\":\"gnbBookmark\"}},[_c('div',{staticClass:\"gnb-ly-head no-border\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn sm-btn btn-gray\",attrs:{\"id\":\"gnbBookmarkClose\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbBook', 'C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])])]),_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',[_vm._v(_vm._s(_vm.$t('즐겨찾기')))])])])]),_c('div',{staticClass:\"gnb-ly-body\"},[_c('div',{staticClass:\"space-l\"}),_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.bookMarkItems),function(bookmarkItem){return _c('li',{key:bookmarkItem.bookMarkId},[_c('div',{staticClass:\"dp-flex flex-between p-l-m w-100\"},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m w-100\",on:{\"click\":function($event){return _vm.$emit('onBookmarkClick', bookmarkItem)}}},[_c('div',{staticClass:\"ellipsis flex-1\"},[_c('h6',{staticClass:\"ellipsis ft-m ft-400 no-padding\"},[_c('img',{staticClass:\"m-r-s\",attrs:{\"src\":\"/cm/gres/faux/images/favorite_default.png\"}}),_vm._v(_vm._s((_vm.userLang && _vm.userLang.toLowerCase() == 'ko-kr' ? bookmarkItem.itemText : bookmarkItem.itemTextEng))+\" \")])])]),_c('div',{staticClass:\"p-all-m\"},[_c('button',{staticClass:\"btn sub-btn btn-gray-outline\",on:{\"click\":function($event){return _vm.$emit('delBookmarkItem', bookmarkItem)}}},[_c('i',{staticClass:\"icon-fux-bin\"})])])])])}),0)]),_c('div',{attrs:{\"id\":\"gnbLyMask\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbBook', 'C')}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component\r\nexport default class GnbBookmark extends Vue {\r\n @Prop({ type: Array }) bookMarkItems!: gnb.BookMarkItem[];\r\n @Prop({ type: String }) userLang!: string;\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbBookmark.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbBookmark.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbBookmark.vue?vue&type=template&id=1a9dd97f&\"\nimport script from \"./GnbBookmark.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbBookmark.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gnb-ly\",staticStyle:{\"display\":\"block\"}},[_c('div',{staticClass:\"gnb-ly-head no-border\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn sm-btn btn-gray\",attrs:{\"id\":\"gnbQuickClose\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbQuickMenu', 'C')}}},[_c('i',{staticClass:\"icon-fux-close\"})])])]),_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto dp-flex\"},[_c('h6',{staticClass:\"no-margin no-padding\"},[_vm._v(_vm._s(_vm.$t('업무지원')))]),_c('button',{staticClass:\"btn ico-btn\",on:{\"click\":_vm.fnOpenQuickMenuUserSet}},[_c('i',{staticClass:\"icon-fux-setting\"})])])])]),_c('div',{staticClass:\"gnb-ly-body\"},[_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.iconItems),function(icon){return _c('li',{key:icon.quickMenuId},[_c('div',{staticClass:\"dp-flex flex-between p-l-m w-100\"},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m w-100\",on:{\"click\":function($event){return _vm.$emit('onQuickMenuClick', icon)}}},[_c('div',{staticClass:\"thumbnail-m thumbnail-radius m-r-l\"},[_c('img',{attrs:{\"src\":icon.filePath}})]),_c('div',{staticClass:\"ellipsis flex-1\"},[_c('h6',{staticClass:\"ellipsis ft-m no-padding\"},[_vm._v(_vm._s(_vm.fnGetQuickMenuName(icon)))])])])])])}),0),_vm._l((_vm.quickItems),function(quickMenuItem){return _c('GnbQuickMenuItem',{key:quickMenuItem.quickMenuId,attrs:{\"quickMenuItem\":quickMenuItem,\"userLang\":_vm.userLang},on:{\"onQuickMenuClick\":function (item) { return _vm.$emit('onQuickMenuClick', item); }}})})],2),_c('div',{attrs:{\"id\":\"gnbLyMask\"},on:{\"click\":function($event){return _vm.$emit('onOpenGnbQuickMenu', 'C')}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"accordion\"},[_c('div',{staticClass:\"dp-flex p-l-l p-r-m p-t-s p-b-s bg-gray bdr-bottom bdr-gray ellipsis\"},[_c('div',{staticClass:\"mr-auto ellipsis\"},[_c('h6',{staticClass:\"ft-m no-margin no-padding ellipsis\"},[_vm._v(_vm._s(_vm.fnGetQuickMenuName(_vm.quickMenuItem)))])]),_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn ico-btn ico-s\",on:{\"click\":_vm.fnExpandSubItem}},[_c('i',{staticClass:\"icon-fux-up\"})])])])]),_c('div',{staticClass:\"accordion-content\"},[(_vm.quickMenuItem.hasChildren)?_c('ul',{staticClass:\"list-thumb hover\"},_vm._l((_vm.quickMenuItem.childItems),function(sub){return _c('li',{key:sub.quickMenuId},[_c('div',{staticClass:\"dp-flex flex-between p-l-m w-100\"},[_c('a',{staticClass:\"link dp-flex ellipsis p-all-m w-100\",on:{\"click\":function($event){return _vm.$emit('onQuickMenuClick', sub)}}},[_c('div',{staticClass:\"ellipsis flex-1\"},[_c('h6',{staticClass:\"ellipsis ft-m ft-400 no-padding\"},[_c('span',{staticClass:\"bullet bullet-blue m-r-s\"}),_vm._v(_vm._s(_vm.fnGetQuickMenuName(sub))+\" \")])])])])])}),0):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n name: 'quick-menu-item'\r\n})\r\nexport default class GnbQuickMenuItem extends Vue {\r\n @Prop({type:Object}) quickMenuItem!: gnb.QuickMenuItem\r\n @Prop({type:String}) userLang!: string\r\n \r\n fnGetQuickMenuName(item: gnb.QuickMenuItem){\r\n let menuName = ''\r\n if (item){\r\n menuName = (this.userLang.toLowerCase() == 'ko-kr' ? item.title : item.titleEn).toString()\r\n }\r\n return menuName\r\n }\r\n\r\n fnExpandSubItem(){\r\n var expandArrow = this.$el.getElementsByTagName('i');\r\n var subContent = this.$el.getElementsByClassName('accordion-content')\r\n\r\n if (subContent && expandArrow){\r\n if (subContent[0].getAttribute('style') === null){\r\n subContent[0].setAttribute('style', 'display:none');\r\n expandArrow[0].classList.remove('icon-fux-up')\r\n expandArrow[0].classList.add('icon-fux-down')\r\n }\r\n else{\r\n subContent[0].removeAttribute('style')\r\n expandArrow[0].classList.remove('icon-fux-down')\r\n expandArrow[0].classList.add('icon-fux-up')\r\n }\r\n }\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbQuickMenuItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbQuickMenuItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GnbQuickMenuItem.vue?vue&type=template&id=115ef36f&\"\nimport script from \"./GnbQuickMenuItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./GnbQuickMenuItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { createEventBus, removeEventBus, getDispatchData } from '@appbase/util/eventBus';\r\nimport { openPopup } from '@appbase/util/popup-helper'\r\n\r\n// componemt\r\nimport GnbQuickMenuItem from '@gnb/components/GlobalNavigationBarLeft/GnbQuickMenuItem.vue'\r\n\r\nconst GNB_QUICKMENU_USERSET = '$gnb/pop/setquickmenu';\r\n\r\n@Component({\r\n components: {\r\n GnbQuickMenuItem\r\n }\r\n})\r\nexport default class GnbQuickMenu extends Vue {\r\n @Prop({type:Array}) quickMenuItems!: gnb.QuickMenuItem[]\r\n @Prop({type:String}) userLang!: string\r\n iconItems: gnb.QuickMenuItem[] = []\r\n quickItems: gnb.QuickMenuItem[] = []\r\n\r\n fnGetQuickMenuName(quickMenuItem: gnb.QuickMenuItem){\r\n let menuName = ''\r\n if (quickMenuItem){\r\n menuName = (this.userLang.toLowerCase() == 'ko-kr' ? quickMenuItem.title : quickMenuItem.titleEn).toString()\r\n }\r\n return menuName\r\n }\r\n\r\n fnOpenQuickMenuUserSet(){\r\n openPopup(\r\n 'gnb',\r\n '/gnb/setquickmenu',\r\n { },\r\n {\r\n width: 900,\r\n height: 600,\r\n isFrame: this.isTeams\r\n }\r\n )\r\n }\r\n\r\n @Watch('quickMenuItems')\r\n fnMakeQuickMenuItem(){\r\n this.iconItems = this.quickMenuItems.filter(x => x.linkType === 'I')\r\n this.quickItems = this.quickMenuItems.filter(x => x.linkType === 'Q')\r\n }\r\n\r\n fnOnChangeQuickMenuUserSet(){\r\n let quickMenuItems: number[] = getDispatchData(GNB_QUICKMENU_USERSET);\r\n let quickMenuIds = ((quickMenuItems && quickMenuItems.length > 0) ? quickMenuItems.join(';') : '');\r\n this.$emit(\"onInsertQuickMenuUserSet\", quickMenuIds);\r\n }\r\n\r\n created(){\r\n this.fnMakeQuickMenuItem()\r\n\r\n createEventBus(window, GNB_QUICKMENU_USERSET, this.fnOnChangeQuickMenuUserSet);\r\n }\r\n\r\n beforeDestroy(){\r\n removeEventBus(window, GNB_QUICKMENU_USERSET, this.fnOnChangeQuickMenuUserSet);\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbQuickMenu.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbQuickMenu.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GnbQuickMenu.vue?vue&type=template&id=0f1b41d7&\"\nimport script from \"./GnbQuickMenu.ts?vue&type=script&lang=ts&\"\nexport * from \"./GnbQuickMenu.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.chatbotInfo.isUse && !_vm.isExist)?_c('div',{staticClass:\"floating_chat\"},[_c('div',{attrs:{\"id\":\"isusys-chatbot-wrapper\"}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from \"vue-property-decorator\";\r\nimport api from '@/api'\r\nimport { mapGetters } from \"vuex\";\r\nimport * as typesAccount from \"@account/store/types\";\r\n\r\n@Component({\r\n computed: {\r\n ...mapGetters({\r\n current: typesAccount.CURRENT\r\n }),\r\n }\r\n})\r\nexport default class FloatingChat extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n //\r\n isChatOpen: boolean = false //챗봇 오픈여부\r\n isFloating: boolean = true //플로팅 노출 여부\r\n comCode: string = \"\" //회사코드\r\n personCode: string = \"\" //사용자코드\r\n employeeNumber: string = \"\" //사번\r\n displayName: string = \"\" //사용자명\r\n payType: string = \"\" //급여유형\r\n payTypeGubun: string = \"\" //급여유형구분\r\n\r\n src: String | null = null //Link URL\r\n\r\n chatUrl: String | undefined = \"\"\r\n\r\n chatbotInfo?: chatbot.ChatbotInfo = {\r\n chatbotId: 0 //챗봇아이디\r\n , comCode: this.comCode //회사코드\r\n , linkUrl: '' //링크 URL\r\n , isUse: false //사용여부\r\n , createdId: '' //등록자아이디\r\n , createdDate: new Date() //등록일\r\n , updatedId: '' //수정자아이디\r\n , updatedDate: new Date() //수정일\r\n , width: 0 //넓이\r\n , height: 0 //높이\r\n , filePath: '' //파일경로\r\n , fileName: '' //파일명\r\n , savedFileName: '' //저장파일이름\r\n , fileSize: 0 //파일크기\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n current!: account.TCurrent;\r\n\r\n get isExist() {\r\n var elem = document.querySelector('.floating_chat');\r\n var pflag = false;\r\n if (window.parent) {\r\n var pelem = window.parent.document.querySelector('.floating_chat');\r\n pflag = pelem ? true : false;\r\n }\r\n return elem ? true : pflag;\r\n }\r\n\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /*Chatbot Info 가져오기*/\r\n getChatbotInfo() {\r\n this.getChatbot(this.personCode, this.comCode, this.employeeNumber, this.displayName, this.payType, this.payTypeGubun).then((res) => {\r\n if (res) {\r\n this.chatbotInfo = res;\r\n const preScript = document.createElement('script');\r\n preScript.type = 'text/javascript';\r\n preScript.innerHTML = `var chatUrl = \"${this.chatbotInfo?.linkUrl}\"`;\r\n document.head.appendChild(preScript);\r\n setTimeout(() => {\r\n const script = document.createElement('script');\r\n\r\n script.src = `${location.protocol}//${location.host}/cm/gres/isusys-chatbot-wrapper/build.js`;\r\n\r\n if (process.env.NODE_ENV == 'development') {\r\n script.src = `https://gwt.isu.co.kr/cm/gres/isusys-chatbot-wrapper/build.js`;\r\n }\r\n\r\n script.async = true;\r\n\r\n script.defer = true;\r\n\r\n document.head.appendChild(script);\r\n }, 10);\r\n }\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E S T Y L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created() {\r\n this.comCode = (this.current.company.comCode !== undefined ? this.current.company.comCode : \"\")\r\n this.personCode = this.current.user.personCode\r\n this.employeeNumber = this.current.user.employeeNumber\r\n this.displayName = this.current.user.displayName\r\n this.payType = this.current.user.payType\r\n this.payTypeGubun = this.current.user.payTypeGubun\r\n this.getChatbotInfo()\r\n }\r\n\r\n // API\r\n getChatbot(personCode: string, comCode: string, employeeNumber: string, displayName:string, payType: string, payTypeGubun:string) : Promise{\r\n return api.get({\r\n url: '/Common/Chatbot/api/chatbot'\r\n , params: {\r\n personCode: personCode\r\n ,comCode: comCode\r\n ,employeeNumber: employeeNumber\r\n ,displayName: displayName\r\n ,payType: payType\r\n ,payTypeGubun: payTypeGubun\r\n }\r\n })\r\n }\r\n}\r\n\r\n/*챗봇 2024-08-13 추가*/\r\nnamespace chatbot {\r\n export interface ChatbotInfo {\r\n chatbotId: Number //챗봇아이디\r\n comCode: String //회사코드\r\n linkUrl: String //링크 URL\r\n isUse: boolean //사용여부\r\n createdId: String //등록자아이디\r\n createdDate: Date //등록일\r\n updatedId: String //수정자아이디\r\n updatedDate: Date //수정일\r\n width: Number //넓이\r\n height: Number //높이\r\n filePath: String //파일경로\r\n fileName: String //파일명\r\n savedFileName: String //저장파일이름\r\n fileSize: Number //파일크기\r\n }\r\n}","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FloatingChat.ts?vue&type=script&lang=typescript&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!./FloatingChat.ts?vue&type=script&lang=typescript&\"","import { render, staticRenderFns } from \"./FloatingChat.vue?vue&type=template&id=6fbf01ac&\"\nimport script from \"./FloatingChat.ts?vue&type=script&lang=typescript&\"\nexport * from \"./FloatingChat.ts?vue&type=script&lang=typescript&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport * as usertypes from '@account/store/types'\r\nimport { mapGetters, mapActions } from 'vuex'\r\nimport { openPopup } from '@appbase/util/popup-helper'\r\nimport api from '@gnb/api'\r\n\r\n// components\r\nimport GnbSearch from '@gnb/components/GlobalNavigationBarLeft/GnbSearch.vue'\r\nimport GnbWorkFeed from '@gnb/components/GlobalNavigationBarLeft/GnbWorkFeed.vue'\r\nimport GnbBookmark from '@gnb/components/GlobalNavigationBarLeft/GnbBookmark.vue'\r\nimport GnbSiteMap from '@gnb/components/GlobalNavigationBarLeft/GnbSiteMap.vue'\r\nimport GnbQuickMenu from '@gnb/components/GlobalNavigationBarLeft/GnbQuickMenu.vue'\r\nimport menuHelper from '@appbase/util/menu-helper'\r\n\r\nimport SubGlobalNavigationBar from '@gnb/components/GlobalNavigationBar/SubGlobalNavigationBar.vue'\r\nimport PreferenceModal from '@gnb/components/Preference/PreferenceModal.vue'\r\nimport modalHelper from '@appbase/util/modal-helper'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\nimport FloatingChat from '@appbase/components/Custom/FloatingChat/FloatingChat.vue'\r\n\r\n@Component({\r\n components: {\r\n SubGlobalNavigationBar,\r\n GnbSearch,\r\n GnbWorkFeed,\r\n GnbBookmark,\r\n GnbSiteMap,\r\n GnbQuickMenu,\r\n FloatingChat\r\n },\r\n computed: {\r\n ...mapGetters({\r\n userCurrent: usertypes.CURRENT,\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n logout: accountTypes.LOGOUT,\r\n }),\r\n },\r\n})\r\nexport default class GnbTop extends Vue {\r\n userCurrent!: account.TCurrent\r\n siteMapItems: appbase.cache.TMenuItem[] = []\r\n menuPermission: account.TPermissionMenu[] = []\r\n userLang: string = ''\r\n\r\n // Components Data\r\n searchCounts: Array = [0, 0, 0]\r\n orgList: orgmap.UserItem[] = []\r\n articleList: gnbarticle.Article[] = []\r\n //전자결재 아이템 추가\r\n workflowList: Array = []\r\n workFeedItems: gnb.WorkFeedItem[] = []\r\n bookMarkItems: gnb.BookMarkItem[] = []\r\n quickMenuItems: gnb.QuickMenuItem[] = []\r\n\r\n\r\n // 검색 관련\r\n searchkeyword: string = ''\r\n searchselected: boolean = false\r\n\r\n // 알림 관련\r\n UnReadWorkFeedStatus: boolean = false\r\n\r\n // Gnb Item Display Option\r\n dispGnbSearch: boolean = false\r\n dispGnbWorkFeed: boolean = false\r\n dispGnbBookmark: boolean = false\r\n dispGnbSitemap: boolean = false\r\n dispGnbQuickMenu: boolean = false;\r\n\r\n //메뉴관련\r\n menuItems: appbase.cache.TMenuItem[] = []\r\n isAdmin: boolean = false\r\n isMailOnly: boolean = false\r\n personCode: string = ''\r\n comCode: string = ''\r\n payType: string = ''\r\n payTypeGubun: string = ''\r\n\r\n //Top UserInfo\r\n displayName: string = \"\"\r\n titleName: string = \"\"\r\n displayDeptName: string = \"\"\r\n\r\n //겸직자\r\n is_concurrent_active: boolean = false;\r\n\r\n //관리자 url\r\n adminUrl: string = \"\"\r\n\r\n fnGoHome() {\r\n menuHelper.goHome()\r\n }\r\n\r\n // 검색창 Display 열기\r\n fnOpenGnbSearch(event: string) {\r\n this.dispGnbSearch = event == 'O' ? true : false\r\n this.dispGnbWorkFeed = false\r\n this.dispGnbBookmark = false\r\n this.dispGnbSitemap = false\r\n this.dispGnbQuickMenu = false\r\n\r\n if (event == 'O') {\r\n this.orgList = []\r\n this.articleList = []\r\n this.workflowList = []\r\n this.searchCounts = [0, 0, 0]\r\n this.searchselected = false\r\n }\r\n }\r\n\r\n // Gnb 검색 옵션\r\n fnSelectedGnbSearch(event: any)\r\n {\r\n //debugger\r\n // var result:Boolean = event.target.checked \r\n this.searchselected = event.target.checked\r\n }\r\n\r\n // Gnb 검색\r\n async fnGnbSearch(event: KeyboardEvent) {\r\n if (event) event.preventDefault()\r\n\r\n const keyword = (document.getElementById('txtGnbSearch')).value\r\n const keywordOption = this.searchselected\r\n\r\n //글자수 제한으로 어느정도 부하 줄임\r\n if (keyword.length < 2) {\r\n await(window as any).alertAsync(this.$t('검색어는_2글자').toString())\r\n return\r\n }\r\n this.searchkeyword = keyword\r\n\r\n //검색전 이전 데이터 초기화 \r\n this.orgList = []\r\n this.articleList = []\r\n this.workflowList = []\r\n this.searchCounts = [0, 0, 0]\r\n\r\n\r\n // keyword: string\r\n // pageNumber: number\r\n // pagePerCount: number\r\n // include: Array\r\n api.totalSearch.totalSearch({\r\n keyword: keyword,\r\n keywordOption: keywordOption,\r\n pageNumber: 1,\r\n pagePerCount: 5,\r\n include: [\"workflow\", \"board\", \"orgchart\"]\r\n }).then(result => {\r\n this.orgList = result.orgItems\r\n this.articleList = result.boardItems.data\r\n this.workflowList = result.workflowItems.items\r\n\r\n\r\n this.searchCounts = []\r\n this.searchCounts.push(result.orgItems.length)\r\n this.searchCounts.push(result.boardItems.totalCount)\r\n this.searchCounts.push(result.workflowItems.totalCount)\r\n })\r\n\r\n\r\n\r\n return\r\n\r\n\r\n\r\n\r\n\r\n let keyWord = (document.getElementById('txtGnbSearch')).value\r\n this.searchkeyword = keyWord\r\n // 검색 데이터 초기화\r\n this.orgList = []\r\n this.articleList = []\r\n this.workflowList = []\r\n\r\n // 조직 데이터 검색\r\n var orgOption = {\r\n query: keyWord,\r\n includeAllFlag: false,\r\n retiredFlag: false\r\n } as gnborgmap.SearchOptions\r\n api.gnb.searchOrg(orgOption, this.userCurrent.company.comCode).then((res: any) => {\r\n const { items, totalCount } = res;\r\n if (items) {\r\n this.orgList = items;\r\n }\r\n });\r\n\r\n // 게시판 데이터 검색\r\n var boardOption = {\r\n userCode: this.userCurrent.user.personCode,\r\n includeContent: true,\r\n useNotice: false,\r\n page: 1,\r\n itemsPerPage: 5,\r\n searchField: 30,\r\n searchFieldValue: keyWord,\r\n sortField: 0,\r\n sortOrder: false\r\n } as gnbarticle.TotalArticleSearchSet\r\n api.gnb.getTotalArticles(boardOption).then((res: any) => {\r\n const { data, totalCount } = res;\r\n if (data) {\r\n this.articleList = data;\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n fnMoreSearch(searchType: string) {\r\n\r\n if (window.location.href.toLowerCase().indexOf('/workflow/') != -1) // 결재의 경우 절대경로로 지정합니다\r\n {\r\n var url = window.location.protocol + '//' + window.location.host + window.location.port + \r\n '/po/home/search?SearchText=' + this.searchkeyword + '&Target=' + searchType + '&SearchOption=' + this.searchselected;\r\n \r\n window.location.href = url;\r\n }\r\n else {\r\n this.$router.push({\r\n name: 'total-search',\r\n query: {\r\n SearchText: this.searchkeyword,\r\n SearchOption: this.searchselected.toString(),\r\n Target: searchType\r\n }\r\n }).catch(() => {\r\n\r\n });\r\n }\r\n this.fnOpenGnbSearch('C');\r\n }\r\n\r\n openModal() {\r\n modalHelper.show({ component: PreferenceModal, force: true, value: { isMailOnly: this.isMailOnly } })\r\n }\r\n\r\n // 조직도 Open\r\n fnOrgPop() {\r\n openPopup(\r\n 'gnb',\r\n '/orgmap',\r\n { event: 'OrgPopup', option: { personal: false, public: false, single: true } },\r\n {\r\n width: 1024,\r\n height: 700,\r\n isFrame: this.isTeams\r\n }\r\n )\r\n }\r\n\r\n // Workfeed\r\n fnOpenGnbWorkFeed(event: string) {\r\n this.dispGnbSearch = false\r\n this.dispGnbWorkFeed = event == 'O' ? true : false\r\n this.dispGnbBookmark = false\r\n this.dispGnbSitemap = false\r\n this.dispGnbQuickMenu = false\r\n\r\n if (event == 'O') {\r\n // Workfeed 데이터 조회\r\n this.fnGetWorkFeedList()\r\n }\r\n }\r\n\r\n logout!: () => Promise\r\n handleLogoff() {\r\n this.logout();\r\n }\r\n // WorkFeed 데이터 조회\r\n fnGetWorkFeedList() {\r\n api.gnb\r\n .getWorkFeedList(this.userCurrent.user.personCode, this.userCurrent.user.comCode)\r\n .then((res: any) => {\r\n if (res) {\r\n this.workFeedItems = res\r\n } else {\r\n this.workFeedItems = []\r\n }\r\n\r\n this.UnReadWorkFeedStatus = (this.workFeedItems.length > 0 ? true : false);\r\n })\r\n }\r\n\r\n // 읽지 않은 WorkFeed 건수 조회\r\n fnGetUnreadWorkFeedCount() {\r\n api.gnb\r\n .getWorkFeedUnreadCount(this.userCurrent.user.personCode, this.userCurrent.user.comCode)\r\n .then((res: any) => {\r\n this.UnReadWorkFeedStatus = res > 0 ? true : false\r\n })\r\n }\r\n\r\n // WorkFeed Item Click\r\n fnReadWorkfeed(workfeedItem: gnb.WorkFeedItem) {\r\n // Link가 존재하는 경우 호출\r\n if (workfeedItem.itemUrl != '') {\r\n var noinvalidateUrl = false;\r\n switch (workfeedItem.alarmType) {\r\n case 'WF':\r\n noinvalidateUrl = true;\r\n break;\r\n }\r\n this.fnOpenWindow(workfeedItem.itemUrl, workfeedItem.alarmText, 1024, 900, noinvalidateUrl);\r\n }\r\n\r\n api.gnb.setWorkFeedReadStatus(workfeedItem.alarmId, true).then((res: any) => {\r\n if (res > -1) {\r\n let nIdx = this.workFeedItems.findIndex((x) => x.alarmId == workfeedItem.alarmId)\r\n if (nIdx > -1) this.workFeedItems.splice(nIdx, 1)\r\n if (this.workFeedItems.length == 0) this.UnReadWorkFeedStatus = false\r\n }\r\n })\r\n }\r\n\r\n // 즐겨찾기 Display\r\n fnOpenGnbBook(event: string) {\r\n this.dispGnbSearch = false\r\n this.dispGnbWorkFeed = false\r\n this.dispGnbBookmark = event == 'O' ? true : false\r\n this.dispGnbSitemap = false\r\n this.dispGnbQuickMenu = false\r\n\r\n if (event == 'O') {\r\n this.fnGetBookMarkList()\r\n }\r\n }\r\n\r\n // 즐겨찾기 목록 조회\r\n fnGetBookMarkList() {\r\n api.gnb\r\n .getBookMarkList(this.userCurrent.user.personCode, this.userCurrent.user.comCode)\r\n .then((res: any) => {\r\n if (res) {\r\n this.bookMarkItems = res\r\n } else {\r\n this.bookMarkItems = []\r\n }\r\n })\r\n }\r\n\r\n // 즐겨찾기 클릭 이벤트 처리\r\n async fnBookmarkClick(bookmarkItem: gnb.BookMarkItem) {\r\n if (bookmarkItem) {\r\n if (bookmarkItem.itemId) {\r\n // itemId의 경우 menuId 값이며, menuId가 존재할 경우 menuHelper를 실행한다.\r\n let item: appbase.cache.TMenuItem | null = menuHelper.findOne(bookmarkItem.itemId);\r\n if (item) {\r\n this.fnOpenGnbBook('C');\r\n menuHelper.next(item);\r\n }\r\n else {\r\n // 즐겨찾기된 메뉴가 삭제된 경우\r\n let msg = this.$t('즐겨찾기_메뉴_없음_알림').toString() + '\\r\\n' + this.$t('삭제하시겠습니까').toString()\r\n if (await(window as any).confirmAsync(msg)) {\r\n this.delBookmarkItem(bookmarkItem, true);\r\n }\r\n }\r\n }\r\n else {\r\n if (bookmarkItem.itemUrl != '') {\r\n switch (bookmarkItem.itemType) {\r\n case 'MU':\r\n document.location.href = bookmarkItem.itemUrl\r\n break\r\n case 'FO':\r\n this.fnOpenGnbBook('C');\r\n this.fnOpenWindow(bookmarkItem.itemUrl, bookmarkItem.itemText, 1024, 900)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async delBookmarkItem(bookmarkItem: gnb.BookMarkItem, isConfirm: boolean = false) {\r\n if (!isConfirm) isConfirm = await(window as any).confirmAsync(this.$t('삭제하시겠습니까').toString())\r\n\r\n if (isConfirm) {\r\n api.gnb.deleteBookMark(bookmarkItem.bookMarkId, this.userCurrent.user.personCode, this.userCurrent.company.comCode).then((res: any) => {\r\n if (res > -1) {\r\n this.fnGetBookMarkList();\r\n }\r\n });\r\n }\r\n }\r\n\r\n fnOpenGnbSiteMap(event: string) {\r\n this.dispGnbSearch = false\r\n this.dispGnbWorkFeed = false\r\n this.dispGnbBookmark = false\r\n this.dispGnbSitemap = event == 'O' ? true : false\r\n this.dispGnbQuickMenu = false\r\n }\r\n\r\n async fnSiteMapClick(siteMap: appbase.cache.TMenuItem) {\r\n if (siteMap.targetUrl) {\r\n this.fnOpenGnbSiteMap('C')\r\n menuHelper.next(siteMap)\r\n }\r\n else {\r\n if (siteMap.hasChildren && siteMap.children.length > 0 && siteMap.children[0].targetUrl) {\r\n this.fnOpenGnbSiteMap('C')\r\n menuHelper.next(siteMap.children[0])\r\n }\r\n else if (siteMap.children[0].hasChildren && siteMap.children[0].children.length > 0 && siteMap.children[0].children[0].targetUrl) {\r\n this.fnOpenGnbSiteMap('C')\r\n menuHelper.next(siteMap.children[0].children[0])\r\n }\r\n else if (siteMap.children[0].children[0].hasChildren && siteMap.children[0].children[0].children.length > 0 && siteMap.children[0].children[0].children[0].targetUrl) {\r\n this.fnOpenGnbSiteMap('C')\r\n menuHelper.next(siteMap.children[0].children[0].children[0])\r\n }\r\n else {\r\n await(window as any).alertAsync(this.$t('메뉴_등록된_URL_없음').toString())\r\n }\r\n }\r\n }\r\n\r\n // 퀵메뉴 Open 설정\r\n fnOpenGnbQuickMenu(event: string) {\r\n this.dispGnbSearch = false;\r\n this.dispGnbWorkFeed = false;\r\n this.dispGnbBookmark = false;\r\n this.dispGnbSitemap = false;\r\n this.dispGnbQuickMenu = (event == 'O' ? true : false)\r\n }\r\n\r\n // 퀵메뉴 목록 조회\r\n fnGetQuickMenuItems() {\r\n api.gnb.getUserQuickMenuList(this.userCurrent.user.personCode, this.userCurrent.company.comCode,\r\n this.userCurrent.user.employeeNumber,\r\n this.userCurrent.user.displayName, this.userCurrent.user.payType, this.userCurrent.user.payTypeGubun, 'U').then((res: any) => {\r\n if (res) {\r\n this.quickMenuItems = res;\r\n }\r\n });\r\n }\r\n\r\n fnInsertQuickMenuUserSet(quickMenuIds: string) {\r\n api.gnb.insertQuickMenuUserSet(this.userCurrent.user.personCode, this.userCurrent.user.comCode, quickMenuIds).then(async (res: any) => {\r\n if (res > -1) {\r\n await(window as any).alertAsync(this.$t('저장_하였습니다').toString());\r\n this.fnGetQuickMenuItems();\r\n }\r\n else {\r\n await(window as any).alertAsync(this.$t('저장_실패').toString());\r\n }\r\n });\r\n }\r\n\r\n // 퀵메뉴 클릭 이벤트 처리\r\n fnQuickMenuClick(item: gnb.QuickMenuItem) {\r\n if (item) {\r\n const { title, linkUrl, moveType, width, height } = item \r\n \r\n\r\n // 퀵매뉴 db에도 박혀있는 부분이라 확인 필요\r\n if(title == '그룹러닝센터' || linkUrl.indexOf(this.getAppConfig('MultiCampersUrl') || '') > -1){\r\n let keydata={linkKey:'',publicKey:''};\r\n const tenant : string = this.getAppConfig('MultiCampersTenantId') || '20917'\r\n const apiurl : string = this.getAppConfig('MultiCampersApiUrl') || 'https://interface.multicampus.com/org/v1/user/public/lcsso/login'\r\n api.gnb.initMulticapmersSsoInit(apiurl,tenant).then(async (res: any) => {\r\n \r\n if( res.code == 'SUCCESS'){\r\n \r\n keydata = res.data\r\n //Cipher c = Cipher.getInstance(\"AES/CBC/PKCS5Padding\");\r\n\r\n //aes.aesEncrypt() '@appbase/util/aes-encrypt' 에 있으나 전용 유틸인거 같아 별도로 사용\r\n const crypto = require('crypto-browserify')\r\n \r\n let utf8Encode = new TextEncoder();\r\n let bufiv = utf8Encode.encode(keydata.publicKey);\r\n //256은 key 32자리줘야함, 16자리주고잇음 \r\n //만일 keydata.publicKey가 32자리로오면 16자리로 잘라서 bufiv에 넣어주고 aes-256-CBC으로 변경\r\n const encryptedCbcBuffer = crypto.createCipheriv('aes-128-CBC',keydata.publicKey ,bufiv); \r\n encryptedCbcBuffer.setAutoPadding(true);\r\n let hmac = encryptedCbcBuffer.update(keydata.linkKey+'|'+tenant, 'utf8', 'base64');\r\n hmac += encryptedCbcBuffer.final('base64');\r\n \r\n let cono = this.userCurrent.user.employeeNumber + this.userCurrent.user.comCode \r\n api.gnb.initMulticapmersSsoBody(apiurl,hmac,keydata.linkKey,cono).then(async (res: any) => {\r\n \r\n if( res.code == 'SUCCESS'){\r\n let ssotoken = res.data\r\n window.open(this.getAppConfig('MultiCampersUrl')+'?token='+ssotoken, '_blank'); \r\n\r\n\r\n }else{\r\n \r\n window.open('https://lc.multicampus.com/isu', '_blank'); \r\n \r\n }\r\n \r\n }).catch((err : any)=>{\r\n console.log('initMulticapmersSsoBody err',err) \r\n \r\n window.open('https://lc.multicampus.com/isu', '_blank'); \r\n }).finally(()=>{\r\n setTimeout(function(){\r\n api.gnb.initMulticapmersSsoEnd(apiurl,hmac,keydata.linkKey)\r\n }, 5000);\r\n });\r\n }else{\r\n \r\n window.open('https://lc.multicampus.com/isu', '_blank'); \r\n \r\n }\r\n \r\n }).catch((err : any)=>{\r\n console.log('initMulticapmersSsoInit err',err)\r\n window.open('https://lc.multicampus.com/isu', '_blank'); \r\n });\r\n }else{\r\n if (linkUrl) {\r\n switch (moveType) {\r\n case 0: // 페이지 이동\r\n document.location.href = linkUrl.toString()\r\n break;\r\n case 1: // 새탭으로 열기\r\n window.open(linkUrl.toString(), '_blank');\r\n break;\r\n case 2: // 팝업\r\n this.fnOpenWindow(linkUrl.toString(), title.toString(), Number(width), Number(height));\r\n break;\r\n }\r\n }\r\n }\r\n \r\n }\r\n }\r\n\r\n fnOpenWindow(url: string, title: string, width: number = 1024, height: number = 900, noinvalidateUrl = false) {\r\n if (url != '') {\r\n // let nWidth = width ? width : 1024\r\n // let nHeight = height ? height : 900\r\n // let nLeft = (screen.width - nWidth) / 2\r\n // let nTop = (screen.height - nHeight) / 2\r\n // let property =\r\n // 'left=' +\r\n // nLeft +\r\n // ',top=' +\r\n // nTop +\r\n // ',height=' +\r\n // nWidth +\r\n // ',width=' +\r\n // nHeight +\r\n // ',toolbar=no,scrollbars=no,resizable=yes'\r\n // window.open(url, title, property)\r\n\r\n openPopup(\r\n title,\r\n url,\r\n {},\r\n {\r\n width: width,\r\n height: height,\r\n toolbar: 0,\r\n scrollbars: 'no',\r\n resizable: 1,\r\n isFrame: this.isTeams,\r\n noinvalidateUrl: noinvalidateUrl\r\n }\r\n )\r\n }\r\n }\r\n\r\n // 메뉴 데이터 생성\r\n fnMakeMenuItem(\r\n childItems: appbase.cache.TMenuItem[],\r\n item: appbase.cache.TMenuItem,\r\n itemType: string\r\n ) {\r\n for (let i = 0; i < childItems.length; i++) {\r\n let isPermission =\r\n (itemType == 'S' ? true : childItems[i].isTopVisible) &&\r\n this.menuPermission.find((x) => x.id == childItems[i].menuId)\r\n ? true\r\n : false && childItems[i].callType == 'USER'\r\n\r\n if (isPermission && childItems[i].hasChildren) {\r\n this.fnMakeMenuItem(childItems[i].children, childItems[i], itemType)\r\n }\r\n\r\n if (i == 0) {\r\n item.children = []\r\n item.hasChildren = false\r\n }\r\n if (isPermission) {\r\n item.children.push(childItems[i])\r\n }\r\n }\r\n\r\n if (item.children.length > 0) {\r\n item.hasChildren = true\r\n }\r\n }\r\n\r\n selectUser(item: account.User) {\r\n // 선택한 겸직으로 활성\r\n if ((window as any).eumLoadingBefore) {\r\n (window as any).eumLoadingBefore();\r\n }\r\n api.common.setConcurrentUserDeptCode(item.personCode, item.deptCode).then((res) => {\r\n window.location.reload();\r\n }).catch((err) => {\r\n if ((window as any).eumLoadingAfter) {\r\n (window as any).eumLoadingAfter(null, err);\r\n }\r\n console?.log(err);\r\n });\r\n }\r\n\r\n mounted() {\r\n\r\n }\r\n\r\n created() {\r\n const { menu } = this.portalCache\r\n const excepts = ['HOME', 'MYPAGE']\r\n let mItems: appbase.cache.TMenuItem[] = menuHelper.setMenuParam(menu.items, this.userCurrent.user)\r\n this.menuPermission = this.userCurrent.permissions.menues\r\n\r\n // 관리자 여부 및 사용자 정보\r\n this.isAdmin =\r\n this.userCurrent.permissions.isSuperAdmin || this.userCurrent.permissions.isCompanyManager\r\n ? true\r\n : false\r\n this.isMailOnly = this.userCurrent.user.deptCode.indexOf('MAILONLY') > -1 ? true : false\r\n this.personCode = this.userCurrent.user.personCode\r\n this.comCode = this.userCurrent.user.comCode\r\n\r\n this.adminUrl = \"/admin\"\r\n //회사자원 및 공용자원 관리 권한\r\n if(this.userCurrent.permissions.isReserveManager || this.userCurrent.permissions.isGlobalReserveManager){\r\n this.adminUrl = \"/admin/reservedb/category\"\r\n this.isAdmin = true\r\n }\r\n \r\n //팝업관리권한\r\n if(this.userCurrent.permissions.isPopupManager){\r\n this.adminUrl = \"/admin/func/noticepopup\"\r\n this.isAdmin = true\r\n }\r\n\r\n //게시판 관리 권한\r\n if(this.userCurrent.permissions.isBoardManager){\r\n this.adminUrl = \"/admin/board-admin/boardSetting/general\"\r\n this.isAdmin = true\r\n }\r\n\r\n //계정 관리\r\n if(this.userCurrent.permissions.isGroupwareAccountManager){\r\n this.adminUrl = \"/admin/hr/proxyPage\"\r\n this.isAdmin = true\r\n }\r\n \r\n for (let i = 0; i < mItems.length; i++) {\r\n let mItem: appbase.cache.TMenuItem = mItems[i]\r\n\r\n if (\r\n mItem.isTopVisible == true &&\r\n mItem.callType == 'USER' &&\r\n this.menuPermission.find((x) => x.id == mItem.menuId)\r\n ) {\r\n this.menuItems.push(mItem)\r\n if (mItem.hasChildren) {\r\n this.fnMakeMenuItem(mItem.children, mItem, 'M')\r\n }\r\n }\r\n\r\n if (\r\n !excepts.includes(mItem.callType) &&\r\n this.menuPermission.find((x) => x.id == mItem.menuId)\r\n ) {\r\n this.siteMapItems.push(mItem)\r\n if (mItem.hasChildren) {\r\n this.fnMakeMenuItem(mItem.children, mItem, 'S')\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n // 다국어 설정\r\n this.userLang = this.userCurrent.userConfig.language\r\n\r\n // 다국어 설정\r\n this.userLang = this.userCurrent.userConfig.language\r\n if (this.userLang && this.userLang == 'ko-KR') {\r\n this.displayName = this.userCurrent.user.displayName\r\n this.titleName = this.userCurrent.user.titleName\r\n this.displayDeptName = this.userCurrent.user.deptName\r\n }\r\n else {\r\n this.displayName = this.userCurrent.user.displayNameEng\r\n this.titleName = this.userCurrent.user.titleNameEn\r\n this.displayDeptName = this.userCurrent.user.deptNameEn\r\n }\r\n\r\n\r\n\r\n // Workfeed 데이터 건수 조회\r\n this.fnGetUnreadWorkFeedCount()\r\n // 퀵메뉴 데이터 조회\r\n this.fnGetQuickMenuItems()\r\n }\r\n\r\n fnUserDisplay(user: account.TUser, type: 0 | 1 | 2 | 3) {\r\n var lang = this.userLang?.toLowerCase();\r\n var company = this.userCurrent.company;\r\n switch (lang) {\r\n case 'ko-kr':\r\n switch (type) {\r\n case 0: // 이름\r\n return user.displayName;\r\n case 1: // 직책\r\n return user.titleName;\r\n case 2: // 부서\r\n return user.deptName;\r\n case 3: // 계열사\r\n return company.companyName;\r\n }\r\n break;\r\n default:\r\n switch (type) {\r\n case 0: // 이름\r\n return user.displayNameEng;\r\n case 1: // 직책\r\n return user.titleNameEn;\r\n case 2: // 부서\r\n return user.deptNameEn;\r\n case 3: // 계열사\r\n return company.companyNameEng;\r\n }\r\n break;\r\n }\r\n switch (type) {\r\n case 0: // 이름\r\n case 1: // 직책\r\n case 2: // 부서\r\n case 3: // 계열사\r\n }\r\n }\r\n\r\n fnGnbClick(item: appbase.cache.TMenuItem) {\r\n //menuHelper.next(item)\r\n if (item) {\r\n // Menu URL이 있는 경우 Menu 이동\r\n if (item.targetUrl) {\r\n menuHelper.next(item)\r\n } else {\r\n if (item.hasChildren && item.children.length > 0 && item.children[0].targetUrl) {\r\n menuHelper.next(item.children[0])\r\n }\r\n else if (item.children[0].hasChildren && item.children[0].children.length > 0 && item.children[0].children[0].targetUrl) {\r\n menuHelper.next(item.children[0].children[0])\r\n }\r\n else if (item.children[0].children[0].hasChildren && item.children[0].children[0].children.length > 0 && item.children[0].children[0].children[0].targetUrl) {\r\n menuHelper.next(item.children[0].children[0].children[0])\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbTop.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbTop.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbTop.vue?vue&type=template&id=3215449a&scoped=true&\"\nimport script from \"./GnbTop.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbTop.ts?vue&type=script&lang=js&\"\nimport style0 from \"./GnbTop.vue?vue&type=style&index=0&id=3215449a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3215449a\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PageLayout } from '@appbase/templates'\r\nimport GnbLeft from '@gnb/containers/GlobalNavigationBarLeft/GnbLeft.vue'\r\nimport GnbTop from '@gnb/containers/GlobalNavigationBarLeft/GnbTop.vue'\r\n\r\n@Component({\r\n components: {\r\n PageLayout,\r\n GnbLeft,\r\n GnbTop\r\n }\r\n})\r\nexport default class GnbLeftView extends Vue {\r\n\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbLeftView.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/ts-loader/index.js??ref--14-3!./GnbLeftView.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GnbLeftView.vue?vue&type=template&id=2ef81084&\"\nimport script from \"./GnbLeftView.ts?vue&type=script&lang=js&\"\nexport * from \"./GnbLeftView.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=style&index=0&id=547bfb80&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal\",style:({display: _vm.show?'block':'none'}),on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"modal-wrap\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-items\"},[_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('알림없음'))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 0)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N분_전_알림', { number: 5 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 5)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N분_전_알림', { number: 10 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 10)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N분_전_알림', { number: 15 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"checked\":\"checked\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 15)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N분_전_알림', { number: 30 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 30)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N시간_전_알림', { number: 1 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.remin$emit('reminder', 60)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N일_전_알림', { number: 1 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 1440)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N일_전_알림', { number: 2 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 2880)}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('div',{staticClass:\"item\"},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(_vm.$t('N일_전_알림', { number: 3 } ))+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"},on:{\"click\":function($event){return _vm.$emit('reminder', 4320)}}}),_c('span',{staticClass:\"checkmark\"})])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n@Component({\r\n})\r\nexport default class AlarmModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./AlarmModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./AlarmModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlarmModal.vue?vue&type=template&id=3d0820e1&\"\nimport script from \"./AlarmModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./AlarmModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('날짜_선택').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('DatePicker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],attrs:{\"showModal\":_vm.show},on:{\"close\":function($event){return _vm.$emit('close')}},model:{value:(_vm.value.start),callback:function ($$v) {_vm.$set(_vm.value, \"start\", $$v)},expression:\"value.start\"}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\nimport DatePicker from '@/components/common/DatePicker/DatePicker.vue'\r\n@Component({\r\n components: {\r\n PopupModal,\r\n DatePicker\r\n }\r\n})\r\nexport default class StartDateModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) value!: calendar.CalendarItem;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./StartDateModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./StartDateModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StartDateModal.vue?vue&type=template&id=2758785c&\"\nimport script from \"./StartDateModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./StartDateModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('날짜_선택').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('DatePicker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],attrs:{\"showModal\":_vm.show},on:{\"close\":function($event){return _vm.$emit('close')}},model:{value:(_vm.value.end),callback:function ($$v) {_vm.$set(_vm.value, \"end\", $$v)},expression:\"value.end\"}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\nimport DatePicker from '@/components/common/DatePicker/DatePicker.vue'\r\n@Component({\r\n components: {\r\n PopupModal,\r\n DatePicker\r\n }\r\n})\r\nexport default class EndDateModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) value!: calendar.CalendarItem;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./EndDateModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./EndDateModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EndDateModal.vue?vue&type=template&id=5e5bb4fd&\"\nimport script from \"./EndDateModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./EndDateModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('폴더_선택').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return _vm._l((_vm.folderList),function(option,index){return _c('div',{key:index,staticClass:\"m-node\",attrs:{\"value\":option.id}},[_c('div',{staticClass:\"m-top\",attrs:{\"selected\":option.id == _vm.value.parentId}},[_c('span',{staticClass:\"menu-icon\"},[_c('i',{staticClass:\"bullet\"})]),_c('span',{staticClass:\"menu-name\",on:{\"click\":function($event){return _vm.$emit('setFolder', option)}}},[_vm._v(_vm._s(option.displayName))]),_c('span',{staticClass:\"menu-icon-arrow\"},[(option.id == _vm.value.parentId)?_c('i',{staticClass:\"icon-check-mark\"}):_vm._e()])])])})},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\nimport { mapGetters } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\n@Component({\r\n components: {\r\n PopupModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n folderListTree: types.FOLDER_LIST_TREE\r\n })\r\n }\r\n})\r\nexport default class FolderModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) value!: calendar.CalendarItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n folderListTree!: any\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 현재 아이템의 폴더를 불러옵니다\r\n */\r\n get folderList(): ItemList {\r\n let allowList = this.folderListTree.companylist.items\r\n .filter((x: any) => { if (x.create) { return x; } });\r\n if (allowList.length) {\r\n return [\r\n ...this.folderListTree.mylist.items, \r\n ...this.folderListTree.companylist.items, \r\n ...this.folderListTree.deptlist.items\r\n ];\r\n } else {\r\n return [\r\n ...this.folderListTree.mylist.items, \r\n ...this.folderListTree.deptlist.items\r\n ];\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderModal.vue?vue&type=template&id=396becf2&\"\nimport script from \"./FolderModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./FolderModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal\",style:({display: _vm.show?'block':'none'}),on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"modal-wrap\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-items\"},[_c('div',{staticClass:\"item\",staticStyle:{\"width\":\"60%\"},attrs:{\"value\":''}},[_c('label',{staticClass:\"em-radio\"},[_vm._v(\"None \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"}}),_c('span',{staticClass:\"checkmark\",on:{\"click\":function($event){return _vm.$emit('setMeetingRoom', null)}}})])]),_vm._l((_vm.conferenceList),function(item,index){return _c('div',{key:index,staticClass:\"item\",staticStyle:{\"width\":\"60%\"},attrs:{\"value\":item.resourceId}},[_c('label',{staticClass:\"em-radio\"},[_vm._v(_vm._s(item.groupDisplayName)+\" > \"+_vm._s(item.displayName)+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"}}),_c('span',{staticClass:\"checkmark\",on:{\"click\":function($event){return _vm.$emit('setMeetingRoom', item)}}})])])})],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport api from '@calendar/api'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapGetters } from 'vuex'\r\n@Component({\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n //item: types.CURRENT_CALENDAR_ITEM\r\n }),\r\n },\r\n})\r\nexport default class MeetingRoomModal extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n // 이수 - 회의실 목록에 db 자원관리 회의실 목록과 연동\r\n conferenceList: any[] = [];\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) value!: calendar.CalendarItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 현재 회의실을 가져옵니다\r\n */\r\n get currentResources() {\r\n return this.value.ui_resourceArray\r\n }\r\n\r\n /**\r\n * 선택한 회의실로 바인딩합니다\r\n */\r\n set currentResources(value: Array) {\r\n this.value.ui_resourceArray = value\r\n }\r\n\r\n created() {\r\n api.db_resourceReserve.getConferenceResource(this.User.comCode).then((res: any[]) => {\r\n this.conferenceList = res\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MeetingRoomModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MeetingRoomModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MeetingRoomModal.vue?vue&type=template&id=347bd7ea&\"\nimport script from \"./MeetingRoomModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./MeetingRoomModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('W_Schedule_StartTime').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('div',{staticClass:\"modal-items\"},_vm._l((_vm.TimeArray),function(time,index){return _c('div',{key:index,staticClass:\"item\",attrs:{\"value\":time.value}},[_c('label',{staticClass:\"em-radio\",on:{\"click\":function($event){return _vm.$emit('setStartTime', time.value)}}},[_vm._v(_vm._s(time.text)+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"}}),_c('span',{staticClass:\"checkmark\"})])])}),0)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\nimport * as dateutil from '@/util/date-helper'\r\n@Component({\r\n components: {\r\n PopupModal\r\n }\r\n})\r\nexport default class StartTimeModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n timeArray: Array = []\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get TimeArray() {\r\n this.timeArray.sort((a, b) => a.num - b.num);\r\n return this.timeArray;\r\n }\r\n\r\n set TimeArray(value) {\r\n this.timeArray = value;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.timeArray = dateutil.uGetTimeArray([this.$t('W_AM').toString(), this.$t('W_PM').toString()])\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./StartTimeModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./StartTimeModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StartTimeModal.vue?vue&type=template&id=005a1a14&\"\nimport script from \"./StartTimeModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./StartTimeModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('W_Schedule_EndTime').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('div',{staticClass:\"modal-items\"},_vm._l((_vm.TimeArray),function(time,index){return _c('div',{key:index,staticClass:\"item\",attrs:{\"value\":time.value}},[_c('label',{staticClass:\"em-radio\",on:{\"click\":function($event){return _vm.$emit('setEndTime', time.value)}}},[_vm._v(_vm._s(time.text)+\" \"),_c('input',{attrs:{\"type\":\"radio\",\"name\":\"radio\"}}),_c('span',{staticClass:\"checkmark\"})])])}),0)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\nimport * as dateutil from '@/util/date-helper'\r\n@Component({\r\n components: {\r\n PopupModal\r\n }\r\n})\r\nexport default class EndTimeModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n timeArray: Array = []\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get TimeArray() {\r\n this.timeArray.sort((a, b) => a.num - b.num);\r\n return this.timeArray;\r\n }\r\n\r\n set TimeArray(value) {\r\n this.timeArray = value;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.timeArray = dateutil.uGetTimeArray([this.$t('W_AM').toString(), this.$t('W_PM').toString()])\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./EndTimeModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./EndTimeModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EndTimeModal.vue?vue&type=template&id=e29b5610&\"\nimport script from \"./EndTimeModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./EndTimeModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.searchMode)?_c('PageHeaderWithActionBar',{attrs:{\"title\":_vm.currentPage.name}},[_c('a',{staticClass:\"item\",on:{\"click\":function($event){_vm.searchMode = true}}},[_c('i',{staticClass:\"icon-search\"})])]):_c('PageHeaderWithSearchBar',{attrs:{\"basic\":false}}),_c('ListContainer',{on:{\"searchEnd\":function($event){_vm.searchMode = false}}}),(!_vm.useNameless)?_c('div',{staticClass:\"write-link\"},[_c('router-link',{attrs:{\"to\":{ name: 'board-write', query: { boardId: _vm.currentPage.id }},\"title\":'새 글 작성'}},[_c('i',{staticClass:\"icon-write\"})])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{attrs:{\"id\":\"header\"}},[_c('div',{class:['header', {home: _vm.$route.name == 'mail-home' }]},[_c('HamburgerButton'),_c('h2',{staticClass:\"page-header\"},[_c('a',{staticClass:\"active\"},[_vm._v(_vm._s(_vm.title))])]),_vm._t(\"left\"),_c('div',{staticClass:\"header-config\"},[_vm._t(\"default\")],2)],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"hamburger\",on:{\"click\":_vm.showSidebar}},[_c('i',{staticClass:\"icon-app\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport { mapMutations } from 'vuex'\r\nimport * as types from '@/store/types'\r\n@Component({\r\n methods: {\r\n ...mapMutations({\r\n setShowSidebar: types.SIDEBAR_VISIBLE\r\n })\r\n }\r\n})\r\nexport default class HamburgerButton extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setShowSidebar!: (show: boolean) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n showSidebar() {\r\n this.setShowSidebar(true)\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./HamburgerButton.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./HamburgerButton.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HamburgerButton.vue?vue&type=template&id=4fee6f81&\"\nimport script from \"./HamburgerButton.ts?vue&type=script&lang=ts&\"\nexport * from \"./HamburgerButton.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport HamburgerButton from './HamburgerButton.vue'\r\n@Component({\r\n components: { HamburgerButton }\r\n})\r\nexport default class PageHeaderWithActionBar extends Vue {\r\n @Prop({ type: String }) title!: string\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageHeaderWithActionBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageHeaderWithActionBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageHeaderWithActionBar.vue?vue&type=template&id=0d30d94c&\"\nimport script from \"./PageHeaderWithActionBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./PageHeaderWithActionBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{attrs:{\"id\":\"header\"}},[_c('div',{staticClass:\"header\"},[(!_vm.searchMode && _vm.basic)?_c('HamburgerButton'):_c('a',{staticClass:\"item\",on:{\"click\":_vm.back}},[_c('i',{staticClass:\"icon-back\"})]),_c('div',{staticClass:\"header-search\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.keyword),expression:\"keyword\"}],attrs:{\"type\":\"search\",\"placeholder\":_vm.$t('검색어_입력')},domProps:{\"value\":(_vm.keyword)},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.keyword=$event.target.value}}})]),_c('div',{staticClass:\"header-config\"},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.search}},[_c('i',{staticClass:\"icon-search\"})])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport HamburgerButton from './HamburgerButton.vue'\r\nimport { dispatchEventBus } from '@/util/eventBus'\r\n@Component({\r\n components: { HamburgerButton }\r\n})\r\nexport default class PageHeaderWithSearchBar extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Boolean, default: true}) basic!: boolean\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n searchMode: boolean = false\r\n keyword: string = ''\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async search() {\r\n if (!this.keyword) {\r\n await(window as any).alertAsync(this.$t('검색어_입력').toString())\r\n return false\r\n }\r\n dispatchEventBus(window, 'header-search', this.keyword)\r\n this.searchMode = true\r\n }\r\n\r\n back() {\r\n dispatchEventBus(window, 'header-search', '')\r\n this.keyword = ''\r\n this.searchMode = false\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageHeaderWithSearchBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageHeaderWithSearchBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageHeaderWithSearchBar.vue?vue&type=template&id=98e97e2e&\"\nimport script from \"./PageHeaderWithSearchBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./PageHeaderWithSearchBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',{directives:[{name:\"infinite-scroll\",rawName:\"v-infinite-scroll\",value:(_vm.loadMore),expression:\"loadMore\"}],attrs:{\"infinite-scroll-disabled\":\"busy\",\"infinite-scroll-distance\":\"63\",\"infinite-scroll-immediate-check\":\"false\"}},[(_vm.boardList && _vm.boardList.length)?_c('div',{staticClass:\"board-list\"},_vm._l((_vm.boardList),function(item,idx){return _c('BoardListItem',{key:idx,attrs:{\"item\":item}})}),1):_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_mail.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('표시할_항목이_없습니다')))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"item\",on:{\"click\":_vm.selectItem}},[_c('div',{staticClass:\"body\"},[_c('div',{staticClass:\"subject-wrap\"},[(_vm.item.prefaceText)?_c('p',{staticClass:\"subject\"},[_vm._v(\"[\"+_vm._s(_vm.item.prefaceText)+\"] \"+_vm._s(_vm.item.title))]):_c('p',{staticClass:\"subject\"},[(_vm.item.isNotice)?_c('span',{staticClass:\"badge badge-red m-r-xs\"},[_vm._v(_vm._s(_vm.$t(\"공지\")))]):_vm._e(),(_vm.showreplyLevel(_vm.item))?_c('i',{staticClass:\"icon-fux-board-reply m-r-xs\"}):_vm._e(),_vm._v(_vm._s(_vm.item.prefaceText)+\" \"+_vm._s(_vm.item.title)+\" \")]),(_vm.showNewIcon(_vm.item))?_c('span',{staticClass:\"new\"},[_vm._v(\"N\")]):_vm._e(),(_vm.showUpdateIcon(_vm.item))?_c('span',{staticClass:\"update\"},[_vm._v(\"U\")]):_vm._e()]),_c('div',{staticClass:\"info\"},[_c('span',{staticClass:\"writer\"},[_vm._v(_vm._s(_vm.item.createdUserName))]),_c('span',{staticClass:\"created\"},[_vm._v(_vm._s(_vm.getDate(_vm.item.createdDate, \"yyyy-MM-dd\")))]),_c('span',{staticClass:\"views\"},[_c('i',{staticClass:\"icon-eye\"}),_vm._v(\" \"+_vm._s(_vm.item.viewCount)+\" \")]),_c('span',{staticClass:\"views\"},[_c('i',{staticClass:\"icon-communication\"}),_vm._v(\" \"+_vm._s(_vm.item.commentCount)+\" \")]),(_vm.item.hasAttachFile && _vm.item.fileCode)?_c('span',{staticClass:\"views\"},[_c('i',{staticClass:\"icon-attach\"})]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { mapMutations } from \"vuex\";\r\nimport * as types from \"@board/store/types\";\r\nimport * as dateutil from \"@/util/date-helper\";\r\n@Component({\r\n components: {},\r\n methods: {\r\n ...mapMutations({\r\n setCurrentArticle: types.BOARD_ARTICLE_CURRENT,\r\n }),\r\n },\r\n})\r\nexport default class BoardListItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) item!: article.Article;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrentArticle!: (item: article.Article) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n showNewIcon(article: article.Article) {\r\n var oneDay = 1000 * 60 * 60 * 24;\r\n var createdDate = new Date(article.createdDate.toString());\r\n var today = new Date();\r\n\r\n var timeSpan = today.getTime() - createdDate.getTime();\r\n\r\n //임시저장 문서는 표시되지 않음\r\n if (timeSpan <= oneDay && article.isDraft == false) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n showUpdateIcon(article: article.Article) {\r\n var oneDay = 1000 * 60 * 60 * 24;\r\n var today = new Date();\r\n //생성일\r\n var createdDate = new Date(article.createdDate.toString());\r\n //수정일\r\n var updateDateString = article.updatedDate?.toString();\r\n //수정일이 정의되지 않으면 바로 flase return\r\n if (updateDateString != null || updateDateString != undefined) {\r\n var updateDate = new Date(updateDateString.toString());\r\n //수정일이 작성일보다 클 때\r\n var updateDiff = updateDate.getTime() - createdDate.getTime();\r\n // 수정일이 하루 차이 날 때\r\n var updateTimeSpan = today.getTime() - updateDate.getTime();\r\n\r\n //임시저장 문서는 표시되지 않음\r\n if (updateDiff > 0 && updateTimeSpan <= oneDay && article.isDraft == false) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n selectItem() {\r\n this.setCurrentArticle(this.item);\r\n this.$router.push({ path: `/board/read?boardId=${this.item.boardId}&articleId=${this.item.articleId}` });\r\n }\r\n\r\n getDate(dateStr: string, format: string) {\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr));\r\n }\r\n \r\n showreplyLevel(article: article.Article) {\r\n if (article.parentArticle != null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./BoardListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./BoardListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BoardListItem.vue?vue&type=template&id=af4527c8&\"\nimport script from \"./BoardListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./BoardListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { createEventBus, removeEventBus } from '@/util'\r\nimport Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport BoardListItem from '@board/components/List/BoardListItem.vue'\r\nimport api from '@board/api'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapGetters } from 'vuex'\r\n@Component({\r\n components: { BoardListItem },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n })\r\n },\r\n})\r\nexport default class ListContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n searchValue: string = ''\r\n boardList: article.Article[] = []\r\n pageNumber: number = 1\r\n loadMorePossible: boolean = true\r\n\r\n pageSize: number = 15 //한 페이지당 노출 수 2023-05-30\r\n totalCount: number = 0 //전체 숫자 2023-05-30 추가\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadData() {\r\n var searchSet: article.SearchSet = {\r\n userCode: this.User.personCode,\r\n boardId: Number(this.$route.query.id),\r\n page: this.pageNumber,\r\n itemsPerPage: this.pageSize,\r\n searchField: this.searchValue ? 1 : 0,\r\n searchFieldValue: this.searchValue,\r\n prefaceId1: null,\r\n prefaceId2: null,\r\n sortField: 0,\r\n sortOrder: false,\r\n includeContent: false,\r\n useNotice: true\r\n }\r\n\r\n //추가 페이지 여부 확인 2023-05-30\r\n if(this.totalCount > 0){\r\n if (this.pageNumber > Math.ceil(this.totalCount/this.pageSize))\r\n {\r\n this.loadMorePossible = false\r\n return false\r\n }\r\n }\r\n\r\n api.article.getArticles(searchSet).then(res => {\r\n if (res.data.length) {\r\n this.totalCount = Number(res.totalCount || 0) //총 개수 2023-05-30 추가\r\n if (this.pageNumber > 1) {\r\n this.boardList = [...(this.boardList || []), ...res.data]\r\n } else {\r\n this.isloading(false)\r\n this.boardList = res.data\r\n }\r\n } else {\r\n this.isloading(false)\r\n this.loadMorePossible = false\r\n }\r\n })\r\n }\r\n\r\n loadMore() {\r\n if (this.loadMorePossible) {\r\n this.pageNumber ++\r\n this.loadData()\r\n }\r\n }\r\n\r\n handleSearchRequest(keyword: string) {\r\n if (keyword) {\r\n this.searchValue = keyword\r\n } else {\r\n this.searchValue = ''\r\n this.$emit('searchEnd')\r\n }\r\n this.loadDataReset()\r\n this.loadData()\r\n }\r\n\r\n loadDataReset() {\r\n this.boardList = []\r\n this.pageNumber = 1\r\n this.loadMorePossible = true\r\n }\r\n\r\n @Watch('$route.query.id')\r\n onChangedMenuId() {\r\n this.loadDataReset()\r\n this.loadData()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n this.loadData()\r\n createEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListContainer.vue?vue&type=template&id=5e830ffa&\"\nimport script from \"./ListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport PageHeaderWithSearchBar from '@/components/common/Header/PageHeaderWithSearchBar.vue'\r\nimport ListContainer from '@board/containers/ListContainer.vue'\r\nimport * as types from '@/store/types'\r\nimport { mapGetters } from 'vuex'\r\nimport api from '@board/api'\r\n@Component({\r\n components: { PageHeaderWithActionBar, PageHeaderWithSearchBar, ListContainer },\r\n computed: {\r\n ...mapGetters({\r\n currentPage: types.CURRENT_PAGE\r\n })\r\n }\r\n})\r\nexport default class ListView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentPage!: object\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n searchMode: boolean = false\r\n currentBoard: number = 0\r\n useNameless: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getWriteConfig(boardId: number) {\r\n api.board.getWriteConfig(boardId).then((res: board.WriteConfig) => {\r\n this.useNameless = res.useNameless\r\n })\r\n }\r\n\r\n @Watch('$route.query.id')\r\n onChangedBoardId(id: string) {\r\n this.getWriteConfig(Number(id))\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n var { id } = this.$route.query\r\n\r\n if (id) this.currentBoard = Number(id)\r\n\r\n this.getWriteConfig(this.currentBoard)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListView.vue?vue&type=template&id=fbb1b982&\"\nimport script from \"./ListView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',[(_vm.canUpdate || _vm.canDelete)?_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.actionOpen = !_vm.actionOpen}}},[_c('i',{staticClass:\"icon-more\"})]),_c('div',{class:['dropdown-content', {show: _vm.actionOpen}]},[_c('ul',[(_vm.canUpdate)?_c('li',[_c('a',{on:{\"click\":_vm.edit}},[_c('i',{staticClass:\"icon-write\"}),_vm._v(_vm._s(_vm.$t('수정'))+\" \")])]):_vm._e(),(_vm.canDelete)?_c('li',[_c('a',{on:{\"click\":_vm.deleteItem}},[_c('i',{staticClass:\"icon-bin\"}),_vm._v(_vm._s(_vm.$t('삭제'))+\" \")])]):_vm._e()])])]):_vm._e()]),_c('ReadContainer',{ref:\"readContainer\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{attrs:{\"id\":\"header\"}},[_c('div',{staticClass:\"header\"},[_c('a',{staticClass:\"pop-close\"},[_c('i',{staticClass:\"icon-back\",on:{\"click\":_vm.back}})]),_c('h2',{staticClass:\"page-header\"},[_c('a',{staticClass:\"active\"},[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"header-config\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { dispatchEventBus } from '@/util';\r\n@Component({})\r\nexport default class PageViewHeaderWithActionBar extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String }) title!: string\r\n @Prop({ type: Boolean, default: false }) eventBus!: boolean\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n back() {\r\n if (this.eventBus) {\r\n dispatchEventBus(window, 'header-back', null)\r\n } else {\r\n history.back()\r\n }\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageViewHeaderWithActionBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageViewHeaderWithActionBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageViewHeaderWithActionBar.vue?vue&type=template&id=147dabe7&\"\nimport script from \"./PageViewHeaderWithActionBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./PageViewHeaderWithActionBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[(_vm.article)?_c('section',[_c('div',{staticClass:\"read-area\"},[_c('div',{staticClass:\"read-title flex-layout\"},[_c('div',{staticClass:\"title-left\"},[_c('h4',{staticClass:\"ellipsis line-clamp-2\"},[_vm._v(_vm._s(_vm.article.title))]),_c('div',{staticClass:\"info\"},[_c('span',{staticClass:\"writer\"},[_vm._v(_vm._s(_vm.article.createdUserName))]),_c('span',{staticClass:\"divide-md\"}),_c('span',{staticClass:\"created\"},[_vm._v(_vm._s(_vm.getDate(_vm.article.createdDate, 'yyyy-MM-dd')))]),_c('span',{staticClass:\"divide-md\"}),_c('span',{staticClass:\"views\"},[_c('i',{staticClass:\"icon-eye\"}),_vm._v(\" \"+_vm._s(_vm.article.viewCount))]),_c('span',{staticClass:\"divide-md\"}),_c('span',{staticClass:\"views\"},[_c('i',{staticClass:\"icon-communication\"}),_vm._v(\" \"+_vm._s(_vm.commentCount))])])]),_c('div',{staticClass:\"title-right\"},[(_vm.article.hasAttachFile && _vm.article.fileCode)?_c('a',{attrs:{\"id\":\"btnModal\"},on:{\"click\":function($event){_vm.showAttachModal = true}}},[_c('i',{staticClass:\"icon-attach\"})]):_vm._e(),_c('AttachModal',{attrs:{\"show\":_vm.showAttachModal,\"fileCode\":_vm.article.fileCode},on:{\"close\":function($event){_vm.showAttachModal = false}}})],1)]),_c('div',{staticClass:\"read-frame\",domProps:{\"innerHTML\":_vm._s(_vm.article.content)}}),_c('div',{staticClass:\"read-bottom\"},[_c('div',{staticClass:\"btn-comment\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_BB_Comment'))),_c('em',{staticClass:\"num\"},[_vm._v(_vm._s(_vm.commentCount))])]),_c('span',{staticClass:\"divide-md m-l-m m-r-m\"}),_c('span',[_c('a',{staticClass:\"ft-red m-r-xs\",on:{\"click\":_vm.recommendArticle}},[_c('i',{class:{ 'icon-fux-heart-fill': _vm.userRecommended, 'icon-fux-heart': !_vm.userRecommended }})]),_c('router-link',{attrs:{\"to\":{ name: 'board-recommend', query: { articleId: _vm.article.articleId }}}},[_vm._v(_vm._s(_vm.$t('W_BB_Recommendation'))),_c('em',{staticClass:\"num\"},[_vm._v(_vm._s(_vm.recommendCount))])])],1)]),_c('CommentWrite',{attrs:{\"show\":true,\"articleId\":_vm.article.articleId,\"commentId\":0},on:{\"loadComment\":_vm.loadComment}}),_c('div',{staticClass:\"comment-list\"},_vm._l((_vm.commentList),function(comment,idx){return _c('CommentItem',{key:idx,attrs:{\"item\":comment,\"photoUrl\":_vm.commnetPhotos[idx].photoUrl},on:{\"loadComment\":_vm.loadComment}})}),1)],1)])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:({display: _vm.show?'block':'none'})},[_c('div',{staticClass:\"modal\",style:({display: _vm.show?'block':'none'}),on:{\"click\":function($event){return _vm.close()}}}),_c('ProgressRing',{attrs:{\"busy\":!_vm.isLoading,\"progressMessge\":_vm.loadingMessage}}),_c('div',{staticClass:\"modal-wrap\"},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-list\"},_vm._l((_vm.fileList),function(item,index){return _c('div',{key:index,staticClass:\"item\"},[_c('div',{staticStyle:{\"float\":\"left\",\"width\":\"10%\"}},[_vm._v(\" \")]),_c('div',{staticStyle:{\"float\":\"left\",\"width\":\"50%\"}},[_c('a',{on:{\"click\":function($event){return _vm.preview(item)}}},[_c('div',{staticStyle:{\"text-overflow\":\"ellipsis\",\"white-space\":\"nowrap\",\"overflow\":\"hidden\",\"width\":\"250px\"}},[_c('i',{staticClass:\"icon-attach\"}),_vm._v(\" \"+_vm._s(item.name)+\" \")])])]),_c('div',{staticStyle:{\"float\":\"right\",\"width\":\"30%\"}},[_c('a',{on:{\"click\":function($event){return _vm.download(item.downloadUrl)}}},[_c('i',{staticClass:\"ft-blue icon-download\"})])]),_c('div',{staticStyle:{\"float\":\"right\",\"width\":\"10%\"}},[_vm._v(\" \")])])}),0)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { dispatchEventBus } from './eventBus'\r\nimport api from '@appbase/api'\r\n\r\nexport interface ShowViewerOption {\r\n show: boolean\r\n filename: string\r\n url: string\r\n}\r\n\r\nconst SHOW_DOC_VIEWER = `evtbus-show-document-viewer`\r\nconst md5 = require('md5')\r\n\r\n/**\r\n * Job API는 문서를 변환하기 위한 API입니다.\r\n * 문서뷰어 서버에디션에서 접근 가능한 로컬 경로나, FTP, URL을 이용하여 문서를 가져오고, 변환할 수 있습 니다.\r\n * JSON또는 GET/POST를 통해 API 사용이 가능하며 JSON일경우 아래와 같은 형태로 지정하여 사용하면 됩니다.\r\n *\r\n * [참고] GET 방식 전달 시 Request 파라미터는 반드시 URL Encoding이 적용된 값이어야 합니다.\r\n */\r\ninterface RequestParam {\r\n /**\r\n * 문서 고유 유일키 설정입니다. \"fid\" 가 동일한 문서 원본이 서버에 존재하면 성능을 위해\r\n * 문서를 다시 수집하지 않습니다 \"fid\" 는 공백을 제외한 255자 이하의 문자열로 지정해야 합니다\r\n */\r\n fid: string\r\n fileType: 'Local' | 'URL' | 'FTP'\r\n filePath: string\r\n /**\r\n * 스킨에서 표시할 문서의 제목을 설정합니다 설정하지 않는 경우 파일명을 제목으로 사용합니다\r\n */\r\n title?: string\r\n /**\r\n * 0 : HTML 형식으로 변환합니다 1 : IMAGE 형식으로 변환합니다\r\n */\r\n convertType?: '0' | '1'\r\n /**\r\n * 원본 문서 파일 출처 표시\r\n *\r\n * ? API 문서상에서 `referUrl`와 `refererUrl`를 혼용해서 사용하고 있는데\r\n * ? 나중에 이 속성이 필요할 경우 확인 필요\r\n */\r\n refererUrl?: string\r\n /**\r\n * 원본 문서 파일 다운로드 URL을 지정합니다. 값이 있으면 스킨에서\r\n * 다운로드 버튼이 활성화됩니다.\r\n */\r\n downloadUrl?: string\r\n /**\r\n * true : 기존 변환 결과를 사용하지 않고 강제로 재변환합니다\r\n * false : 변환 결과가 있는 경우 재변환하지 않고 기존 변환 결과를 재사용합니다\r\n * @default false\r\n */\r\n force?: boolean\r\n /**\r\n * true : 변환 요청 후 변환이 완료되면 뷰어 URL을 반환합니다(응답 코드: 302)\r\n * false : 변환 요청 후 변환 성공과 상관 없이 JSON을 반환합니\r\n * @default false\r\n */\r\n sync?: boolean\r\n /**\r\n * 원본 URL의 인코딩 타입을 지정합니다.\r\n * UTF-8 : filePath URL의 Encoding 값이 UTF-8 인 경우 사용합니다\r\n * EUC-KR : filePath URL의 Encoding 값이 EUC-KR 인 경우 사용합니다\r\n *\r\n * [응답 예시]\r\n * - `key` : 변환 요청에 대한 식별자입니다\r\n * - `status` : API 등 다른 API 동작 시 사용합니다\r\n * - `fileName` : 변환 원본 문서의 파일명입니다 resultDirPath 서버 내 변환 결과 저장 경로입니다\r\n */\r\n urlEncoding?: 'UTF-8' | 'EUC-KR'\r\n /**\r\n * 워터마크에 표시되는 문자열을 설정합니다 관리자 설정에서 워터마크 타입을\r\n * 'TEXT' 로 설정할 때만 사용 가능합니다\r\n */\r\n watermarkText?: string\r\n /**\r\n * 변환 요청 시, 인증에 대한 Token 값을 설정합니다 관리자 설정에서 API Key\r\n * 사용 설정했을 때만 동작합니다\r\n */\r\n apiToken?: string\r\n /**\r\n * Base64인코딩된 JSON형태의 쿠 키 값\r\n * fileType이 URL 형식으로 지정된 경우에만 동작합니다 원본 파일 URL 인증 시\r\n * 사용할 포함할 쿠키 데이터를 설정합니다 POST 방식에서만 지원됩니다\r\n */\r\n accessCookieData?: string\r\n /**\r\n * HTML 문서의 자바스크립트 코드 실행 여부를 설정합니다\r\n * true : 자바스크립트를 실행한 후 변환합니다\r\n * false : 자바스크립트를 실행하지 않고 변환합니다\r\n * @default true\r\n */\r\n useJavascript?: boolean\r\n /**\r\n * 변환 시 사용할 언어 정보를 설정합니다 문서 변환 시 참조하여 문서를 분석하고\r\n * 변환합니다 언어에 따라 한자 모양이 달라질 수 있습니다 설정에 따라 스킨 UI의\r\n * 언어가 변경됩니다 값이 없는 경우 관리자에서 설정한 기본값을 사용합니다\r\n */\r\n convertLocale?: 'ko_KR' | 'en_US' | 'ja_JP' | 'zh_CN'\r\n /**\r\n * 변환할 HTML의 페이지 가로 크기를 설정합니다 크기는 정수이고 단위는 px 입니다\r\n * 설정하지 않으면 기본값인 -1을 사용합니다\r\n * @default -1\r\n */\r\n htmlWidth?: number\r\n /**\r\n * 변환할 HTML의 페이지 가로 크기를 설정합니다 크기는 정수이고 단위는 px 입니다\r\n * 설정하지 않으면 기본값인 -1을 사용합니다\r\n * @default -1\r\n */\r\n htmlWait?: number\r\n}\r\n\r\n/**\r\n * 뷰어 접근 제한이 활성화된 경우 뷰어 접근 인증 쿠키가 응답에 포함됩니다.\r\n * 뷰어 접근 제한이 활성화된 경우는 이후 API 사용 시 해당 쿠키 정보를 Request에 포함해야 합니다.\r\n * sync 파라미터가 true 로 설정된 경우 302 응답을 통해 뷰어가 자동으로 실행됩니다. .. code-block:\r\n * HTTP/1.1 302 Location: http://{Server Address}/SynapDocViewServer/viewer/doc.html?\r\n * key={key}&contextPath=/SynapDocViewServer\r\n */\r\nclass DocumentViewerHelper {\r\n /**\r\n * 오픈하려는 문서를 문서뷰어와 연동하여 로드합니다.\r\n * @param filename 파일이름\r\n * @param url 다운로드 가능한 파일의 URL\r\n */\r\n async open(filename: string, url: string, useEventBus: boolean): Promise {\r\n const host = location.host.indexOf('localhost') > -1 || location.host == 'gwt.isu.co.kr' ? 'https://viewt.isu.co.kr' : 'https://view.isu.co.kr';\r\n const szServiceUrl = host + '/SynapDocViewServer/job';\r\n\r\n const szFileId = md5(filename + url);\r\n\r\n if (url.startsWith('http://') || url.startsWith('https://')) {\r\n url = url\r\n } else if (url.startsWith('/')) {\r\n url = `${location.protocol}//${location.host}${url}`\r\n } else {\r\n url = `${location.protocol}//${location.host}/${url}`\r\n }\r\n\r\n const options: { [key: string]: any } = {\r\n fid: szFileId,\r\n filePath: url,\r\n convertType: '1',\r\n fileType: 'URL',\r\n }\r\n\r\n var params: string[] = []\r\n Object.keys(options).forEach(function(key) {\r\n var value = options[key]\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value)\r\n }\r\n params.push(key + '=' + encodeURIComponent(value))\r\n })\r\n\r\n var queryString = params.join('&')\r\n const requestUrl = `${szServiceUrl}?${queryString}`\r\n // window.location.href = requestUrl;\r\n // window.open(requestUrl, 'DocPreview')\r\n\r\n var docurl = ''\r\n var data = {\r\n Headers: [{\r\n Key: 'ContentType',\r\n Value: 'application/json'\r\n }],\r\n Url: requestUrl,\r\n Data: null,\r\n Method: 'get',\r\n WithHeaders: false,\r\n IgnoreWithHeaders: null\r\n }\r\n await api.file.docViewerKeyRequest(data).then((res: any) => {\r\n var obj = JSON.parse(res);\r\n docurl = host + '/SynapDocViewServer/viewer/doc.html?key='+ obj.key + '&contextPath=/SynapDocViewServer';\r\n })\r\n\r\n if (szServiceUrl.split('//')[0] == location.protocol && useEventBus) {\r\n console.log('docurl', docurl)\r\n const payload: ShowViewerOption = {\r\n show: true,\r\n url: docurl,\r\n filename: filename,\r\n }\r\n dispatchEventBus(window, SHOW_DOC_VIEWER, payload)\r\n } else {\r\n if(window.navigator.userAgent.includes('Safari')) {\r\n window.location.assign(url);\r\n } else {\r\n window.open(docurl)\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default new DocumentViewerHelper()\r\n","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport api from '@board/api'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport fileViewer from '@appbase/util/doc-viewer-helper'\r\nimport ProgressRing from '@/components/common/ProgressRing.vue'\r\n\r\n@Component({\r\n components: {\r\n ProgressRing,\r\n },\r\n})\r\nexport default class AttachModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: String }) fileCode!: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n fileList: article.FileStore[] = []\r\n\r\n isLoading: boolean = true;\r\n loadingMessage: string = 'Decryption is in progress.';\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadFile() {\r\n api.article.getArticleFile(this.fileCode).then((res: any) => {\r\n console.log(res)\r\n this.fileList = res\r\n })\r\n }\r\n\r\n close() {\r\n this.$emit('close');\r\n }\r\n\r\n // selectFile -> preview로 변경 2024.01.15\r\n preview(file: any) {\r\n if(this.CheckDocumentExtension(file.extension))//ms office문서만체크\r\n {\r\n if(file.exportStatus == 'Y'){\r\n fileViewer.open(file.name, file.exportUrl, false)\r\n this.$emit('close');\r\n }else{\r\n this.isLoading = false;\r\n api.article.createExportFile(file.id).then(res => {\r\n var intervalCount = 10;\r\n var trigger = setInterval(() => {\r\n api.article.getArticleFile(this.fileCode).then((res: any) => {\r\n intervalCount--;\r\n if (res && res.length) {\r\n this.fileList = res.map((file: any) => {\r\n ...file,\r\n custom: true,\r\n uniqueIdentifier: file.id,\r\n type: 'Database'\r\n }) as any; \r\n\r\n var decodeFile = this.fileList.filter((x) => x.id == file.id); \r\n\r\n if (decodeFile && decodeFile.length && decodeFile[0].exportStatus == 'Y')\r\n {\r\n this.isLoading = true;\r\n clearInterval(trigger);\r\n fileViewer.open(decodeFile[0].name, decodeFile[0].exportUrl, false)\r\n this.$emit('close');\r\n }\r\n else\r\n {\r\n if (intervalCount <= 0) \r\n {\r\n this.isLoading = true;\r\n clearInterval(trigger);\r\n fileViewer.open(decodeFile[0].name, decodeFile[0].downloadUrl, false)\r\n this.$emit('close');\r\n } \r\n }\r\n } \r\n else \r\n {\r\n if (intervalCount <= 0) \r\n {\r\n this.isLoading = true;\r\n clearInterval(trigger);\r\n fileViewer.open(file.name, file.downloadUrl, false)\r\n this.$emit('close');\r\n } \r\n }\r\n //console.log(\"intervalCount\", intervalCount);\r\n // if(res[0].exportStatus == 'Y'){\r\n // this.isLoading = true;\r\n // clearInterval(trigger);\r\n // fileViewer.open(res[0].name, res[0].exportUrl, false)\r\n // this.$emit('close');\r\n // }\r\n // else{\r\n // if (intervalCount <= 0) {\r\n // this.isLoading = true;\r\n // clearInterval(trigger);\r\n // fileViewer.open(res[0].name, res[0].downloadUrl, false)\r\n // this.$emit('close');\r\n // } \r\n // }\r\n })\r\n }, 2000)\r\n });\r\n }\r\n }\r\n else{\r\n fileViewer.open(file.name, file.downloadUrl, true)\r\n this.$emit('close');\r\n }\r\n }\r\n\r\n //다운로드 추가 2024.01.15\r\n download(url: string){\r\n let _osCheck = navigator.userAgent;\r\n if(_osCheck.includes('Mac')) {\r\n //팀즈 앱 으로 접속 한 경우 2024.02.27\r\n if(_osCheck.includes('Safari') || this.isTeams == true)\r\n {\r\n let _a = document.createElement('a');\r\n _a.target = '_blank';\r\n _a.href = url;\r\n document.body.appendChild(_a);\r\n _a.click();\r\n } else { //팀플러스 앱으로 접속 한 경우 2024.02.27 \r\n (window as any).dsmobileapp.web2app('link','download', {'url':url, 'filename': name})\r\n }\r\n }else{\r\n location.href = url;\r\n }\r\n }\r\n\r\n getDate(dateStr: string, format: string) {\r\n console.log(dateStr)\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr))\r\n }\r\n\r\n CheckDocumentExtension(extension: string){\r\n var fileExtension = extension.toUpperCase().replace('.', '');\r\n var value = false;\r\n if (fileExtension == \"DOCX\"\r\n || fileExtension == \"PPTX\"\r\n || fileExtension == \"XLSX\"\r\n ) {\r\n value = true;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n created() {\r\n this.loadFile()\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./AttachModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./AttachModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AttachModal.vue?vue&type=template&id=2cac2b4b&\"\nimport script from \"./AttachModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./AttachModal.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./AttachModal.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"comment-write\"},[_c('div',{staticClass:\"info\"},[(_vm.mode != 2)?_c('span',{staticClass:\"writer\"},[_vm._v(_vm._s(_vm.User.displayName))]):_c('span',{staticClass:\"writer\"},[_vm._v(\"@\"+_vm._s(_vm.item.userName)+\" 님에게 답글\")])]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mComment),expression:\"mComment\"}],staticClass:\"t-comment\",attrs:{\"rows\":\"1\",\"placeholder\":\"댓글을 입력해주세요\"},domProps:{\"value\":(_vm.mComment)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.mComment=$event.target.value}}}),_c('div',{staticClass:\"bottom\"},[(_vm.mode == 1)?_c('a',{staticClass:\"btn\",on:{\"click\":_vm.updateComment}},[_vm._v(\"수정\")]):_c('a',{staticClass:\"btn\",on:{\"click\":_vm.createComment}},[_vm._v(\"등록\")]),(_vm.mode != 0)?_c('a',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\"취소\")]):_vm._e()])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\nimport api from '@board/api'\r\n\r\n@Component({\r\n computed: mapGetters({\r\n User: accountTypes.USER,\r\n })\r\n})\r\nexport default class CommentWrite extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: article.ArticleComment\r\n @Prop({type: Boolean, default: false }) show!: boolean\r\n @Prop({type: Number}) articleId!: number\r\n @Prop({type: Number, default: 0}) commentId!: number\r\n @Prop({type: Number, default: 0}) mode!: number // 등록 0, 수정 1, 답글 2 \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n mComment: string = \"\"\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // 댓글, 답글 등록\r\n async createComment() {\r\n if (this.mComment.length == 0) {\r\n await(window as any).alertAsync(this.$t('M_BB_CommentIsNull').toString());\r\n return;\r\n }\r\n\r\n api.article.createComment({\r\n createdUser: {\r\n deptName: this.User.titleName,\r\n deptName_En: this.User.titleNameEn,\r\n userCode: this.User.id,\r\n userJobTitle: this.User.deptName,\r\n userJobTitle_En: this.User.deptNameEn,\r\n userName: this.User.displayName,\r\n userName_En: this.User.displayNameEng\r\n },\r\n replyTo: this.mode == 0 ? null : this.item.commentId,\r\n articleId: this.articleId,\r\n content: this.mComment\r\n }).then(res => {\r\n this.mComment = \"\";\r\n this.$emit('loadComment', this.articleId)\r\n })\r\n }\r\n\r\n // 내 댓글 수정\r\n updateComment() {\r\n api.article.createComment({\r\n createdUser: {\r\n deptName: this.User.titleName,\r\n deptName_En: this.User.titleNameEn,\r\n userCode: this.User.id,\r\n userMail: this.User.email,\r\n userDept: this.User.deptCode,\r\n userPhone: this.User.officeTel,\r\n userJobTitle: this.User.deptName,\r\n userJobTitle_En: this.User.deptNameEn,\r\n userName: this.User.displayName,\r\n userName_En: this.User.displayNameEng\r\n },\r\n replyTo: this.item.replyTo,\r\n articleId: this.articleId,\r\n content: this.mComment,\r\n commentId: this.item.commentId\r\n }).then(res => { \r\n this.$emit('loadComment', this.articleId)\r\n }) \r\n }\r\n\r\n @Watch('mode')\r\n onChangedMode(newVal: number) {\r\n if (this.mode == 1) {\r\n this.mComment = this.item.content\r\n } else {\r\n this.mComment = ''\r\n }\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CommentWrite.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CommentWrite.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommentWrite.vue?vue&type=template&id=16c91f44&\"\nimport script from \"./CommentWrite.ts?vue&type=script&lang=ts&\"\nexport * from \"./CommentWrite.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.item.replyTo == null ? '' : 'reply-wrap',staticStyle:{\"margin\":\"0\"}},[_c('div',{staticClass:\"item\"},[_c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":_vm.photoUrl}})]),_c('div',{staticClass:\"body\"},[_c('div',{staticClass:\"info\"},[_c('span',{staticClass:\"writer\"},[_vm._v(_vm._s(_vm.item.userName)+\" \")]),_c('span',{staticClass:\"created\"},[_vm._v(_vm._s(_vm.getDate(_vm.item.createdDate, 'yyyy-MM-DD')))]),(_vm.User.personCode === _vm.item.userCode)?_c('span',{staticClass:\"edit\"},[_c('a',{on:{\"click\":_vm.updateComment}},[_vm._v(\"수정\")]),_c('a',{on:{\"click\":_vm.deleteComment}},[_vm._v(\"삭제\")])]):_vm._e()]),_c('div',{staticClass:\"subject-wrap\"},[(_vm.item.replyTo == null)?_c('p',{staticClass:\"contents\"},[_vm._v(_vm._s(_vm.item.content))]):_c('p',{staticClass:\"contents\"},[_c('span',{staticClass:\"ft-blue\"},[_vm._v(\"@\"+_vm._s(_vm.item.replyToName)+\" \")]),_vm._v(_vm._s(_vm.item.content))])]),_c('a',{staticClass:\"ft-s ft-gray\",on:{\"click\":_vm.replyComment}},[_vm._v(\"답글\")])])]),_c('CommentWrite',{attrs:{\"item\":_vm.item,\"show\":_vm.commentEdit,\"articleId\":_vm.item.articleId,\"commentId\":_vm.item.commentId,\"mode\":_vm.mode},on:{\"close\":function($event){_vm.commentEdit = false},\"loadComment\":_vm.loadComment}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport CommentWrite from '@board/components/Read/CommentWrite.vue'\r\nimport api from '@board/api'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\n@Component({\r\n components: { \r\n CommentWrite,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n })\r\n }\r\n})\r\nexport default class CommentItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: article.ArticleComment\r\n @Prop({ type: String }) photoUrl!: string\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n commentEdit: boolean = false\r\n mode: number = 1\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getDate(dateStr: string, format: string) {\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr))\r\n }\r\n\r\n deleteComment() {\r\n api.article.deleteComment(this.item.commentId).then(res => {\r\n this.$emit('loadComment', this.item.articleId)\r\n })\r\n }\r\n\r\n updateComment() {\r\n this.mode = 1\r\n this.commentEdit = true\r\n }\r\n\r\n replyComment() {\r\n this.mode = 2\r\n this.commentEdit = true\r\n }\r\n\r\n loadComment(articleId: number) {\r\n this.commentEdit = false\r\n this.$emit('loadComment', articleId)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CommentItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CommentItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommentItem.vue?vue&type=template&id=4a3f3684&\"\nimport script from \"./CommentItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./CommentItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport { mapGetters } from 'vuex'\r\nimport AttachModal from '@board/components/Modals/AttachModal.vue'\r\nimport CommentWrite from '@board/components/Read/CommentWrite.vue'\r\nimport CommentItem from '@board/components/Read/CommentItem.vue'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport api from '@board/api'\r\nimport { EumEditor } from '@appbase/components/editor'\r\nimport { cache } from '@/modules/@appbase/util'\r\n@Component({\r\n components: { \r\n AttachModal, \r\n CommentWrite,\r\n CommentItem,\r\n EumEditor\r\n },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER\r\n })\r\n }\r\n})\r\nexport default class ReadContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n currentBoard: number = 0\r\n currentArticle: number = 0\r\n\r\n article: article.ArticleDetail | null = null\r\n\r\n showAttachModal: boolean = false\r\n commentList: article.ArticleComment[] = []\r\n commnetPhotos: article.CommentPhoto[] = []\r\n commentCount: number = 0\r\n recommendCount: number = 0\r\n userRecommended: boolean = false\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n getDate(dateStr: string, format: string) {\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr))\r\n }\r\n\r\n loadComment(articleId: number) {\r\n var data: article.CommentFetchSet = {\r\n articleId: articleId,\r\n page: 1,\r\n itemsPerPage: 50\r\n }\r\n api.article.getArticleComments(data).then(res => {\r\n this.commentCount = res.data.length\r\n this.commentList = this.sortComments(res.data)\r\n this.loadCommentPhotos(this.commentList, this.commentCount)\r\n })\r\n }\r\n\r\n loadCommentPhotos(comments: article.ArticleComment[], length: number) {\r\n var photoPromise: Promise[] = []; \r\n \r\n comments.forEach(c => photoPromise.push(cache.avatar.get(c.userCode)));\r\n Promise.all(photoPromise)\r\n .then(res => {\r\n this.commnetPhotos = res.map(r => { photoUrl: r, isReplyModel: false });\r\n });\r\n } \r\n\r\n getRecommentList(articleId: number) {\r\n api.article.getRecommendList(articleId).then(res => {\r\n this.recommendCount = res.length\r\n this.userRecommended = res.filter(r => r.userCode == this.User.personCode).length > 0\r\n })\r\n }\r\n\r\n recommendArticle() {\r\n var userset = {\r\n articleId: this.currentArticle,\r\n deptName: this.User.deptName,\r\n deptName_En: this.User.deptNameEn,\r\n userCode: this.User.id,\r\n userJobTitle: this.User.titleName,\r\n userJobTitle_En: this.User.titleNameEn,\r\n userName: this.User.displayName,\r\n userName_En: this.User.displayDeptNameEn\r\n }\r\n\r\n var recommendPromise = this.userRecommended ? \r\n api.article.deleteRecommend(userset) :\r\n api.article.createRecommend(userset);\r\n\r\n recommendPromise.then(res => { this.getRecommentList(this.currentArticle) });\r\n }\r\n\r\n sortComments(comments: article.ArticleComment[]) {\r\n var returnModel: any[] = comments.filter(c => c.replyTo == null);\r\n\r\n var appendReplies = function(remains: article.ArticleComment[]) {\r\n if(remains.length == 0)\r\n return;\r\n\r\n console.log('remains', remains)\r\n \r\n var nextRemains: article.ArticleComment[] = []; \r\n remains.forEach(r => {\r\n var idx = returnModel.findIndex(m => m.commentId == r.replyTo);\r\n\r\n if(idx >= 0 ) {\r\n var parentComment = returnModel[idx];\r\n var model = {\r\n ...r,\r\n replyToName: parentComment.userName\r\n }\r\n\r\n returnModel.splice(idx + 1, 0, model);\r\n } else {\r\n nextRemains.push(r);\r\n }\r\n });\r\n\r\n appendReplies(nextRemains);\r\n }\r\n\r\n appendReplies(comments.filter(c => c.replyTo != null)); \r\n return returnModel.map(m => {\r\n ...m,\r\n contentAfter: m.content,\r\n onEdit: false,\r\n isReplyModel: false\r\n })\r\n }\r\n\r\n createViewLog() {\r\n var data: article.CreateOptionSet = {\r\n articleId: this.currentArticle,\r\n userCode: this.User.personCode,\r\n userName: this.User.displayName,\r\n userName_En: this.User.displayNameEng,\r\n userMail: this.User.email,\r\n userDept: this.User.deptCode,\r\n userPhone: this.User.officeTel,\r\n deptName: this.User.deptName,\r\n deptName_En: this.User.deptNameEn,\r\n userJobTitle: this.User.titleName,\r\n userJobTitle_En: this.User.titleNameEn\r\n }\r\n api.article.createViewLog(data)\r\n }\r\n\r\n deleteItem() {\r\n if(this.$t('M_BB_DeleteMessage').toString()) {\r\n api.article.deleteArticle({\r\n articleId: this.currentArticle,\r\n deleteUser: {\r\n userCode: this.User.id,\r\n userName: this.User.displayName,\r\n userName_En: this.User.displayDeptNameEn,\r\n deptName: this.User.titleName,\r\n deptName_En: this.User.titleNameEn,\r\n userJobTitle: this.User.deptName,\r\n userJobTitle_En: this.User.deptNameEn\r\n }\r\n }).then(res => {\r\n this.$router.push({ path: `/board/list?id=${this.currentBoard}` });\r\n })\r\n }\r\n }\r\n\r\n getArticleDetail(boardId: number, articleId: number) {\r\n api.article.getArticleDetail(boardId, articleId).then(res => {\r\n this.isloading(false)\r\n this.article = res\r\n\r\n if (this.article.commentCount > 0)\r\n this.loadComment(this.currentArticle)\r\n\r\n if (this.article.recommendCount > 0) \r\n this.getRecommentList(this.currentArticle)\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n var { boardId, articleId } = this.$route.query\r\n if(boardId) this.currentBoard = Number(boardId);\r\n if(articleId) this.currentArticle = Number(articleId);\r\n \r\n this.getArticleDetail(this.currentBoard, this.currentArticle)\r\n this.createViewLog()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadContainer.vue?vue&type=template&id=4d1eae74&scoped=true&\"\nimport script from \"./ReadContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadContainer.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ReadContainer.vue?vue&type=style&index=0&id=4d1eae74&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d1eae74\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ReadContainer from '@board/containers/ReadContainer.vue'\r\nimport api from '@board/api'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, ReadContainer },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n })\r\n }\r\n})\r\nexport default class ReadView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n actionOpen: boolean = false\r\n systemAuth: article.SystemAuth[] = []\r\n currentBoard: number = 0\r\n currentArticle: number = 0\r\n canUpdate: boolean = false\r\n canDelete: boolean = false\r\n article: article.ArticleDetail | null = null\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n edit() {\r\n var { boardId, articleId } = this.$route.query\r\n\r\n this.$router.push({ path: `/board/write?boardId=${boardId}&articleId=${articleId}` });\r\n }\r\n\r\n deleteItem() {\r\n (this.$refs.readContainer as any).deleteItem()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n var { boardId, articleId } = this.$route.query\r\n if (boardId) this.currentBoard = Number(boardId)\r\n if (articleId) this.currentArticle = Number(articleId)\r\n\r\n var createPromise: Promise[] = [\r\n api.article.getArticleDetail(this.currentBoard, this.currentArticle),\r\n api.article.getSystemAuth(this.currentBoard)\r\n ]\r\n\r\n Promise.all(createPromise).then(res => {\r\n this.article = res[0]\r\n this.systemAuth = res[1]\r\n this.canUpdate = !this.article?.isNameless && ( this.article?.createdUser === this.User.id || this.systemAuth.findIndex(a => a.update == true || a.isMenuAdmin) >= 0 );\r\n this.canDelete = !this.article?.isNameless && ( this.article?.createdUser === this.User.id || this.systemAuth.findIndex(a => a.delete == true || a.isMenuAdmin) >= 0 );\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadView.vue?vue&type=template&id=551051bc&\"\nimport script from \"./ReadView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageEditHeaderWithActionBar',{attrs:{\"title\":'새 게시글'}},[(_vm.useAttachment)?_c('a',{staticClass:\"item\",on:{\"click\":_vm.attach}},[_c('i',{staticClass:\"icon-attach\"})]):_vm._e(),_c('a',{staticClass:\"item\",on:{\"click\":_vm.write}},[_c('i',{staticClass:\"icon-write\"})])]),_c('WriteContainer',{ref:\"writeContainer\",on:{\"useAttachment\":function($event){_vm.useAttachment = true}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{attrs:{\"id\":\"header\"}},[_c('div',{staticClass:\"header\"},[_c('a',{staticClass:\"pop-close\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"icon-close\"})]),_c('h2',{staticClass:\"page-header\"},[_c('a',{staticClass:\"active\"},[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"header-config\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { dispatchEventBus } from '@/util/eventBus'\r\n@Component({})\r\nexport default class PageEditHeaderWithActionBar extends Vue {\r\n \r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String }) title!: string\r\n @Prop({ type: String }) eventName!: string\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n close() {\r\n if(this.eventName) {\r\n dispatchEventBus(window, this.eventName, '')\r\n } else {\r\n this.$router.go(-1)\r\n }\r\n }\r\n}","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { EumEditor } from '@appbase/components/editor'\r\nimport { FlowFileMeta } from '@appbase/components/common/FlowFileUploader/flow-file-meta'\r\nimport { invalidateUrl } from '@appbase/util/invalidate-url'\r\nimport { readablizeBytes } from '@appbase/util/size-helper'\r\nimport { getGUID } from '@appbase/util/guid'\r\nimport localStorageHelper from '@appbase/util/local-storage-helper'\r\nimport flowHelper from '@appbase/components/common/FlowFileUploader/flow-helper'\r\nimport EumFileUpload from 'eum-file-upload'\r\nimport api from '@board/api'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\n\r\nconst enum WriteMode {\r\n Write = 0,\r\n Edit = 1,\r\n Reply = 2,\r\n}\r\n\r\n@Component({\r\n components: { \r\n EumEditor,\r\n EumFileUpload\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n })\r\n },\r\n})\r\nexport default class WriteContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n tinyOptions: any = {\r\n content_style: `\r\n p { font-family: dotum; }\r\n body {font-family: dotum; font-size: 10pt;}\r\n body#tinymce p {\r\n font-family: dotum; \r\n margin-top: 0.3em;\r\n margin-bottom: 0.3em;\r\n }`,\r\n height: 500,\r\n inline: false,\r\n menubar: false,\r\n language: 'ko_KR',\r\n }\r\n\r\n writeConfig: board.WriteConfig | null = null\r\n contentFields: board.ContentField[] = []\r\n returnValues: common.WriteComponentReturnSet[] = []\r\n uploaderConfig: FlowFileMeta = {\r\n code: '',\r\n codeValues: [],\r\n type: 'file',\r\n }\r\n\r\n fieldLoaded: boolean = false\r\n isLoading: boolean = false\r\n isFileUploading: boolean = false\r\n currentBoard: number = 0\r\n currentArticle: number = 0\r\n currentArticleModel: article.ArticleDetail | null = null\r\n parentArticle: number = 0\r\n writeMode: WriteMode = WriteMode.Write\r\n\r\n mUsePreface: boolean = false\r\n mUseNotice: boolean = false\r\n mUseAttachment: boolean = true\r\n mUseTags: boolean = false\r\n mUseNameless: boolean = false\r\n mUseContent: boolean = false\r\n\r\n mBoardName: string = ''\r\n mIsNotice: string = 'none'\r\n mTitle: string = ''\r\n mContent: string = ''\r\n mTags: string[] = []\r\n mFileCode: string = ''\r\n mChildPreface: string | null = null\r\n mParentPreface: string | null = null\r\n mFileSizeDesc: string = ''\r\n mWritePassword: string = ''\r\n\r\n mSecret: boolean = false\r\n\r\n mNoticeStartDate: Date | null = null\r\n mNoticeEndDate: Date | null = null\r\n\r\n childPrefaces: board.BaordPreface[] = []\r\n parentPrefaces: board.BoardPreface[] = []\r\n mShowChildPreface: boolean = false\r\n\r\n uploadUrl: string = ''\r\n deleteUrl: string = ''\r\n sizeLimit: number | null = null\r\n bannedExtentions: string[] = []\r\n files: any[] = []\r\n totalSize: number = 0\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getWriteConfig(boardId: number) {\r\n api.board.getWriteConfig(boardId).then((res) => {\r\n this.writeConfig = res\r\n this.mBoardName = this.writeConfig.boardName\r\n this.mUsePreface = this.writeConfig.usePreface\r\n this.mUseNotice = this.writeConfig.usePrimaryNotice\r\n this.mUseAttachment = this.writeConfig.useAttachment\r\n this.mUseTags = this.writeConfig.useTag\r\n this.mUseContent = this.writeConfig.useContent\r\n this.mUseNameless = this.writeConfig.useNameless\r\n //this.contentFields = this.writeConfig.contentFields.filter((f) => ids.contentFieldFilter(f))\r\n this.uploaderConfig.codeValues = ['board', this.user.comCode, dateutil.uGetDateFormat('yyyyMM', new Date()), this.writeConfig.boardId.toString()]\r\n this.uploadUrl = invalidateUrl('/cm/file/store/flow')\r\n this.deleteUrl = invalidateUrl('/cm/file/store/deleteFile') \r\n\r\n if(this.writeMode == WriteMode.Edit) {\r\n //this.checkRightNameless(this.writeConfig).then(checkRes => {\r\n // if(checkRes) {\r\n var editloadPromise: Promise[] = [\r\n api.article.getArticleDetail(this.currentBoard, this.currentArticle),\r\n api.article.getSystemAuth(this.currentBoard)\r\n ]\r\n\r\n Promise.all(editloadPromise)\r\n .then(async editload => { \r\n this.currentArticleModel = editload[0];\r\n this.mIsNotice = editload[0].isNotice ? \"notice\" : \"none\";\r\n if(!res.useNameless && !this.checkEditRights(editload[0].createdUser, editload[1])) {\r\n await(window as any).alertAsync('수정권한이 없습니다.');\r\n this.isloading(false)\r\n history.back()\r\n } else {\r\n this.mountCallback(res);\r\n } \r\n });\r\n // }\r\n //}); \r\n } else {\r\n this.mountCallback(res);\r\n }\r\n \r\n if (this.mUseAttachment) \r\n this.$emit('useAttachment')\r\n })\r\n }\r\n\r\n checkEditRights(createdUser: string, systemAuths: article.SystemAuth[]) {\r\n if(createdUser === this.user.personCode)\r\n return true;\r\n\r\n if(systemAuths.findIndex(a => a.update || a.isMenuAdmin) >= 0)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n mountCallback(config: board.WriteConfig) {\r\n if (config.attachableExtension && config.attachableExtension != null) {\r\n var bannedExtensions = config.attachableExtension.split(';')\r\n this.bannedExtentions = bannedExtensions\r\n }\r\n\r\n if (config.attachmentSizeLimit && config.attachmentSizeLimit != null) {\r\n this.sizeLimit = config.attachmentSizeLimit * 1024 * 1024\r\n this.mFileSizeDesc = `( 0 / ${readablizeBytes(this.sizeLimit)})`\r\n } else {\r\n this.sizeLimit = null\r\n }\r\n\r\n //this.mountPrefaces(config);\r\n this.fillComponentValues(this.currentArticleModel);\r\n this.fieldLoaded = true;\r\n this.isloading(false)\r\n }\r\n\r\n mountPrefaces(config: board.WriteConfig) {\r\n if (!config.usePreface) return\r\n\r\n var targetPreface: string | null = null\r\n\r\n if (this.writeMode == WriteMode.Reply) {\r\n var replyPreface = localStorageHelper.get(`$board/${this.parentArticle.toString()}/preface`)\r\n targetPreface = replyPreface == null ? null : replyPreface.trim()\r\n } else if (this.writeMode == WriteMode.Edit && this.currentArticleModel != null) {\r\n targetPreface = this.currentArticleModel.prefaceId\r\n }\r\n\r\n var serverPrefaces = config.prefaces\r\n var serverChilds = serverPrefaces.filter((p) => p.parentPrefaceId != null)\r\n var serverParents = serverPrefaces.filter((p) => p.parentPrefaceId == null)\r\n\r\n if (serverChilds.length > 0) {\r\n this.mShowChildPreface = true\r\n\r\n if (targetPreface == null) {\r\n this.parentPrefaces = serverParents\r\n this.mParentPreface = serverParents[0].prefaceId\r\n this.childPrefaces = serverChilds.filter((c) => c.parentPrefaceId === this.mParentPreface)\r\n this.mChildPreface = this.childPrefaces[0].prefaceId\r\n } else {\r\n var tpmodel = serverChilds.find((c) => c.prefaceId === targetPreface?.trim())\r\n\r\n if (tpmodel) {\r\n this.parentPrefaces = serverParents\r\n this.mParentPreface = tpmodel.parentPrefaceId\r\n this.childPrefaces = serverChilds.filter((c) => c.parentPrefaceId === this.mParentPreface)\r\n this.mChildPreface = tpmodel.prefaceId\r\n } else {\r\n this.parentPrefaces = serverParents\r\n this.mParentPreface = serverParents[0].prefaceId\r\n this.childPrefaces = serverChilds.filter((c) => c.parentPrefaceId === this.mParentPreface)\r\n this.mChildPreface = this.childPrefaces[0].prefaceId\r\n }\r\n }\r\n } else {\r\n this.parentPrefaces = serverParents\r\n this.mParentPreface =\r\n targetPreface == null ? this.parentPrefaces[0].prefaceId : targetPreface.trim()\r\n\r\n console.log(this.mParentPreface)\r\n }\r\n }\r\n\r\n fillComponentValues(article: article.ArticleDetail | null) {\r\n if (article == null) {\r\n this.mFileCode = getGUID(false)\r\n this.uploaderConfig.code = this.mFileCode\r\n this.contentFields.forEach((c) => {\r\n this.returnValues.push({\r\n fieldId: c.fieldId,\r\n returnValue: null,\r\n })\r\n })\r\n } else {\r\n this.mTitle = article.title\r\n this.mContent = article.content\r\n this.mFileCode = article.fileCode || getGUID(false)\r\n this.mTags = article.tags == null ? [] : article.tags.split(',').filter((t) => t != null && t.trim().length > 0)\r\n this.mSecret = article.isSecret ?? false\r\n this.mNoticeStartDate = article.noticeStartDate\r\n this.mNoticeEndDate = article.noticeEndDate\r\n this.uploaderConfig.code = this.mFileCode\r\n api.article.getArticleFile(this.mFileCode).then((res: any) => {\r\n this.files = res.map(\r\n (m: any) => flowHelper.convertToFlowFile({\r\n ...m,\r\n uniqueIdentifier: m.serverPath,\r\n type: 'Database'\r\n })\r\n )\r\n this.updateSizeDesc()\r\n })\r\n\r\n this.contentFields.forEach((c) => {\r\n var find = article.fieldValues.find((f) => f.fieldId == c.fieldId)\r\n var passVal = find?.value\r\n\r\n this.returnValues.push({\r\n fieldId: c.fieldId,\r\n returnValue: passVal ? passVal : null,\r\n })\r\n })\r\n }\r\n }\r\n\r\n fileUploadStatusChaged(data: any) {\r\n if (data === 'uploading') {\r\n this.isFileUploading = true\r\n } else {\r\n this.isFileUploading = false\r\n }\r\n }\r\n\r\n fileItemsChanged(files: any[]) {\r\n if (files == null || files.length == 0) {\r\n this.updateSizeDesc()\r\n } else {\r\n if (this.writeMode == WriteMode.Edit && this.mFileCode != null) {\r\n\r\n api.article.createArticleFile({\r\n articleId: this.currentArticle,\r\n boardId: this.currentBoard,\r\n fileCode: this.mFileCode,\r\n files: files.map(\r\n (f) =>\r\n {\r\n name: f.name,\r\n size: f.size,\r\n }\r\n ),\r\n })\r\n }\r\n\r\n this.updateSizeDesc()\r\n }\r\n }\r\n\r\n updateSizeDesc() {\r\n if (this.files == null || this.files.length == 0) {\r\n if (this.sizeLimit != null) {\r\n this.mFileSizeDesc = `( 0 / ${readablizeBytes(this.sizeLimit)})`\r\n } else {\r\n this.mFileSizeDesc = ''\r\n }\r\n } else {\r\n var sizeTotal = this.files.reduce((p, c, i) => p + c.size, 0)\r\n\r\n if (this.sizeLimit == null) {\r\n this.mFileSizeDesc = `( ${readablizeBytes(sizeTotal)})`\r\n } else {\r\n this.mFileSizeDesc = `( ${readablizeBytes(sizeTotal)} / ${readablizeBytes(this.sizeLimit)})`\r\n }\r\n }\r\n }\r\n\r\n loadEditorContent() {\r\n const editor: editor.IEditorProxy = this.$refs.editor as any \r\n this.mContent = editor.getEditor().getBodyValue();\r\n }\r\n\r\n getRequestModel(draft: boolean = false) {\r\n if (this.writeConfig == null) return\r\n this.loadEditorContent();\r\n\r\n var fieldValues: article.FieldValueSet[] = []\r\n //var imageSrc = this.getImageSrc()\r\n var prefaceId = this.mShowChildPreface ? this.mChildPreface : this.mParentPreface\r\n\r\n this.returnValues.forEach((r) => {\r\n var returnValue = r.returnValue == null ? '' : r.returnValue.toString()\r\n fieldValues.push({\r\n fieldId: r.fieldId,\r\n value: returnValue,\r\n })\r\n })\r\n\r\n return {\r\n fieldValues: fieldValues,\r\n isNotice: this.mIsNotice === 'notice',\r\n boardId: this.currentBoard,\r\n boardName: this.writeConfig.boardName,\r\n title: this.mTitle,\r\n content: this.mContent,\r\n tags: this.mTags.join(','),\r\n user: this.mUseNameless\r\n ? null\r\n : {\r\n userCode: this.user.id,\r\n userName: this.user.displayName,\r\n userName_En: this.user.displayNameEng,\r\n deptName: this.user.deptName,\r\n deptName_En: this.user.deptNameEn,\r\n userJobTitle: this.user.titleName,\r\n userJobTitle_En: this.user.titleNameEn,\r\n userDept: this.user.deptCode,\r\n userMail: this.user.email,\r\n userPhone: `${this.user.officeTel}/${this.user.mobileTel}`,\r\n },\r\n fileCode: this.files.length == 0 ? null : this.mFileCode,\r\n hasAttachFile: this.files.length == 0 ? false : true,\r\n hasImage: false,//imageSrc != null ? true : false,\r\n prefaceId: prefaceId,\r\n parentArticle: this.writeMode == WriteMode.Reply ? this.parentArticle : null,\r\n replyLevel: 0,\r\n imageFilePath: null,//imageSrc,\r\n isDraft: draft,\r\n isMailSend: this.writeConfig.useMailSend,\r\n password: this.mUseNameless ? this.mWritePassword : null,\r\n etC1: null,\r\n etC2: null,\r\n etC3: null,\r\n etC4: null,\r\n etC5: null,\r\n articleVersion: (this.currentArticleModel && this.currentArticleModel.articleVersion ? this.currentArticleModel.articleVersion : 1),\r\n isSecret: this.mSecret ?? false,\r\n noticeStartDate: this.mIsNotice === 'notice' ? this.mNoticeStartDate : null,\r\n noticeEndDate: this.mIsNotice === 'notice' ? this.mNoticeEndDate : null\r\n }\r\n }\r\n\r\n async checkValidate(article: article.ArticleQuerySet) {\r\n if (this.mTitle == null || this.mTitle.length == 0) {\r\n await(window as any).alertAsync(this.$t('M_BB_TitleIsNull').toString())\r\n return false\r\n }\r\n\r\n if(this.mUseNameless && this.mWritePassword.trim().length == 0) {\r\n await(window as any).alertAsync(this.$t('글수정_패스워드_입력').toString());\r\n return false;\r\n }\r\n\r\n if (this.isFileUploading) {\r\n await(window as any).alertAsync(this.$t('파일_업로드중').toString())\r\n return false\r\n }\r\n\r\n return true\r\n }\r\n \r\n createArticle(articleSet: article.ArticleQuerySet): Promise {\r\n return api.article.createArticle(articleSet)\r\n }\r\n\r\n updateArticle(articleSet: article.ArticleQuerySet): Promise {\r\n return api.article.updateArticle(articleSet)\r\n }\r\n\r\n async write() {\r\n var queryModel = this.getRequestModel(false)\r\n\r\n if (queryModel && await this.checkValidate(queryModel)) {\r\n\r\n var requestPromise: Promise = Promise.resolve()\r\n\r\n if (this.writeMode == WriteMode.Write || this.writeMode == WriteMode.Reply) {\r\n requestPromise = this.createArticle(queryModel);\r\n } else {\r\n queryModel.articleId = this.currentArticle\r\n requestPromise = this.updateArticle(queryModel)\r\n }\r\n\r\n requestPromise.then((res) => {\r\n this.close()\r\n }).catch(err => { console.log(err) });\r\n }\r\n }\r\n\r\n close() {\r\n this.$router.push({ path: `/board/list?id=${this.currentBoard}` })\r\n }\r\n\r\n attach() {\r\n (this.$refs.browseButton as any).click();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n var { boardId, articleId } = this.$route.query\r\n\r\n if (boardId) this.currentBoard = Number(boardId)\r\n\r\n if (articleId) {\r\n this.currentArticle = Number(articleId)\r\n this.writeMode = WriteMode.Edit\r\n }\r\n\r\n this.getWriteConfig(this.currentBoard)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageEditHeaderWithActionBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PageEditHeaderWithActionBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageEditHeaderWithActionBar.vue?vue&type=template&id=3dba9b63&\"\nimport script from \"./PageEditHeaderWithActionBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./PageEditHeaderWithActionBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.fieldLoaded)?_c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('div',{staticClass:\"write-area\"},[_c('form',[_c('div',{staticClass:\"ip-subject\"},[_vm._m(0),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mTitle),expression:\"mTitle\"}],attrs:{\"type\":\"text\",\"placeholder\":\"제목을 입력해주세요.\"},domProps:{\"value\":(_vm.mTitle)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.mTitle=$event.target.value}}})])]),(_vm.mUseAttachment)?_c('div',{staticClass:\"ip-subject\"},[_c('h4',[_c('label',[_vm._v(_vm._s(_vm.$t('첨부파일')))])]),_c('a',{ref:\"browseButton\",staticClass:\"em-btn file-browse\",attrs:{\"id\":\"selectFiles\"}}),_c('div',{staticClass:\"text-container\"},[_c('EumFileUpload',{ref:\"uploader\",attrs:{\"browseButton\":\"#selectFiles\",\"browseFolderButton\":\"#selectFolder\",\"uploadUrl\":_vm.uploadUrl,\"deleteUrl\":_vm.deleteUrl,\"deleteMethod\":'post',\"bannedExtentions\":_vm.bannedExtentions,\"code\":_vm.uploaderConfig.code,\"codeValues\":_vm.uploaderConfig.codeValues,\"chunkSize\":10000000,\"simultaneousUploads\":4},on:{\"stateChanged\":_vm.fileUploadStatusChaged,\"itemsChanged\":_vm.fileItemsChanged},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}})],1)]):_vm._e(),_c('div',{staticClass:\"ip-textarea\"},[_c('div',{staticClass:\"form\",staticStyle:{\"height\":\"500px\"}},[_c('transition',{attrs:{\"name\":\"slide-fade\",\"mode\":\"in-out\"}},[_c('EumEditor',{ref:\"editor\",attrs:{\"mode\":\"editor\",\"tinyopts\":_vm.tinyOptions},model:{value:(_vm.mContent),callback:function ($$v) {_vm.mContent=$$v},expression:\"mContent\"}})],1)],1)])])])])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('label',[_vm._v(\"제목\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteContainer.vue?vue&type=template&id=365f4291&\"\nimport script from \"./WriteContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageEditHeaderWithActionBar from '@/components/common/Header/PageEditHeaderWithActionBar.vue'\r\nimport WriteContainer from '@board/containers/WriteContainer.vue'\r\nimport { dispatchEventBus } from '@/modules/@appbase/util'\r\n@Component({\r\n components: { PageEditHeaderWithActionBar, WriteContainer }\r\n})\r\nexport default class WriteView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n \r\n useAttachment: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n attach(){\r\n (this.$refs.writeContainer as any).attach()\r\n }\r\n\r\n write() {\r\n (this.$refs.writeContainer as any).write()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteView.vue?vue&type=template&id=67b31db6&\"\nimport script from \"./WriteView.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',{attrs:{\"title\":'좋아요를 누른 사람'}}),_c('RecommendContainer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('div',{staticClass:\"padding\"},[(_vm.recommends.length)?_c('div',{staticClass:\"address-list tbl-check-none\"},[_c('table',[_vm._m(0),_c('tbody',_vm._l((_vm.recommends),function(recommend){return _c('tr',{key:recommend.content},[_c('td',{staticClass:\"tbl-check\"}),_c('td',[_c('div',{staticClass:\"list-user-img\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/v1/img/ghost_loading.png\"},on:{\"error\":_vm.error}}):_c('img',{ref:\"userPhoto\",refInFor:true,attrs:{\"src\":_vm.getPersonImage(recommend.userCode)},on:{\"error\":_vm.errorGhost}})])]),_c('td',[_c('p',{staticClass:\"name\"},[_vm._v(_vm._s(recommend.userName))]),_c('p',{staticClass:\"team\"},[_vm._v(_vm._s(recommend.userJobTitle))]),_c('span',{staticClass:\"txt-divide\"}),_c('p',{staticClass:\"rank\"},[_vm._v(_vm._s(recommend.userDeptName))])])])}),0)])]):_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('p',[_vm._v(_vm._s(_vm.$t('M_BB_NoRecommend')))])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{staticClass:\"tbl-check\",attrs:{\"width\":\"40px\"}}),_c('col',{attrs:{\"width\":\"50px\"}}),_c('col',{attrs:{\"width\":\"\"}})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport api from '@board/api'\r\nimport { cache } from '@/modules/@appbase/util'\r\n\r\n@Component({\r\n})\r\nexport default class RecommendContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n recommends: article.RecommendSet[] = []\r\n photos: any[] = []\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getRecommentList(articleId: number) {\r\n api.article.getRecommendList(articleId).then(res => {\r\n this.recommends = res\r\n this.getPersonPhotos(this.recommends)\r\n })\r\n }\r\n\r\n getPersonImage(personCode: string) {\r\n const personImage = this.photos.filter((photo: any) => \r\n photo.personCode === personCode\r\n )\r\n\r\n console.log('personImage', personImage)\r\n return personImage[0].photoPath;\r\n }\r\n\r\n getPersonPhotos(recommends: article.RecommendSet[]) {\r\n let codes: string[] = [];\r\n this.recommends.map((r: article.RecommendSet) => {\r\n codes.push(r.userCode)\r\n });\r\n this.avatar.loading = true;\r\n cache.avatar.getByCodes(codes).then((res: any) => {\r\n this.avatar.loading = false;\r\n this.photos = res;\r\n });\r\n }\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png';\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/faux/images/ghost.png';\r\n }\r\n\r\n @Watch('$route.query.articleId')\r\n onChangedId(articleId: string) {\r\n this.getRecommentList(Number(articleId))\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n const articleId = this.$route.query.articleId as string\r\n this.getRecommentList(Number(articleId))\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecommendContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecommendContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecommendContainer.vue?vue&type=template&id=a47ec40e&\"\nimport script from \"./RecommendContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecommendContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport RecommendContainer from '@board/containers/RecommendContainer.vue'\r\n\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, RecommendContainer },\r\n})\r\nexport default class RecommendView extends Vue {\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecommendView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecommendView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecommendView.vue?vue&type=template&id=5cafac5e&\"\nimport script from \"./RecommendView.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecommendView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\r\nimport ListView from '../views/ListView.vue'\r\nimport ReadView from '../views/ReadView.vue'\r\nimport WriteView from '../views/WriteView.vue'\r\nimport RecommendView from '../views/RecommendView.vue'\r\nconst Board = () => import(/* webpackChunkName: \"board\" */ '@board/Index.vue')\r\nconst BoardMaster = () => import(/* webpackChunkName: \"board\" */ '@board/views/Master.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/board',\r\n component: Board,\r\n children: [\r\n {\r\n path: '',\r\n component: BoardMaster,\r\n children: [\r\n {\r\n path: 'list',\r\n name: 'board-list',\r\n component: ListView,\r\n },\r\n {\r\n path: 'read',\r\n name: 'board-read',\r\n component: ReadView,\r\n },\r\n {\r\n path: 'write',\r\n name: 'board-write',\r\n component: WriteView,\r\n },\r\n {\r\n path: 'recommend',\r\n name: 'board-recommend',\r\n component: RecommendView,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageHeaderWithActionBar',{attrs:{\"title\":_vm.$t('홈')}},[_c('router-link',{class:['item', {flag: _vm.unreadAlarmCount > 0 }],attrs:{\"to\":{ name: 'home-alarm' }}},[_c('i',{staticClass:\"icon-bell\"})]),_c('router-link',{staticClass:\"item\",attrs:{\"to\":{ name: 'home-orgmap' }}},[_c('i',{staticClass:\"icon-address\"})])],1),_c('div',{staticClass:\"bg-lightgray\",attrs:{\"id\":\"inner-container\"}},[_c('MainContainer')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"top-banner bg-lightgray\"},[_c('div',{staticClass:\"padding\"},[_c('ul',{staticClass:\"portal-link\"},[_c('li',{staticClass:\"item\"},[_c('router-link',{attrs:{\"to\":{ name: 'mail-home'}}},[_c('div',{staticClass:\"portal-link-img\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/main_card_icon_1.png\",\"alt\":\"\"}}),_c('span',{staticClass:\"count\"},[_vm._v(_vm._s(_vm.mailCount))])]),_c('h5',[_vm._v(_vm._s(_vm.$t('메일')))])])],1),_c('li',{staticClass:\"item\"},[_c('router-link',{attrs:{\"to\":{ name: 'calendar-main'}}},[_c('div',{staticClass:\"portal-link-img\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/main_card_icon_4.png\",\"alt\":\"\"}}),_c('span',{staticClass:\"count\"},[_vm._v(_vm._s(_vm.calendarCount))])]),_c('h5',[_vm._v(_vm._s(_vm.$t('일정')))])])],1),_c('li',{staticClass:\"item\"},[_c('router-link',{attrs:{\"to\":{ name: 'workflow-list', query: { id: _vm.workflowId, home: true } }}},[_c('div',{staticClass:\"portal-link-img\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/main_card_icon_3.png\",\"alt\":\"\"}}),_c('span',{staticClass:\"count\"},[_vm._v(_vm._s(_vm.workflowCount))])]),_c('h5',[_vm._v(_vm._s(_vm.$t('결재')))])])],1)])]),_c('div',{staticClass:\"mail-pack\"},[_c('router-link',{attrs:{\"to\":{ name: 'board-list', query: { id: _vm.boardId, home: true } }}},[_c('h5',{staticClass:\"pack-left\"},[_vm._v(_vm._s(_vm.$t('공지사항')))])]),_c('div',{staticClass:\"pack-right\"},[_c('a',{staticClass:\"m-r-m\"},[_c('i',{staticClass:\"icon-left\",on:{\"click\":function($event){return _vm.movePage('prev')}}})]),_c('a',[_c('i',{staticClass:\"icon-right\",on:{\"click\":function($event){return _vm.movePage('next')}}})])])],1),_c('div',{staticClass:\"space-10\"}),_c('div',{staticClass:\"divide-row divide-gray\"}),(_vm.boardList && _vm.boardList.length)?_c('div',{staticClass:\"board-list\"},_vm._l((_vm.boardList),function(item,idx){return _c('BoardListItem',{key:idx,attrs:{\"item\":item}})}),1):_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_mail.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('표시할_항목이_없습니다')))])])]),_c('div',{staticClass:\"space-20\"}),_c('div',{staticClass:\"space-10 bg-depth-gray\"}),_c('div',{staticClass:\"space-20\"}),_c('div',{staticClass:\"mail-pack\"},[_c('h5',{staticClass:\"pack-left\"},[_vm._v(_vm._s(_vm.$t('W_Pending_box')))]),_c('div',{staticClass:\"pack-right\"},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.workflowCount > 5),expression:\"workflowCount > 5\"}],on:{\"click\":function($event){return _vm.menuClick('workflow')}}},[_vm._v(_vm._s(_vm.$t('더보기')))])])]),_c('div',{staticClass:\"space-10\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.workflowCount > 0),expression:\"workflowCount > 0\"}],staticClass:\"padding\"},[_c('h6',{staticClass:\"w-100 p-t-s p-b-s p-r-l p-l-l raund bg-lightblue\"},[_c('span',{staticClass:\"ft-darkblue\"},[_vm._v(_vm._s(_vm.$t('총__LENGTH_개의_문서가_있습니다', { length: _vm.workflowCount })))])])]),_c('div',{staticClass:\"space-10\"}),(_vm.workflowList && _vm.workflowList.length)?_c('div',{staticClass:\"board-list\"},_vm._l((_vm.workflowList),function(item,idx){return _c('WorkflowListItem',{key:idx,attrs:{\"item\":item,\"showDetail\":false}})}),1):_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_mail.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('표시할_항목이_없습니다')))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"item\",staticStyle:{\"display\":\"block\"},on:{\"click\":function($event){return _vm.select(_vm.item)}}},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"body\"},[_c('div',{staticClass:\"subject-wrap\"},[_c('p',{staticClass:\"subject\"},[_vm._v(_vm._s(_vm.item.subject))])]),_c('div',{staticClass:\"info\"},[_c('span',{staticClass:\"dept\"},[_vm._v(_vm._s(_vm.item.reqDeptName))]),_c('span',{staticClass:\"writer\"},[_vm._v(_vm._s(_vm.item.reqName))]),_c('span',{staticClass:\"created\"},[_vm._v(_vm._s(_vm.getDate(_vm.item.draftDate, 'yyyy-MM-dd H:i')))])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDetail),expression:\"showDetail\"}],staticClass:\"detail\"},[_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){$event.stopPropagation();_vm.open = !_vm.open}}},[_c('i',{staticClass:\"icon-more\"})]),_c('div',{staticClass:\"dropdown-content\",class:{ show: _vm.open },attrs:{\"id\":\"myDropdown\"}},[_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openApprovalView.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.$t('결재현황보기')))])]),_c('li',[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.openDrafterView(_vm.item)}}},[_vm._v(_vm._s(_vm.$t('기안자보기')))])])])])])])]),_c('ProcessLine',{model:{value:(_vm.item.approvalLineList),callback:function ($$v) {_vm.$set(_vm.item, \"approvalLineList\", $$v)},expression:\"item.approvalLineList\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dp-flex vertical-top\"},[_c('div',{staticClass:\"process\",style:({ height: _vm.useExtend ? (_vm.isExtend ? 'auto' : '60px') : '100%' })},[_c('ul',{ref:\"processArea\"},[_vm._l((_vm.approverList),function(line,lineidx){return _c('li',{key:lineidx},[_c('p',{class:_vm.getLineClass(line.approvalStatus)},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(line.approverName))])])])}),(!_vm.isLast)?_c('li',[_c('p',{staticClass:\"next\"})]):_vm._e()],2)]),(_vm.useExtend)?_c('div',{staticClass:\"title-right\"},[_c('a',{on:{\"click\":function($event){$event.stopPropagation();_vm.isExtend = !_vm.isExtend}}},[_c('i',{class:[_vm.isExtend ? 'icon-up' : 'icon-down']})])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name: 'ProcessLine',\r\n})\r\nexport default class ProcessLine extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Array }) value!: any;\r\n @Prop({ type: String }) apmInfo!: any;\r\n @Prop({ type: String }) type!: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n data: string = '';\r\n isLast: boolean = false;\r\n lineInfo: any = [];\r\n approverList: workflow.ApprovalLine[] = [] as workflow.ApprovalLine[];\r\n\r\n useExtend: boolean = false;\r\n isExtend: boolean = false;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('value')\r\n onValueChanged() {\r\n this.setProcessLine();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getLineClass(status: string) {\r\n switch (status) {\r\n case 'A0': return 'proceed last';\r\n case 'A1': return 'approval';\r\n case 'A2': return 'proceed';\r\n case 'A3': return 'proceed last';\r\n case 'A4': return 'proceed last';\r\n case 'A5': return 'approval';\r\n case 'A6': return 'proceed';\r\n case 'A7': return 'approval';\r\n case 'A8': return 'proceed last';\r\n case 'A9': return 'proceed last';\r\n case 'AC': return 'proceed last';\r\n case 'AD': return 'proceed last';\r\n case 'DE': return 'proceed last';\r\n case 'HD': return 'proceed';\r\n case 'HE': return 'proceed';\r\n case 'DR': return 'proceed last'; // 공문 수신대기\r\n case 'DU': return 'approval'; // 공문 수신\r\n case 'DL': return 'proceed last'; // 공문 거절\r\n case 'AA': return 'approval'; // 전결\r\n case 'AP': return 'approval'; // 기안\r\n case 'DA': return 'approval'; // 부서협조 접수 (재사용개념)\r\n case 'D2': return 'proceed'; // 부서협조 진행\r\n }\r\n return 'proceed last';\r\n }\r\n\r\n setProcessLine() {\r\n if (this.value) {\r\n this.lineInfo = this.value.filter((v: any) => {\r\n return v.sortNumber > 0 && v.isDisplay;\r\n });\r\n this.approverList = this.lineInfo;\r\n this.isLast = true;\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created() {\r\n this.setProcessLine(); \r\n }\r\n\r\n mounted() {\r\n // 결재선 영역 높이에 따라 영역 확장 가능한 아이콘 사용 설정\r\n var processAreaHeight = (this.$refs.processArea as any).clientHeight\r\n if (processAreaHeight > 60) {\r\n this.useExtend = true\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProcessLine.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProcessLine.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProcessLine.vue?vue&type=template&id=13e8e66a&\"\nimport script from \"./ProcessLine.ts?vue&type=script&lang=ts&\"\nexport * from \"./ProcessLine.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport ProcessLine from '@/modules/workflow/components/List/ProcessLine.vue'\r\nimport * as types from '@workflow/store/types';\r\nimport * as dateutil from '@/util/date-helper'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex';\r\nimport api from '@workflow/api'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n@Component({\r\n components: {\r\n ProcessLine\r\n },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n setCurrent : types.WORKFLOW_CURRENT\r\n }),\r\n\r\n ...mapMutations({\r\n\r\n })\r\n }\r\n})\r\nexport default class WorkflowListItem extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n open: boolean = false;\r\n openDrafter: boolean = false;\r\n drafterInfo: any = null\r\n approvalLineList: any[] | null = null\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) item!: workflow.WorkflowItem;\r\n @Prop({ type: Boolean, default: true }) showDetail!: boolean;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrent!: (data: any) => Promise;\r\n\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 결재현황보기 버튼 클릭시 호출\r\n */\r\n openApprovalView() {\r\n var data: any = {\r\n apmId: this.item.apmId, // 문서번호\r\n isMobile: true\r\n }\r\n api.form.getForm(data).then(res => {\r\n this.setCurrent(res)\r\n })\r\n this.$router.push({\r\n path: `/workflow/approvalState`,\r\n query: { id: String(this.item.apmId) },\r\n });\r\n this.open = false;\r\n }\r\n\r\n /**\r\n * 기안자보기 버튼 클릭시 호출\r\n */\r\n openDrafterView(item: any) {\r\n if (!this.drafterInfo) {\r\n var reqPerson = item.approvalLineList.find((v: any) => {\r\n return v.sortNumber === 0;\r\n });\r\n \r\n api.common.getUserByPersonCode(reqPerson.approverCode).then((res: any) => {\r\n this.drafterInfo = res;\r\n this.$emit('showDrafterModal', this.drafterInfo)\r\n this.open = false;\r\n });\r\n } else {\r\n this.$emit('showDrafterModal', this.drafterInfo)\r\n this.open = false;\r\n }\r\n }\r\n\r\n getDate(dateStr: string, format: string) {\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr));\r\n }\r\n\r\n /**\r\n * 목록에서 문서를 클릭하면 호출됩니다.\r\n * @param item 전자결재 문서 객체\r\n */\r\n select(item: any) {\r\n var data: any = {\r\n applicationId: this.item.applicationId,\r\n apmId: this.item.apmId, // 문서번호\r\n personCode: this.User.personCode,\r\n isEdit: false,\r\n isMobile: true\r\n }\r\n \r\n this.setCurrent(data).then(res => {\r\n\r\n let url: string = ``;\r\n let storekey = `s_${Date.now()}`;\r\n if (item.apmId) \r\n {\r\n url = `/workflow/read?apmid=${item.apmId}&storekey=${storekey}`; \r\n } \r\n\r\n this.$router.push({\r\n path: url\r\n });\r\n\r\n })\r\n\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WorkflowListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WorkflowListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WorkflowListItem.vue?vue&type=template&id=653226a9&\"\nimport script from \"./WorkflowListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./WorkflowListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport BoardListItem from '@board/components/List/BoardListItem.vue'\r\nimport WorkflowListItem from '@workflow/components/List/WorkflowListItem.vue'\r\nimport mailApi from '@mail/api'\r\nimport workflowApi from '@workflow/api'\r\nimport boardApi from '@board/api'\r\nimport * as calendarTypes from '@calendar/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { uGetDate, uGetDateFormat } from '@appbase/util'\r\n@Component({\r\n components: { PageHeaderWithActionBar, BoardListItem, WorkflowListItem },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n calendarList: calendarTypes.CALENDAR_DAILY_EVENT_LIST\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n loadCalendarList: calendarTypes.COMMON_DATE_SELECT_TODAY\r\n })\r\n }\r\n})\r\nexport default class MainContainer extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n boardList: Array = []\r\n boardPageNum: number = 1\r\n boardId: number = (window as any).mainConfig.boardId\r\n workflowId: number = (window as any).mainConfig.workflowId\r\n workflowList: Array = []\r\n workflowCount: number = 0\r\n workflowDocumentPages: Array = []\r\n mailCount?: number = 0\r\n\r\n hasUnreadMailFolder: any[] = []\r\n /*더보기 2023-05-23*/\r\n offset: number = 0\r\n pageNumber: number = 1\r\n pageSize: number = 20\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n calendarList!: calendar.CalendarItem[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadCalendarList!: () => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadBoardList() {\r\n var searchSet: article.SearchSet = {\r\n userCode: this.User.personCode,\r\n boardId: this.boardId,\r\n page: this.boardPageNum,\r\n itemsPerPage: 5,\r\n searchField: 0,\r\n searchFieldValue: null,\r\n prefaceId1: null,\r\n prefaceId2: null,\r\n sortField: 0,\r\n sortOrder: false,\r\n includeContent: false,\r\n useNotice: true\r\n }\r\n boardApi.article.getArticles(searchSet).then(async res => {\r\n if (res.data.length) {\r\n this.boardList = res.data\r\n } else {\r\n if (this.boardPageNum > 1) {\r\n await(window as any).alertAsync(this.$t('마지막_페이지입니다').toString())\r\n this.boardPageNum --\r\n }\r\n }\r\n \r\n })\r\n }\r\n\r\n loadWorkflowList() {\r\n var params = {\r\n documentQueryNumber: this.workflowId,\r\n personCode: this.User.personCode,\r\n deptCode: this.User.deptCode,\r\n apmStatus: null,\r\n applicationId: null,\r\n startDate: uGetDateFormat('yyyy-MM-DD' ,uGetDate(-1, new Date(), 'year')),\r\n endDate: uGetDateFormat('yyyy-MM-DD', new Date()),\r\n searchType: -1,\r\n searchValue: null,\r\n itemsPerPage: 5,\r\n page: 1,\r\n sortValue: this.pageItem?.searchSortValue || 4,\r\n };\r\n\r\n workflowApi.document.getDocumentList(params).then((res) => {\r\n this.workflowList = res\r\n this.workflowCount = res[0].totalCount\r\n })\r\n }\r\n\r\n async movePage(dir: string) {\r\n if (dir === 'prev') {\r\n if (this.boardPageNum > 1) {\r\n this.boardPageNum --\r\n } else {\r\n await(window as any).alertAsync(this.$t('첫번째_페이지입니다').toString())\r\n }\r\n } else {\r\n this.boardPageNum ++\r\n }\r\n\r\n this.loadBoardList()\r\n }\r\n\r\n getMailCount() {\r\n // mailApi.folder.getHasUnreadMailFolder().then((res: any) => {\r\n // if (res.length) {\r\n // this.mailCount = res.reduce((sum: any, x: { unreadCount: any }) => sum + x.unreadCount, 0)\r\n // }\r\n // })\r\n\r\n var promiseArr: Promise[] = [\r\n mailApi.folder.getFolderTree('')\r\n ]\r\n\r\n Promise.all(promiseArr).then(res => {\r\n this.hasUnreadMailFolder = res[0]['items']\r\n\r\n var folderId = ''\r\n for (var i = 0; i < this.hasUnreadMailFolder.length; i++) {\r\n var isDelete = false\r\n\r\n if(this.hasUnreadMailFolder[i]['name'] === '보낼 편지함' || this.hasUnreadMailFolder[i]['name'] === '임시 보관함' || this.hasUnreadMailFolder[i]['name'] === '정크 메일' ||this.hasUnreadMailFolder[i]['name'] === '지운 편지함')\r\n {\r\n isDelete = true\r\n } \r\n\r\n if(isDelete === true){\r\n this.hasUnreadMailFolder.splice(i,1) \r\n i--\r\n\r\n } else {\r\n folderId += ',' + this.hasUnreadMailFolder[i]['id'] \r\n }\r\n }\r\n\r\n if (this.hasUnreadMailFolder.length) {\r\n mailApi.mail.getUnreadMailList(folderId, this.pageSize, this.offset).then((res) => {\r\n if(res.items.length) \r\n {\r\n this.mailCount = Number(res.totalCount || 0) //총 개수 //총 개수\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n getWorkflowDocumentPages() {\r\n workflowApi.common.getDocumentPages().then((res: any) => {\r\n this.workflowDocumentPages = res\r\n }).then(() => this.loadWorkflowList())\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get calendarCount() {\r\n return this.calendarList.length\r\n }\r\n\r\n get pageItem() {\r\n var item = this.workflowDocumentPages?.filter((x) => x.no == Number(this.workflowId))[0]\r\n if (item) {\r\n return item\r\n }\r\n return null\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.loadBoardList()\r\n this.getWorkflowDocumentPages()\r\n this.getMailCount()\r\n this.loadCalendarList()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MainContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MainContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainContainer.vue?vue&type=template&id=0751be50&\"\nimport script from \"./MainContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./MainContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport MainContainer from '../containers/MainContainer.vue'\r\nimport * as types from '@/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\nimport gnbApi from '@gnb/api'\r\n@Component({\r\n components: { PageHeaderWithActionBar, MainContainer },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCurrentMenu: types.CURRENT_MENU,\r\n })\r\n },\r\n})\r\nexport default class MainView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrentMenu!: (name: string) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n unreadAlarmCount: number = 0\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n menu(name: string) {\r\n this.setMenu(name)\r\n }\r\n\r\n getUnreadAlarm() {\r\n gnbApi.gnb.getWorkFeedUnreadCount(this.User.personCode, this.User.comCode).then((res: any) => {\r\n if (res > 0) {\r\n this.unreadAlarmCount = res\r\n }\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.getUnreadAlarm()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MainView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MainView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainView.vue?vue&type=template&id=d953185c&\"\nimport script from \"./MainView.ts?vue&type=script&lang=ts&\"\nexport * from \"./MainView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageHeaderWithActionBar',{attrs:{\"title\":_vm.$t('알림')}}),_c('AlarmContainer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_vm._l((_vm.dateGroup()),function(date,index){return _c('div',{key:index},[_c('section',[_c('h6',{staticClass:\"mail-pack\"},[_vm._v(_vm._s(date))]),(date)?_c('div',{staticClass:\"notice-list\"},_vm._l((_vm.getItems(date)),function(alarm,index){return _c('div',{key:index,class:['item', alarm.alarmType == 'WF' ? 'approval' : 'mail'],on:{\"click\":function($event){return _vm.readFeed(alarm)}}},[_c('div',{staticClass:\"left\"},[_c('i',{class:_vm.getFeedItemTypeClass(alarm.alarmType)})]),_c('div',{staticClass:\"subject-wrap\"},[_c('p',{staticClass:\"subject\"},[_vm._v(_vm._s(_vm.userCurrent.userConfig.language === 'ko-KR' ? alarm.alarmText : alarm.alarmTextEng))]),_c('p',{staticClass:\"contents\"},[_c('span',{staticClass:\"writer\"},[_vm._v(_vm._s(alarm.createUserName))]),_c('span',{staticClass:\"divide-md\"}),_c('span',{staticClass:\"created\"},[_vm._v(_vm._s(_vm.getDate(alarm)))])])])])}),0):_vm._e()]),(_vm.dateGroup().length !== index + 1)?_c('div',{staticClass:\"section-space\"}):_vm._e()])}),(!_vm.alarmList.length)?_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_mail.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('표시할_항목이_없습니다')))])])]):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"bottom-menu\"},[_c('router-link',{attrs:{\"to\":{ name: 'mail-home' },\"active-class\":\"selected\"}},[_c('i',{staticClass:\"icon-email\"}),_c('p',{staticClass:\"menu-tit\"},[_vm._v(_vm._s(_vm.$t('메일')))])]),_c('router-link',{attrs:{\"to\":{ name: 'calendar-main' },\"active-class\":\"selected\"}},[_c('i',{staticClass:\"icon-calendar\"}),_c('p',{staticClass:\"menu-tit\"},[_vm._v(_vm._s(_vm.$t('일정')))])]),_c('router-link',{attrs:{\"to\":{ name: 'contact-list' },\"active-class\":\"selected\"}},[_c('i',{staticClass:\"icon-address\"}),_c('p',{staticClass:\"menu-tit\"},[_vm._v(_vm._s(_vm.$t('연락처')))])]),_c('router-link',{attrs:{\"to\":{ name: 'home-search' },\"active-class\":\"selected\"}},[_c('i',{staticClass:\"icon-search\"}),_c('p',{staticClass:\"menu-tit\"},[_vm._v(_vm._s(_vm.$t('W_Common_Search')))])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component({\r\n})\r\nexport default class WebMailBottom extends Vue {\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./WebMailBottom.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./WebMailBottom.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WebMailBottom.vue?vue&type=template&id=6941a5d0&\"\nimport script from \"./WebMailBottom.ts?vue&type=script&lang=ts&\"\nexport * from \"./WebMailBottom.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport api from '@gnb/api'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapGetters } from 'vuex'\r\n@Component({\r\n components: { WebMailBottom },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n userCurrent: accountTypes.CURRENT\r\n })\r\n },\r\n})\r\nexport default class AlarmContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n alarmList: home.AlarmItem[] = []\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n userCurrent!: account.TCurrent\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadData() {\r\n api.gnb.getWorkFeedList(this.User.personCode, this.User.comCode).then(res => {\r\n this.alarmList = res\r\n this.isloading(false)\r\n })\r\n }\r\n\r\n getDate(alarm: any) {\r\n return dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.IEDate(alarm.createDate))\r\n }\r\n\r\n dateGroup() {\r\n const date = this.alarmList.map(x => this.getDate(x))\r\n const dateGroup = Array.from(new Set(date))\r\n return dateGroup\r\n }\r\n\r\n getItems(date: any){\r\n const items = this.alarmList.filter(x => this.getDate(x) === date)\r\n return items\r\n }\r\n\r\n readFeed(alarm: any) {\r\n switch (alarm.alarmType) {\r\n case 'BB':\r\n this.$router.push({ path: `/board/read?id=${alarm.itemId}` })\r\n break\r\n case 'WF':\r\n this.$router.push({ path: `/workflow/read?apmid=${alarm.itemId}` })\r\n break\r\n case 'SC':\r\n break\r\n case 'CO':\r\n break\r\n case 'HA':\r\n break\r\n case 'DO':\r\n break\r\n }\r\n\r\n api.gnb.setWorkFeedReadStatus(alarm.alarmId, true).then((res: any) => {\r\n if (res > -1) {\r\n let nIdx = this.alarmList.findIndex((x) => x.alarmId == alarm.alarmId)\r\n if (nIdx > -1) this.alarmList.splice(nIdx, 1)\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * type 에 따라 클래스명을 리턴합니다.\r\n * @param alarmType \r\n */\r\n getFeedItemTypeClass(alarmType: string){\r\n var className = 'icon-email'\r\n switch(alarmType){\r\n case \"WF\":\r\n className = \"icon-approval\"\r\n break\r\n case \"BB\":\r\n className = \"icon-email\"\r\n break\r\n }\r\n return className\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n this.loadData()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AlarmContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AlarmContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlarmContainer.vue?vue&type=template&id=9b39387c&\"\nimport script from \"./AlarmContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./AlarmContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport AlarmContainer from '@home/containers/AlarmContainer.vue'\r\n@Component({\r\n components: { PageHeaderWithActionBar, AlarmContainer }\r\n})\r\nexport default class AlarmView extends Vue {}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AlarmView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AlarmView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlarmView.vue?vue&type=template&id=ca0d446a&\"\nimport script from \"./AlarmView.ts?vue&type=script&lang=ts&\"\nexport * from \"./AlarmView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageHeaderWithSearchBar',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.detailViewMode),expression:\"!detailViewMode\"}]}),_c('PageViewHeaderWithActionBar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.detailViewMode),expression:\"detailViewMode\"}],attrs:{\"eventBus\":true}}),_c('div',{attrs:{\"id\":\"inner-container\"}},[_c('OrgmapContainer',{on:{\"detail\":_vm.detailViewModeChange}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.detailViewMode)?_c('section',[(_vm.companies.length && !_vm.searchData.length)?_c('div',{staticClass:\"p-all-m\"},[_c('div',{staticClass:\"org-selectbox\",on:{\"click\":function($event){_vm.showCompanyModal = true}}},[_c('a',[_vm._v(_vm._s(_vm.currentCompany.companyName))]),_vm._m(0)])]):_vm._e(),_c('CompanySelectionModal',{attrs:{\"show\":_vm.showCompanyModal,\"current\":_vm.currentCompany,\"companies\":_vm.companies,\"onSelect\":_vm.handleCompanySelected,\"onClose\":function () { return (_vm.showCompanyModal = false); }}}),(_vm.searchData.length)?_c('div',{staticClass:\"org-list\"},[_vm._l((_vm.searchDepartmentList),function(dept){return _c('DeptNode',{key:dept.deptCode,attrs:{\"item\":dept}})}),_vm._l((_vm.searchUserList),function(user,index){return _c('UserNode',{key:index,attrs:{\"item\":user},on:{\"detail\":_vm.detailView}})})],2):_c('div',{staticClass:\"org-list\"},_vm._l((_vm.TreeData),function(dept){return _c('DeptNode',{key:dept.deptCode,attrs:{\"item\":dept},on:{\"detail\":_vm.detailView,\"toggle\":_vm.toggleDepartmentAsync}})}),1)],1):_c('UserDetail',{attrs:{\"person\":_vm.currentUser},on:{\"detailViewClose\":_vm.detailViewClose}})}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h5',[_c('i',{staticClass:\"icon-down\"})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-node\"},[_c('div',{staticClass:\"m-top\",class:{ selected: _vm.item.selected },on:{\"click\":function($event){return _vm.gotoDetail()}}},[_c('span',{staticClass:\"menu-img\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/v1/img/ghost_loading.png\"},on:{\"error\":_vm.error}}):_c('img',{ref:\"userPhoto\",attrs:{\"src\":_vm.avatar.url},on:{\"error\":_vm.errorGhost}})]),_c('span',{staticClass:\"menu-name\"},[_vm._v(_vm._s(_vm.item.displayName))]),_c('span',{staticClass:\"menu-name ft-s ft-gray\"},[_c('span',[_vm._v(_vm._s(_vm.item.titleName))]),(_vm.item.positionName)?_c('span',{staticClass:\"divide-hor divide-gray m-l-xs m-r-xs\"}):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.item.positionName))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch, Prop } from 'vue-property-decorator'\r\n\r\n//util\r\nimport { cache } from '@/util'\r\n\r\n@Component({\r\n components: {},\r\n})\r\nexport default class UserNode extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: UserItemEx\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get extensionNumber() {\r\n return this.item.officeTel?.length === 4 ? this.item.officeTel : null\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getImage(email?: string) {\r\n if (email && email.indexOf('/') == -1) {\r\n this.avatar.loading = true\r\n cache.avatar.get(email).then((url: string) => {\r\n this.avatar.url = url\r\n this.avatar.loading = false\r\n })\r\n }\r\n }\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png'\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/faux/images/ghost.png'\r\n }\r\n\r\n gotoDetail() {\r\n this.$emit('detail', this.item)\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y L E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.getImage(this.item.email)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./UserNode.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./UserNode.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserNode.vue?vue&type=template&id=725ee5ad&\"\nimport script from \"./UserNode.ts?vue&type=script&lang=ts&\"\nexport * from \"./UserNode.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-node\"},[_c('div',{staticClass:\"m-top\",on:{\"click\":_vm.toggle}},[_vm._m(0),_c('span',{staticClass:\"menu-name\"},[_vm._v(_vm._s(_vm.item.deptName))]),(_vm.item.hasChildren === 'TRUE')?_c('span',{staticClass:\"menu-icon-arrow\"},[_c('i',{class:( _obj = {}, _obj[_vm.item.expanded ? 'icon-up' : 'icon-down'] = true, _obj )})]):_vm._e()]),(_vm.item.expanded && _vm.item.users && _vm.item.users.length)?_c('div',{staticClass:\"m-sub\"},_vm._l((_vm.item.users),function(user,index){return _c('UserNode',{key:index,attrs:{\"item\":user},on:{\"detail\":function (user) { return _vm.$emit('detail', user); }}})}),1):_vm._e(),(_vm.item.expanded && _vm.item.children && _vm.item.children.length)?_c('div',{staticClass:\"m-sub\"},_vm._l((_vm.item.children),function(dept,index){return _c('DeptNode',{key:index,attrs:{\"item\":dept},on:{\"toggle\":function (dept) { return _vm.$emit('toggle', dept); },\"detail\":function (user) { return _vm.$emit('detail', user); }}})}),1):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"menu-icon\"},[_c('i',{staticClass:\"icon-folder\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch, Prop } from 'vue-property-decorator'\r\nimport UserNode from './UserNode.vue'\r\n\r\n@Component({\r\n name: 'DeptNode',\r\n components: {\r\n UserNode,\r\n },\r\n})\r\nexport default class DeptNode extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: DepartmentEx\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n toggle() {\r\n this.$emit('toggle', this.item)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeptNode.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DeptNode.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeptNode.vue?vue&type=template&id=056b0b06&\"\nimport script from \"./DeptNode.ts?vue&type=script&lang=ts&\"\nexport * from \"./DeptNode.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layer-popup-wrap\",style:({ display: _vm.show ? 'block' : 'none' }),attrs:{\"id\":\"LayerPopup\"},on:{\"click\":_vm.onClose}},[_c('div',{staticClass:\"layer-popup\"},[_c('div',{staticClass:\"layer-pop-header\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('그룹사_선택')))]),_c('div',{staticClass:\"layer-close\"},[_c('a',{on:{\"click\":_vm.onClose}},[_c('i',{staticClass:\"icon-close\"})])])]),_c('div',{staticClass:\"layer-pop-content\"},_vm._l((_vm.companies),function(comp){return _c('div',{key:comp.comCode,staticClass:\"m-node\",on:{\"click\":function () {\n _vm.onSelect(comp)\n _vm.onClose()\n }}},[_c('div',{staticClass:\"m-top\"},[_vm._m(0,true),_c('span',{staticClass:\"menu-name\"},[_vm._v(_vm._s(comp.companyName))]),(comp.comCode === _vm.current.comCode)?_c('span',{staticClass:\"menu-icon-arrow\"},[_c('i',{staticClass:\"icon-check-mark\"})]):_vm._e()])])}),0)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"menu-icon\"},[_c('i',{staticClass:\"bullet\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch, Prop } from 'vue-property-decorator'\r\n\r\n@Component({})\r\nexport default class CompanySelectionModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object, default: {} }) current!: orgmap.Company\r\n @Prop({ type: Array, default: [] }) companies!: orgmap.Company[]\r\n @Prop({ type: Function, default: () => 1 }) onClose!: () => void\r\n @Prop({ type: Function, default: () => 1 }) onSelect!: () => void\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CompanySelectionModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CompanySelectionModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CompanySelectionModal.vue?vue&type=template&id=46efba0a&\"\nimport script from \"./CompanySelectionModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./CompanySelectionModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('section',{staticClass:\"profile-wrap\"},[_c('div',{staticClass:\"padding\"},[_c('div',{staticClass:\"profile-img-wrap\"},[_c('div',{staticClass:\"profile-img\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/v1/img/ghost_loading.png\"},on:{\"error\":_vm.error}}):_c('img',{ref:\"userPhoto\",attrs:{\"src\":_vm.avatar.url},on:{\"error\":_vm.errorGhost}})])]),_c('div',{staticClass:\"profile-info-wrap\"},[_c('span',{staticClass:\"profile-name\"},[_vm._v(_vm._s(_vm.person.displayName))]),_c('h5',{staticClass:\"ft-gray ft-normal m-t-m\"},[_c('span',[_vm._v(_vm._s(_vm.person.companyName))]),(_vm.person.companyName)?_c('span',{staticClass:\"divide-hor divide-gray m-l-xs m-r-xs\"}):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.person.titleName))]),(_vm.person.positionName)?_c('span',{staticClass:\"divide-hor divide-gray m-l-xs m-r-xs\"}):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.person.positionName))])]),_c('h5',{staticClass:\"ft-gray ft-normal m-t-s\"},[_c('span',[_vm._v(_vm._s(_vm.person.deptName))]),(_vm.person.deptName != _vm.person.displayDeptName)?_c('span',{staticClass:\"divide-hor divide-gray m-l-xs m-r-xs\"}):_vm._e(),(_vm.person.deptName != _vm.person.displayDeptName)?_c('span',[_vm._v(_vm._s(_vm.person.displayDeptName))]):_vm._e()])]),_c('div',{staticClass:\"modal\",style:({ display: _vm.isModalStatus ? 'block' : 'none' }),attrs:{\"id\":\"openOrgModal\"},on:{\"click\":function($event){return _vm.showModal(false)}}},[_c('div',{staticClass:\"modal-wrap\"},[_c('a',{staticClass:\"close\"}),_c('div',{staticClass:\"modal-content row-content\"},[_c('div',{staticClass:\"modal-items\"},[_c('div',{staticClass:\"item\"},[_c('a',{staticClass:\"item-btn\",attrs:{\"href\":'tel:' + _vm.person.mobileTel}},[_c('i',{staticClass:\"icon-telephone\"}),_vm._v(\" 전화걸기 \")])]),_c('div',{staticClass:\"item\"},[_c('a',{staticClass:\"item-btn\",attrs:{\"href\":'sms:' + _vm.person.mobileTel}},[_c('i',{staticClass:\"icon-communication\"}),_vm._v(\" 문자보내기 \")])])])])])])])]),_c('section',[_c('div',{staticClass:\"write-area\"},[_c('form',[_c('div',{staticClass:\"ip-phone-number\"},[_vm._m(0),_c('div',{staticClass:\"info-txt\"},[_c('a',{staticClass:\"ft-blue\",on:{\"click\":function($event){return _vm.showModal(true)}}},[_vm._v(_vm._s(_vm.person.mobileTel))])])]),_c('div',{staticClass:\"ip-company-number\"},[_vm._m(1),_c('div',{staticClass:\"info-txt\"},[_c('a',{staticClass:\"ft-blue\",on:{\"click\":_vm.officeTel}},[_vm._v(_vm._s(_vm.person.officeTel))])])]),_c('div',{staticClass:\"ip-mail\"},[_vm._m(2),_c('div',{staticClass:\"info-txt\"},[_c('a',{staticClass:\"ft-blue\",on:{\"click\":_vm.writeEmail}},[_vm._v(_vm._s(_vm.person.email))])])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-phone\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-office-call\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('a',[_c('label',[_c('i',{staticClass:\"icon-un-email\"})])])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./UserDetail.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./UserDetail.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserDetail.vue?vue&type=template&id=2d99147a&\"\nimport script from \"./UserDetail.ts?vue&type=script&lang=ts&\"\nexport * from \"./UserDetail.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport UserNode from '@home/components/Orgmap/UserNode.vue'\r\nimport DeptNode from '@home/components/Orgmap/DeptNode.vue'\r\nimport CompanySelectionModal from '@home/components/Orgmap/CompanySelectionModal.vue'\r\nimport UserDetail from '@home/components/Orgmap/UserDetail.vue'\r\nimport api from '@home/api'\r\nimport { createEventBus, removeEventBus } from '@/util'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\n@Component({\r\n components: { UserNode, DeptNode, CompanySelectionModal, UserDetail },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n })\r\n },\r\n})\r\nexport default class OrgmapContainer extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n TreeData: DepartmentEx[] = []\r\n companies: orgmap.Company[] = []\r\n currentUser: orgmap.HrUser | null = null\r\n detailViewMode: boolean = false\r\n showCompanyModal: boolean = false\r\n currentCompany: orgmap.Company = Object.create(null)\r\n searchKeyword: string = ''\r\n searchData: any[] = []\r\n searchDepartmentList: UserItemEx[] = []\r\n searchUserList: UserItemEx[] = []\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n load() {\r\n api.orgmap.getCompanies().then(async (companies: Array) => {\r\n this.companies = companies\r\n var userCompany = this.companies.find((x) => x.comCode == this.User.comCode)\r\n if (userCompany) await this.handleCompanySelected(userCompany)\r\n else await this.handleCompanySelected(this.companies[0])\r\n this.getUserDept()\r\n })\r\n }\r\n\r\n /**\r\n * 그룹사 선택 모달에서 회사를 선택하면 호출됩니다.\r\n * @param company\r\n */\r\n async handleCompanySelected(company: orgmap.Company) {\r\n const { comCode } = (this.currentCompany = company)\r\n this.TreeData = await this.getOrgTreeAsync('', comCode)\r\n }\r\n\r\n /**\r\n * 헤더 검색바에서 검색어 입력/뒤로가기 시 호출됩니다.\r\n * @param keyword\r\n */\r\n async handleSearchRequest(keyword: string) {\r\n if (keyword) {\r\n this.searchData = []\r\n this.searchUserList = []\r\n api.orgmap.searchOrg({\r\n query: keyword,\r\n size: 100,\r\n }, this.User.comCode).then((res: any) => {\r\n if (res.items) {\r\n this.searchData = res.items\r\n res.items.map((x: any) => {\r\n if (x.type === 'D') {\r\n this.searchDepartmentList.push(x)\r\n } else {\r\n this.searchUserList.push(x)\r\n }\r\n })\r\n }\r\n })\r\n } else {\r\n this.searchData = []\r\n this.searchUserList = []\r\n }\r\n }\r\n\r\n /**\r\n * 부서 트리를 로드합니다.\r\n */\r\n async getOrgTreeAsync(\r\n parentDeptCode: string = '',\r\n compCode: string\r\n ): Promise> {\r\n if (!compCode) compCode = this.User.comCode\r\n const defaultDeptState = {\r\n expanded: false,\r\n selected: false,\r\n children: null,\r\n users: null,\r\n }\r\n const result = await api.orgmap.getOrgTree({\r\n level: 2,\r\n comCode: compCode,\r\n deptCode: '',\r\n parentDeptCode: parentDeptCode,\r\n })\r\n const mapResult = (dept: any) => ({ ...dept, ...defaultDeptState })\r\n const departments = result.items?.map(mapResult) as Array\r\n return departments.length ? this.flatToHierarchy(departments) : []\r\n }\r\n\r\n /**\r\n * 플랫한 구조의 데이터를 트리 구조로 변환합니다.\r\n * @param flat 플랫한 구조의 데이터\r\n * @returns 트리 구조로 정재된 데이터\r\n */\r\n flatToHierarchy(flat: Array) {\r\n var roots: any[] = []\r\n var all: any = {}\r\n var flatArr: Array = []\r\n for (var item of flat) {\r\n all[item.id] = {\r\n ...item,\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n } as DepartmentEx\r\n flatArr.push(all[item.id])\r\n }\r\n flatArr.forEach(function(item) {\r\n const parentCode = item.parentDeptCode\r\n if (!parentCode) {\r\n roots.push(item)\r\n } else if (parentCode in all) {\r\n var p = all[parentCode] as DepartmentEx\r\n if (!('children' in p) || !p.children) {\r\n p.children = []\r\n }\r\n p.children.push(item)\r\n } else {\r\n roots.push(item)\r\n }\r\n })\r\n\r\n return roots\r\n }\r\n\r\n /**\r\n * 부서 노드를 토글합니다.\r\n * 부서를 확장하여 하위 부서 및 사용자 목록을 표시합니다.\r\n * @param dept 클릭한 부서 객체\r\n */\r\n async toggleDepartmentAsync(dept: DepartmentEx) {\r\n dept.expanded = !dept.expanded\r\n if (!dept.users) {\r\n const result = await api.orgmap.getEmployeeList({\r\n level: 2,\r\n comCode: dept.comCode,\r\n deptCode: dept.deptCode,\r\n parentDeptCode: '',\r\n } as orgmap.DepartmentOption)\r\n dept.users = result.items.map((user: any) => ({\r\n ...user,\r\n selected: false,\r\n }))\r\n }\r\n if (!dept.children) {\r\n dept.children = await this.getOrgTreeAsync(dept.deptCode, dept.comCode)\r\n }\r\n }\r\n\r\n /**\r\n * 자신의 부서까지 트리를 확장하고 부서원 목록을 표시합니다.\r\n */\r\n getUserDept() {\r\n api.orgmap.getDeptPath({\r\n comCode: this.User.comCode,\r\n deptCode: this.User.deptCode,\r\n })\r\n .then(async (res) => {\r\n var pathArr = res.items[0].path.split('/').slice(1)\r\n var findDept: DepartmentEx[] = []\r\n\r\n for (var path of pathArr) {\r\n var dept: DepartmentEx | null = null\r\n dept = this.TreeData.filter(\r\n (x: DepartmentEx) => x.deptCode === path\r\n )[0]\r\n\r\n if (!dept && findDept.length) {\r\n dept = findDept.filter((x: DepartmentEx) => x.deptCode === path)[0]\r\n }\r\n\r\n if (dept) {\r\n await this.toggleDepartmentAsync(dept)\r\n findDept = []\r\n dept?.children?.map((x) => {\r\n findDept.push(x)\r\n })\r\n }\r\n }\r\n this.isloading(false)\r\n })\r\n }\r\n\r\n detailView(user: orgmap.HrUser) {\r\n this.$emit('detail', true)\r\n this.detailViewMode = true\r\n this.currentUser = user\r\n }\r\n\r\n detailViewClose() {\r\n this.$emit('detail', false)\r\n this.detailViewMode = false\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, 'header-search', this.handleSearchRequest)\r\n this.isloading(true)\r\n this.load()\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgmapContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgmapContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrgmapContainer.vue?vue&type=template&id=ab3feec0&\"\nimport script from \"./OrgmapContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./OrgmapContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageHeaderWithSearchBar from '@/components/common/Header/PageHeaderWithSearchBar.vue'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport OrgmapContainer from '../containers/OrgmapContainer.vue'\r\nimport UserDetail from '../components/Orgmap/UserDetail.vue'\r\n@Component({\r\n components: { \r\n PageHeaderWithSearchBar, \r\n PageViewHeaderWithActionBar,\r\n OrgmapContainer, \r\n UserDetail \r\n }\r\n})\r\nexport default class OrgmapView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n detailViewMode: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n detailViewModeChange(flag: boolean) {\r\n this.detailViewMode = flag\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgmapView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgmapView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrgmapView.vue?vue&type=template&id=17fff7bf&\"\nimport script from \"./OrgmapView.ts?vue&type=script&lang=ts&\"\nexport * from \"./OrgmapView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageHeaderWithSearchBar'),_c('SearchContainer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('h6',{staticClass:\"mail-pack\"},[_c('div',{staticClass:\"pack-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('메일'))+\" \")])]),_c('section',{directives:[{name:\"infinite-scroll\",rawName:\"v-infinite-scroll\",value:(_vm.loadMore),expression:\"loadMore\"}],attrs:{\"infinite-scroll-disabled\":\"busy\",\"infinite-scroll-distance\":\"63\",\"infinite-scroll-throttle-delay\":\"1000\",\"infinite-scroll-immediate-check\":\"false\"}},[_c('MailList',{attrs:{\"items\":_vm.mailList}},[(_vm.mailList && _vm.mailMoreAvailable)?_c('div',{staticClass:\"section-more\",staticStyle:{\"display\":\"none\"}},[_c('router-link',{attrs:{\"to\":{ name: 'mail-list', query: { query: _vm.searchKeyword } }}},[_vm._v(\" \"+_vm._s(_vm.$t('더보기'))),_c('i',{staticClass:\"icon-right\"})])],1):_vm._e()])],1),_c('h6',{staticClass:\"mail-pack\",staticStyle:{\"display\":\"none\"}},[_c('div',{staticClass:\"pack-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('일정'))+\" \")])]),_c('ScheduleList',{staticStyle:{\"display\":\"none\"},attrs:{\"items\":_vm.scheduleList}},[(_vm.scheduleList && _vm.scheduleMoreAvailable)?_c('div',{staticClass:\"section-more\"},[_c('router-link',{attrs:{\"to\":{ name: 'home-scheduleSearch', query: { keyword: _vm.searchKeyword } }}},[_vm._v(\" \"+_vm._s(_vm.$t('더보기'))),_c('i',{staticClass:\"icon-right\"})])],1):_vm._e()]),_c('h6',{staticClass:\"mail-pack\",staticStyle:{\"display\":\"none\"}},[_c('div',{staticClass:\"pack-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('연락처'))+\" \")])]),_c('ContactList',{staticStyle:{\"display\":\"none\"},attrs:{\"contactList\":_vm.contactList}})],1),_c('WebMailBottom')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mail-list\"},[(_vm.items.length)?_c('table',[_c('colgroup',[(!_vm.isSend)?_c('col',{attrs:{\"width\":\"80px\"}}):_vm._e(),_c('col',{attrs:{\"width\":\"\"}}),_c('col',{attrs:{\"width\":\"50px\"}})]),_c('tbody',_vm._l((_vm.items),function(item){return _c('MailListItem',{key:item.id,attrs:{\"item\":item}})}),1)]):_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_mail.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('M_Mail_No_Item')))])])]),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.item)?_c('tr',{class:[_vm.getMailReadClass(_vm.item.isRead), ( _obj = {}, _obj['selected-list'] = _vm.isSelected, _obj )],on:{\"click\":_vm.select}},[(!_vm.isSend)?_c('td',[_c('div',{staticClass:\"image sender\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.checked.apply(null, arguments)}}},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":_vm.loadingImage}}):_c('img',{attrs:{\"src\":_vm.avatar.url},on:{\"error\":_vm.onPhotoError}})])]):_vm._e(),_c('td',[_c('p',{staticClass:\"mail-sender\"},[_vm._v(_vm._s(_vm.name))]),_c('p',{staticClass:\"mail-subject\"},[_vm._v(_vm._s(_vm.item.subject))]),_c('p',{staticClass:\"mail-thumb\"},[_vm._v(_vm._s(_vm.item.preview))])]),_c('td',{staticClass:\"mail-sub\"},[_c('div',[_c('p',{staticClass:\"mail-date\"},[_vm._v(\" \"+_vm._s(_vm.getMailDate(_vm.item.date, _vm.item.time))+\" \")]),_c('p',{staticClass:\"mail-place\"}),_c('p',{staticClass:\"mail-file\"},[(_vm.item.importance == 'High')?_c('i',{staticClass:\"icon-important\"}):_vm._e(),(_vm.item.hasAttachments == 'True')?_c('i',{staticClass:\"icon-attach\"}):_vm._e()])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { cache, invalidateUrl } from '@appbase/util'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@mail/store/types'\r\nimport * as globalTypes from '@/store/types'\r\n@Component({\r\n components: { },\r\n computed: {\r\n ...mapGetters({\r\n currentPage: globalTypes.CURRENT_PAGE,\r\n selectList: types.EMAIL_SELECT\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n currentEmail: types.EMAIL_CURRENT\r\n }),\r\n ...mapMutations({\r\n selectEmail: types.EMAIL_SELECT\r\n })\r\n },\r\n})\r\nexport default class MailListItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) isChecked!: boolean\r\n @Prop({ type: Boolean, default: false }) toggle!: boolean\r\n @Prop({ type: Object }) item!: mail.EmailMessage\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentPage!: any\r\n selectList!: string[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentEmail!: (selection: mail.EmailSelectionInfo) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n \r\n selectEmail!: (id: string) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n }\r\n\r\n loadingImage: string = invalidateUrl('/cm/gres/v1/img/ghost_loading.png')\r\n ghostImage: string = invalidateUrl('/cm/gres/v1/img/ghost.png')\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // 보낸 편지함, 보낼 편지함, 예약메일함 여부\r\n get isSend(): boolean {\r\n const wellknownName = this.currentPage.wellKnownFolderName as string\r\n if (\r\n ['sentitems', 'outbox', 'drafts'].includes(wellknownName)\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n get name(): any {\r\n // 보낸 편지함 또는 보낼 편지함에서는 목록에 표시할 이름을 받는사람으로\r\n if (this.isSend) {\r\n return this.item.displayTo || this.$t('W_Mail_Unknown').toString()\r\n } else {\r\n return this.item.from\r\n }\r\n }\r\n\r\n get isSelected() {\r\n return this.selectList.includes(this.item.id) ? true : false\r\n }\r\n\r\n @Watch('item')\r\n onItemChanged(newValue?: mail.EmailMessage) {\r\n if (newValue) {\r\n this.getImage(newValue.address!)\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n onPhotoError() {\r\n console.log('set ghost image')\r\n this.avatar.url = this.ghostImage\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/faux/images/ghost.png'\r\n }\r\n\r\n checked() {\r\n const { id } = this.item\r\n this.selectEmail(id)\r\n }\r\n \r\n getMailDate(sendDate: string, sendTime: string) {\r\n let today = new Date()\r\n var todayString: string =\r\n today.getFullYear() +\r\n '-' +\r\n this.pad((today.getMonth() + 1).toString(), 2) +\r\n '-' +\r\n this.pad(today.getDate().toString(), 2)\r\n if (sendDate != todayString) {\r\n return sendDate\r\n } else {\r\n return sendTime\r\n }\r\n }\r\n\r\n pad(n: string, width: number) {\r\n n = n + ''\r\n return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n\r\n }\r\n\r\n getImage(senderMail: string) {\r\n this.avatar.loading = true\r\n const szAddress = senderMail\r\n if (!this.isSend) {\r\n cache.avatar.get(szAddress).then((url) => {\r\n this.avatar.url = invalidateUrl(url)\r\n this.avatar.loading = false\r\n })\r\n }\r\n }\r\n\r\n getMailReadClass(isMailRead: string) {\r\n if (isMailRead == null) {\r\n return ''\r\n } else if (isMailRead.toLowerCase() == 'true') {\r\n return ''\r\n } else {\r\n return 'unread-mail'\r\n }\r\n }\r\n\r\n select() {\r\n this.currentEmail({ id: this.item.id, method: 'none' })\r\n const getTargetPath = (id: string) => {\r\n if (this.item.isDraft === 'True') {\r\n return {\r\n name: 'mail-write',\r\n query: { id, type: 'draft' },\r\n }\r\n } else {\r\n return {\r\n name: 'mail-read',\r\n query: { id },\r\n }\r\n }\r\n }\r\n this.$router.push(getTargetPath(this.item.id))\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n if (this.item) {\r\n this.getImage(this.item.address)\r\n }\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MailListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MailListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MailListItem.vue?vue&type=template&id=272721ef&\"\nimport script from \"./MailListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./MailListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport MailListItem from '@mail/components/MailListItem.vue'\r\nimport { mapGetters } from 'vuex'\r\nimport * as globalTypes from '@/store/types'\r\n@Component({\r\n components: { MailListItem },\r\n computed: {\r\n ...mapGetters({\r\n currentPage: globalTypes.CURRENT_PAGE\r\n })\r\n },\r\n})\r\nexport default class MailList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array, default: [] }) items!: []\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentPage!: any\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n // 보낸 편지함, 보낼 편지함, 예약메일함 여부\r\n get isSend(): boolean {\r\n const wellknownName = this.currentPage.wellKnownFolderName as string\r\n if (\r\n ['sentitems', 'outbox', 'drafts'].includes(wellknownName)\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MailList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MailList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MailList.vue?vue&type=template&id=6f0498d0&\"\nimport script from \"./MailList.ts?vue&type=script&lang=ts&\"\nexport * from \"./MailList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mail-list\"},[(_vm.items && _vm.items.length)?_c('table',[_vm._m(0),_c('tbody',_vm._l((_vm.items),function(item,index){return _c('tr',{key:index,on:{\"click\":function($event){return _vm.goDetail(item)}}},[_vm._m(1,true),_c('td',[_c('p',{staticClass:\"mail-sender\"},[_vm._v(\" \"+_vm._s(item.subject)+\" \")]),_c('p',{staticClass:\"mail-thumb\"},[_vm._v(\" \"+_vm._s(item.parentName)+\"; \"+_vm._s(item.organizer.name)+\" \")])]),_vm._m(2,true)])}),0)]):_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_schedule.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('일치하는_항목이_없습니다')))])])]),_vm._t(\"default\")],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{attrs:{\"width\":\"80px\"}}),_c('col',{attrs:{\"width\":\"\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('div',{staticClass:\"image sender\"},[_c('div',{staticClass:\"persona\",staticStyle:{\"background\":\"#35b0ca\",\"color\":\"#fff\"}},[_c('span',[_c('i',{staticClass:\"icon-calendar\"})])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"mail-sub\"},[_c('div')])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n@Component({\r\n})\r\nexport default class ScheduleList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array, default: [] }) items!: []\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n goDetail(item: calendar.CalendarItem) {\r\n this.$router.push({\r\n name: 'calendar-read',\r\n query: { itemid: item.id }\r\n })\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ScheduleList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ScheduleList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScheduleList.vue?vue&type=template&id=48c1f0f8&\"\nimport script from \"./ScheduleList.ts?vue&type=script&lang=ts&\"\nexport * from \"./ScheduleList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"address-list\"},[_c('table',[_vm._m(0),(_vm.contactList && _vm.contactList.length)?_c('tbody',_vm._l((_vm.contactList),function(item){return _c('ContactListItem',{key:item.id,attrs:{\"item\":item,\"isChecked\":true}})}),1):_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_address.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('일치하는_항목이_없습니다')))])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{attrs:{\"width\":\"80px\"}})])}]\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.item)?_c('tr',{class:( _obj = {}, _obj['selected-list'] = _vm.toggle, _obj )},[_c('td',[_c('div',{staticClass:\"list-user-img\",class:( _obj$1 = {}, _obj$1['multi-checkbox'] = _vm.isSelected, _obj$1 ),on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.checked.apply(null, arguments)}}},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/v1/img/ghost_loading.png\"},on:{\"error\":_vm.error}}):_c('img',{attrs:{\"src\":_vm.avatar.url},on:{\"error\":_vm.errorGhost}})])]),_c('td',{on:{\"click\":function($event){$event.stopPropagation();return _vm.loadContact()}}},[_c('p',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.item.displayName))]),_c('p',{staticClass:\"team\"},[_vm._v(_vm._s(_vm.item.department))]),(_vm.item.department && _vm.item.jobTitle)?_c('span',{staticClass:\"txt-divide\"}):_vm._e(),_c('p',{staticClass:\"rank\"},[_vm._v(_vm._s(_vm.item.jobTitle))])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { cache } from '@/util'\r\nimport Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@contact/store/types'\r\n\r\n@Component({\r\n computed: {\r\n ...mapGetters({\r\n selectionList: types.CONTACT_SELECTION\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCurreuntItem: types.CURRENT_CONTACT_ITEM,\r\n selectContact: types.CONTACT_SELECTION\r\n })\r\n }\r\n})\r\nexport default class ContactListItem extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) item!: contacts.ContactItem\r\n @Prop({ type: Boolean, default: false }) toggle!: boolean\r\n @Prop({ type: Boolean, default: false }) isChecked!: boolean\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectionList!: string[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n \r\n setCurreuntItem!: (item: contacts.ContactItem) => void\r\n selectContact!: (item: contacts.ContactItem) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n };\r\n check: boolean = false\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get isSelected() {\r\n return this.selectionList.includes(this.item.id) ? true : false\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E H T O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //연락처 상세정보 뷰\r\n loadContact() {\r\n let item = this.item;\r\n this.setCurreuntItem(item)\r\n this.$router.push({ name: 'contact-view' })\r\n }\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png'\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/faux/images/ghost.png'\r\n }\r\n\r\n getImage(senderMail?: string) {\r\n if (senderMail && senderMail.indexOf('/') == -1) {\r\n this.avatar.loading = true;\r\n cache.avatar.get(senderMail).then((url: string) => {\r\n this.avatar.url = url;\r\n this.avatar.loading = false;\r\n });\r\n }\r\n }\r\n\r\n checked() {\r\n this.selectContact(this.item)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n if (this.item.email) {\r\n this.getImage(this.item.email);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactListItem.vue?vue&type=template&id=48343ede&\"\nimport script from \"./ContactListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./ContactListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport ContactListItem from '@contact/components/List/ContactListItem.vue'\r\n\r\n@Component({\r\n components: { ContactListItem },\r\n})\r\nexport default class ContactList extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Array }) contactList!: contacts.ContactItem[]\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactList.vue?vue&type=template&id=27d68913&\"\nimport script from \"./ContactList.ts?vue&type=script&lang=ts&\"\nexport * from \"./ContactList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport MailList from '@mail/components/MailList.vue'\r\nimport ScheduleList from '@home/components/Search/ScheduleList.vue'\r\nimport ContactList from '@contact/components/List/ContactList.vue'\r\nimport { createEventBus, removeEventBus } from '@/util'\r\nimport { FilterComparisonModes, FilterConditions, WellKnownFolderName } from '@/modules/mail/types/enums'\r\nimport { FilterContainmentModes } from '@/modules/@orgmap/types/enums'\r\nimport mailApi from '@mail/api'\r\nimport contactApi from '@contact/api'\r\nimport calendarApi from '@calendar/api'\r\nimport { ContactsStoredType } from '@/modules/contact/types/enums'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapGetters } from 'vuex'\r\n@Component({\r\n components: { WebMailBottom, MailList, ScheduleList, ContactList },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER\r\n })\r\n }\r\n})\r\nexport default class SearchContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n mailList: mail.EmailMessage[] = []\r\n mailMoreAvailable: boolean | undefined = false\r\n\r\n scheduleList: ItemList = []\r\n scheduleMoreAvailable: boolean = false\r\n\r\n contactList: contacts.ContactItem[] = []\r\n\r\n searchKeyword: string = ''\r\n\r\n isLoading = {\r\n mail: false,\r\n calendar: false,\r\n contact: false\r\n }\r\n /*메일 폴더 2023-06-19 추가*/\r\n hasMailFolder: any[] = []\r\n\r\n /*더보기 2023-05-23*/\r\n offset: number = 0\r\n pageNumber: number = 1\r\n pageSize: number = 20\r\n loadMorePossible: boolean = true\r\n mailCount: number = 0\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //페이지 정보 초기화\r\n clearPageInfo() {\r\n this.offset = 0\r\n this.pageNumber = 1\r\n this.mailList = []\r\n }\r\n\r\n // 헤더 검색 아이콘 클릭시 이벤트\r\n handleSearchRequest(keyword: string) {\r\n if (keyword) {\r\n this.clearPageInfo()\r\n this.searchKeyword = keyword\r\n this.isLoading.mail = true\r\n //this.isLoading.calendar = true\r\n //this.isLoading.contact = true\r\n this.getMailList(this.searchKeyword)\r\n //this.getScheduleList(this.searchKeyword)\r\n //this.getContactList(this.searchKeyword)\r\n } else {\r\n this.isloading(false)\r\n this.clearPageInfo()\r\n this.searchKeyword = ''\r\n this.scheduleList = []\r\n this.contactList = []\r\n }\r\n }\r\n\r\n // 메일 검색\r\n getMailList(keyword: string) {\r\n this.isloading(true)\r\n\r\n var promiseArr: Promise[] = [\r\n mailApi.folder.getFolderTree('')\r\n ]\r\n\r\n\r\n Promise.all(promiseArr).then(res => {\r\n const filters: mail.api.FilterOption[] = [];\r\n\r\n this.hasMailFolder = res[0]['items']\r\n var folderId = ''\r\n for (var i = 0; i < this.hasMailFolder.length; i++) {\r\n var isDelete = false\r\n\r\n if(this.hasMailFolder[i]['name'] === '보낸 편지함' || this.hasMailFolder[i]['name'] === '보낼 편지함' || this.hasMailFolder[i]['name'] === '임시 보관함' || this.hasMailFolder[i]['name'] === '정크 메일' ||this.hasMailFolder[i]['name'] === '지운 편지함')\r\n {\r\n isDelete = true\r\n } \r\n\r\n if(isDelete === true){\r\n this.hasMailFolder.splice(i,1) \r\n i--\r\n\r\n } else {\r\n folderId += ',' + this.hasMailFolder[i]['id'] \r\n }\r\n }\r\n\r\n if (keyword) {\r\n filters.push({\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'Subject',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'From',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'PR_DISPLAY_TO_W',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n }\r\n ,{\r\n key: 'PR_DISPLAY_CC_W',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n }\r\n ,{\r\n key: 'PR_SENDER_NAME',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n }\r\n ,{\r\n key: 'Body',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n }\r\n \r\n ],\r\n } as mail.api.FilterOption);\r\n }\r\n\r\n /*offset 추가 2023.06.22*/\r\n this.offset = (this.pageNumber -1) * this.pageSize\r\n\r\n var data: mail.api.DynamicApiOptions = {\r\n fields: [\r\n { key: 'From', format: 'obj:[name,address]', as: 'fromS' },\r\n ],\r\n filters: filters,\r\n parentId: folderId, //폴더 아이디 추가 2023-06-19\r\n pageSize: this.pageSize,\r\n offset: this.offset,\r\n type: 'EmailMessage'\r\n ,isIncludeChildSearch: true //포함 여부 추가 2023-05-26\r\n };\r\n\r\n if(this.hasMailFolder.length){\r\n \r\n /* 검색 전용 Method 추가 2023-06-19 */\r\n mailApi.mail.getSearchPagedList(data).then((emails) => {\r\n if (emails.items.length) {\r\n \r\n this.mailCount = Number(emails.totalCount || 0) //총 개수\r\n console.log('mailCount' + this.mailCount)\r\n if(this.pageNumber > 1) {\r\n this.mailList = [...(this.mailList || []), ...emails.items]\r\n } else {\r\n this.mailList = emails.items\r\n this.isLoading.mail = false\r\n }\r\n\r\n this.isloading(false)\r\n\r\n } else {\r\n //this.mailList = []\r\n this.isLoading.mail = false\r\n this.isloading(false)\r\n //this.loadMorePossible = false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n // 연락처 검색\r\n getContactList(keyword: string) {\r\n const filters: mail.api.FilterOption[] = [\r\n {\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'ItemClass',\r\n value: 'IPM.Contact',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n {\r\n key: 'ItemClass',\r\n value: 'IPM.DistList',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n //#region [검색어 설정]\r\n if (keyword) {\r\n filters.push({\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'DisplayName',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Prefixed,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.FullString,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.ExactPhrase,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.PrefixOnWords,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'CompanyName',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'EmailAddress1',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'PidLidEmail1OriginalDisplayName',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'MobilePhone',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'JobTitle',\r\n value: keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n ],\r\n });\r\n }\r\n\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: [],\r\n filters: filters,\r\n parentId: null,\r\n sorts: [],\r\n pageSize: 50,\r\n offset: 0,\r\n wellKnownParentName: WellKnownFolderName.Contacts,\r\n type: 'Contact'\r\n };\r\n contactApi.contact.getContactsList(data, ContactsStoredType.EWS).then((res) => {\r\n this.isLoading.contact = false\r\n this.contactList = res.items\r\n })\r\n }\r\n\r\n // 일정 검색\r\n getScheduleList(keyword: string) {\r\n var searchOptions: calendar.SearchOptions = {\r\n EwsFolderIDArray: null,\r\n FolderIDArray: null,\r\n ParentFolderID: null,\r\n Keyword: keyword,\r\n Status: null,\r\n Subject: null,\r\n Location: null,\r\n OrganizerName: null,\r\n OrganizerAddress: null,\r\n RequiredAttendees: null,\r\n OptionalAttendees: null,\r\n StartDate: null,\r\n EndDate: null,\r\n PersonCode: this.User.personCode,\r\n EumPageNumber: 1,\r\n EumRowsPerPage: 10,\r\n EXTFIELD_1: null,\r\n EXTFIELD_2: null,\r\n }\r\n calendarApi.ews_calendar.searchCalendarEventList(searchOptions).then(res => {\r\n this.isLoading.calendar = false\r\n if (res.length > 5) {\r\n this.scheduleList = res.splice(0, 5)\r\n this.scheduleMoreAvailable = true\r\n } else {\r\n this.scheduleList = res\r\n }\r\n })\r\n }\r\n\r\n // 메일 검색결과 더보기\r\n mailMore() {\r\n this.$router.push({\r\n name: 'mail-list',\r\n query: { query: this.searchKeyword }\r\n })\r\n }\r\n\r\n @Watch('isLoading', {deep: true})\r\n onChangedIsLoading(loading: any) {\r\n var mail = loading.mail \r\n var calendar = loading.calendar \r\n var contact = loading.contact\r\n if (mail && calendar && contact) {\r\n this.isloading(true)\r\n } else if (!mail && !calendar && !contact) {\r\n this.isloading(false)\r\n }\r\n }\r\n\r\n //더보기 2023-05-23 추가\r\n loadMore() {\r\n if (this.loadMorePossible && this.mailCount > 20) {\r\n this.pageNumber ++\r\n \r\n this.getMailList(this.searchKeyword)\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./SearchContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./SearchContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchContainer.vue?vue&type=template&id=b1a36f68&\"\nimport script from \"./SearchContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./SearchContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageHeaderWithSearchBar from '@/components/common/Header/PageHeaderWithSearchBar.vue'\r\nimport SearchContainer from '@home/containers/SearchContainer.vue'\r\n@Component({\r\n components: { PageHeaderWithSearchBar, SearchContainer }\r\n})\r\nexport default class SearchView extends Vue {}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./SearchView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./SearchView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchView.vue?vue&type=template&id=365422c5&\"\nimport script from \"./SearchView.ts?vue&type=script&lang=ts&\"\nexport * from \"./SearchView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',{attrs:{\"title\":_vm.$t('검색 일정 더보기')}}),_c('ScheduleSearchContainer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',{directives:[{name:\"infinite-scroll\",rawName:\"v-infinite-scroll\",value:(_vm.loadMore),expression:\"loadMore\"}],attrs:{\"infinite-scroll-disabled\":\"busy\",\"infinite-scroll-distance\":\"63\",\"infinite-scroll-immediate-check\":\"false\"}},[_c('ScheduleList',{attrs:{\"items\":_vm.scheduleList}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport ScheduleList from '@home/components/Search/ScheduleList.vue'\r\nimport * as accountTypes from '@account/store/types'\r\nimport calendarApi from '@calendar/api'\r\nimport { mapGetters } from 'vuex'\r\n@Component({\r\n components: { ScheduleList },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER\r\n })\r\n }\r\n})\r\nexport default class ScheduleSearchContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n scheduleList: ItemList = []\r\n pageNumber: number = 1\r\n loadMorePossible: boolean = true\r\n\r\n loadMore() {\r\n if (this.loadMorePossible) {\r\n this.pageNumber ++\r\n this.loadData()\r\n }\r\n }\r\n\r\n loadData() {\r\n const keyword = this.$route.query.keyword.toString()\r\n if (keyword) {\r\n var searchOptions: calendar.SearchOptions = {\r\n EwsFolderIDArray: null,\r\n FolderIDArray: null,\r\n ParentFolderID: null,\r\n Keyword: keyword,\r\n Status: null,\r\n Subject: null,\r\n Location: null,\r\n OrganizerName: null,\r\n OrganizerAddress: null,\r\n RequiredAttendees: null,\r\n OptionalAttendees: null,\r\n StartDate: null,\r\n EndDate: null,\r\n PersonCode: this.User.personCode,\r\n EumPageNumber: this.pageNumber,\r\n EumRowsPerPage: 15,\r\n EXTFIELD_1: null,\r\n EXTFIELD_2: null,\r\n }\r\n calendarApi.ews_calendar.searchCalendarEventList(searchOptions).then(res => {\r\n if (res.length) {\r\n if (this.pageNumber > 1) {\r\n this.scheduleList = [...(this.scheduleList || []), ...res]\r\n } else {\r\n this.scheduleList = res\r\n }\r\n } else {\r\n this.loadMorePossible = false\r\n }\r\n })\r\n }\r\n }\r\n\r\n created() {\r\n this.loadData()\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ScheduleSearchContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ScheduleSearchContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScheduleSearchContainer.vue?vue&type=template&id=57632fa7&\"\nimport script from \"./ScheduleSearchContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ScheduleSearchContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ScheduleSearchContainer from '@home/containers/ScheduleSearchContainer.vue'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, ScheduleSearchContainer }\r\n})\r\nexport default class ScheduleSearchView extends Vue {}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ScheduleSearchView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ScheduleSearchView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScheduleSearchView.vue?vue&type=template&id=3c26e81b&\"\nimport script from \"./ScheduleSearchView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ScheduleSearchView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\r\nimport MainView from '../views/MainView.vue'\r\nimport AlarmView from '../views/AlarmView.vue'\r\nimport OrgmapView from '../views/OrgmapView.vue'\r\nimport SearchView from '../views/SearchView.vue'\r\nimport ScheduleSearchView from '../views/ScheduleSearchView.vue'\r\nconst Home = () => import(/* webpackChunkName: \"home\" */ '@home/Index.vue')\r\nconst HomeMaster = () => import(/* webpackChunkName: \"home\" */ '@home/views/Master.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/home',\r\n component: Home,\r\n children: [\r\n {\r\n path: '',\r\n component: HomeMaster,\r\n children: [\r\n {\r\n path: 'main',\r\n name: 'home-main',\r\n component: MainView,\r\n },\r\n {\r\n path: 'alarm',\r\n name: 'home-alarm',\r\n component: AlarmView,\r\n },\r\n {\r\n path: 'orgmap',\r\n name: 'home-orgmap',\r\n component: OrgmapView,\r\n },\r\n {\r\n path: 'search',\r\n name: 'home-search',\r\n component: SearchView,\r\n },\r\n {\r\n path: 'scheduleSearch',\r\n name: 'home-scheduleSearch',\r\n component: ScheduleSearchView,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.selectionCount == 0)?_c('PageHeaderWithActionBar',{attrs:{\"title\":this.$t('메일').toString()}},[(!_vm.isMailOnly)?_c('router-link',{staticClass:\"item\",attrs:{\"to\":{ name: 'home-main' }}},[_c('i',{staticClass:\"icon-home1\"})]):_vm._e()],1):_c('PageViewHeaderWithActionBar',{attrs:{\"title\":_vm.$t('_LENGTH_개_선택됨', { length: _vm.selectionCount }),\"eventBus\":true}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.deleteItems}},[_c('i',{staticClass:\"icon-bin\"})]),_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.actionOpen = !_vm.actionOpen}}},[_c('i',{staticClass:\"icon-more\"})]),_c('div',{class:['dropdown-content', {show: _vm.actionOpen}]},[_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){_vm.moveModalShow = true; _vm.actionOpen = false}}},[_c('i',{staticClass:\"icon-inbox\"}),_vm._v(_vm._s(_vm.$t('이동')))])]),_c('li',[_c('a',{on:{\"click\":_vm.readItems}},[_c('i',{staticClass:\"icon-un-email\"}),_vm._v(\" \"+_vm._s(_vm.$t('W_Mail_Read')))])]),_c('li',[_c('a',{on:{\"click\":_vm.selectAll}},[_c('i',{staticClass:\"icon-check\"}),_vm._v(_vm._s(_vm.$t('모두_선택')))])])])])])]),_c('div',{attrs:{\"id\":\"inner-container\"}},[_c('HomeContainer',{ref:\"homeContainer\",on:{\"moveModalClose\":_vm.moveModalClose}})],1),_c('MoveModal',{attrs:{\"showMove\":_vm.moveModalShow,\"redirect\":true},on:{\"close\":function($event){_vm.moveModalShow = false},\"moveItems\":function (value) { return _vm.moveItems(value); }}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('section',{staticClass:\"top-banner\"},[_c('div',{staticClass:\"padding\"},[_c('h1',[_c('p',{staticClass:\"name\"},[(_vm.user)?_c('span',[_vm._v(_vm._s(_vm.user.displayName))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t('님'))+\", \")]),_c('p',{staticClass:\"context\",domProps:{\"innerHTML\":_vm._s(_vm.$t('읽지_않은_메일이__LENGTH__통_있습니다'\n , { length: _vm.unreadMailCount }).toString())}})]),_vm._m(0),_c('div',{staticClass:\"bnr-list\"},[_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){return _vm.goInbox(false)}}},[_vm._m(1),_c('p',{staticClass:\"bnr-tit\"},[_vm._v(_vm._s(_vm.$t('받은_편지함')))])])]),_c('li',[_c('a',{on:{\"click\":function($event){return _vm.goInbox(true)}}},[_vm._m(2),_c('p',{staticClass:\"bnr-tit\"},[_vm._v(_vm._s(_vm.$t('W_Mail_Attachments')))])])]),_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'mail-write' }}},[_c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/mail_bnr_3.png\",\"alt\":\"\"}})]),_c('p',{staticClass:\"bnr-tit\"},[_vm._v(_vm._s(_vm.$t('M_MAIL_WriteMail')))])])],1)])])])]),_c('section',{directives:[{name:\"infinite-scroll\",rawName:\"v-infinite-scroll\",value:(_vm.loadMore),expression:\"loadMore\"}],attrs:{\"infinite-scroll-disabled\":\"busy\",\"infinite-scroll-distance\":\"63\",\"infinite-scroll-immediate-check\":\"false\"}},[_c('h6',{staticClass:\"mail-pack\"},[_vm._v(_vm._s(_vm.$t('읽지_않은_메일')))]),_c('MailList',{attrs:{\"items\":_vm.unreadMailList}})],1),_c('WebMailBottom')],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":\"\",\"alt\":\"\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/mail_bnr_1.png\",\"alt\":\"\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/mail_bnr_2.png\",\"alt\":\"\"}})])}]\n\nexport { render, staticRenderFns }","import api from '@mail/api'\r\nimport { i18n } from \"@appbase/util\"\r\n\r\nexport interface MenuInfo {\r\n name: string\r\n id: string\r\n icon: string\r\n select: boolean\r\n expand: boolean\r\n child?: MenuInfo[]\r\n path: string,\r\n type: string,\r\n wellKnownFolderName?: string\r\n\r\n}\r\n\r\nconst menues: MenuInfo[] = [\r\n {\r\n name: i18n.t('메일_홈').toString(),\r\n id: '',\r\n icon: 'home2',\r\n select: false,\r\n expand: false,\r\n path: 'mail-home',\r\n type: 'router-link'\r\n },\r\n {\r\n name: i18n.t('W_Mail_Favorites').toString(),\r\n id: '',\r\n icon: 'star',\r\n select: false,\r\n expand: true,\r\n child: [],\r\n path: 'mail-home',\r\n type: ''\r\n }\r\n]\r\n\r\nexport default menues\r\n\r\nexport const getMailBoxIcon = function(wellknownFolderName: string): string {\r\n var returnIcon;\r\n switch (wellknownFolderName) {\r\n case \"inbox\":\r\n returnIcon = \"inbox\";\r\n break;\r\n case \"sentitems\":\r\n returnIcon = \"send\";\r\n break;\r\n case \"outbox\":\r\n returnIcon = \"send\";\r\n break;\r\n case \"drafts\":\r\n returnIcon = \"box\";\r\n break;\r\n case \"junkemail\":\r\n returnIcon = \"denied\";\r\n break;\r\n case \"deleteditems\":\r\n returnIcon = \"bin\";\r\n break;\r\n default:\r\n returnIcon = \"box\";\r\n break;\r\n }\r\n return returnIcon;\r\n}\r\n\r\nconst getFolder = function(parentId: string) {\r\n api.folder.getFolderTree(parentId).then((res) => {\r\n res.items.forEach(folder => {\r\n var folderItem: MenuInfo = {\r\n name: '',\r\n id: '',\r\n icon:'',\r\n select: false,\r\n expand: false,\r\n path: 'mail-list',\r\n type: 'router-link',\r\n child: []\r\n }\r\n\r\n folderItem.name = folder.name\r\n folderItem.id = folder.id\r\n folderItem.icon = getMailBoxIcon(folder.wellKnownFolderName ? folder.wellKnownFolderName : '')\r\n folderItem.wellKnownFolderName = folder.wellKnownFolderName\r\n folderItem.expand = folder.childFolderCount > 0 ? true : false\r\n\r\n menues.push(folderItem)\r\n\r\n console.log('folder', folder)\r\n\r\n if (folder.hasChildren) {\r\n makeMenu(folder.children, folderItem)\r\n }\r\n })\r\n })\r\n}\r\n\r\nconst makeMenu = function (folders: mail.MailboxFolder[] | null, parentMenu: MenuInfo) {\r\n api.folder.getFolderTree(parentMenu.id).then((res) => {\r\n res.items.forEach(folder => {\r\n var folderItem: MenuInfo = {\r\n name: '',\r\n id: '',\r\n icon:'',\r\n select: false,\r\n expand: false,\r\n path: 'mail-list',\r\n type: 'router-link',\r\n child: []\r\n }\r\n\r\n folderItem.name = folder.name\r\n folderItem.id = folder.id\r\n folderItem.icon = getMailBoxIcon(folder.wellKnownFolderName ? folder.wellKnownFolderName : '')\r\n folderItem.wellKnownFolderName = folder.wellKnownFolderName\r\n folderItem.expand = folder.childFolderCount > 0 ? true : false\r\n\r\n parentMenu.child?.push(folderItem)\r\n\r\n if (folder.hasChildren) {\r\n makeMenu(folder.children, folderItem)\r\n }\r\n })\r\n })\r\n}\r\n\r\nconst getFavoriteFolder = function () {\r\n var favorite = menues.find(x => x.name == i18n.t('W_Mail_Favorites').toString())?.child\r\n api.favorite.getFavorites().then((res) => {\r\n res.map((folder: any) => {\r\n var folderItem: MenuInfo = {\r\n name: '',\r\n id: '',\r\n icon:'',\r\n select: false,\r\n expand: false,\r\n path: 'mail-list',\r\n type: 'router-link'\r\n }\r\n folderItem.name = folder.name\r\n folderItem.id = folder.id\r\n folderItem.icon = getMailBoxIcon(folder.wellKnownFolderName)\r\n \r\n favorite?.push(folderItem)\r\n })\r\n })\r\n}\r\n\r\ngetFolder('')\r\ngetFavoriteFolder()","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport MailList from '@mail/components/MailList.vue'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport api from '@mail/api'\r\nimport * as accountTypes from '@account/store/types'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport menues, { MenuInfo } from '@mail/components/menu'\r\nimport { DeleteMode } from '../types/enums'\r\nimport * as types from '@mail/store/types'\r\n@Component({\r\n components: { PageHeaderWithActionBar, MailList, WebMailBottom },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n selectList: types.EMAIL_SELECT\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n selectEmailAll: types.EMAIL_SELECT_ALL,\r\n selectListClear: types.EMAIL_SELECT_CLEAR,\r\n })\r\n }\r\n})\r\nexport default class HomeContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User\r\n selectList!: string[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectEmailAll!: (ids: string[]) => void\r\n selectListClear!: () => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n unreadMailCount: number = 0\r\n unreadMailList: any[] = []\r\n hasUnreadMailFolder: any[] = []\r\n inboxId: string = ''\r\n\r\n /*더보기 2023-05-23*/\r\n offset: number = 0\r\n pageNumber: number = 1\r\n pageSize: number = 20\r\n loadMorePossible: boolean = true\r\n\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get menues(): MenuInfo[] {\r\n return menues\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n mountAction() {\r\n\r\n var promiseArr: Promise[] = [\r\n api.folder.getFolderTree('')\r\n ]\r\n\r\n Promise.all(promiseArr).then(res => {\r\n this.hasUnreadMailFolder = res[0]['items']\r\n var folderId = ''\r\n for (var i = 0; i < this.hasUnreadMailFolder.length; i++) {\r\n var isDelete = false\r\n\r\n if(this.hasUnreadMailFolder[i]['name'] === '보낼 편지함' || this.hasUnreadMailFolder[i]['name'] === '임시 보관함' || this.hasUnreadMailFolder[i]['name'] === '정크 메일' ||this.hasUnreadMailFolder[i]['name'] === '지운 편지함')\r\n {\r\n isDelete = true\r\n } \r\n\r\n if(isDelete === true){\r\n this.hasUnreadMailFolder.splice(i,1) \r\n i--\r\n\r\n } else {\r\n folderId += ',' + this.hasUnreadMailFolder[i]['id'] \r\n }\r\n }\r\n \r\n this.offset = (this.pageNumber -1) * this.pageSize\r\n\r\n if (this.hasUnreadMailFolder.length) {\r\n api.mail.getUnreadMailList(folderId, this.pageSize, this.offset).then((res) => {\r\n if(res.items.length) \r\n {\r\n this.unreadMailCount = Number(res.totalCount || 0) //총 개수\r\n\r\n\r\n if(this.pageNumber > 1) {\r\n this.unreadMailList = [...(this.unreadMailList || []), ...res.items]\r\n } else {\r\n this.unreadMailList = res.items\r\n this.isloading(false)\r\n }\r\n \r\n } else \r\n {\r\n this.unreadMailList = []\r\n this.isloading(false)\r\n this.loadMorePossible = false\r\n }\r\n })\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n goInbox(hasAttachments: boolean) {\r\n if (this.inboxId) {\r\n if (hasAttachments) \r\n this.$router.push({name: 'mail-list', params: {id: this.inboxId}, query: {hasAttachments: 'true'}})\r\n else\r\n this.$router.push({name: 'mail-list', params: {id: this.inboxId}})\r\n }\r\n }\r\n\r\n async deleteItems() {\r\n const ids = this.selectList\r\n\r\n if (await(window as any).confirmAsync(this.$t('M_Mail_Msg20').toString()) == false) {\r\n return false\r\n } else {\r\n api.mail.delete({ ids, mode: DeleteMode.MoveToDeletedItems}).then((succeed) => {\r\n if (succeed) {\r\n ids.forEach((id: any) => {\r\n const idx = this.unreadMailList.findIndex((e) => e.id === id);\r\n const item = this.unreadMailList[idx];\r\n item.deleted = true;\r\n })\r\n this.selectListClear()\r\n this.mountAction()\r\n } else {\r\n ids.forEach(async (id: any) => {\r\n const idx = this.unreadMailList.findIndex((e) => e.id === id);\r\n const item = this.unreadMailList[idx];\r\n item.deleted = false;\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString())\r\n })\r\n }\r\n }).catch(() => {\r\n ids.forEach(async (id: any) => {\r\n const idx = this.unreadMailList.findIndex((e) => e.id === id);\r\n const item = this.unreadMailList[idx];\r\n item.deleted = false;\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString())\r\n })\r\n })\r\n }\r\n }\r\n\r\n async moveItems(folderId: string) {\r\n const ids = this.selectList\r\n\r\n if (await(window as any).confirmAsync('선택하신 메일을 이동하시겠습니까?') == false) {\r\n return false\r\n } else {\r\n api.mail.moveEmails(ids, folderId).then((succeed) => {\r\n if (succeed) {\r\n ids.forEach((id: any) => {\r\n const idx = this.unreadMailList.findIndex((e) => e.id === id);\r\n const item = this.unreadMailList[idx];\r\n item.deleted = true;\r\n })\r\n this.selectListClear()\r\n this.mountAction()\r\n this.$emit('moveModalClose')\r\n } else {\r\n ids.forEach((id: any) => {\r\n const idx = this.unreadMailList.findIndex((e) => e.id === id);\r\n const item = this.unreadMailList[idx];\r\n item.deleted = false;\r\n })\r\n }\r\n }).catch(() => {\r\n ids.forEach((id: any) => {\r\n const idx = this.unreadMailList.findIndex((e) => e.id === id);\r\n const item = this.unreadMailList[idx];\r\n item.deleted = false;\r\n })\r\n })\r\n }\r\n }\r\n\r\n readItems() {\r\n this.selectList.forEach(id => {\r\n api.mail.changeReadState(id, true)\r\n })\r\n }\r\n\r\n selectAll() {\r\n var ids: string[] = []\r\n this.unreadMailList.map(email => {\r\n ids.push(email.id)\r\n })\r\n this.selectEmailAll(ids)\r\n }\r\n\r\n //더보기 2023-05-23 추가\r\n loadMore() {\r\n if (this.loadMorePossible && this.unreadMailCount > 20) {\r\n this.pageNumber ++\r\n this.mountAction()\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n this.mountAction()\r\n\r\n // 받은메일함 id\r\n api.folder.getFolderTree('').then(res => {\r\n this.inboxId = res.items.filter(x => x.wellKnownFolderName == 'inbox')[0].id\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./HomeContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./HomeContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HomeContainer.vue?vue&type=template&id=8d173a1e&\"\nimport script from \"./HomeContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./HomeContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.showMove,\"header\":this.$t('W_Mail_MailMove').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('FolderList',{on:{\"select\":_vm.select}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.folders)?_c('TreeList',{attrs:{\"items\":_vm.filteredFolders,\"currentFolderId\":_vm.currentFolderId,\"headerField\":\"name\",\"childrenField\":\"children\",\"hasChildrenField\":function (item) { return item.childFolderCount > 0; }},on:{\"select\":_vm.select,\"expand\":_vm.expand}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tree-arrow\"},_vm._l((_vm.items),function(item,index){return _c('TreeListItem',{key:index,attrs:{\"item\":item,\"currentFolderId\":_vm.currentFolderId,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"select\":function (child) { return _vm.$emit('select', child); },\"expand\":function (item) { return _vm.$emit('expand', item); }}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-node\"},[_c('div',{staticClass:\"m-top\",class:{ selected: _vm.isSelected }},[(_vm.hasChildren())?_c('span',{staticClass:\"menu-icon\",on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('i',{class:[_vm.expanded ? 'bullet' : 'icon-down']})]):_vm._e(),_c('span',{staticClass:\"menu-name\",on:{\"click\":function($event){$event.preventDefault();return _vm.select.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.item[_vm.headerField]))]),(_vm.item.id === _vm.currentFolderId)?_c('span',{staticClass:\"menu-icon-arrow\"},[_c('i',{staticClass:\"icon-check-mark\"})]):_vm._e()]),_c('span',{staticClass:\"menu-icon-arrow\"}),(_vm.expanded)?_c('div',{staticClass:\"m-sub\"},_vm._l((_vm.childMenu.items),function(child){return _c('TreeListItem',{key:child.id,attrs:{\"item\":child,\"currentFolderId\":_vm.currentFolderId,\"headerField\":_vm.headerField,\"childrenField\":_vm.childrenField,\"hasChildrenField\":_vm.hasChildrenField},on:{\"select\":function (targetItem) { return _vm.$emit('select', targetItem); },\"expand\":function (targetItem) { return _vm.$emit('expand', targetItem); }}})}),1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport mailApi from '@mail/api';\r\n\r\n@Component({ name: 'TreeListItem' })\r\nexport default class TreeListItem extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: any;\r\n @Prop({ type: String }) currentFolderId!: string;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n childMenu: PagedItemList | null = null;\r\n\r\n expanded: boolean = false;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get isSelected() {\r\n const selected = this.item.selected;\r\n if (typeof selected === 'boolean') {\r\n return selected;\r\n } else if (typeof selected === 'function') {\r\n return selected(this.item);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('expanded')\r\n onExpnded(newValue: boolean): void {\r\n if (newValue != undefined && newValue === true) {\r\n this.$emit('expand', this.item);\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getChildMenu(parentId: string) {\r\n return mailApi.folder.getSubFolderTree(parentId);\r\n }\r\n\r\n select() {\r\n if (this.item.id === this.currentFolderId) {\r\n return;\r\n }\r\n\r\n this.$emit('select', this.item);\r\n }\r\n\r\n hasChildren(): boolean {\r\n if (typeof this.hasChildrenField === 'string') {\r\n return (this.item as any)[this.hasChildrenField];\r\n } else {\r\n return this.hasChildrenField(this.item);\r\n }\r\n }\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created() {\r\n if (this.item.hasChildren) {\r\n this.getChildMenu(this.item.id).then((res: any) => {\r\n this.childMenu = res;\r\n });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeListItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeListItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeListItem.vue?vue&type=template&id=4e32bc3e&\"\nimport script from \"./TreeListItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./TreeListItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n// components\r\nimport TreeListItem from './TreeListItem.vue';\r\n\r\n@Component({ components: { TreeListItem } })\r\nexport default class TreeList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) items!: any;\r\n @Prop({ type: String }) currentFolderId!: string;\r\n @Prop({ type: String, default: 'name' }) headerField!: string;\r\n @Prop({ type: String, default: 'children' }) childrenField!: string;\r\n @Prop({ type: [String, Function] }) hasChildrenField!:\r\n | string\r\n | orgmap.EvaluateTreeListItemHasChildrenFuction;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./TreeList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeList.vue?vue&type=template&id=79912c4f&\"\nimport script from \"./TreeList.ts?vue&type=script&lang=ts&\"\nexport * from \"./TreeList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions } from 'vuex';\r\nimport * as mailTypes from '@mail/store/types';\r\n// components\r\nimport TreeList from './TreeList.vue';\r\n\r\n@Component({\r\n components: { TreeList },\r\n\r\n computed: {\r\n ...mapGetters({\r\n folders: mailTypes.FOLDER_LIST,\r\n }),\r\n },\r\n\r\n methods: {\r\n ...mapActions({\r\n load: mailTypes.FOLDER_LOAD,\r\n }),\r\n },\r\n})\r\nexport default class FolderList extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n folders!: mail.MailboxFolder[];\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n load!: (parentId?: string) => Promise;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n selectedFolder: mail.MailboxFolder | null = null;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get filteredFolders() {\r\n return this.folders.map((f) => {\r\n return {\r\n expanded: false,\r\n ...f,\r\n selected: f.selected = this.selectedFolder?.id === f.id,\r\n };\r\n });\r\n }\r\n\r\n get currentFolderId() {\r\n //return this.current.currentNode.functionId;\r\n return ''\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.load();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select(folder: mail.MailboxFolder) {\r\n this.selectedFolder = folder;\r\n this.$emit('select', folder);\r\n }\r\n\r\n expand(folder: mail.MailboxFolder) {\r\n this.load(folder.id);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderList.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./FolderList.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderList.vue?vue&type=template&id=a78587b2&\"\nimport script from \"./FolderList.ts?vue&type=script&lang=ts&\"\nexport * from \"./FolderList.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport PopupModal from '@/components/common/Modal/PopupModal.vue'\r\nimport { mapGetters } from 'vuex'\r\nimport * as types from '@mail/store/types'\r\nimport FolderList from './FolderList.vue'\r\nimport ModalMask from '@/components/common/Modal/ModalMask.vue'\r\nimport Modal from '@/components/common/Modal/Modal.vue'\r\nimport api from '@mail/api'\r\n@Component({\r\n components: { PopupModal, FolderList, ModalMask, Modal },\r\n computed: {\r\n ...mapGetters({\r\n currentEmail: types.EMAIL_CURRENT,\r\n selectList: types.EMAIL_SELECT\r\n }),\r\n },\r\n})\r\nexport default class MoveModal extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n \r\n @Prop({ type: Boolean }) showMove!: boolean\r\n @Prop({ type: Boolean }) redirect!: boolean\r\n \r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n currentEmail!: mail.EmailMessage\r\n selectList!: string[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select(folder: mail.MailboxFolder) {\r\n const route = this.$route.name\r\n //const ids = [this.currentEmail.id]\r\n const ids = route == 'mail-read' ? [this.currentEmail.id] : this.selectList\r\n\r\n if (route == 'mail-read') {\r\n api.mail.moveEmails(ids, folder.id).then((succeed) => {\r\n if (succeed) {\r\n this.currentEmail.deleted = true\r\n } else {\r\n this.currentEmail.deleted = false\r\n }\r\n }).catch(() => {\r\n this.currentEmail.deleted = false\r\n })\r\n this.$emit('close')\r\n } else {\r\n this.$emit('moveItems', folder.id)\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MoveModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MoveModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MoveModal.vue?vue&type=template&id=cfe8d464&\"\nimport script from \"./MoveModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./MoveModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport HomeContainer from '@mail/containers/HomeContainer.vue'\r\nimport MoveModal from '@mail/components/Modals/MoveModal.vue'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@mail/store/types'\r\nimport { createEventBus, removeEventBus } from '@appbase/util'\r\nimport store from '@/store'\r\n@Component({\r\n components: { \r\n PageHeaderWithActionBar, \r\n PageViewHeaderWithActionBar, \r\n HomeContainer,\r\n MoveModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n selectList: types.EMAIL_SELECT\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n selectListClear: types.EMAIL_SELECT_CLEAR,\r\n })\r\n }\r\n})\r\nexport default class HomeView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectList!: string[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectListClear!: () => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n \r\n openDropdown: boolean = false\r\n actionOpen: boolean = false\r\n moveModalShow: boolean = false\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get selectionCount() {\r\n return this.selectList.length\r\n }\r\n\r\n get isMailOnly() {\r\n const current = store.state.$account?.current\r\n if (current) {\r\n if (current.user.deptCode.indexOf('MAILONLY') > -1) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n } else {\r\n return false\r\n } \r\n }\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n deleteItems() {\r\n (this.$refs.homeContainer as any).deleteItems()\r\n }\r\n\r\n moveItems(folderId: string) {\r\n (this.$refs.homeContainer as any).moveItems(folderId)\r\n }\r\n\r\n readItems() {\r\n (this.$refs.homeContainer as any).readItems()\r\n }\r\n\r\n selectAll() {\r\n (this.$refs.homeContainer as any).selectAll()\r\n }\r\n\r\n handleBackRequest() {\r\n this.selectListClear()\r\n }\r\n\r\n moveModalClose() {\r\n this.moveModalShow = false\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, 'header-back', this.handleBackRequest)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-back', this.handleBackRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./HomeView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./HomeView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HomeView.vue?vue&type=template&id=49247477&\"\nimport script from \"./HomeView.ts?vue&type=script&lang=ts&\"\nexport * from \"./HomeView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.selectionCount == 0)?_c('PageHeaderWithActionBar',{attrs:{\"title\":_vm.currentPage.name}},[_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.openDropdown = !_vm.openDropdown}}},[_c('i',{staticClass:\"icon-filter\"})]),_c('div',{staticClass:\"dropdown-content\",class:{ show: _vm.openDropdown }},[_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){return _vm.changeFilter('All')}}},[_c('i',{staticClass:\"icon-email\"}),_vm._v(_vm._s(_vm.$t('모든_메일'))+\" \")])]),_c('li',[_c('a',{on:{\"click\":function($event){return _vm.changeFilter('Unread')}}},[_c('i',{staticClass:\"icon-un-email\"}),_vm._v(_vm._s(_vm.$t('읽지_않은_메일'))+\" \")])]),_c('li',[_c('a',{on:{\"click\":function($event){return _vm.changeFilter('Attachments')}}},[_c('i',{staticClass:\"icon-attach\"}),_vm._v(_vm._s(_vm.$t('W_Mail_Attachments'))+\" \")])])])])])]):_c('PageViewHeaderWithActionBar',{attrs:{\"title\":_vm.$t('_LENGTH_개_선택됨', { length: _vm.selectionCount }),\"eventBus\":true}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.deleteItems}},[_c('i',{staticClass:\"icon-bin\"})]),_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.actionOpen = !_vm.actionOpen}}},[_c('i',{staticClass:\"icon-more\"})]),_c('div',{class:['dropdown-content', {show: _vm.actionOpen}]},[_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){_vm.moveModalShow = true; _vm.actionOpen = false}}},[_c('i',{staticClass:\"icon-inbox\"}),_vm._v(_vm._s(_vm.$t('이동')))])]),_c('li',[_c('a',{on:{\"click\":_vm.readItems}},[_c('i',{staticClass:\"icon-un-email\"}),_vm._v(\" \"+_vm._s(_vm.$t('W_Mail_Read')))])]),_c('li',[_c('a',{on:{\"click\":_vm.selectAll}},[_c('i',{staticClass:\"icon-check\"}),_vm._v(_vm._s(_vm.$t('모두_선택')))])])])])])]),_c('div',{attrs:{\"id\":\"inner-container\"}},[_c('ListContainer',{ref:\"listContainer\",attrs:{\"id\":_vm.$route.query.id,\"searchOptions\":_vm.searchOptions},on:{\"moveModalClose\":function($event){_vm.moveModalShow = false}}})],1),_c('MoveModal',{attrs:{\"showMove\":_vm.moveModalShow,\"redirect\":true},on:{\"close\":function($event){_vm.moveModalShow = false},\"moveItems\":function (value) { return _vm.moveItems(value); }}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('MailList',{directives:[{name:\"infinite-scroll\",rawName:\"v-infinite-scroll\",value:(_vm.loadMore),expression:\"loadMore\"}],attrs:{\"items\":_vm.mailList,\"infinite-scroll-disabled\":\"busy\",\"infinite-scroll-distance\":\"63\",\"infinite-scroll-immediate-check\":\"false\"}}),_c('div',{staticClass:\"write-link\"},[_c('router-link',{attrs:{\"to\":{ name: 'mail-write' },\"title\":_vm.$t('W_Contact_SendMail')}},[_c('i',{staticClass:\"icon-write\"})])],1),_c('WebMailBottom')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport MailList from '@mail/components/MailList.vue'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport api from '@mail/api'\r\nimport { DeleteMode, FilterComparisonModes, FilterConditions, FilterContainmentModes } from '../types'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@mail/store/types'\r\n@Component({\r\n components: { PageHeaderWithActionBar, MailList, WebMailBottom },\r\n computed: {\r\n ...mapGetters({\r\n selectList: types.EMAIL_SELECT\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n selectEmailAll: types.EMAIL_SELECT_ALL,\r\n selectListClear: types.EMAIL_SELECT_CLEAR,\r\n })\r\n }\r\n})\r\nexport default class ListContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String, default: null }) id!: string\r\n @Prop({ type: Object }) searchOptions!: mail.SearchOptions\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n mailList: any[] = []\r\n offset: number = 0\r\n pageNumber: number = 1\r\n pageSize: number = 20\r\n loadMorePossible: boolean = true\r\n\r\n totalCount: number = 0 //전체 숫자 2023-05-30 추가\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectList!: string[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectEmailAll!: (ids: string[]) => void\r\n selectListClear!: () => void\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n getMailList(options: mail.SearchOptions) {\r\n const {\r\n unreadOnly,\r\n query,\r\n sorts,\r\n hasAttachments,\r\n hasCategories,\r\n } = this.searchOptions\r\n const filters: mail.api.FilterOption[] = [];\r\n\r\n if (unreadOnly) {\r\n filters.push({\r\n key: 'IsRead',\r\n value: 'false',\r\n condition: FilterConditions.IsEqualTo,\r\n } as mail.api.FilterOption);\r\n }\r\n\r\n if (hasAttachments) {\r\n filters.push({\r\n key: 'HasAttachments',\r\n value: 'true',\r\n condition: FilterConditions.IsEqualTo,\r\n } as mail.api.FilterOption);\r\n }\r\n\r\n if (query) {\r\n filters.push({\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'Subject',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'From',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'PR_DISPLAY_TO_W',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n }\r\n ,{\r\n key: 'PR_DISPLAY_CC_W',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n }\r\n ,{\r\n key: 'Body',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n ],\r\n } as mail.api.FilterOption);\r\n }\r\n\r\n var data: mail.api.DynamicApiOptions = {\r\n fields: [\r\n { key: 'From', format: 'obj:[name,address]', as: 'fromS' },\r\n ],\r\n filters: filters,\r\n parentId: this.id,//null,//parentId || null,\r\n pageSize: this.pageSize,\r\n offset: (this.pageNumber -1) * this.pageSize,\r\n type: 'EmailMessage',\r\n };\r\n \r\n //추가 페이지 여부 확인 2023-05-30\r\n if(this.totalCount > 0){\r\n if (this.pageNumber > Math.ceil(this.totalCount/this.pageSize))\r\n {\r\n this.loadMorePossible = false\r\n return false\r\n }\r\n }\r\n\r\n api.mail.getPagedList(data).then((emails) => {\r\n if (emails.items.length) {\r\n this.totalCount = Number(emails.totalCount || 0) //총 개수 2023-05-30 추가\r\n if (this.pageNumber > 1) {\r\n this.mailList = [...(this.mailList || []), ...emails.items]\r\n } else {\r\n this.mailList = emails.items\r\n this.isloading(false)\r\n }\r\n } else {\r\n this.mailList = []\r\n this.isloading(false)\r\n this.loadMorePossible = false\r\n }\r\n })\r\n }\r\n\r\n loadMore() {\r\n if (this.loadMorePossible) {\r\n this.pageNumber ++\r\n this.getMailList(this.searchOptions)\r\n }\r\n }\r\n \r\n async deleteItems() {\r\n const ids = this.selectList\r\n\r\n if (await(window as any).confirmAsync(this.$t('M_Mail_Msg20').toString()) == false) {\r\n return false\r\n } else {\r\n api.mail.delete({ ids, mode: DeleteMode.MoveToDeletedItems}).then((succeed) => {\r\n if (succeed) {\r\n ids.forEach((id: any) => {\r\n const idx = this.mailList.findIndex((e) => e.id === id);\r\n const item = this.mailList[idx];\r\n item.deleted = true;\r\n })\r\n this.selectListClear()\r\n this.onChangedFolderId()\r\n } else {\r\n ids.forEach(async (id: any) => {\r\n const idx = this.mailList.findIndex((e) => e.id === id);\r\n const item = this.mailList[idx];\r\n item.deleted = false;\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString())\r\n })\r\n }\r\n }).catch(() => {\r\n ids.forEach(async (id: any) => {\r\n const idx = this.mailList.findIndex((e) => e.id === id);\r\n const item = this.mailList[idx];\r\n item.deleted = false;\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString())\r\n })\r\n })\r\n }\r\n }\r\n\r\n async moveItems(folderId: string) {\r\n const ids = this.selectList\r\n\r\n if (await(window as any).confirmAsync('선택하신 메일을 이동하시겠습니까?') == false) {\r\n return false\r\n } else {\r\n api.mail.moveEmails(ids, folderId).then((succeed) => {\r\n if (succeed) {\r\n ids.forEach((id: any) => {\r\n const idx = this.mailList.findIndex((e) => e.id === id);\r\n const item = this.mailList[idx];\r\n item.deleted = true;\r\n })\r\n this.selectListClear()\r\n this.onChangedFolderId()\r\n this.$emit('moveModalClose')\r\n } else {\r\n ids.forEach((id: any) => {\r\n const idx = this.mailList.findIndex((e) => e.id === id);\r\n const item = this.mailList[idx];\r\n item.deleted = false;\r\n })\r\n }\r\n }).catch(() => {\r\n ids.forEach((id: any) => {\r\n const idx = this.mailList.findIndex((e) => e.id === id);\r\n const item = this.mailList[idx];\r\n item.deleted = false;\r\n })\r\n })\r\n }\r\n }\r\n\r\n readItems() {\r\n this.selectList.forEach(id => {\r\n api.mail.changeReadState(id, true)\r\n })\r\n }\r\n\r\n selectAll() {\r\n var ids: string[] = []\r\n this.mailList.map(email => {\r\n ids.push(email.id)\r\n })\r\n this.selectEmailAll(ids)\r\n }\r\n\r\n loadDataReset() {\r\n this.mailList = []\r\n this.offset = 0\r\n this.pageNumber = 1\r\n this.pageSize = 20\r\n this.loadMorePossible = true\r\n }\r\n\r\n @Watch('searchOptions', {deep: true})\r\n onChangedSearchOptions() {\r\n this.getMailList(this.searchOptions)\r\n }\r\n\r\n @Watch('id')\r\n onChangedFolderId() {\r\n this.loadDataReset()\r\n this.getMailList(this.searchOptions)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n this.getMailList(this.searchOptions)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListContainer.vue?vue&type=template&id=642513f0&\"\nimport script from \"./ListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ListContainer from '@mail/containers/ListContainer.vue'\r\nimport MoveModal from '@mail/components/Modals/MoveModal.vue'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as globaltypes from '@/store/types'\r\nimport * as types from '@mail/store/types'\r\nimport { createEventBus, removeEventBus } from '@appbase/util'\r\n@Component({\r\n components: { PageHeaderWithActionBar, PageViewHeaderWithActionBar, ListContainer, MoveModal },\r\n computed: {\r\n ...mapGetters({\r\n currentPage: globaltypes.CURRENT_PAGE,\r\n selectList: types.EMAIL_SELECT\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n selectListClear: types.EMAIL_SELECT_CLEAR,\r\n setCurrentPage: globaltypes.CURRENT_PAGE\r\n })\r\n }\r\n})\r\nexport default class ListView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentPage!: object\r\n selectList!: string[]\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectListClear!: () => void\r\n setCurrentPage!: (page: object) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n \r\n openDropdown: boolean = false\r\n searchOptions: mail.SearchOptions = {\r\n isAll: false,\r\n isSearch: false,\r\n unreadOnly: false,\r\n query: this.$route.query.query ? this.$route.query.query.toString() : '',\r\n hasAttachments: this.$route.query.hasAttachments ? true : false,\r\n hasCategories: false,\r\n }\r\n actionOpen: boolean = false\r\n moveModalShow: boolean = false\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get selectionCount() {\r\n return this.selectList.length\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n changeFilter(type: string) {\r\n const query = this.$route.query.query\r\n var searchOptions: mail.SearchOptions = {\r\n isAll: false,\r\n isSearch: false,\r\n unreadOnly: false,\r\n query: query ? query.toString() : '',\r\n hasAttachments: false,\r\n hasCategories: false,\r\n }\r\n\r\n switch (type) {\r\n case 'All':\r\n searchOptions.isAll = true\r\n break;\r\n case 'Unread':\r\n searchOptions.unreadOnly = true\r\n break;\r\n case 'Attachments':\r\n searchOptions.hasAttachments = true\r\n break;\r\n }\r\n this.searchOptions = searchOptions\r\n this.openDropdown = false\r\n }\r\n\r\n deleteItems() {\r\n (this.$refs.listContainer as any).deleteItems()\r\n }\r\n\r\n moveItems(folderId: string) {\r\n (this.$refs.listContainer as any).moveItems(folderId)\r\n }\r\n\r\n readItems() {\r\n (this.$refs.listContainer as any).readItems()\r\n }\r\n\r\n selectAll() {\r\n (this.$refs.listContainer as any).selectAll()\r\n }\r\n\r\n handleBackRequest() {\r\n this.selectListClear()\r\n }\r\n\r\n @Watch('$route.query.id')\r\n onChangedId(id: string) {\r\n var currentPage = {\r\n name : this.$t('받은_편지함').toString()\r\n }\r\n if (!id) this.setCurrentPage(currentPage)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, 'header-back', this.handleBackRequest)\r\n\r\n const id = this.$route.query.id as string\r\n this.onChangedId(id)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-back', this.handleBackRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListView.vue?vue&type=template&id=30e2010d&\"\nimport script from \"./ListView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mail-read-wrapper\"},[_c('PageViewHeaderWithActionBar',[_c('a',{staticClass:\"item\",on:{\"click\":_vm.deleteItem}},[_c('i',{staticClass:\"icon-bin\"})]),_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\"},[_c('i',{staticClass:\"icon-more\",on:{\"click\":function($event){_vm.openDropdown = !_vm.openDropdown}}})]),_c('div',{staticClass:\"dropdown-content\",class:{ show: _vm.openDropdown }},[_c('ul',[_c('li',[_c('a',{on:{\"click\":_vm.moveItem}},[_c('i',{staticClass:\"icon-move-mailbox\"}),_vm._v(_vm._s(_vm.$t('다른_편지함_이동'))+\" \")])])])])])]),_c('ReadContainer'),_c('MoveModal',{attrs:{\"showMove\":_vm.moveModalShow,\"redirect\":true},on:{\"close\":function($event){_vm.moveModalShow = false; \n _vm.openDropdown = false}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',{staticStyle:{\"margin-bottom\":\"6.2rem\"}},[_c('div',{staticClass:\"read-area\"},[_c('ReadTitle',{attrs:{\"item\":_vm.currentEmail}}),_c('ReadSender',{attrs:{\"item\":_vm.currentEmail}}),(_vm.currentEmail)?_c('ReadAttachment',{attrs:{\"item\":_vm.currentEmail.attachments,\"id\":_vm.currentEmail.id}}):_vm._e(),(_vm.currentEmail)?_c('ReadBody',{attrs:{\"id\":_vm.currentEmail.id}}):_vm._e()],1)]),_c('ReadBottom',{attrs:{\"item\":_vm.currentEmail}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bottom-control-menu\"},[_c('a',{staticClass:\"selected\",on:{\"click\":function($event){return _vm.route('reall')}}},[_c('i',{staticClass:\"icon-reply-all\"}),_c('p',{staticClass:\"menu-tit\"},[_vm._v(_vm._s(_vm.$t('전체회신')))])]),_c('a',{staticClass:\"selected\",on:{\"click\":function($event){return _vm.route('re')}}},[_c('i',{staticClass:\"icon-reply\"}),_c('p',{staticClass:\"menu-tit\"},[_vm._v(_vm._s(_vm.$t('회신')))])]),_c('a',{staticClass:\"selected\",on:{\"click\":function($event){return _vm.route('fw')}}},[_c('i',{staticClass:\"icon-forward\"}),_c('p',{staticClass:\"menu-tit\"},[_vm._v(_vm._s(_vm.$t('W_Mail_FW')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({})\r\nexport default class ReadBottom extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: mail.EmailMessage\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n route(type: 're' | 'reall' | 'fw') {\r\n const item = this.item\r\n const allowedActions = (item.actions || '').split(', ')\r\n const ensureAction = async (action: string) => {\r\n if (!allowedActions.includes(action)) {\r\n switch (action) {\r\n case 'Reply':\r\n await(window as any).alertAsync(this.$t('M_Email_NotAllowedActionReply').toString())\r\n break;\r\n\r\n case 'ReplyAll':\r\n await(window as any).alertAsync(this.$t('M_Email_NotAllowedActionReplyAll').toString())\r\n break;\r\n\r\n case 'Forward':\r\n await(window as any).alertAsync(this.$t('M_Email_NotAllowedActionForward').toString())\r\n break;\r\n }\r\n throw new Error('NOT_ALLOWED_ACTION')\r\n }\r\n }\r\n switch (type) {\r\n case 're':\r\n ensureAction('Reply')\r\n case 'reall':\r\n ensureAction('ReplyAll')\r\n case 'fw':\r\n ensureAction('Forward')\r\n this.$router.push({\r\n name: 'mail-write',\r\n query: { id: item.id, type },\r\n })\r\n break\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadBottom.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadBottom.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadBottom.vue?vue&type=template&id=20deb273&\"\nimport script from \"./ReadBottom.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadBottom.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.item)?_c('div',{staticClass:\"read-head read-sender-wrapper\"},[_c('div',{staticClass:\"con-left\"},[_c('div',{staticClass:\"image sender\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":_vm.loadingImage}}):_c('img',{attrs:{\"src\":_vm.avatar.url},on:{\"error\":_vm.onPhotoError}})])]),_c('div',{staticClass:\"con-right\"},[_c('h5',{staticClass:\"sender\"},[_vm._v(_vm._s(_vm.item.from.name))]),_c('dl',{staticClass:\"mail-recipient\"},[_c('dt',{staticClass:\"tit\"},[_vm._v(_vm._s(_vm.$t('W_Mail_Recipient')))]),_c('dd',_vm._l((_vm.item.to),function(toPerson,index){return _c('a',{key:index,staticClass:\"item\"},[_vm._v(\" \"+_vm._s(toPerson.name)+\"; \")])}),0)]),_c('dl',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visibleMore),expression:\"visibleMore\"}],staticClass:\"mail-cc\"},[_c('dt',{staticClass:\"tit\"},[_vm._v(_vm._s(_vm.$t('W_Mail_CC')))]),_c('dd',_vm._l((_vm.item.cc),function(toPerson,index){return _c('a',{key:index,staticClass:\"item\"},[_vm._v(_vm._s(toPerson.name)+\";\")])}),0)])]),_c('div',{staticClass:\"more-cc\",on:{\"click\":function($event){return _vm.viewMore()}}},[_vm._m(0)])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',[_c('i',{staticClass:\"icon-down\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { cache, invalidateUrl } from '@appbase/util'\r\n\r\n@Component\r\nexport default class ReadSender extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: mail.EmailMessage\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n visibleMore: boolean = false\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n }\r\n\r\n loadingImage: string = invalidateUrl('/cm/gres/v1/img/ghost_loading.png')\r\n ghostImage: string = invalidateUrl('/cm/gres/v1/img/ghost.png')\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getImage(senderMail: string) {\r\n this.avatar.loading = true\r\n const szAddress = senderMail\r\n cache.avatar.get(szAddress).then((url) => {\r\n this.avatar.url = invalidateUrl(url)\r\n this.avatar.loading = false\r\n })\r\n }\r\n\r\n viewMore() {\r\n if (this.visibleMore) {\r\n this.visibleMore = false\r\n } else {\r\n this.visibleMore = true\r\n }\r\n }\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n if (this.item) {\r\n this.getImage(this.item.address)\r\n }\r\n }\r\n\r\n onPhotoError() {\r\n console.log('set ghost image')\r\n this.avatar.url = this.ghostImage\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadSender.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadSender.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadSender.vue?vue&type=template&id=5068e9e2&\"\nimport script from \"./ReadSender.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadSender.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ReadSender.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.item && _vm.item.length > 0)?_c('div',{staticClass:\"read-file-wrap\"},[_c('ProgressRing',{attrs:{\"busy\":!_vm.isLoading,\"progressMessge\":_vm.loadingMessage}}),_vm._l((_vm.item),function(attach,index){return _c('div',{key:index,staticClass:\"file-item download-item\",on:{\"click\":function($event){$event.preventDefault();return _vm.preview(attach)}}},[_c('div',{staticClass:\"con-left\"},[_c('div',{staticClass:\"image attach-file\"},[_c('img',{attrs:{\"src\":_vm.imageUrl(attach)}})])]),_c('div',{staticClass:\"con-right\"},[_c('h6',{staticClass:\"file-name\"},[_vm._v(_vm._s(attach.name))]),_c('p',{staticClass:\"file-size\"},[_vm._v(_vm._s(_vm.getSize(attach.size))+\" \")])]),_c('div',[_c('span',{staticClass:\"hshi-doc-download ft-blue\",attrs:{\"title\":\"다운로드\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.download(attach)}}},[_c('i',{staticClass:\"icon-download\"})])])])})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { readablizeBytes, invalidateUrl } from '@appbase/util'\r\nimport * as typesAccount from '@account/store/types'\r\nimport * as types from '@mail/store/types'\r\nimport { mapGetters } from 'vuex'\r\nimport fileViewer from '@appbase/util/doc-viewer-helper'\r\nimport ProgressRing from '@/components/common/ProgressRing.vue'\r\nimport api from '@mail/api'\r\n\r\nconst md5 = require('md5')\r\n\r\nconst images: { [key: string]: string[] } = {\r\n doc: ['docx', 'docm', 'doc', 'dotx', 'dotm', 'dot', 'rtf'],\r\n excel: ['xlsx', 'xlsm', 'xlsb', 'xls', 'csv', 'xltx'],\r\n ppt: ['pptx', 'pptm', 'ppt', 'potx', 'potm', 'pot', 'ppsx', 'ppsm', 'pps'],\r\n img: ['png', 'jpg', 'jpeg', 'gif'],\r\n pdf: ['pdf'],\r\n txt: ['txt', 'log', 'xml'],\r\n zip: ['zip', '7z', 'gz'],\r\n}\r\n\r\n@Component({\r\n components: {\r\n ProgressRing,\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: typesAccount.USER,\r\n currentEmail: types.EMAIL_SELECT\r\n }),\r\n },\r\n})\r\nexport default class ReadAttachment extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) item!: mail.EwsAttachment[]\r\n //@Prop({ type: Object }) item!: mail.EmailMessage;\r\n @Prop({ type: String }) id!: string\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User\r\n currentEmail!: mail.EmailMessage\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n isLoading: boolean = true;\r\n loadingMessage: string = 'Decryption is in progress.';\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getSize(size: number) {\r\n return readablizeBytes(size)\r\n }\r\n\r\n // download -> preview로 변경 2024.01.15\r\n preview(attachment: any) {\r\n const { email } = this.user\r\n var itemId = \"\"\r\n var fileId = \"\"\r\n if(this.CheckDocumentExtension(attachment.name))//ms office문서만체크\r\n {\r\n itemId = this.id\r\n fileId = attachment.id\r\n api.mail.getArticleFile(fileId).then((res: any) => {\r\n if (res && res.length) {\r\n if (res[0].exportStatus == 'Y'){\r\n fileViewer.open(res[0].name, res[0].exportUrl, true)\r\n }\r\n }\r\n else{\r\n this.isLoading = false;\r\n api.mail.createExportEmailFile(itemId, fileId, '').then(res => {\r\n var intervalCount = 10;\r\n var trigger = setInterval(() => {\r\n api.mail.getArticleFile(fileId).then((resFile: any) => {\r\n intervalCount--;\r\n if (resFile && resFile.length) {\r\n if (resFile[0].exportStatus == 'Y')\r\n {\r\n this.isLoading = true\r\n clearInterval(trigger)\r\n fileViewer.open(resFile[0].name, resFile[0].exportUrl, true)\r\n }\r\n } \r\n })\r\n }, 2000)\r\n });\r\n } \r\n })\r\n }\r\n else{\r\n const base = invalidateUrl('/cm/mailews/attachment/api/email')\r\n itemId = encodeURIComponent(this.id)\r\n fileId = encodeURIComponent(attachment.id)\r\n var url = `${base}?itemId=${itemId}&attachmentID=${fileId}&email=${email}`\r\n fileViewer.open(attachment.name, url, true)\r\n }\r\n }\r\n\r\n //다운로드 추가 2024.01.15\r\n download(attachment: any) {\r\n const { email } = this.user\r\n // let iframe = document.getElementById('fileDownload') as HTMLIFrameElement\r\n \r\n const itemId = encodeURIComponent(this.id)\r\n const fileId = encodeURIComponent(attachment.id)\r\n \r\n // iframe.src = url\r\n let _osCheck = navigator.userAgent;\r\n if(_osCheck.includes('Mac')) {\r\n const base = invalidateUrl('/cm/File/ISU_File/api/mobileios')\r\n const url = `${base}?itemId=${itemId}&attachmentID=${fileId}&user=${email}`\r\n\r\n if(_osCheck.includes('Safari') || this.isTeams == true) { \r\n let _a = document.createElement('a');\r\n _a.target = '_blank';\r\n _a.href = url;\r\n document.body.appendChild(_a);\r\n _a.click(); \r\n } else { //팀플러스 앱으로 접속 한 경우 2024.02.27 \r\n (window as any).dsmobileapp.web2app('link','download', {'url':url, 'filename': attachment.name})\r\n }\r\n\r\n }else{\r\n const base = invalidateUrl('/cm/File/ISU_File/api/mobile')\r\n const url = `${base}?itemId=${itemId}&attachmentID=${fileId}&user=${email}`\r\n\r\n location.href = url;\r\n }\r\n }\r\n\r\n CheckDocumentExtension(filename: string){\r\n var fileExtension = filename.substring(filename.lastIndexOf(\".\")).split('.')[1].toUpperCase();\r\n var value = false;\r\n if (fileExtension == \"DOCX\"\r\n || fileExtension == \"PPTX\"\r\n || fileExtension == \"XLSX\"\r\n ) {\r\n value = true;\r\n }\r\n return value;\r\n }\r\n\r\n imageUrl(file: mail.EwsAttachment) {\r\n const ext = this.getExtensions(file.name)\r\n var aa = 'default'\r\n if (ext) {\r\n var key = Object.keys(images).find((key: string) => {\r\n var supports = images[key]\r\n return supports.includes(ext?.toLowerCase())\r\n })\r\n if (key) {\r\n aa = key\r\n }\r\n }\r\n return `/cm/gres/v1/img/type_${aa}.png`\r\n }\r\n\r\n getExtensions(filename: string) {\r\n return filename.split('.').pop()\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadAttachment.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadAttachment.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadAttachment.vue?vue&type=template&id=3a8e9938&\"\nimport script from \"./ReadAttachment.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadAttachment.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ReadAttachment.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.item)?_c('div',{staticClass:\"read-title\"},[_c('h4',[_vm._v(_vm._s(_vm.item.subject))]),_c('p',{staticClass:\"mail-date\"},[_c('em',{staticClass:\"spacing\"},[_vm._v(_vm._s(_vm.item.date))]),_c('em',{staticClass:\"spacing\"},[_vm._v(_vm._s(_vm.item.time))])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class ReadTitle extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: mail.EmailMessage;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadTitle.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadTitle.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadTitle.vue?vue&type=template&id=6030d91e&\"\nimport script from \"./ReadTitle.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadTitle.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"read-body-wrapper\"},[_c('div',{staticClass:\"body-container\"},[_c('iframe',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":_vm.url,\"scrolling\":\"yes\",\"frameborder\":\"0\",\"id\":\"bodyFrame\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { invalidateUrl } from '@appbase/util'\r\n\r\n@Component({\r\n})\r\nexport default class ReadBody extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String }) id!: string\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get url(): string {\r\n const escapedId = encodeURIComponent(this.id)\r\n const url = location.origin + `/cm/api/ews/body/html?id=${escapedId}`;\r\n return url\r\n }\r\n} \r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadBody.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadBody.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadBody.vue?vue&type=template&id=228eb811&\"\nimport script from \"./ReadBody.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadBody.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport ReadBottom from '@mail/components/Read/ReadBottom.vue'\r\nimport ReadSender from '@mail/components/Read/ReadSender.vue'\r\nimport ReadAttachment from '@mail/components/Read/ReadAttachment.vue'\r\nimport ReadTitle from '@mail/components/Read/ReadTitle.vue'\r\nimport ReadBody from '@mail/components/Read/ReadBody.vue'\r\nimport * as types from '@mail/store/types'\r\n\r\n@Component({\r\n components: {\r\n ReadBottom,\r\n ReadSender,\r\n ReadAttachment,\r\n ReadTitle,\r\n ReadBody,\r\n },\r\n computed: mapGetters({\r\n currentEmail: types.EMAIL_CURRENT,\r\n // pagedList: mailtypes.EMAIL_LIST,\r\n }),\r\n methods: {\r\n ...mapActions({\r\n loadDetail: types.EMAIL_DETAIL,\r\n }),\r\n },\r\n})\r\nexport default class ReadContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n modalStatus: boolean = true;\r\n moveModalStatus: boolean = true;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n // load!: () => Promise;\r\n loadDetail!: (id: string) => Promise;\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n currentEmail!: mail.EmailMessage;\r\n // pagedList!: () => Promise>;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n changeModal(show: boolean) {\r\n this.modalStatus = show;\r\n }\r\n\r\n changeMoveModal(show: boolean) {\r\n this.moveModalStatus = show;\r\n }\r\n containerClick(e: Event) {\r\n var modal = document.getElementById('openModal');\r\n if (e.target == modal) {\r\n if (modal) {\r\n this.modalStatus = false;\r\n }\r\n }\r\n var moveModal = document.getElementById('openMoveModal');\r\n if (e.target == moveModal) {\r\n if (moveModal) {\r\n this.moveModalStatus = false;\r\n }\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n const id = this.$route.query.id as string;\r\n this.loadDetail(id).then((r: any) => {\r\n if (r) {\r\n let item = {\r\n id: r.id,\r\n method: 'none',\r\n email: r,\r\n };\r\n //this.load();\r\n // this.clearSelections();\r\n }\r\n }).catch(async (err) => {\r\n if (err.type == 'ErrorItemNotFound') {\r\n await (window as any).alertAsync(this.$t('M_Mail_ErrorItemNotFound').toString()); \r\n history.back(); \r\n }\r\n });;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadContainer.vue?vue&type=template&id=9f0bc3fa&\"\nimport script from \"./ReadContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ReadContainer from '@mail/containers/ReadContainer.vue'\r\nimport MoveModal from '@mail/components/Modals/MoveModal.vue'\r\nimport api from '@mail/api'\r\nimport * as types from '@mail/store/types'\r\nimport { mapGetters } from 'vuex'\r\nimport { DeleteMode } from '../types'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, ReadContainer, MoveModal },\r\n computed: mapGetters({\r\n currentEmail: types.EMAIL_CURRENT\r\n })\r\n})\r\nexport default class ReadView extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n currentEmail!: mail.EmailMessage\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n \r\n openDropdown: boolean = false\r\n moveModalShow: boolean = false\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n async deleteItem() {\r\n const item = this.currentEmail\r\n const ids = [item.id]\r\n\r\n if (await(window as any).confirmAsync(this.$t('메일을_삭제하시겠습니까').toString()) == false) {\r\n return false\r\n } else {\r\n api.mail.delete({ ids, mode: DeleteMode.MoveToDeletedItems}).then(async (succeed) => {\r\n if (succeed) {\r\n item.deleted = true\r\n this.$router.push('/mail/list')\r\n } else {\r\n item.deleted = false\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString())\r\n }\r\n }).catch(async () => {\r\n item.deleted = false\r\n await(window as any).alertAsync(this.$t('다시_시도해주시기_바랍니다').toString())\r\n })\r\n }\r\n }\r\n\r\n moveItem() {\r\n this.moveModalShow = true\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadView.vue?vue&type=template&id=cdca6ece&\"\nimport script from \"./ReadView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadView.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ReadView.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageEditHeaderWithActionBar',{attrs:{\"title\":_vm.$t('W_Contact_SendMail'),\"eventName\":'mail-close'}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.attach}},[_c('i',{staticClass:\"icon-attach\"})]),_c('a',{staticClass:\"item\",on:{\"click\":_vm.send}},[_c('i',{staticClass:\"icon-plane\"})])]),_c('div',{attrs:{\"id\":\"inner-container\"}},[_c('WriteContainer',{ref:\"writeContainer\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{staticClass:\"write-area\"},[_c('form',[_c('WriteReceiver',{on:{\"showWriteCC\":_vm.showWriteCC,\"change\":_vm.change},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),(_vm.openWriteCC)?_c('WriteCC',{attrs:{\"value\":_vm.email},on:{\"update:value\":function($event){_vm.email=$event}}}):_vm._e(),_c('WriteTitle',{attrs:{\"value\":_vm.email},on:{\"update:value\":function($event){_vm.email=$event}}}),_c('WriteAttachment',{ref:\"writeAttachment\",attrs:{\"value\":_vm.email},on:{\"update:value\":function($event){_vm.email=$event},\"state\":_vm.uploadStateChanged}}),_c('WriteBody',{ref:\"body\",attrs:{\"value\":_vm.email.body},on:{\"input\":function (value) {\n _vm.email.body = value\n _vm.change()\n }}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('RecipientFields',{attrs:{\"type\":'to',\"title\":_vm.title,\"email\":_vm.writeEmailData},on:{\"showWriteCC\":_vm.showWriteCC,\"change\":function (tags) { return (_vm.writeEmailData.to = tags || []); }},model:{value:(_vm.writeEmailData.to),callback:function ($$v) {_vm.$set(_vm.writeEmailData, \"to\", $$v)},expression:\"writeEmailData.to\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator';\r\nimport RecipientFields from '@/components/common/RecipientFields.vue';\r\n\r\n@Component({\r\n components: { RecipientFields },\r\n})\r\nexport default class WriteReceiver extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @PropSync('value', { type: Object }) writeEmailData!: mail.WriteEmailData;\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n receiver: string = '';\r\n title: string = this.$t('W_Mail_Recipient').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n showWriteCC(show: boolean) {\r\n this.$emit('showWriteCC', show);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n // 받는 사람\r\n for (let index = 0; index < this.writeEmailData.to.length; index++) {\r\n const element = this.writeEmailData.to[index];\r\n if (element.value != '') {\r\n this.receiver += element.value + ';';\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteReceiver.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteReceiver.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteReceiver.vue?vue&type=template&id=12b65ff0&\"\nimport script from \"./WriteReceiver.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteReceiver.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ip-subject\"},[_c('h4',[_c('label',[_vm._v(_vm._s(_vm.$t('제목')))])]),_c('div',{},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value.subject),expression:\"value.subject\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.value.subject)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.value, \"subject\", $event.target.value)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, PropSync } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class WriteTitle extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @PropSync('value', { type: Object }) textModel!: mail.WriteEmailData;\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteTitle.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteTitle.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteTitle.vue?vue&type=template&id=70678cfc&\"\nimport script from \"./WriteTitle.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteTitle.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ip-subject\"},[_c('h4',[_c('label',[_vm._v(_vm._s(_vm.$t('첨부파일')))])]),_c('a',{ref:\"browseButton\",staticClass:\"em-btn file-browse\",attrs:{\"id\":\"selectFiles\"}}),_c('div',{staticClass:\"text-container\"},[_c('EumFileUpload',{ref:\"uploader\",attrs:{\"browseButton\":\"#selectFiles\",\"browseFolderButton\":\"#selectFolder\",\"uploadUrl\":_vm.uploadUrl,\"deleteUrl\":_vm.deleteUrl,\"deleteMethod\":'post',\"emptyFileDenialMessage\":_vm.$t('M_Mail_EmptyFileDenialMessage'),\"bannedExtentionMessage\":_vm.$t('M_Mail_BannedExtension'),\"bannedExtentions\":_vm.bannedExtentions,\"code\":_vm.value.code,\"codeValues\":_vm.value.codeValues,\"chunkSize\":10000000,\"simultaneousUploads\":4,\"customDelete\":_vm.deleteFiles},on:{\"change\":function($event){return _vm.$emit('change')},\"stateChanged\":function (state) { return _vm.$emit('state', state); }},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, PropSync, Watch } from 'vue-property-decorator';\r\nimport EumFileUpload from 'eum-file-upload'\r\nimport api from '@mail/api'\r\nimport { invalidateUrl } from '@appbase/util'\r\nimport config from '@/modules/@appbase/util/config';\r\n\r\n@Component({components:{EumFileUpload}})\r\nexport default class WriteAttachment extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n uploadUrl: string = ''\r\n deleteUrl: string = ''\r\n files: appbase.FileInfo[] = []\r\n totalSize: number = 0\r\n bannedExtentions: string[] = []\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) value!: mail.WriteEmailData\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadFiles(id: string | null, method: mail.EmailSendMethods | null) {\r\n if (!id) {\r\n id = this.value.id as string\r\n }\r\n if (!method) {\r\n method = this.value.method\r\n }\r\n Promise.all([\r\n api.mail.getAttachments(id),\r\n api.mail.getFiles(this.value?.code || ''),\r\n ]).then((results) => {\r\n const tcfiles = results[0]\r\n const emailfiles = results[1]\r\n var files: any[] = []\r\n if (tcfiles) {\r\n files = files.concat(tcfiles)\r\n }\r\n if (emailfiles) {\r\n files = files.concat(emailfiles)\r\n }\r\n this.files = files.map((file) => ({\r\n ...file,\r\n custom: true,\r\n percent: 100,\r\n status: 'succeed',\r\n uniqueIdentifier: file.id,\r\n type: 'Database',\r\n })) as any\r\n })\r\n }\r\n\r\n deleteFiles(files: appbase.FileInfo[]): Promise {\r\n console.log('deletefiles', files)\r\n const itemId = this.value?.id || ''\r\n \r\n return api.mail\r\n .deleteAttachments(\r\n itemId,\r\n files.map((f) => f.id)\r\n )\r\n .then(() => true)\r\n .catch((err) => {\r\n console.error(err)\r\n return false\r\n })\r\n }\r\n\r\n @Watch('value.id')\r\n onValueChanged(newValue: string) {\r\n this.loadFiles(newValue, this.value.method)\r\n }\r\n\r\n @Watch('value.method')\r\n onMethodChanged(newValue: mail.EmailSendMethods) {\r\n this.loadFiles(this.value.id as string, newValue)\r\n }\r\n\r\n @Watch('totalSize')\r\n onTotalSizeChanged(value: number) {\r\n this.$emit('totalsize', value)\r\n }\r\n\r\n @Watch('value.stateEmpty')\r\n onStateEmptyChanged(newval: number) {\r\n if (newval > 0) {\r\n this.files = []\r\n }\r\n }\r\n \r\n \r\n @Watch('files')\r\n onFilesChanged(files: any[]) {\r\n var size = files.map((f) => f.size).reduce((a, b) => a + b, 0)\r\n // const { transitionSize } = this.bigfileConfig;\r\n // if ((this.totalSize = size) > transitionSize) {\r\n // const visibles: mail.state.MailWriteVisibles = Object.create(null)\r\n // visibles.bigfile = true\r\n // this.changeVisibles(visibles)\r\n // this.value.transitionDisabled = true\r\n // } else {\r\n this.value.transitionDisabled = false\r\n // }\r\n }\r\n\r\n attach(){\r\n (this.$refs.browseButton as any).click();\r\n }\r\n\r\n created(){\r\n this.uploadUrl = invalidateUrl('/cm/file/store/flow')\r\n this.deleteUrl = invalidateUrl('/cm/file/store/deleteFile')\r\n this.bannedExtentions = config.get('RejectUploadFileExts')?.split(';')\r\n }\r\n\r\n mounted(){\r\n this.loadFiles(this.value.id as string, this.value.method)\r\n }\r\n \r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteAttachment.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteAttachment.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteAttachment.vue?vue&type=template&id=57f3d5ac&\"\nimport script from \"./WriteAttachment.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteAttachment.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ip-textarea\"},[_c('div',{staticClass:\"form\"},[_c('transition',{attrs:{\"name\":\"slide-fade\",\"mode\":\"in-out\"}},[_c('EumEditor',{ref:\"editor\",attrs:{\"mode\":\"editor\",\"value\":_vm.value,\"tinyopts\":_vm.tinyopts,\"dext5opts\":_vm.dext5opts},on:{\"input\":function (value) { return _vm.$emit('input', value); }}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { EumEditor } from '@appbase/components/editor'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n@Component({\r\n components: { EumEditor },\r\n computed: mapGetters({\r\n userCurrent: accountTypes.CURRENT,\r\n }),\r\n})\r\nexport default class WriteBody extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String, default: '' }) value!: string\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n userCurrent!: account.TCurrent\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n tinyopts: eumEditor.EditorOptions = {\r\n menubar: false,\r\n inline: false,\r\n height: '100%',\r\n }\r\n\r\n dext5opts: editor.dext5.DEXT5Config = {\r\n EditorBorder: '0',\r\n Lang: 'ko_KR',\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n emitInput() {\r\n const editor: editor.IEditorProxy = this.$refs.editor as any\r\n const body = editor.getEditor().getBodyValue()\r\n this.$emit('input', body);\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.dext5opts.Lang = this.userCurrent.userConfig.language\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteBody.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteBody.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteBody.vue?vue&type=template&id=34a0bfda&scoped=true&\"\nimport script from \"./WriteBody.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteBody.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./WriteBody.vue?vue&type=style&index=0&id=34a0bfda&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34a0bfda\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"write-cc-wrap\"},[_c('RecipientFields',{attrs:{\"type\":'cc',\"title\":_vm.cctitle,\"email\":_vm.writeEmailData},on:{\"change\":function (tags) { return (_vm.writeEmailData.cc = tags); }},model:{value:(_vm.writeEmailData.cc),callback:function ($$v) {_vm.$set(_vm.writeEmailData, \"cc\", $$v)},expression:\"writeEmailData.cc\"}}),_c('RecipientFields',{attrs:{\"type\":'bcc',\"title\":_vm.bcctitle,\"email\":_vm.writeEmailData},on:{\"change\":function (tags) { return (_vm.writeEmailData.bcc = tags); }},model:{value:(_vm.writeEmailData.bcc),callback:function ($$v) {_vm.$set(_vm.writeEmailData, \"bcc\", $$v)},expression:\"writeEmailData.bcc\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, PropSync } from 'vue-property-decorator';\r\nimport RecipientFields from '@/components/common/RecipientFields.vue';\r\n\r\n@Component({\r\n components: { RecipientFields },\r\n})\r\nexport default class WriteCC extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @PropSync('value', { type: Object }) writeEmailData!: mail.WriteEmailData;\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n cc: string = '';\r\n bcc: string = '';\r\n cctitle: string = this.$t('W_Mail_CC').toString();\r\n bcctitle: string = this.$t('W_Mail_BCC').toString();\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n for (let index = 0; index < this.writeEmailData.cc.length; index++) {\r\n const element = this.writeEmailData.cc[index];\r\n if (element.value != '') {\r\n this.cc += element.value + ';';\r\n }\r\n }\r\n\r\n for (let index = 0; index < this.writeEmailData.bcc.length; index++) {\r\n const element = this.writeEmailData.bcc[index];\r\n if (element.value != '') {\r\n this.bcc += element.value + ';';\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteCC.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteCC.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteCC.vue?vue&type=template&id=444c3fc2&\"\nimport script from \"./WriteCC.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteCC.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport WriteReceiver from '@/modules/mail/components/Write/WriteReceiver.vue'\r\nimport WriteTitle from '@/modules/mail/components/Write/WriteTitle.vue'\r\nimport WriteAttachment from '@/modules/mail/components/Write/WriteAttachment.vue'\r\nimport WriteBody from '@/modules/mail/components/Write/WriteBody.vue'\r\nimport WriteCC from '@/modules/mail/components/Write/WriteCC.vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport mailApi from '@mail/api'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as orgTypes from '@orgmap/store/types'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport { createEventBus, removeEventBus } from '@/util'\r\nimport * as dateutil from '@appbase/util/date-helper'\r\n\r\n@Component({\r\n components: {\r\n WriteTitle,\r\n WriteReceiver,\r\n WriteCC,\r\n WriteBody,\r\n WriteAttachment\r\n },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n userListClear: orgTypes.ORG_USER_SELECT_CLEAR\r\n }),\r\n }\r\n})\r\nexport default class WriteContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Array }) toWhom?: Array\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n openWriteCC: boolean = false\r\n loaded: boolean = false\r\n\r\n email: mail.WriteEmailData = ({\r\n subject: '',\r\n to: [],\r\n cc: [],\r\n bcc: [],\r\n body: '',\r\n attachments: '',\r\n isBigfile: false,\r\n isDraft: false,\r\n id: null,\r\n method: null,\r\n code: '',\r\n codeValues: [],\r\n importance: 'Normal',\r\n security: 'Normal',\r\n whenToSend: '',\r\n } as unknown) as mail.WriteEmailData\r\n\r\n currentMenuId: number = 0\r\n currentBoard: number = 0\r\n currentArticle: number = 0\r\n\r\n sender: string = ''\r\n title: string = ''\r\n content: string = ''\r\n fileCode: string = ''\r\n uploadState: string = ''\r\n\r\n /**\r\n * 임시저장 아이디\r\n * 임시저장된 메일을 열거나,\r\n * 회신, 전체회신, 전달 메일 작성 중 임시저장 완료된 경우 존재함\r\n */\r\n draftId: string | null = null\r\n\r\n /**\r\n * 메일 작성이 열리고 수정되었는지 여부\r\n */\r\n isChanged: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n userListClear!: () => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H E S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('email.subject')\r\n onEmailSubjectChanged() {\r\n this.change()\r\n }\r\n\r\n @Watch('email.to.length')\r\n onEmailToChanged() {\r\n this.change()\r\n }\r\n\r\n @Watch('email.cc.length')\r\n onEmailCcChanged() {\r\n this.change()\r\n }\r\n\r\n @Watch('email.bcc.length')\r\n onEmailBccChanged() {\r\n this.change()\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n showWriteCC(show: boolean) {\r\n this.openWriteCC = show\r\n }\r\n\r\n /**\r\n * 메시지 임시저장 후 URL에 DraftId를 업데이트합니다.\r\n * 페이지 새로고침 없이 히스토리를 수정합니다.\r\n * @param id item id\r\n */\r\n invalidateBrowserHistoroy(id: string) {\r\n console.log('replace history', window.history.state)\r\n this.$route.query.id = id\r\n this.email.id = id\r\n const url = this.$route.path + `?id=${encodeURIComponent(id)}`\r\n window.history.replaceState(null, '', url)\r\n }\r\n\r\n async load() {\r\n const id = this.$route.query.id as string\r\n const type = this.$route.query.type as 're' | 'reall' | 'fw' | 'draft'\r\n // if (['re', 'reall', 'fw'].includes(type)) {\r\n // api.email.getAutoForwardInfo(originId).then((item) => {\r\n // // temp 에서 기존 메시지를 복제하기 때문에 파일 코드를 새로 생성한다\r\n // api.email.temp(originId, this.createAttachmentCode(), type).then((tempid) => {\r\n // // URL을 temp에 있는 아이템 대상으로 변경\r\n // this.invalidateBrowserHistoroy(tempid)\r\n // // 메시지 상세 로드\r\n // loadEmail(tempid, item.autofw)\r\n // .then(ensureAttachCode)\r\n // .then(() => {\r\n // this.setLoading(false)\r\n // })\r\n // .catch(() => this.setLoading(false))\r\n // })\r\n // })}\r\n if (id) {\r\n const data = this.email\r\n // 회신, 전체회신, 전달, draft인 경우 id가 전달됨\r\n try {\r\n const tempId = await mailApi.mail.temp(id, this.createAttachmentCode(), type)\r\n const [email, body] = await Promise.all([\r\n mailApi.mail.getDetail(tempId),\r\n mailApi.mail.getBody(tempId),\r\n ]).then()\r\n this.invalidateBrowserHistoroy(tempId)\r\n this.buildBody(email, body)\r\n this.buildEmail(email)\r\n this.email.isDraft = true\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n } else {\r\n this.email.body = ''\r\n }\r\n const uid = `uid-${Date.now()}`\r\n this.email.code = `MAIL_${this.user.id}_${uid}`\r\n this.email.codeValues = ['Mail', this.user.comCode, dateutil.uGetDateFormat('yyyyMM', new Date()), uid]\r\n this.loaded = true\r\n }\r\n\r\n createAttachmentCode() {\r\n const uid = `uid-${Date.now()}`\r\n const code = `MAIL_${this.user.id}_${uid}`\r\n // console.log('mail-write', 'createAttachmentCode', code)\r\n return code\r\n }\r\n\r\n buildEmail(email: mail.EmailMessage) {\r\n const type = this.$route.query.type as 're' | 'reall' | 'fw' | 'draft'\r\n const data = this.email\r\n const from: mail.RecipientTag = {\r\n text: email.from.name,\r\n value: email.from.address,\r\n }\r\n const convert = function(list?: mail.EwsRecipient[]) {\r\n return (\r\n list?.map((r) => ({\r\n text: r.name,\r\n value: r.address,\r\n })) || []\r\n )\r\n }\r\n const buildSubject = function(subject: string, prefix: string) {\r\n if (\r\n !subject\r\n .toLowerCase()\r\n .trim()\r\n .startsWith(`${prefix}`)\r\n ) {\r\n return `${prefix.toUpperCase()} ${subject}`\r\n } else {\r\n return subject\r\n }\r\n }\r\n const getTo = () => {\r\n const result = [from, ...convert(email.to)].filter((r) => r.value !== this.user.email)\r\n if (result.length > 0) return result\r\n return [from]\r\n }\r\n switch (type) {\r\n case 're':\r\n data.to = getTo()\r\n data.cc = []\r\n data.bcc = []\r\n data.subject = buildSubject(email.subject, 're')\r\n break\r\n\r\n case 'reall':\r\n // 받는사람 목록에서 자신은 제외\r\n data.to = getTo()\r\n if ((data.cc = convert(email.cc)).length > 0) {\r\n this.openWriteCC = true\r\n }\r\n data.bcc = []\r\n data.subject = buildSubject(email.subject, 're')\r\n break\r\n\r\n case 'fw':\r\n data.to = []\r\n data.cc = []\r\n data.bcc = []\r\n data.subject = buildSubject(email.subject, 'fw')\r\n break\r\n\r\n case 'draft':\r\n data.to = convert(email.to)\r\n data.cc = convert(email.cc)\r\n data.bcc = convert(email.bcc)\r\n data.subject = buildSubject(email.subject, '')\r\n break\r\n\r\n default:\r\n data.subject = email.subject\r\n break\r\n }\r\n }\r\n\r\n buildBody(email: mail.EmailMessage, body: string) {\r\n if (email.isDraft === 'True') {\r\n this.draftId = email.id\r\n body = '
' + body\r\n } else {\r\n var alter = this.getBodyHeadRawHtml(email)\r\n // 메일 헤더 정보와 실제 본문을 합쳐서 body 설정\r\n var match = //.exec(body)\r\n if (match) {\r\n // HTML Body\r\n var position = match.index + match[0].length\r\n body = body.slice(0, position) + alter + body.slice(position + 1)\r\n } else {\r\n // Text Body\r\n var ps = body.split('\\n')\r\n body = ps\r\n .map(function(value) {\r\n return '

' + value + '

'\r\n })\r\n .join('')\r\n body = '' + alter + body + ''\r\n }\r\n }\r\n this.email.body = body\r\n }\r\n\r\n getBodyHeadRawHtml(email: mail.EmailMessage) {\r\n const converRcptString = function(rcpts: mail.EwsRecipient[]) {\r\n return rcpts.map((r) => `${r.name}<${r.address}>`).join(';')\r\n }\r\n return `\r\n
\r\n
\r\n
\r\n\r\n

\r\n \r\n From:\r\n \r\n \r\n ${email.from.name}<${email.from.address}>\r\n \r\n\r\n \r\n
\r\n Sent: ${email.dateTimeCreated}\r\n
\r\n\r\n \r\n
\r\n To:\r\n
\r\n ${converRcptString(email.to || [])}\r\n \r\n
\r\n To:\r\n
\r\n ${converRcptString(email.cc || [])}\r\n \r\n
\r\n Subject:\r\n
\r\n ${email.subject}\r\n

\r\n
\r\n\r\n
`\r\n }\r\n\r\n update(email: mail.WriteEmailData) {\r\n this.email = email\r\n }\r\n\r\n validateEmail(value: string): any {\r\n const emailRegex = new RegExp(`^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$`)\r\n\r\n if (!emailRegex.test(value) && value.length > 0) {\r\n return { succeed: false, reason: 'invalid' }\r\n } else if (!value) {\r\n return { succeed: false, reason: 'blank' }\r\n } else {\r\n return { succeed: true }\r\n }\r\n }\r\n\r\n async send(\r\n saveMethod: 'save' | 'draft' = 'save',\r\n sendMethod: 'new' | 're' | 'reall' | 'fw' | 'draft' = 'new',\r\n importance: 'Low' | 'Normal' | 'High' = 'Normal'\r\n ): Promise {\r\n this.invokeEditorEmitManually();\r\n var allrcpts = this.email.to.concat(this.email.cc).concat(this.email.bcc)\r\n //\r\n // 메일주소 유효성 검사\r\n //\r\n for (var i = 0; i < allrcpts.length; i++) {\r\n let szSmtpAddress = allrcpts[i].value || ''\r\n let result = this.validateEmail(szSmtpAddress)\r\n if (result.succeed === false) {\r\n if (result.reason === 'invalid') {\r\n } else if (result.reason === 'blank') {\r\n await(window as any).alertAsync(this.$t('M_Settings_Msg1').toString() + ` [${allrcpts[i].text}]`)\r\n }\r\n return Promise.resolve('')\r\n }\r\n }\r\n //\r\n // 제목 유효성 검사\r\n //\r\n if (saveMethod === 'save') {\r\n if (this.email.to.length <= 0) {\r\n await(window as any).alertAsync(this.$t('M_Mail_Msg8').toString())\r\n return Promise.resolve('')\r\n }\r\n if (!this.email.subject) {\r\n await(window as any).alertAsync(this.$t('M_Mail_Msg9').toString())\r\n return Promise.resolve('')\r\n }\r\n }\r\n //\r\n // 첨부 업로드 중에는 메일 발송 제한\r\n //\r\n if (this.uploadState === 'uploading') {\r\n await(window as any).alertAsync(this.$t('M_Mail_SendErrorUploadState').toString())\r\n return Promise.resolve('')\r\n }\r\n\r\n if (!saveMethod) {\r\n saveMethod = 'save'\r\n }\r\n const { email: data } = this\r\n const convertToRecipient = (r: mail.RecipientTag) => ({ address: r.value } as mail.EwsRecipient)\r\n //const convertToRecipient = (r: any) => ({ address: r.email } as any);\r\n const email: mail.EmailSendRequest = {\r\n key: data.code,\r\n subject: data.subject,\r\n id: this.$route.query.id as string,\r\n draftId: undefined,//this.draftId || undefined,\r\n to: data.to.map((d) => convertToRecipient(d)),\r\n cc: data.cc.map((d) => convertToRecipient(d)),\r\n bcc: data.bcc.map((d) => convertToRecipient(d)),\r\n body: data.body,\r\n saveMethod: saveMethod,\r\n sendMethod: sendMethod,\r\n // attachments\r\n importance: data.importance,\r\n isBigfile: data.isBigfile,\r\n attachmentFileCode: data.code,\r\n }\r\n if (data.isDraft) {\r\n email.draftId = this.draftId as string\r\n } else {\r\n email.id = data.id\r\n }\r\n var request = mailApi.mail.send(email).then((draftId) => {\r\n this.draftId = draftId\r\n return draftId\r\n })\r\n\r\n if (sendMethod !== 'draft') {\r\n this.close()\r\n }\r\n return request\r\n }\r\n\r\n change(changed: boolean = true) {\r\n if (this.loaded) {\r\n this.isChanged = changed\r\n }\r\n }\r\n\r\n async cancel() {\r\n if (this.isChanged) {\r\n const message = this.$t('임시_저장을_하시겠습니까').toString()\r\n if (await(window as any).confirmAsync(message) == false) {\r\n this.close()\r\n } else {\r\n this.save()\r\n .then(async (draftId) => {\r\n if (draftId) {\r\n await(window as any).alertAsync(this.$t('M_Mail_DraftNotify').toString())\r\n } else {\r\n await(window as any).alertAsync(this.$t('M_Mail_DraftErrorNotify').toString())\r\n }\r\n })\r\n .then(() => {\r\n this.close()\r\n })\r\n }\r\n } else {\r\n this.close()\r\n }\r\n }\r\n\r\n save(): Promise {\r\n return this.send('draft', 'draft')\r\n }\r\n\r\n close() {\r\n this.userListClear()\r\n this.$router.back()\r\n }\r\n\r\n scrollToTop() {\r\n ;((this.$refs.writeView as any) || {}).scrollTop = 0\r\n }\r\n\r\n /**\r\n * 모바일에서는 보내기 버튼 터치 시 작성한 본문을 못가져오는 문제가 있음\r\n * 에디터에서 포커스가 빠졌을때 $emit('input')하게 되는데 터치에는\r\n * focus blur 이벤트가 발생 안하는 경우가 있다.\r\n * 수동으로 이러한 동작을 발생시킨다.\r\n */\r\n invokeEditorEmitManually() {\r\n const body = this.$refs.body as any\r\n body.emitInput()\r\n }\r\n\r\n attach(){\r\n (this.$refs.writeAttachment as any).attach()\r\n }\r\n\r\n uploadStateChanged(state: string) {\r\n this.uploadState = state\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n if (this.$route.query.uid) {\r\n this.email.to = [\r\n {\r\n text: this.$route.query.uid + '',\r\n value: this.$route.query.uid + '',\r\n },\r\n ]\r\n }\r\n }\r\n\r\n created() {\r\n createEventBus(window, 'mail-close', this.cancel)\r\n this.scrollToTop()\r\n if (this.email.cc.length || this.email.bcc.length) {\r\n this.openWriteCC = true\r\n }\r\n this.load()\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'mail-close', this.cancel)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteContainer.vue?vue&type=template&id=617abfdc&\"\nimport script from \"./WriteContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageEditHeaderWithActionBar from '@/components/common/Header/PageEditHeaderWithActionBar.vue'\r\nimport WriteContainer from '@mail/containers/WriteContainer.vue'\r\n@Component({\r\n components: { PageEditHeaderWithActionBar, WriteContainer }\r\n})\r\nexport default class WriteView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n \r\n open: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n send() {\r\n (this.$refs.writeContainer as any).send()\r\n }\r\n\r\n attach(){\r\n (this.$refs.writeContainer as any).attach()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteView.vue?vue&type=template&id=64b572fe&\"\nimport script from \"./WriteView.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\r\nimport HomeView from '../views/HomeView.vue'\r\nimport ListView from '../views/ListView.vue'\r\nimport ReadView from '../views/ReadView.vue'\r\nimport WriteView from '../views/WriteView.vue'\r\nconst Mail = () => import(/* webpackChunkName: \"mail\" */ '@home/Index.vue')\r\nconst MailMaster = () => import(/* webpackChunkName: \"mail\" */ '@home/views/Master.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/mail',\r\n component: Mail,\r\n children: [\r\n {\r\n path: '',\r\n component: MailMaster,\r\n children: [\r\n {\r\n path: 'home',\r\n name: 'mail-home',\r\n component: HomeView,\r\n },\r\n {\r\n path: 'list',\r\n name: 'mail-list',\r\n component: ListView,\r\n },\r\n {\r\n path: 'read',\r\n name: 'mail-read',\r\n component: ReadView,\r\n },\r\n {\r\n path: 'write',\r\n name: 'mail-write',\r\n component: WriteView,\r\n },\r\n ],\r\n },\r\n {\r\n path:'',\r\n redirect: 'home'\r\n }\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageHeaderWithActionBar',{attrs:{\"title\":_vm.dateDisplay},scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_c('a',{staticClass:\"prev\",on:{\"click\":_vm.prev}},[_c('i',{staticClass:\"icon-left\"})]),_c('a',{staticClass:\"next\",on:{\"click\":_vm.next}},[_c('i',{staticClass:\"icon-right\"})])]},proxy:true}])},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.goToday}},[_c('i',{staticClass:\"icon-calendar-today\"})]),_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.modeChangeOpen = !_vm.modeChangeOpen}}},[_c('i',{staticClass:\"icon-calendar-filter\"})]),_c('div',{class:['dropdown-content', {show: _vm.modeChangeOpen}],attrs:{\"id\":\"myDropdown\"}},[_c('ul',[_c('li',[_c('a',{on:{\"click\":function($event){return _vm.modeChange('day')}}},[_c('i',{staticClass:\"icon-calendar-day\"}),_vm._v(_vm._s(_vm.$t('W_Schedule_Daily'))+\" \")]),_c('label',{staticClass:\"em-radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mode),expression:\"mode\"}],attrs:{\"type\":\"radio\",\"name\":\"radio\",\"value\":\"day\"},domProps:{\"checked\":_vm._q(_vm.mode,\"day\")},on:{\"change\":function($event){_vm.mode=\"day\"}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('li',[_c('a',{on:{\"click\":function($event){return _vm.modeChange('week')}}},[_c('i',{staticClass:\"icon-calendar-week\"}),_vm._v(_vm._s(_vm.$t('W_Schedule_Weekly'))+\" \")]),_c('label',{staticClass:\"em-radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mode),expression:\"mode\"}],attrs:{\"type\":\"radio\",\"name\":\"radio\",\"value\":\"week\"},domProps:{\"checked\":_vm._q(_vm.mode,\"week\")},on:{\"change\":function($event){_vm.mode=\"week\"}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('li',[_c('a',{on:{\"click\":function($event){return _vm.modeChange('month')}}},[_c('i',{staticClass:\"icon-calendar-month\"}),_vm._v(_vm._s(_vm.$t('W_Schedule_Monthly'))+\" \")]),_c('label',{staticClass:\"em-radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mode),expression:\"mode\"}],attrs:{\"type\":\"radio\",\"name\":\"radio\",\"value\":\"month\"},domProps:{\"checked\":_vm._q(_vm.mode,\"month\")},on:{\"change\":function($event){_vm.mode=\"month\"}}}),_c('span',{staticClass:\"checkmark\"})])])])])])]),_c('CalendarContainer',{ref:\"calendarContainer\",attrs:{\"mode\":_vm.mode},on:{\"modeChange\":_vm.modeChange}}),_c('div',{staticClass:\"write-link\"},[_c('router-link',{attrs:{\"to\":{ name: 'calendar-write'},\"title\":this.$t('마지막_페이지입니다').toString()}},[_c('i',{staticClass:\"icon-add\"})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[(_vm.mode === 'month')?_c('MonthView',{on:{\"viewSchedule\":_vm.viewSchedule,\"viewMore\":_vm.viewMore}}):_vm._e(),(_vm.mode === 'week')?_c('WeekView',{on:{\"viewSchedule\":_vm.viewSchedule,\"viewMore\":_vm.viewMore}}):_vm._e(),(_vm.mode === 'day')?_c('DayView',{on:{\"viewSchedule\":_vm.viewSchedule,\"viewMore\":_vm.viewMore}}):_vm._e()],1),_c('RecurringScheduleModal',{attrs:{\"show\":_vm.showRecurringScheduleModal},on:{\"cAppointment\":_vm.cAppointment}}),_c('WebMailBottom')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"touch\",rawName:\"v-touch:swipe\",value:(_vm.onSwipe),expression:\"onSwipe\",arg:\"swipe\"}],staticClass:\"schedule-area\"},[_c('div',{staticClass:\"schedule month\"},[_c('div',{staticClass:\"header-wrap\"},[_c('table',{staticClass:\"tbl-sche month\"},[_c('thead',[_c('tr',{staticClass:\"week-header\"},[_c('th',{staticClass:\"sun\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sun')))])]),_c('th',{staticClass:\"mon\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Mon')))])]),_c('th',{staticClass:\"tue\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Tue')))])]),_c('th',{staticClass:\"wed\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Wed')))])]),_c('th',{staticClass:\"thu\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Thu')))])]),_c('th',{staticClass:\"fri\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Fri')))])]),_c('th',{staticClass:\"sat\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sat')))])])])])])]),_c('div',{staticClass:\"body-wrap fifth\"},[_c('table',{staticClass:\"tbl-sche month\"},[_c('tbody',_vm._l((_vm.monthMatrix),function(Rows,index){return _c('tr',{key:index,staticClass:\"week\"},_vm._l((Rows),function(item,index2){return _c('MonthItem',{key:index2,attrs:{\"item\":item},on:{\"viewSchedule\":function (value) { return _vm.$emit('viewSchedule', value); },\"viewMore\":function (value) { return _vm.$emit('viewMore', value); }}})}),1)}),0)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{class:( _obj = {\n date: true}, _obj['date-select'] = _vm.item.isSelected, _obj.today = _vm.item.isToday, _obj.sun = _vm.item.isSun, _obj.sat = _vm.item.isSat, _obj['other-month'] = !_vm.item.isDisplayArea, _obj )},[_c('a',{staticClass:\"day-number\"},[_c('span',[_vm._v(_vm._s(_vm.item.date.getDate()))])]),_c('div',{staticClass:\"sche-items\"},[_vm._l((_vm.item.events),function(eventItem,index){return _c('div',{key:index,staticClass:\"item\",style:({\n opacity: [eventItem.isCancelled == true ? 0.5 : 1],\n visibility: [eventItem.id == 'null' ? 'hidden' : 'visible'], \n background: [eventItem.color], \n width: ['calc(' + (100 * eventItem.ui_month_width_count) + '% + ' + ((eventItem.ui_month_width_count > 0 ? (eventItem.ui_month_width_count - 1) : 0) * 1.7) + 'px - 9px)']}),on:{\"click\":function($event){$event.stopPropagation();return _vm.viewSchedule(eventItem)}}},[_c('p',{staticClass:\"subject\"},[_vm._v(_vm._s(eventItem.subject))])])}),(_vm.item.MoreEventsCount && _vm.item.MoreEventsCount > 0)?_c('div',{staticClass:\"item more\",on:{\"click\":function($event){$event.stopPropagation();return _vm.viewMore(_vm.item)}}},[_c('p',{staticClass:\"count\"},[_vm._v(_vm._s(_vm.item.MoreEventsCount))])]):_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\n@Component({\r\n\r\n})\r\nexport default class MonthItem extends Vue {\r\n @Prop({ type: Object }) item!: calendar.DateItem;\r\n\r\n viewSchedule(item: calendar.CalendarItem) {\r\n if(item.id && item.id != null) {\r\n this.$emit('viewSchedule', item);\r\n } \r\n }\r\n\r\n viewMore(item: calendar.DateItem) {\r\n this.$emit('viewMore', item);\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MonthItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MonthItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MonthItem.vue?vue&type=template&id=7b5318f0&\"\nimport script from \"./MonthItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./MonthItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport MonthItem from '@calendar/components/View/MonthItem.vue'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport * as types from '@calendar/store/types'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport { debounce } from '@/util'\r\n@Component({\r\n components: { MonthItem, WebMailBottom },\r\n computed: {\r\n ...mapGetters({\r\n monthMatrix: types.CALENDAR_MONTH_MATRIX_LIST,\r\n currentDate: types.COMMON_DATE_CURRENT\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n changeDateMonthPrev: types.COMMON_DATE_MONTH_PREV,\r\n changeDateMonthNext: types.COMMON_DATE_MONTH_NEXT,\r\n })\r\n }\r\n})\r\nexport default class MonthView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n \r\n monthMatrix!: Array>\r\n currentDate!: calendar.DateItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n changeDateMonthNext!: (item: calendar.DateItem) => Promise\r\n changeDateMonthPrev!: (item: calendar.DateItem) => Promise\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n transName: string = \"\"\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n onSwipe(direction: string) {\r\n if(direction === 'left') { \r\n this.transName = \"trans-left\"\r\n this.$nextTick(() => {\r\n this.changeMonthNext(this)\r\n }); \r\n } \r\n\r\n if(direction === 'right') { \r\n this.transName = \"trans-right\"\r\n this.$nextTick(() => {\r\n this.changeMonthPrev(this)\r\n }); \r\n }\r\n }\r\n\r\n changeMonthNext = debounce((_this: any) => { \r\n _this.transToggle = false; \r\n _this.changeDateMonthNext(_this.currentDate)\r\n .then(() => {\r\n _this.$nextTick(() => { _this.transToggle = true; }); \r\n }); \r\n }, 400, { isImmediate: true });\r\n\r\n changeMonthPrev = debounce((_this: any) => {\r\n _this.transToggle = false; \r\n _this.changeDateMonthPrev(_this.currentDate)\r\n .then(() => {\r\n _this.$nextTick(() => { _this.transToggle = true; }); \r\n });\r\n }, 400, { isImmediate: true });\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MonthView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MonthView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MonthView.vue?vue&type=template&id=3173ba50&\"\nimport script from \"./MonthView.ts?vue&type=script&lang=ts&\"\nexport * from \"./MonthView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"schedule-area\"},[_c('div',{ref:\"dayWrap\",staticClass:\"schedule week\"},[_c('div',{staticClass:\"time-line\"},[_c('div',{staticClass:\"time-wrap allday\"},[_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Allday')))])])]),_vm._m(0)]),(_vm.monthMatrix.length)?_c('div',{staticClass:\"day-header\"},[_c('div',{staticClass:\"header-wrap\"},[_c('div',{staticClass:\"number-swipe\"},_vm._l((_vm.weekDisplay),function(witem,index){\nvar _obj;\nreturn _c('div',{key:index,staticClass:\"day-number\"},[_c('p',{class:( _obj = {\n date: true\n }, _obj['date-select'] = witem.item.isSelected, _obj.today = witem.item.isToday, _obj.sun = witem.item.isSun, _obj.sat = witem.item.isSat, _obj.active = witem.item\n .isDisplayArea, _obj )},[_c('span',{staticClass:\"day\"},[_vm._v(_vm._s(witem.text))]),_c('span',[_vm._v(_vm._s(witem.value))])])])}),0)]),_c('div',{staticClass:\"body-wrap\"},[_c('div',{staticClass:\"allday-wrap\"},[_c('div',{staticClass:\"time-table-wrap\"},[_c('div',{staticClass:\"tbl-sche allday\"},_vm._l((_vm.monthMatrix[0]),function(item,index){return _c('div',{key:index,staticClass:\"sche-col\"},[_c('div',{staticClass:\"sche-row\"},[_c('div',{staticClass:\"sche-items\"},[_vm._l((item.events),function(eventItem,index){return _c('div',{key:index,staticClass:\"item\",style:({\n background: [\n eventItem.color ],\n visibility: [\n eventItem.id ==\n 'null'\n ? 'hidden'\n : 'visible' ],\n width: [\n eventItem.ui_month_width_count > 1\n ? 'calc(' + (100 * eventItem.ui_month_width_count) + '% + ' \n + ((eventItem.ui_month_width_count > 0 \n ? (eventItem.ui_month_width_count - 1) : 0) * 1.7) + 'px - 2px)'\n : '100%' ],\n }),on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.$emit('viewSchedule', eventItem)}}},[_c('p',{staticClass:\"subject\",staticStyle:{\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(eventItem.subject)+\" \")])])}),(item.MoreEventsCount && item.MoreEventsCount > 0)?_c('div',{staticClass:\"item more\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.$emit('viewMore', item)}}},[_c('p',{staticClass:\"count\"},[_vm._v(_vm._s(item.MoreEventsCount))])]):_vm._e()],2)])])}),0)])])])]):_vm._e(),_c('div',{staticClass:\"day-wrap\"},[_c('div',{staticClass:\"time-table-wrap\"},[_c('div',{staticClass:\"tbl-sche week\"},_vm._l((_vm.weekMatrix),function(Rows,index){return _c('div',{key:index,staticClass:\"sche-col\"},_vm._l((Rows),function(item,index2){return _c('div',{key:index2,staticClass:\"sche-row\"},[_c('div',{staticClass:\"sche-items\",staticStyle:{\"position\":\"static\"}},_vm._l((item.events),function(eventItem,index){return _c('div',{key:index,staticClass:\"item\",style:({\n background: [\n eventItem.color ],\n height: [\n ((eventItem.ui_week_height_count * 30) - 1)+'px'\n ]\n }),on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.$emit('viewSchedule', eventItem)}}},[_c('p',{staticClass:\"subject\"},[_vm._v(\" \"+_vm._s(eventItem.subject)+\" \")])])}),0)])}),0)}),0)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"time-wrap\"},[_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"12\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"1\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"2\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"3\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"4\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"5\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"6\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"7\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"8\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"9\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"10\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"11\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"12\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"1\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"2\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"3\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"4\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"5\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"6\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"7\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"8\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"9\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"10\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"11\"),_c('em',[_vm._v(\"pm\")])])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sche-items\"},[_c('div',{staticClass:\"item\",staticStyle:{\"height\":\"6rem\"},attrs:{\"onClick\":\"location.href='schedule_view.html'\"}},[_c('p',{staticClass:\"subject\"},[_vm._v(\"담양 메타세콰이어길 1박2일\")])])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\n@Component({\r\n})\r\nexport default class CalendarItem extends Vue {}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarItem.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarItem.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarItem.vue?vue&type=template&id=e0b887a4&\"\nimport script from \"./CalendarItem.ts?vue&type=script&lang=ts&\"\nexport * from \"./CalendarItem.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport CalendarItem from '@calendar/components/View/CalendarItem.vue'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport { mapGetters } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\nimport * as dateutil from '@/util/date-helper';\r\n@Component({\r\n components: { CalendarItem, WebMailBottom },\r\n computed: {\r\n ...mapGetters({\r\n monthMatrix: types.CALENDAR_MONTH_MATRIX_LIST,\r\n weekMatrix: types.CALENDAR_WEEK_MATRIX_LIST,\r\n currentDate: types.COMMON_DATE_CURRENT,\r\n })\r\n },\r\n})\r\nexport default class WeekView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n dayWrap: HTMLDivElement | undefined;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n \r\n monthMatrix!: Array>\r\n weekMatrix!: Array>\r\n currentDate!: calendar.DateItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get weekDisplay() {\r\n return this.monthMatrix[0].map((x) => {\r\n return {\r\n text: dateutil.uGetWeekArray([\r\n this.$t('W_Schedule_Sun').toString(),\r\n this.$t('W_Schedule_Mon').toString(),\r\n this.$t('W_Schedule_Tue').toString(),\r\n this.$t('W_Schedule_Wed').toString(),\r\n this.$t('W_Schedule_Thu').toString(),\r\n this.$t('W_Schedule_Fri').toString(),\r\n this.$t('W_Schedule_Sat').toString(),\r\n ])[x.date.getDay()].text,\r\n value: x.date.getDate(),\r\n item: x,\r\n }\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('monthMatrix')\r\n onMatrixChanged(newVal: Array>) {\r\n this.$nextTick(() => { \r\n this.scrollFitToToday();\r\n });\r\n }\r\n\r\n @Watch('currentDate')\r\n onCurrentDateChanged(newVal: calendar.DateItem) {\r\n this.scrollFitToToday()\r\n }\r\n\r\n scrollFitToToday() {\r\n if(this.dayWrap) {\r\n var todayElem = document.getElementsByClassName('date-select today')[0] as HTMLElement;\r\n if (todayElem)\r\n this.dayWrap.scrollLeft = todayElem.offsetLeft;\r\n } \r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.$nextTick(() => {\r\n this.dayWrap = this.$refs.dayWrap as HTMLDivElement;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WeekView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WeekView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WeekView.vue?vue&type=template&id=f6c86fea&\"\nimport script from \"./WeekView.ts?vue&type=script&lang=ts&\"\nexport * from \"./WeekView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.monthMatrix.length)?_c('div',{staticClass:\"schedule-area\"},[_c('div',{staticClass:\"schedule day\"},[_c('div',{staticClass:\"time-line\"},[_c('div',{staticClass:\"time-wrap allday\"},[_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Allday')))])])]),_vm._m(0)]),_c('div',{staticClass:\"day-header\"},[_c('div',{ref:\"dayWrap\",staticClass:\"header-wrap\"},[_c('div',{staticClass:\"tbl-sche week-header day\"},[_c('div',{staticClass:\"sche-col sun\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sun')))])]),_c('div',{staticClass:\"sche-col mon\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Mon')))])]),_c('div',{staticClass:\"sche-col tue\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Tue')))])]),_c('div',{staticClass:\"sche-col wed\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Wed')))])]),_c('div',{staticClass:\"sche-col thu\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Thu')))])]),_c('div',{staticClass:\"sche-col fri\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Fri')))])]),_c('div',{staticClass:\"sche-col sat\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sat')))])]),_c('div',{staticClass:\"sche-col sun\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sun')))])]),_c('div',{staticClass:\"sche-col mon\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Mon')))])]),_c('div',{staticClass:\"sche-col tue\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Tue')))])]),_c('div',{staticClass:\"sche-col wed\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Wed')))])]),_c('div',{staticClass:\"sche-col thu\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Thu')))])]),_c('div',{staticClass:\"sche-col fri\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Fri')))])]),_c('div',{staticClass:\"sche-col sat\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sat')))])]),_c('div',{staticClass:\"sche-col sun\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sun')))])]),_c('div',{staticClass:\"sche-col mon\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Mon')))])]),_c('div',{staticClass:\"sche-col tue\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Tue')))])]),_c('div',{staticClass:\"sche-col wed\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Wed')))])]),_c('div',{staticClass:\"sche-col thu\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Thu')))])]),_c('div',{staticClass:\"sche-col fri\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Fri')))])]),_c('div',{staticClass:\"sche-col sat\"},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_Sat')))])])]),_c('div',{staticClass:\"number-swipe\"},_vm._l((_vm.weekSlideList),function(witem,index){\nvar _obj;\nreturn _c('div',{key:index,staticClass:\"day-number\"},[_c('span',{class:( _obj = {\n date: true\n }, _obj['selected'] = witem.isSelected, _obj.today = witem.isToday, _obj.sun = witem.isSun, _obj.sat = witem.isSat, _obj.active = witem.isDisplayArea, _obj ),on:{\"click\":function($event){$event.stopPropagation();return _vm.getDayDate(witem)}}},[_vm._v(_vm._s(witem.value))])])}),0)]),_c('div',{staticClass:\"body-wrap\"},[_c('div',{staticClass:\"allday-wrap\"},[_c('div',{staticClass:\"time-table-wrap\"},[_c('div',{staticClass:\"tbl-sche allday\"},_vm._l(([\n _vm.monthMatrix[0][0] ]),function(item,index){return _c('div',{key:index,staticClass:\"sche-col\"},_vm._l((item.events),function(eventItem,index){return _c('div',{key:index,staticClass:\"sche-items\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.$emit('viewSchedule', eventItem)}}},[_c('div',{staticClass:\"item\",style:({\n background: [\n eventItem.color ],\n visibility: [\n eventItem.id ==\n 'null' || eventItem.ui_month_width_count == 0\n ? 'hidden'\n : 'visible' ],\n })},[_c('p',{staticClass:\"subject\",staticStyle:{\"color\":\"white\"}},[_vm._v(\" \"+_vm._s(eventItem.subject)+\" \")])])])}),0)}),0)])])])]),_c('div',{staticClass:\"day-wrap\"},[_c('div',{staticClass:\"time-table-wrap\"},[_c('div',{staticClass:\"tbl-sche day\"},[_c('div',{staticClass:\"sche-col\"},_vm._l((_vm.dateMatrix),function(Rows,index){return _c('div',{key:index,staticClass:\"sche-row\"},_vm._l((Rows),function(item,index2){return _c('div',{key:index2,staticClass:\"sche-items\"},_vm._l((item.events),function(eventItem,index){return _c('div',{key:index,staticClass:\"item\",style:({\n background: [\n eventItem.color ],\n height: [((eventItem.ui_week_height_count * 30) - 1)+'px']\n }),on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.$emit('viewSchedule', eventItem)}}},[_c('p',{staticClass:\"subject\"},[_vm._v(\" \"+_vm._s(eventItem.subject)+\" \")])])}),0)}),0)}),0)])])])])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"time-wrap\"},[_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"12\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"1\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"2\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"3\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"4\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"5\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"6\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"7\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"8\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"9\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"10\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"11\"),_c('em',[_vm._v(\"am\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"12\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"1\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"2\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"3\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"4\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"5\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"6\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"7\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"8\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"9\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"10\"),_c('em',[_vm._v(\"pm\")])])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(\"11\"),_c('em',[_vm._v(\"pm\")])])])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport CalendarItem from '@calendar/components/View/CalendarItem.vue'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\nimport * as dateutil from '@/util/date-helper'\r\n@Component({\r\n components: { CalendarItem, WebMailBottom },\r\n computed: {\r\n ...mapGetters({\r\n monthMatrix: types.CALENDAR_MONTH_MATRIX_LIST,\r\n dateMatrix: types.CALENDAR_DATE_MATRIX_LIST,\r\n currentDate: types.COMMON_DATE_CURRENT,\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n selectDate: types.COMMON_DATE_SELECT,\r\n })\r\n }\r\n})\r\nexport default class DayView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n monthMatrix!: Array>\r\n dateMatrix!: Array>\r\n currentDate!: calendar.DateItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectDate!: (item: calendar.DateItem) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n Select!: calendar.DateItem\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get weekSlideList() {\r\n let WP = dateutil.uGetWeekStartPrev(this.currentDate.date);\r\n let W = dateutil.uGetWeekStartDate(this.currentDate.date);\r\n let WN = dateutil.uGetWeekEndNext(this.currentDate.date);\r\n let WPL = [] = dateutil.uGetDaysInWeek(WP);\r\n let WL = [] = dateutil.uGetDaysInWeek(W);\r\n let WNL = [] = dateutil.uGetDaysInWeek(WN);\r\n let All = WPL.concat(WL);\r\n let AllT = All.concat(WNL);\r\n\r\n return AllT.map((x) => {\r\n if (!this.Select) {\r\n this.Select = this.currentDate;\r\n }\r\n let isSelected = dateutil.uGetDateFormat('yyyy-MM-DD', x) == dateutil.uGetDateFormat('yyyy-MM-DD', this.Select.date);\r\n let isToday = dateutil.uGetDateFormat('yyyy-MM-DD', x) == dateutil.uGetDateFormat('yyyy-MM-DD');\r\n return {\r\n value: x.getDate(),\r\n date: x, // 날짜\r\n isToday: isToday, // 오늘인지 여부\r\n isSelected: isSelected, // 선택여부 \r\n isSun: x.getDay() == 0, // 일요일 여부\r\n isSat: x.getDay() == 6, // 토요일 여부 \r\n }\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('monthMatrix')\r\n onMatrixChanged(newVal: Array>) {\r\n this.$nextTick(() => { \r\n this.dayScrollFitTo('date selected');\r\n });\r\n }\r\n\r\n @Watch('currentDate')\r\n onCurrentDateChanged(newVal: calendar.DateItem) {\r\n this.Select = this.currentDate\r\n }\r\n\r\n getDayDate(witem: calendar.DateItem) {\r\n witem.isSelected = true;\r\n this.selectDate(witem);\r\n this.Select = witem;\r\n\r\n this.dayScrollFitTo('date selected');\r\n }\r\n\r\n dayScrollFitTo(selector: string) { \r\n var dayWrap = this.$refs.dayWrap as HTMLDivElement;\r\n\r\n if(dayWrap) { \r\n var bodyWidth = document.body.clientWidth / 2;\r\n var selectElem = document.getElementsByClassName(selector)[0] as HTMLElement;\r\n dayWrap.scrollLeft = selectElem.offsetLeft - bodyWidth; \r\n } \r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DayView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DayView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DayView.vue?vue&type=template&id=3b75dca6&\"\nimport script from \"./DayView.ts?vue&type=script&lang=ts&\"\nexport * from \"./DayView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal\",style:({display: _vm.show?'block':'none'}),on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"modal-wrap\"},[_c('div',{staticClass:\"modal-content row-content\"},[_c('div',{staticClass:\"modal-items\"},[_c('div',{staticClass:\"item\"},[_c('a',{staticClass:\"item-btn\",on:{\"click\":function($event){return _vm.$emit('cAppointment', 'this')}}},[_c('i',{staticClass:\"icon-calendar-today\",attrs:{\"name\":\"recurring\",\"value\":\"OccurrenceOrException\"}}),_vm._v(\" \"+_vm._s(_vm.$t('W_Schedule_ThisScheduleT'))+\" \")])]),_c('div',{staticClass:\"item\"},[_c('a',{staticClass:\"item-btn\",on:{\"click\":function($event){return _vm.$emit('cAppointment', 'all')}}},[_c('i',{staticClass:\"icon-calendar-today\",attrs:{\"name\":\"recurring\",\"value\":\"Master\"}}),_vm._v(\" \"+_vm._s(_vm.$t('W_Schedule_AllScheduleT'))+\" \")])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n@Component({\r\n})\r\nexport default class RecurringScheduleModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringScheduleModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringScheduleModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecurringScheduleModal.vue?vue&type=template&id=7e0ab1a0&\"\nimport script from \"./RecurringScheduleModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecurringScheduleModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport MonthView from '@calendar/components/View/MonthView.vue'\r\nimport WeekView from '@calendar/components/View/WeekView.vue'\r\nimport DayView from '@calendar/components/View/DayView.vue'\r\nimport RecurringScheduleModal from '@calendar/components/Modals/RecurringScheduleModal.vue'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\nimport { EnumCalendarViewType } from '../types'\r\nimport api from '@calendar/api'\r\n@Component({\r\n components: { \r\n WebMailBottom,\r\n MonthView,\r\n WeekView,\r\n DayView,\r\n RecurringScheduleModal\r\n },\r\n methods: {\r\n ...mapActions({\r\n loadFolderTree: types.FOLDER_LOAD_TREE,\r\n loadEventList: types.CALENDAR_EVENT_LOAD_LIST,\r\n setCalendarMode: types.CALENDAR_VIEWMODE_CHANGE,\r\n loadCalendarPrev: types.COMMON_CALENDAR_PREV,\r\n loadCalendarNext: types.COMMON_CALENDAR_NEXT,\r\n changeDate: types.COMMON_CHANGE_DATE\r\n }),\r\n ...mapMutations({\r\n setCalendarItem: types.CURRENT_CALENDAR_ITEM,\r\n setAppointment: types.CALENDAR_CURRENT_APPOINTMENT,\r\n })\r\n },\r\n computed: mapGetters({\r\n currentDate: types.COMMON_DATE_CURRENT\r\n })\r\n\r\n})\r\nexport default class CalendarContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String, default: 'month' }) mode!: string\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadFolderTree!: () => Promise;\r\n loadEventList!: (viewType: string) => void\r\n setCalendarMode!: (mode: string) => void\r\n loadCalendarPrev!: (item: calendar.DateItem) => void\r\n loadCalendarNext!: (item: calendar.DateItem) => void\r\n changeDate!: (item: calendar.DateItem) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCalendarItem!: (item: calendar.CalendarItem) => void\r\n setAppointment!: (appointment: any) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentDate!: calendar.DateItem\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n showRecurringScheduleModal:boolean = false\r\n selectItem!: calendar.CalendarItem\r\n AppointmentType: string = 'OccurrenceOrException'\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('mode')\r\n onChangedMode(newValue: string) {\r\n this.setCalendarMode(newValue)\r\n }\r\n\r\n prev() {\r\n this.loadCalendarPrev(this.currentDate)\r\n }\r\n\r\n next() {\r\n this.loadCalendarNext(this.currentDate)\r\n }\r\n\r\n viewSchedule(eventItem: calendar.CalendarItem) {\r\n if(eventItem.id && eventItem.id != null) {\r\n //반복일정이면\r\n if (eventItem.appointmentType == 'Occurrence' || eventItem.appointmentType == 'Exception') {\r\n this.showRecurringScheduleModal = true;\r\n this.selectItem = eventItem;\r\n }\r\n //반복일정 아니면(Single)\r\n else {\r\n this.setCalendarItem(eventItem);\r\n this.$router.push({\r\n path: '/calendar/read',\r\n query: { itemid: eventItem.id, target: eventItem.target, bname: this.$route.name + '' }\r\n })\r\n }\r\n } \r\n }\r\n\r\n cAppointment(option: string) {\r\n if (option === 'this') { \r\n this.AppointmentType = 'OccurrenceOrException';\r\n this.setAppointment(this.AppointmentType);\r\n this.beforeView();\r\n }\r\n else if (option === 'all') { \r\n this.AppointmentType = 'Master';\r\n this.setAppointment(this.AppointmentType);\r\n this.beforeView();\r\n }\r\n }\r\n\r\n beforeView() {\r\n this.setCalendarItem(this.selectItem);\r\n if (this.selectItem != null) {\r\n const _target = this.selectItem.target;\r\n if (this.AppointmentType == 'OccurrenceOrException') {\r\n if (this.selectItem.isEWS) {\r\n this.$router.push({\r\n path: '/calendar/read',\r\n query: {\r\n itemid: this.selectItem.id,\r\n target: _target,\r\n bname: this.$route.name + '',\r\n occitem: JSON.stringify((this.selectItem)),\r\n }\r\n });\r\n } else {\r\n if (this.selectItem.appointmentType == 'Occurrence') {\r\n this.$router.push({\r\n path: '/calendar/read',\r\n query: {\r\n itemid: this.selectItem.db_masterID.toString(),\r\n target: _target,\r\n appoint: this.AppointmentType,\r\n occitem: JSON.stringify((this.selectItem)),\r\n }\r\n })\r\n } else {\r\n this.$router.push({\r\n path: '/calendar/read',\r\n query: {\r\n itemid: this.selectItem.id.toString(),\r\n target: _target,\r\n appoint: this.AppointmentType,\r\n occitem: JSON.stringify((this.selectItem)),\r\n }\r\n })\r\n }\r\n }\r\n }\r\n //master\r\n else {\r\n if (this.selectItem.isEWS) {\r\n api.ews_calendar.getRecurringMasterID(this.selectItem.id)\r\n .then((masterID: string) => { \r\n return this.$router.push({\r\n path: '/calendar/read',\r\n query: {\r\n itemid: masterID,\r\n target: _target,\r\n }\r\n });\r\n });\r\n } else { \r\n return this.$router.push({\r\n path: '/calendar/read',\r\n query: {\r\n itemid: this.selectItem.db_masterID.toString(),\r\n target: _target,\r\n }\r\n });\r\n }\r\n }\r\n }\r\n } \r\n\r\n viewMore(item: calendar.DateItem) {\r\n this.changeDate(item)\r\n this.$emit('modeChange', 'day')\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.loadFolderTree().then(() => {\r\n this.loadEventList(EnumCalendarViewType.Month)\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarContainer.vue?vue&type=template&id=b93c795a&\"\nimport script from \"./CalendarContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./CalendarContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport CalendarContainer from '@calendar/containers/CalendarContainer.vue'\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport { EnumCalendarViewType } from '../types'\r\n\r\n@Component({\r\n components: { PageHeaderWithActionBar, CalendarContainer },\r\n computed: {\r\n ...mapGetters({\r\n currentDate: types.COMMON_DATE_CURRENT,\r\n currentMode: types.CALENDAR_VIEWMODE\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n selectToday: types.COMMON_DATE_SELECT_TODAY\r\n })\r\n }\r\n})\r\nexport default class CalendarView extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentDate!: calendar.DateItem\r\n currentMode!: EnumCalendarViewType\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectToday!: () => Promise\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n modeChangeOpen: boolean = false\r\n mode: string = 'month'\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get dateDisplay() {\r\n return dateutil.uGetDateFormat(this.$t('M_Schedule_Dateformat2').toString(), this.currentDate.date)\r\n }\r\n\r\n modeChange(mode: string) {\r\n this.mode = mode\r\n this.modeChangeOpen = false\r\n }\r\n\r\n goToday() {\r\n this.selectToday().then(res => {\r\n if (this.mode == 'week') {\r\n this.$nextTick(() => {\r\n var dayWrap = document.getElementsByClassName('schedule week')[0] as HTMLElement;\r\n var todayElem = document.getElementsByClassName('date-select today')[0] as HTMLElement;\r\n dayWrap.scrollLeft = todayElem.offsetLeft;\r\n })\r\n }\r\n })\r\n }\r\n\r\n prev() {\r\n (this.$refs.calendarContainer as any).prev()\r\n }\r\n\r\n next() {\r\n (this.$refs.calendarContainer as any).next()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.mode = this.currentMode\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./CalendarView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarView.vue?vue&type=template&id=26920700&\"\nimport script from \"./CalendarView.ts?vue&type=script&lang=ts&\"\nexport * from \"./CalendarView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',[_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.actionOpen = !_vm.actionOpen}}},[_c('i',{staticClass:\"icon-more\"})]),_c('div',{class:['dropdown-content', {show: _vm.actionOpen}]},[_c('ul',[(_vm.isUpdate)?_c('li',[_c('a',{on:{\"click\":_vm.updateItem}},[_c('i',{staticClass:\"icon-write\"}),_vm._v(_vm._s(_vm.$t('일정_수정'))+\" \")])]):_vm._e(),(_vm.isDelete)?_c('li',[_c('a',{on:{\"click\":_vm.deleteItem}},[_c('i',{staticClass:\"icon-bin\"}),_vm._v(_vm._s(_vm.$t('일정_삭제'))+\" \")])]):_vm._e(),(_vm.currentItem.isAllowCancel)?_c('li',[_c('a',{on:{\"click\":_vm.cancelItem}},[_c('i',{staticClass:\"icon-close\"}),_vm._v(_vm._s(_vm.$t('W_Schedule_CancelSchedule'))+\" \")])]):_vm._e()])])])]),_c('ReadContainer',{on:{\"setReserveRequestItem\":_vm.setReserveRequestItem}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('div',{staticClass:\"write-area sche-view-area\"},[_c('ReadForm',{attrs:{\"item\":_vm.item,\"conference\":_vm.conference},on:{\"showModal\":function($event){_vm.showAttendanceModal = true}}})],1)]),_c('AttendanceModal',{attrs:{\"show\":_vm.showAttendanceModal,\"item\":_vm.item},on:{\"accept\":_vm.accept,\"decline\":_vm.decline,\"close\":function($event){_vm.showAttendanceModal = false}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('모임_참석여부').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('div',{staticClass:\"write-area sche-view-area\"},[_c('form',[_c('div',{staticClass:\"ip-subject\"},[_c('div',{staticClass:\"form\"},[_c('h4',[_vm._v(_vm._s(_vm.item.subject))])])]),_c('div',{staticClass:\"ip-time\"},[_c('h4',[_c('i',{staticClass:\"icon-calendar\"})]),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Startdate')))]),_c('p',[_vm._v(_vm._s(_vm.item.start))])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_StartTime')))]),_c('p',[_vm._v(_vm._s(_vm.item.starttime))])])])])]),_c('div',{staticClass:\"ip-time\"},[_c('h4',[_c('i',{staticClass:\"icon-calendar\"})]),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Enddate')))]),_c('p',[_vm._v(_vm._s(_vm.item.end))])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_EndTime')))]),_c('p',[_vm._v(_vm._s(_vm.item.endtime))])])])])]),_c('div',{staticClass:\"ip-location\"},[_c('h4',[_c('i',{staticClass:\"icon-location\"})]),_c('div',{staticClass:\"form\"},[_c('a',[_vm._v(_vm._s(_vm.item.location))])])])])]),_c('div',{staticClass:\"layer-f-btn-wrap\"},[_c('div',{staticClass:\"layer-f-btn\",on:{\"click\":function($event){return _vm.$emit('accept')}}},[_c('a',[_c('i',{staticClass:\"icon-check-mark green\"})])]),_c('div',{staticClass:\"layer-f-btn\",on:{\"click\":function($event){return _vm.$emit('decline')}}},[_c('a',[_c('i',{staticClass:\"icon-denied red\"})])])])]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\n@Component({\r\n components: {\r\n PopupModal\r\n }\r\n})\r\nexport default class AttendanceModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) item!: calendar.CalendarItem\r\n\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./AttendanceModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./AttendanceModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AttendanceModal.vue?vue&type=template&id=1ed4a024&\"\nimport script from \"./AttendanceModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./AttendanceModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',[_c('div',{staticClass:\"ip-subject\"},[_c('div',{staticClass:\"form\"},[_vm._v(\" \"+_vm._s(_vm.item.subject)+\" \")])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(0),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Startdate')))]),_c('p',[_vm._v(_vm._s(_vm.item.start))])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_StartTime')))]),_c('p',[_vm._v(_vm._s(_vm.item.starttime))])])])])]),_c('div',{staticClass:\"ip-time\"},[_vm._m(1),_c('div',{staticClass:\"form\"},[_c('a',{staticClass:\"form-date-selected\"},[_c('div',{staticClass:\"date\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_Enddate')))]),_c('p',[_vm._v(_vm._s(_vm.item.end))])]),_c('div',{staticClass:\"time\"},[_c('span',[_vm._v(_vm._s(_vm.$t('W_Schedule_EndTime')))]),_c('p',[_vm._v(_vm._s(_vm.item.endtime))])])])])]),(_vm.item.isAllowAccept || _vm.item.isAllowDecline)?_c('div',{staticClass:\"ip-answer\"},[_c('h4',[_vm._m(2),(_vm.accepted)?_c('i',{staticClass:\"icon-check-mark green\"}):_vm._e(),(_vm.declined)?_c('i',{staticClass:\"icon-denied red\"}):_vm._e()]),_c('div',{staticClass:\"form\",on:{\"click\":function($event){return _vm.$emit('showModal')}}},[_c('div',{staticClass:\"con-wrap\"},[_c('div',{staticClass:\"con-left\"},[(_vm.item.isAllowAccept && _vm.item.isAllowDecline)?_c('p',[_vm._v(_vm._s(_vm.$t('모임_참석여부')))]):_vm._e(),(_vm.accepted)?_c('p',[_vm._v(_vm._s(_vm.$t('W_Schedule_Accept')))]):_vm._e(),(_vm.declined)?_c('p',[_vm._v(_vm._s(_vm.$t('W_Schedule_Reject')))]):_vm._e()])])])]):_vm._e(),_c('div',{staticClass:\"ip-time\"},[_vm._m(3),_c('div',{staticClass:\"form\"},[_c('div',{staticClass:\"con-wrap\"},[_c('div',{staticClass:\"con-left\"},[_c('p',[_vm._v(_vm._s(_vm.$t('W_Schedule_Allday')))])]),_c('div',{staticClass:\"con-right\"},[_c('label',{staticClass:\"switch\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.isAllDayEvent),expression:\"item.isAllDayEvent\"}],attrs:{\"type\":\"checkbox\",\"checked\":\"item.isAlldayEvent == true\",\"disabled\":_vm.item.isAllowUpdate},domProps:{\"checked\":Array.isArray(_vm.item.isAllDayEvent)?_vm._i(_vm.item.isAllDayEvent,null)>-1:(_vm.item.isAllDayEvent)},on:{\"change\":function($event){var $$a=_vm.item.isAllDayEvent,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.item, \"isAllDayEvent\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.item, \"isAllDayEvent\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.item, \"isAllDayEvent\", $$c)}}}}),_c('span',{staticClass:\"slider round\"})])])])])]),(_vm.item.isRecurring === 'False' && _vm.item.appointmentType != 'RecurringMaster')?_c('div',{staticClass:\"ip-rotate\"},[_vm._m(4),_c('div',{staticClass:\"form\"},[_c('a',[_vm._v(_vm._s(_vm.$t('반복안함')))])])]):_vm._e(),(_vm.item.isRecurring === 'True' || _vm.item.pidLidRecurring === 'True')?_c('div',{staticClass:\"ip-rotate\"},[_vm._m(5),_c('div',{staticClass:\"form\"},[_vm._v(\" \"+_vm._s(_vm.getRecurrencePatternDisplay)+\" \")])]):_vm._e(),_c('div',{staticClass:\"ip-location\"},[_vm._m(6),_c('div',{staticClass:\"form\"},[(!_vm.conferenceText)?_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_MeetingRoom')))]):_c('a',[_vm._v(_vm._s(_vm.conferenceText))])])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(7),_c('div',{staticClass:\"form\"},[_c('a',[_vm._v(_vm._s(_vm.item.location))])])]),_c('div',{staticClass:\"ip-location\"},[_vm._m(8),_c('div',{staticClass:\"form\"},[_c('a',[_vm._v(_vm._s(_vm.folderText))])])]),_c('div',{staticClass:\"ip-Rattend\"},[_vm._m(9),_c('div',{staticClass:\"form\"},[_c('a',[_vm._v(_vm._s(_vm.item.displayTo))])])]),_c('div',{staticClass:\"ip-Oattend\"},[_vm._m(10),_c('div',{staticClass:\"form\"},[_c('a',[_vm._v(_vm._s(_vm.item.displayCc))])])]),(_vm.item.reminderMinutesBeforeStart)?_c('div',{staticClass:\"ip-notice\"},[_vm._m(11),_c('div',{staticClass:\"form\"},[_c('a',{attrs:{\"id\":\"btnModal\"}},[_vm._v(_vm._s(_vm.$t('N분_전_알림', {number: _vm.item.reminderMinutesBeforeStart})))])])]):_vm._e(),_c('WriteBody',{attrs:{\"readonly\":true},model:{value:(_vm.item.body),callback:function ($$v) {_vm.$set(_vm.item, \"body\", $$v)},expression:\"item.body\"}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-calendar\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-calendar\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"icon-important-wrap\"},[_c('i',{staticClass:\"icon-important\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-time\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-rotate\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-rotate\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-location\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-location\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-folder\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-user\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-user\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_c('i',{staticClass:\"icon-bell\"})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WriteBody from '@calendar/components/Write/WriteBody.vue'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport { mapGetters } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\n@Component({\r\n components: {\r\n WriteBody\r\n },\r\n computed: {\r\n ...mapGetters({\r\n folderListTree: types.FOLDER_LIST_TREE\r\n })\r\n }\r\n})\r\nexport default class ReadForm extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: calendar.CalendarItem\r\n @Prop({ type: Object }) conference!: any\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n folderListTree!: any\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n accepted: boolean = false // 모임 참석 수락함\r\n declined: boolean = false // 모임 참석 거절함\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get conferenceText() {\r\n if (this.conference) {\r\n return this.conference.groupDisplayName + ' > ' + this.conference.displayName\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n get startDateText() {\r\n return dateutil.uGetDateFormat('yyyy-mm-dd', dateutil.IEDate(this.item.start)); \r\n }\r\n\r\n get endDateText() {\r\n return dateutil.uGetDateFormat('yyyy-mm-dd', dateutil.IEDate(this.item.end)); \r\n }\r\n\r\n get reminderText() {\r\n var number = this.item.reminderMinutesBeforeStart || 0\r\n if(number === 60) {\r\n return this.$t('N시간_전_알림', {number: 1}).toString()\r\n }\r\n else if(number === 1440) {\r\n return this.$t('N일_전_알림', {number: 1}).toString()\r\n }\r\n else if(number === 2880) {\r\n return this.$t('N일_전_알림', {number: 2}).toString()\r\n }\r\n else if(number === 4320) {\r\n return this.$t('N일_전_알림', {number: 3}).toString()\r\n }\r\n else if(number < 60) {\r\n return this.$t('N분_전_알림', {number: number}).toString()\r\n }\r\n }\r\n\r\n get folderText() {\r\n var text = '폴더'\r\n if (this.item.parentId) {\r\n var displayName = this.folderListTree.mylist.items.filter((x: any) => x.id == this.item.parentId)[0]?.displayName\r\n text = displayName ? displayName : ''\r\n }\r\n return text\r\n }\r\n\r\n /**\r\n * 반복일정 설정 내용을 표시합니다\r\n */\r\n get getRecurrencePatternDisplay() {\r\n let beautifyStartTime\r\n let beautifyEndTime\r\n\r\n if (this.item.starttime && this.item.starttime.length > 3) {\r\n beautifyStartTime = this.item.starttime.substr(0, this.item.starttime.length - 3)\r\n }\r\n if (this.item.endtime && this.item.endtime.length > 3) {\r\n beautifyEndTime = this.item.endtime.substr(0, this.item.endtime.length - 3)\r\n }\r\n\r\n let display: string = ''\r\n //ex) 기간 3일 : 3.00:00:00 -> 3\r\n let scheduleDuration = this.item.scheduleDuration.split('.')[0]\r\n\r\n if (\r\n false &&\r\n this.item.isRecurring.toString() === 'False' &&\r\n this.item.appointmentType != 'RecurringMaster'\r\n ) {\r\n return (display = this.item.pidLidRecurrencePattern)\r\n }\r\n\r\n if (\r\n this.item.isRecurring.toString() === 'True' ||\r\n this.item.appointmentType == 'RecurringMaster'\r\n ) {\r\n if (this.item.appointmentType == 'Occurrence' || this.item.appointmentType == 'Exception') {\r\n display = this.item.pidLidRecurrencePattern\r\n }\r\n //'전체약속'\r\n else {\r\n let beautifyStartDate = this.item.recurrence.startDate.split('T')[0]\r\n let beautifyEndDate\r\n if (this.item.recurrence.endDate != null) {\r\n beautifyEndDate = this.item.recurrence.endDate.split('T')[0]\r\n }\r\n //매일\r\n if (this.item.recurrence.ui_recurringType == 1) {\r\n if (this.item.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매 ${this.item.recurrence.interval}일씩 주기로 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매 ${this.item.recurrence.interval}일씩 주기로 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n //매주\r\n else if (this.item.recurrence.ui_recurringType == 2) {\r\n let weeklist = dateutil.uGetWeekArray([\r\n this.$t('W_Schedule_Sunday').toString(),\r\n this.$t('W_Schedule_Monday').toString(),\r\n this.$t('W_Schedule_Tuesday').toString(),\r\n this.$t('W_Schedule_Wednesday').toString(),\r\n this.$t('W_Schedule_Thursday').toString(),\r\n this.$t('W_Schedule_Friday').toString(),\r\n this.$t('W_Schedule_Saturday').toString(),\r\n ])\r\n // 반복일정 수정할 때 요일 체크한거 화면에 display\r\n let weekArrayString = weeklist\r\n .filter((x: any) => this.item.recurrence.daysOfTheWeekArray?.indexOf(x.value) != -1)\r\n .map((x) => {\r\n return x.text\r\n })\r\n .join(',')\r\n if (this.item.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매${this.item.recurrence.interval}주마다 ${weekArrayString} ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매${this.item.recurrence.interval}주마다 ${weekArrayString} ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n //매월\r\n else if (this.item.recurrence.ui_recurringType == 3) {\r\n if (this.item.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매월 ${this.item.recurrence.interval}개월마다 ${this.item.recurrence.dayOfMonth}일에 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매월 ${this.item.recurrence.interval}개월마다 ${this.item.recurrence.dayOfMonth}일에 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n //매년\r\n else if (this.item.recurrence.ui_recurringType == 4) {\r\n if (this.item.recurrence.endDate != null) {\r\n display = `${beautifyStartDate} 부터 ${beautifyEndDate} 까지 매년 ${this.item.recurrence.monthValue}월 ${this.item.recurrence.dayOfMonth}일마다 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n } else {\r\n display = `${beautifyStartDate} 부터 매년 ${this.item.recurrence.monthValue}월 ${this.item.recurrence.dayOfMonth}일마다 ${beautifyStartTime} - ${beautifyEndTime}에 반복`\r\n }\r\n }\r\n }\r\n }\r\n if (!this.item.isEWS) {\r\n this.item.pidLidRecurrencePattern = display\r\n }\r\n return display\r\n }\r\n\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadForm.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadForm.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadForm.vue?vue&type=template&id=902b0bd0&\"\nimport script from \"./ReadForm.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadForm.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport AttendanceModal from '@calendar/components/Modals/AttendanceModal.vue'\r\nimport ReadForm from '@calendar/components/Read/ReadForm.vue'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as types from '@calendar/store/types'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport api from '@calendar/api'\r\n\r\n@Component({\r\n components: {\r\n AttendanceModal, ReadForm\r\n },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n //item: types.CURRENT_CALENDAR_ITEM\r\n }),\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCalendarItem: types.CURRENT_CALENDAR_ITEM\r\n })\r\n }\r\n})\r\nexport default class ReadContainer extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n //item!: calendar.CalendarItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCalendarItem!: (item: calendar.CalendarItem) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n // 이수 - 회의실 목록에 db 자원관리 회의실 목록과 연동\r\n conferenceList: calendar.ConferenceResourceItem[] = [];\r\n conferenceId: number | string = ''\r\n reserveRequestId: number | null = null\r\n selectConference: calendar.ConferenceResourceItem | null = null\r\n \r\n reserveRequestItem: calendar.RequestCalendarMapItem | null = null\r\n conference: any | null = null\r\n\r\n bodyLoaded: boolean = false\r\n showAttendanceModal: boolean = false\r\n\r\n item: calendar.CalendarItem = {\r\n body: '',\r\n pidLidRecurrenceType: 1,\r\n //attachments: [] as any,\r\n hasAttachments: false,\r\n location: '',\r\n subject: '',\r\n code: '',\r\n codeValues: [] as string[],\r\n status: 'S0',\r\n resourceId: null,\r\n resources: [] as Array,\r\n ui_resourceArray: [] as Array,\r\n recurrence: {\r\n startDate: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n endDate: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n ui_useRecurringButton: true,\r\n ui_useDefaultDate: true,\r\n ui_useRecurringDisplay: false,\r\n ui_useRecurring: false,\r\n ui_recurringType: 1,\r\n ui_endType: '1',\r\n monthValue: (new Date().getMonth() + 1),\r\n firstDayOfWeekValue: 1,\r\n daysOfTheWeekArray: [] as number[],\r\n interval: 1,\r\n numberOfOccurrences: 0,\r\n } as calendar.CalendarItemRecurrence,\r\n isReadyData: false,\r\n isEWS: false,\r\n delegateUser: '',\r\n } as unknown as calendar.CalendarItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 일정을 수락합니다\r\n */\r\n accept() {\r\n if (this.item && this.item.id) {\r\n api.ews_calendar.acceptEvent(this.item.id).then((res) => {\r\n\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * 일정을 거절합니다\r\n */\r\n decline() {\r\n if (this.item && this.item.id) {\r\n api.ews_calendar.declineEvent(this.item.id).then((res) => {\r\n \r\n })\r\n }\r\n }\r\n\r\n /**\r\n * 참석자 태그\r\n * @param list\r\n */\r\n convertRecToTag(list?: mail.EwsRecipient[]) {\r\n return (\r\n list?.map((r) => ({\r\n text: r.name,\r\n value: r.address,\r\n })) || []\r\n )\r\n }\r\n\r\n load() {\r\n let _target = this.$route.query.target || this.item.target\r\n let _id = (this.$route.query.itemid as string) || this.item.id\r\n let _occitem = (window as any).opener?.occitem || (this.$route.query.occitem as string)\r\n let sitem: calendar.CalendarItem | null = null\r\n\r\n if (_occitem) {\r\n sitem = JSON.parse(decodeURIComponent(_occitem)) as calendar.CalendarItem\r\n }\r\n\r\n let action: Promise = Promise.resolve()\r\n\r\n if (_target !== 'MY' && _target !== 'SHARE') {\r\n if (sitem != null && sitem.appointmentType === 'Exception') {\r\n action = api.db_calendar.getRCalendarEvent({\r\n ID: Number(sitem.id),\r\n PersonCode: (this.User as any).personCode,\r\n })\r\n } else {\r\n action = api.db_calendar.getCalendarEvent({\r\n ID: Number(_id),\r\n PersonCode: (this.User as any).personCode,\r\n })\r\n }\r\n } else {\r\n action = api.ews_calendar.getDetail(_id)\r\n }\r\n\r\n // const uid = `uid-${Date.now()}`;\r\n // this.item.code = `CALENDAR_${this.User.id}_${uid}`;\r\n // this.item.codeValues = ['FL', 'Calendar', this.User.email, uid];\r\n return action\r\n .then(async (citem) => {\r\n if (sitem != null && sitem.db_masterID && sitem.appointmentType != 'Exception') {\r\n citem = {\r\n ...citem,\r\n ...sitem,\r\n }\r\n }\r\n\r\n if (citem.code) {\r\n const uid = 'uid-' + citem.code.split('uid-')[1]\r\n citem.codeValues = [this.User.comCode, 'Calendar', this.User.email, uid]\r\n }\r\n\r\n citem.isAllowAccept = false\r\n citem.isAllowCancel = false\r\n citem.isAllowDecline = false\r\n citem.isAllowDelete = false\r\n citem.isAllowUpdate = false\r\n\r\n if (_target == 'MY') {\r\n if (citem.allowedResponseActions) {\r\n citem.isAllowAccept = citem.allowedResponseActions.indexOf('Accept') != -1\r\n citem.isAllowDecline = citem.allowedResponseActions.indexOf('Decline') != -1\r\n citem.isAllowCancel = citem.allowedResponseActions.indexOf('Cancel') != -1\r\n }\r\n\r\n citem.isAllowUpdate = citem.organizer?.address == this.User.email\r\n citem.isAllowDelete = true || citem.organizer?.address == this.User.email\r\n\r\n if (citem.isAllowCancel) {\r\n let repCount =\r\n (citem.requiredAttendees || []).filter((x: any) => x.address != this.User.email)\r\n .length +\r\n (citem.optionalAttendees || []).filter((x: any) => x.address != this.User.email)\r\n .length\r\n if (!repCount) {\r\n citem.isAllowCancel = false\r\n } else {\r\n if (\r\n [...citem.requiredAttendees, ...citem.optionalAttendees].filter(\r\n (x) => !x.address || x.address.indexOf('@') == -1\r\n ).length\r\n ) {\r\n citem.isAllowCancel = false\r\n }\r\n }\r\n }\r\n } else {\r\n if (_target == 'CM') {\r\n if (citem.update) {\r\n citem.isAllowUpdate = citem.organizer?.address == this.User.email\r\n }\r\n\r\n if (citem.delete) {\r\n citem.isAllowDelete = citem.organizer?.address == this.User.email\r\n }\r\n } else if (_target == 'DC') {\r\n citem.isAllowUpdate = citem.organizer?.address == this.User.email\r\n citem.isAllowDelete = citem.organizer?.address == this.User.email\r\n }\r\n }\r\n\r\n citem.parentId = (citem as any).parentFolderId\r\n\r\n if (citem.start && (citem.start.indexOf(' ') != -1 || citem.start.indexOf('T') != -1)) {\r\n citem.starttime = dateutil.DateAndTimeSplitor(citem.start)[1]\r\n citem.start = dateutil.DateAndTimeSplitor(citem.start)[0]\r\n }\r\n\r\n if (citem.end && (citem.end.indexOf(' ') != -1 || citem.end.indexOf('T') != -1)) {\r\n citem.endtime = dateutil.DateAndTimeSplitor(citem.end)[1]\r\n citem.end = dateutil.DateAndTimeSplitor(citem.end)[0]\r\n }\r\n\r\n if (typeof citem.isAllDayEvent === 'string') {\r\n citem.isAllDayEvent = (citem.isAllDayEvent as any) === 'True' ? true : false\r\n // 하루종일 일정일 경우 end에서 하루를 빼줘야 함\r\n if (citem.isAllDayEvent) {\r\n let eDate = dateutil.IEDate(citem.end)\r\n eDate.setDate(eDate.getDate() - 1)\r\n citem.end = dateutil.uGetDateFormat('yyyy-MM-DD', eDate)\r\n }\r\n }\r\n // if (typeof citem.isAllDayEvent == typeof '') {\r\n // citem.isAllDayEvent = (citem.isAllDayEvent as any) === 'True' ? true : false\r\n // }\r\n\r\n citem.requiredAttendees = this.convertRecToTag(citem.requiredAttendees) as any\r\n citem.optionalAttendees = this.convertRecToTag(citem.optionalAttendees) as any\r\n\r\n if (!citem.recurrence) {\r\n citem.recurrence = Object.create(null)\r\n Object.assign(citem.recurrence, this.item.recurrence)\r\n citem.pidLidRecurrenceType = 1\r\n }\r\n\r\n if (citem.pidLidRecurrenceType) {\r\n citem.recurrence.ui_recurringType = citem.pidLidRecurrenceType\r\n }\r\n\r\n switch (citem.appointmentType) {\r\n case 'Single':\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = false\r\n citem.recurrence.ui_useRecurring = false\r\n break\r\n case 'RecurringMaster':\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = false\r\n citem.recurrence.ui_useRecurringDisplay = true\r\n citem.recurrence.ui_useRecurring = true\r\n break\r\n case 'Occurrence':\r\n case 'Exception':\r\n citem.recurrence.ui_useRecurringButton = false\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = true\r\n citem.recurrence.ui_useRecurring = true\r\n break\r\n default:\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = false\r\n citem.recurrence.ui_useRecurring = false\r\n break\r\n }\r\n\r\n this.setCalendarItem({\r\n ...this.item,\r\n ...citem,\r\n })\r\n this.item = {\r\n ...this.item,\r\n ...citem,\r\n }\r\n\r\n if (this.item.isEWS) {\r\n const [res, body] = await Promise.all([\r\n api.ews_resource.getRooms(),\r\n api.ews_calendar.getBody(citem.id),\r\n ])\r\n this.item.ui_resourceArray = [\r\n { text: 'None', value: null },\r\n ...(res as Array)\r\n .filter((x) => x.depth == 1)\r\n .map((x) => {\r\n return { text: x.name, value: x.address }\r\n }),\r\n ]\r\n this.item.isReadyData = true\r\n this.item.body = body\r\n this.bodyLoaded = true\r\n } else {\r\n this.bodyLoaded = true\r\n if (this.item.isAllowUpdate) {\r\n //this.item.body = this.removeBigFileHtml(this.item.body);\r\n }\r\n const res = await api.db_resource.getFindCalendarResource({ Type: 'RM' })\r\n this.item.ui_resourceArray = [\r\n { text: 'None', value: null },\r\n ...res.map((x) => {\r\n return { text: x.displayName, value: x.id }\r\n }),\r\n ]\r\n this.item.isReadyData = true\r\n }\r\n })\r\n .catch((err) => {\r\n console.log('loadErr', err)\r\n })\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async mounted() {\r\n //this.loading(true)\r\n try {\r\n await this.load()\r\n\r\n if (\r\n this.item.start &&\r\n (this.item.start.indexOf(' ') != -1 || this.item.start.indexOf('T') != -1)\r\n ) {\r\n this.item.starttime = dateutil.DateAndTimeSplitor(this.item.start)[1]\r\n this.item.start = dateutil.DateAndTimeSplitor(this.item.start)[0]\r\n }\r\n\r\n if (this.item.end && (this.item.end.indexOf(' ') != -1 || this.item.end.indexOf('T') != -1)) {\r\n this.item.endtime = dateutil.DateAndTimeSplitor(this.item.end)[1]\r\n this.item.end = dateutil.DateAndTimeSplitor(this.item.end)[0]\r\n }\r\n\r\n if (typeof this.item.isAllDayEvent == typeof '') {\r\n this.item.isAllDayEvent = (this.item.isAllDayEvent as any) === 'True' ? true : false\r\n }\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n //this.loading(false)\r\n\r\n api.db_resourceReserve.getConferenceResource(this.User.comCode).then((res: any[]) => {\r\n this.conferenceList = res\r\n this.conferenceReserveCheck();\r\n })\r\n }\r\n\r\n created() {\r\n \r\n }\r\n\r\n conferenceReserveCheck() {\r\n api.db_resourceReserve.getMapByCalendarItemId(encodeURIComponent(this.item.id)).then((res: any) => {\r\n console.log('res', res)\r\n if (res) {\r\n this.reserveRequestItem = res\r\n this.conferenceId = res.reserveResourceId\r\n this.reserveRequestId = res.reserveRequestId\r\n this.conference = this.conferenceList.find((x: any) => x.resourceId == this.reserveRequestItem?.reserveResourceId)\r\n this.$emit('setReserveRequestItem', this.reserveRequestItem)\r\n }\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadContainer.vue?vue&type=template&id=4deff05d&\"\nimport script from \"./ReadContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import accountStore from '@account/store'\r\n\r\nexport const GetMenuPermission = (menuId: number): any => {\r\n \r\n let current = accountStore.state.current\r\n if(current){\r\n const menu = current.permissions.menues.filter(menu =>{\r\n return menu.id == menuId\r\n })\r\n \r\n\r\n if(menu.length > 0){\r\n return menu.map(item => {\r\n return {\r\n Read: item.r,\r\n Write: item.c,\r\n Update: item.u,\r\n Delete: item.d,\r\n Print: item.p,\r\n IsAdmin: item.manager,\r\n MenuId : menuId\r\n }\r\n })[0] \r\n }\r\n } \r\n\r\n return {} as any\r\n}\r\n\r\nexport const IsSuperadmin = () : boolean => {\r\n const current = accountStore.state.current\r\n\r\n if(current)\r\n return current.permissions.isSuperAdmin\r\n else\r\n return false\r\n}\r\n\r\nexport const IsCompanyManager = () : boolean => {\r\n const current = accountStore.state.current\r\n\r\n if(current)\r\n return current.permissions.isCompanyManager\r\n else\r\n return false\r\n}\r\n\r\nexport const HasEditPermission = (menuId: number) : boolean =>{\r\n //작성자,담당자(회사) ,관리자 만 수정, 삭제 가능\r\n //체크\r\n if(IsSuperadmin()){\r\n return true\r\n }\r\n\r\n const menu = GetMenuPermission(menuId)\r\n if(menu.IsAdmin == true){\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n\r\n ","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ReadContainer from '@calendar/containers/ReadContainer.vue'\r\nimport { mapGetters } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\nimport api from '@calendar/api'\r\nimport { IsSuperadmin, IsCompanyManager } from '@/modules/@appbase/util/permission-helper'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, ReadContainer },\r\n computed: {\r\n ...mapGetters({\r\n currentItem: types.CURRENT_CALENDAR_ITEM,\r\n User: accountTypes.USER,\r\n })\r\n }\r\n})\r\nexport default class ReadView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentItem!: calendar.CalendarItem\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n actionOpen: boolean = false\r\n\r\n reserveRequestItem: calendar.RequestCalendarMapItem | null = null\r\n\r\n isUpdate: boolean = false\r\n isDelete: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async updateItem() {\r\n // 자원예약 승인 되지 않은것은 수정/삭제 불가 (부킹 테이블에 없는경우...)\r\n if (this.reserveRequestItem && !this.reserveRequestItem.approvalStatus) {\r\n await(window as any).alertAsync(this.$t('승인_대기_중입니다').toString())\r\n return false;\r\n }\r\n\r\n var target = this.$route.query.target\r\n this.$router.push(`/calendar/edit?itemid=${encodeURIComponent(this.currentItem.id)}&target=${target}`)\r\n }\r\n\r\n async deleteItem() {\r\n // 자원예약 승인 되지 않은것은 수정/삭제 불가 (부킹 테이블에 없는경우...)\r\n if (this.reserveRequestItem && !this.reserveRequestItem.approvalStatus) {\r\n await(window as any).alertAsync(this.$t('승인_대기_중입니다').toString())\r\n return false;\r\n }\r\n\r\n if (await(window as any).confirmAsync(this.$t('M_Schedule_ConfirmDelete').toString())) {\r\n if (this.currentItem.isEWS) {\r\n api.ews_calendar.deleteEvent(this.currentItem.id).then((res) => {\r\n if (this.reserveRequestItem) {\r\n // 자원 예약 삭제\r\n this.conferenceReserveDelete()\r\n } else {\r\n if (res) this.$router.push('/calendar/main')\r\n }\r\n })\r\n } else {\r\n if (this.currentItem.appointmentType == 'Occurrence' || this.currentItem.appointmentType == 'Exception') {\r\n api.ews_calendar.deleteEvent(this.currentItem.id).then((res) => {\r\n if (res) this.$router.push('/calendar/main')\r\n })\r\n } else {\r\n api.db_calendar.deleteCalendarEvent(this.currentItem).then((res) => {\r\n if (res) this.$router.push('/calendar/main')\r\n })\r\n }\r\n }\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n async cancelItem() {\r\n // 자원예약 승인 되지 않은것은 수정/삭제 불가 (부킹 테이블에 없는경우...)\r\n if (this.reserveRequestItem && !this.reserveRequestItem.approvalStatus) {\r\n await(window as any).alertAsync(this.$t('승인_대기_중입니다').toString())\r\n return false;\r\n }\r\n\r\n if (await(window as any).confirmAsync(this.$t('M_Schedule_ConfirmCancel').toString())) {\r\n api.ews_calendar.cancelEvent(this.currentItem).then((res) => {\r\n if (res) this.$router.push('/calendar/main')\r\n })\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n setReserveRequestItem(item: any) {\r\n this.reserveRequestItem = item\r\n }\r\n\r\n // 부킹테이블에서 삭제\r\n conferenceReserveDelete() {\r\n\r\n // if (!await(window as any).confirmAsync(this.$t(\"정말_취소하시겠습니까\").toString())) return\r\n\r\n //this.contentLoaded = false\r\n //취소인데 선택일정일 때만 bookingItem 만 삭제 한다.\r\n\r\n //const { bookingId, open } = this.$route.query\r\n\r\n let reqParam: any = {\r\n bookingId: this.reserveRequestItem?.resourceBookingId,\r\n target: 1 //booking:1, request:0\r\n }\r\n\r\n\r\n api.db_resourceReserve.cancelReserveRequest(reqParam).then(async result => {\r\n\r\n if (result == true) {\r\n var reserveRequestId = 0\r\n if (this.reserveRequestItem) {\r\n reserveRequestId = this.reserveRequestItem.reserveRequestId\r\n }\r\n api.db_resourceReserve.deleteReserveRequestCalendarMap(reserveRequestId).then(async res => {\r\n if (res) {\r\n // await(window as any).alertAsync(this.$t(\"예약이_취소되었습니다\").toString()) \r\n this.$router.push('/calendar/main')\r\n } else {\r\n await(window as any).alertAsync(this.$t(\"예약이_취소가_실패하였습니다\").toString())\r\n }\r\n \r\n })\r\n \r\n } else {\r\n await(window as any).alertAsync(this.$t(\"예약이_취소가_실패하였습니다\").toString())\r\n }\r\n }).finally(() => {\r\n // this.contentLoaded = true\r\n // this.onCancelClick()\r\n })\r\n }\r\n\r\n beforeUpdate() {\r\n // [이수]\r\n // 회사일정 본인 및 관리자 삭제 기능\r\n // 아래 조건에서만 수정 삭제\r\n // - 최고관리자\r\n // - 회사관리자\r\n // - 회사일정관리자\r\n // - 본인이 작성한것\r\n var target = this.$route.query.target\r\n if (target == 'CM') {\r\n if (IsSuperadmin() || IsCompanyManager()) {\r\n this.isUpdate = true\r\n this.isDelete = true\r\n } else {\r\n this.isUpdate = this.currentItem.organizer?.address == this.User.email\r\n this.isDelete = this.currentItem.organizer?.address == this.User.email\r\n }\r\n } else {\r\n this.isUpdate = this.currentItem.isAllowUpdate\r\n this.isDelete = this.currentItem.isAllowDelete\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadView.vue?vue&type=template&id=4d53247e&\"\nimport script from \"./ReadView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageEditHeaderWithActionBar',{attrs:{\"title\":this.$t('W_Schedule_NewSchedule').toString(),\"eventName\":'calendar-close'}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.save}},[_c('i',{staticClass:\"icon-check-mark\"})])]),_c('WriteContainer',{ref:\"writeContainer\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('div',{staticClass:\"write-area sche-view-area\"},[_c('WriteForm',{attrs:{\"email\":_vm.email,\"folderName\":_vm.folderName,\"selectConference\":_vm.selectConference},on:{\"showModal\":_vm.showModal},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}})],1)]),_c('FolderModal',{attrs:{\"show\":_vm.showFolderModal},on:{\"close\":function($event){_vm.showFolderModal = false},\"setFolder\":_vm.setFolder},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('MeetingRoomModal',{attrs:{\"show\":_vm.showMeetingRoomModal},on:{\"close\":function($event){_vm.showMeetingRoomModal = false},\"setMeetingRoom\":_vm.setMeetingRoom},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('StartDateModal',{attrs:{\"show\":_vm.showStartDateModal},on:{\"close\":function($event){_vm.showStartDateModal = false}},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('EndDateModal',{attrs:{\"show\":_vm.showEndDateModal},on:{\"close\":function($event){_vm.showEndDateModal = false}},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('StartTimeModal',{attrs:{\"show\":_vm.showStartTimeModal},on:{\"close\":function($event){_vm.showStartTimeModal = false},\"setStartTime\":_vm.setStartTime}}),_c('EndTimeModal',{attrs:{\"show\":_vm.showEndTimeModal},on:{\"close\":function($event){_vm.showEndTimeModal = false},\"setEndTime\":_vm.setEndTime}}),_c('AlarmModal',{attrs:{\"show\":_vm.showAlarmModal},on:{\"close\":function($event){_vm.showAlarmModal = false},\"reminder\":_vm.setReminder}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteContainer.vue?vue&type=template&id=11a01a16&\"\nimport script from \"./WriteContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageEditHeaderWithActionBar from '@/components/common/Header/PageEditHeaderWithActionBar.vue'\r\nimport WriteContainer from '@calendar/containers/WriteContainer.vue'\r\n@Component({\r\n components: { PageEditHeaderWithActionBar, WriteContainer }\r\n})\r\nexport default class WriteView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n save() {\r\n (this.$refs.writeContainer as any).save()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteView.vue?vue&type=template&id=8fa0e1ea&\"\nimport script from \"./WriteView.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageEditHeaderWithActionBar',{attrs:{\"title\":this.$t('W_Schedule_Modify').toString()}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.edit}},[_c('i',{staticClass:\"icon-check-mark\"})])]),_c('EditContainer',{ref:\"editContainer\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('div',{staticClass:\"write-area sche-view-area\"},[_c('WriteForm',{attrs:{\"email\":_vm.email,\"folderName\":_vm.folderName,\"selectConference\":_vm.selectConference},on:{\"showModal\":_vm.showModal},model:{value:(_vm.editItem),callback:function ($$v) {_vm.editItem=$$v},expression:\"editItem\"}})],1)]),_c('FolderModal',{attrs:{\"show\":_vm.showFolderModal},on:{\"close\":function($event){_vm.showFolderModal = false},\"setFolder\":_vm.setFolder},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('MeetingRoomModal',{attrs:{\"show\":_vm.showMeetingRoomModal},on:{\"close\":function($event){_vm.showMeetingRoomModal = false},\"setMeetingRoom\":_vm.setMeetingRoom},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('StartDateModal',{attrs:{\"show\":_vm.showStartDateModal},on:{\"close\":function($event){_vm.showStartDateModal = false}},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('EndDateModal',{attrs:{\"show\":_vm.showEndDateModal},on:{\"close\":function($event){_vm.showEndDateModal = false}},model:{value:(_vm.item),callback:function ($$v) {_vm.item=$$v},expression:\"item\"}}),_c('StartTimeModal',{attrs:{\"show\":_vm.showStartTimeModal},on:{\"close\":function($event){_vm.showStartTimeModal = false},\"setStartTime\":_vm.setStartTime}}),_c('EndTimeModal',{attrs:{\"show\":_vm.showEndTimeModal},on:{\"close\":function($event){_vm.showEndTimeModal = false},\"setEndTime\":_vm.setEndTime}}),_c('AlarmModal',{attrs:{\"show\":_vm.showAlarmModal},on:{\"close\":function($event){_vm.showAlarmModal = false},\"reminder\":_vm.setReminder}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditContainer.vue?vue&type=template&id=2a2f9cfd&\"\nimport script from \"./EditContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./EditContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageEditHeaderWithActionBar from '@/components/common/Header/PageEditHeaderWithActionBar.vue'\r\nimport EditContainer from '@calendar/containers/EditContainer.vue'\r\n@Component({\r\n components: { PageEditHeaderWithActionBar, EditContainer }\r\n})\r\nexport default class EditView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n edit() {\r\n (this.$refs.editContainer as any).edit()\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditView.vue?vue&type=template&id=00905f7e&\"\nimport script from \"./EditView.ts?vue&type=script&lang=ts&\"\nexport * from \"./EditView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageEditHeaderWithActionBar',{attrs:{\"title\":this.$t('반복설정').toString()}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.save}},[_c('i',{staticClass:\"icon-check-mark\"})])]),_c('RecurringContainer',{ref:\"recurringContainer\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('div',{staticClass:\"padding\"},[_c('div',{staticClass:\"space-10\"}),_c('table',{staticClass:\"tbl-bdr-view\",attrs:{\"width\":\"100%;\"}},[_c('colgroup'),_c('tbody',[_c('tr',[_c('td',{staticClass:\"ft-gray\"},[_vm._v(_vm._s(_vm.$t('W_Schedule_ReSchedule')))]),_c('td',{staticClass:\"align-right\"},[_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.typeChangeOpen = !_vm.typeChangeOpen}}},[_vm._v(_vm._s(_vm.getSelectedStatus))]),_c('div',{class:( _obj = {}, _obj['dropdown-content'] = true, _obj.show = _vm.typeChangeOpen, _obj ),attrs:{\"id\":\"myDropdown\"}},[_c('ul',[_c('li',{on:{\"click\":_vm.notUsingRecurring}},[_c('a',[_vm._v(_vm._s(_vm.$t('사용_안_함')))])]),_c('li',{on:{\"click\":function($event){return _vm.passRecurringType('1')}}},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_EveryDay')))])]),_c('li',{on:{\"click\":function($event){return _vm.passRecurringType('2')}}},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_EveryWeek')))])]),_c('li',{on:{\"click\":function($event){return _vm.passRecurringType('3')}}},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_EveryMonth')))])]),_c('li',{on:{\"click\":function($event){return _vm.passRecurringType('4')}}},[_c('a',[_vm._v(_vm._s(_vm.$t('W_Schedule_EveryYear')))])])])])])])])])]),_c('div',{staticClass:\"space-10\"}),(!_vm.isNotUsed)?_c('div',{staticClass:\"bdr-bottom\"}):_vm._e(),(!_vm.isNotUsed)?_c('table',{staticClass:\"tbl-bdr-view\",attrs:{\"width\":\"100%;\"}},[_c('colgroup'),_c('tbody',[_c('tr',[_c('td',{staticClass:\"ft-gray\"},[_vm._v(_vm._s(_vm.$t('간격')))]),(_vm.localRecurrence.ui_recurringType == 4)?_c('td',{staticClass:\"align-right\"},[_vm._v(\" \"+_vm._s(_vm.$t('W_Schedule_EveryYear'))+\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localRecurrence.monthValue),expression:\"localRecurrence.monthValue\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.localRecurrence, \"monthValue\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.GetMonthArray),function(month,index){return _c('option',{key:index,domProps:{\"value\":month.value}},[_vm._v(\" \"+_vm._s(month.text)+\" \")])}),0)]):_c('td',{staticClass:\"align-right\"},[_vm._v(\" \"+_vm._s(_vm.$t('W_Schedule_Every'))+\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localRecurrence.interval),expression:\"localRecurrence.interval\"}],staticClass:\"bg-input align-center\",staticStyle:{\"width\":\"40px\"},attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.localRecurrence.interval)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.localRecurrence, \"interval\", $event.target.value)}}}),_vm._v(\" \"+_vm._s(_vm.dateUnitText[_vm.localRecurrence.ui_recurringType])+\" \")])]),(_vm.localRecurrence.ui_recurringType != 1)?_c('tr',[_c('td',{staticClass:\"ft-gray\"},[_vm._v(_vm._s(_vm.$t('W_Schedule_Day')))]),(_vm.localRecurrence.ui_recurringType == 2)?_c('td',{staticClass:\"align-right\"},[(this.localRecurrence.daysOfTheWeekArray.length == 0)?_c('a',{on:{\"click\":function($event){_vm.showDayModal = true}}},[_vm._v(_vm._s(_vm.$t('요일_선택')))]):_c('a',{on:{\"click\":function($event){_vm.showDayModal = true}}},[_vm._v(_vm._s(_vm.showWeekText))])]):_c('td',{staticClass:\"align-right\"},[_c('input',{staticClass:\"bg-input align-center\",staticStyle:{\"width\":\"40px\"},attrs:{\"type\":\"text\",\"value\":\"1\"}})])]):_vm._e(),_c('tr',[_c('td',{staticClass:\"ft-gray\"},[_vm._v(_vm._s(_vm.$t('종료')))]),(_vm.localRecurrence.ui_recurringType)?_c('td',{staticClass:\"align-right\"},[(_vm.localRecurrence.ui_recurringType)?_c('a',{on:{\"click\":function($event){_vm.showEndDateModal = true}}},[_vm._v(_vm._s(_vm.getEndType))]):_vm._e()]):_vm._e()])])]):_vm._e(),_c('div',{staticClass:\"space-10\"}),(!_vm.localRecurrence.ui_recurringType || _vm.RecurringType=='')?_c('div',{staticClass:\"select-guide\"},[_c('p',[_vm._v(_vm._s(_vm.$t('반복안함')))])]):_vm._e(),(_vm.localRecurrence.ui_recurringType && _vm.RecurringType!='')?_c('div',{staticClass:\"select-guide\"},[_c('p',[_vm._v(_vm._s(_vm.getRecurrencePatternDisplay))])]):_vm._e()])]),_c('RecurringDayModal',{attrs:{\"show\":_vm.showDayModal},on:{\"close\":function($event){_vm.showDayModal = false},\"check\":_vm.setDay}}),_c('RecurringEndDateModal',{attrs:{\"show\":_vm.showEndDateModal},on:{\"close\":function($event){_vm.showEndDateModal = false},\"check\":_vm.setEndDate}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('종료일 선택').toString(),\"check\":true},on:{\"close\":function($event){return _vm.$emit('close')},\"check\":_vm.check},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('ul',[_c('li',[_c('label',{staticClass:\"em-radio\"},[_vm._v(\" \"+_vm._s(_vm.$t('종료일_지정안함'))+\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localRecurrence.ui_endType),expression:\"localRecurrence.ui_endType\"}],attrs:{\"type\":\"radio\",\"name\":\"SelectEndDate\",\"value\":\"1\"},domProps:{\"checked\":_vm._q(_vm.localRecurrence.ui_endType,\"1\")},on:{\"change\":function($event){return _vm.$set(_vm.localRecurrence, \"ui_endType\", \"1\")}}}),_c('span',{staticClass:\"checkmark\"})])]),_c('li',[_c('label',{staticClass:\"em-radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localRecurrence.ui_endType),expression:\"localRecurrence.ui_endType\"}],attrs:{\"type\":\"radio\",\"name\":\"SelectEndDate\",\"value\":\"2\"},domProps:{\"checked\":_vm._q(_vm.localRecurrence.ui_endType,\"2\")},on:{\"change\":function($event){return _vm.$set(_vm.localRecurrence, \"ui_endType\", \"2\")}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localRecurrence.numberOfOccurrences),expression:\"localRecurrence.numberOfOccurrences\"}],staticStyle:{\"width\":\"50px\"},attrs:{\"type\":\"number\",\"value\":\"1\"},domProps:{\"value\":(_vm.localRecurrence.numberOfOccurrences)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.localRecurrence, \"numberOfOccurrences\", $event.target.value)}}}),_vm._v(\" \"+_vm._s(_vm.$t('W_Schedule_EndAfter'))+\" \"),_c('span',{staticClass:\"checkmark\"})])]),_c('li',[_c('label',{staticClass:\"em-radio\"},[_vm._v(\" \"+_vm._s(_vm.$t('종료일_지정'))+\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localRecurrence.ui_endType),expression:\"localRecurrence.ui_endType\"}],attrs:{\"type\":\"radio\",\"name\":\"SelectEndDate\",\"value\":\"3\"},domProps:{\"checked\":_vm._q(_vm.localRecurrence.ui_endType,\"3\")},on:{\"change\":function($event){return _vm.$set(_vm.localRecurrence, \"ui_endType\", \"3\")}}}),_c('span',{staticClass:\"checkmark\"})]),_c('div',{staticClass:\"space-10\"}),_c('DatePicker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],attrs:{\"showModal\":_vm.show},on:{\"close\":function($event){return _vm.$emit('close')},\"input\":_vm.setEndDate}})],1)])]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\nimport DatePicker from '@/components/common/DatePicker/DatePicker.vue'\r\nimport * as dateutil from '@/util/date-helper'\r\n@Component({\r\n components: {\r\n PopupModal,\r\n DatePicker\r\n }\r\n})\r\nexport default class RecurringEndDateModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) value!: calendar.CalendarItem;\r\n\r\n localRecurrence: calendar.CalendarItemRecurrence = {\r\n startDate: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n endDate: dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.uGetDate(90)),\r\n ui_useRecurringButton: true,\r\n ui_useDefaultDate: true,\r\n ui_useRecurringDisplay: false,\r\n ui_useRecurring: false,\r\n ui_recurringType: 1,\r\n monthValue: (new Date().getMonth() + 1),\r\n firstDayOfWeekValue: 1,\r\n daysOfTheWeekArray: [] as number[],\r\n dayOfMonth: 1,\r\n ui_endType: '1',\r\n interval: 1,\r\n numberOfOccurrences: 0\r\n } as calendar.CalendarItemRecurrence;\r\n\r\n check() {\r\n this.$emit('check', null, this.localRecurrence.ui_endType, this.localRecurrence.numberOfOccurrences)\r\n }\r\n\r\n setEndDate(date: string) {\r\n this.$emit('check', date, '3', 0)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringEndDateModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringEndDateModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecurringEndDateModal.vue?vue&type=template&id=3172f830&\"\nimport script from \"./RecurringEndDateModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecurringEndDateModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('요일_선택').toString(),\"check\":true},on:{\"close\":function($event){return _vm.$emit('close')},\"check\":_vm.check},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('ul',_vm._l((_vm.WeekCheckboxArray),function(witem,index){return _c('li',{key:index},[_c('label',{staticClass:\"checkbox small\",attrs:{\"for\":['rdDaysweekj' + index]}},[_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(witem.text))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(witem.flag),expression:\"witem.flag\"}],attrs:{\"type\":\"checkbox\",\"id\":['rdDaysweekj' + index]},domProps:{\"checked\":Array.isArray(witem.flag)?_vm._i(witem.flag,null)>-1:(witem.flag)},on:{\"change\":function($event){var $$a=witem.flag,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(witem, \"flag\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(witem, \"flag\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(witem, \"flag\", $$c)}}}}),_c('i',{staticClass:\"check\"})])])}),0)]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PopupModal } from '@/components/common/Modal'\r\nimport * as dateutil from '@/util/date-helper'\r\n@Component({\r\n components: {\r\n PopupModal,\r\n }\r\n})\r\nexport default class RecurringDayModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) value!: calendar.CalendarItem;\r\n\r\n WeekCheckboxArray: Array = [{ flag: false, value: 0, text: '' }];\r\n\r\n created() {\r\n this.WeekCheckboxArray = dateutil.uGetWeekArray([\r\n this.$t('W_Schedule_Sunday').toString(),\r\n this.$t('W_Schedule_Monday').toString(),\r\n this.$t('W_Schedule_Tuesday').toString(),\r\n this.$t('W_Schedule_Wednesday').toString(),\r\n this.$t('W_Schedule_Thursday').toString(),\r\n this.$t('W_Schedule_Friday').toString(),\r\n this.$t('W_Schedule_Saturday').toString(),\r\n ]).map((x) => {\r\n let obj = Object.create(null);\r\n //obj.flag = this.isWeekChecked(x.value);\r\n obj.value = x.value;\r\n obj.text = x.text;\r\n return obj;\r\n });\r\n }\r\n\r\n check() {\r\n let checkedArray = this.WeekCheckboxArray.filter((x) => x.flag).map((x) => x.value)\r\n this.$emit('check', checkedArray)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringDayModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringDayModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecurringDayModal.vue?vue&type=template&id=7702fb96&\"\nimport script from \"./RecurringDayModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecurringDayModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport RecurringEndDateModal from '@calendar/components/Modals/RecurringEndDateModal.vue'\r\nimport RecurringDayModal from '@calendar/components/Modals/RecurringDayModal.vue'\r\nimport { mapGetters, mapMutations } from 'vuex';\r\nimport * as types from '@calendar/store/types'\r\nimport * as dateutil from '@/util/date-helper'\r\n\r\n@Component({\r\n components: { \r\n RecurringEndDateModal,\r\n RecurringDayModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n value: types.CURRENT_CALENDAR_ITEM,\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCurrentItem: types.CURRENT_CALENDAR_ITEM,\r\n setCurrentRecurring: types.CALENDAR_CURRENT_RECURRING\r\n })\r\n }\r\n})\r\nexport default class RecurringContainer extends Vue {\r\n //\r\n    // ──────────────────────────────────────────────────────── I ──────────\r\n    //   :::::: G E T T E R S : :  :   :    :     :        :          :\r\n    // ──────────────────────────────────────────────────────────────────\r\n    //\r\n\r\n value!: calendar.CalendarItem;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrentItem!: (item: calendar.CalendarItem) => void;\r\n setCurrentRecurring!: (item: calendar.CalendarItemRecurrence) => void;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n localRecurrence: calendar.CalendarItemRecurrence = {\r\n startDate: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n endDate: dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.uGetDate(90)),\r\n ui_useRecurringButton: true,\r\n ui_useDefaultDate: true,\r\n ui_useRecurringDisplay: false,\r\n ui_useRecurring: false,\r\n ui_recurringType: 1,\r\n monthValue: (new Date().getMonth() + 1),\r\n firstDayOfWeekValue: 1,\r\n daysOfTheWeekArray: [] as number[],\r\n dayOfMonth: 1,\r\n ui_endType: '1',\r\n interval: 1,\r\n } as calendar.CalendarItemRecurrence;\r\n\r\n showDayModal: boolean = false // 요일 설정 모달\r\n showEndDateModal: boolean = false // 종료일 설정 모달\r\n typeChangeOpen: boolean = false // 타입 변경 오픈 여부\r\n showWeekText: any;\r\n isNotUsed: boolean = true // 사용 안함 여부\r\n RecurringType: string = '' // 타입 값\r\n dateUnitText: string[] = [\r\n '', \r\n this.$t('W_Schedule_Day').toString(), \r\n this.$t('W_Schedule_Week').toString(), \r\n this.$t('W_Schedule_Month').toString(), \r\n this.$t('W_Schedule_Year').toString()\r\n ]\r\n\r\n weeklist: { text: string; value: number; }[] = dateutil.uGetWeekArray([\r\n this.$t('W_Schedule_Sunday').toString(),\r\n this.$t('W_Schedule_Monday').toString(),\r\n this.$t('W_Schedule_Tuesday').toString(),\r\n this.$t('W_Schedule_Wednesday').toString(),\r\n this.$t('W_Schedule_Thursday').toString(),\r\n this.$t('W_Schedule_Friday').toString(),\r\n this.$t('W_Schedule_Saturday').toString(),\r\n ]);\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get WeekText() {\r\n return this.showWeekText;\r\n }\r\n\r\n get GetMonthArray() {\r\n return dateutil.uGetMonthArray([\r\n this.$t('W_1M').toString(),\r\n this.$t('W_2M').toString(),\r\n this.$t('W_3M').toString(),\r\n this.$t('W_4M').toString(),\r\n this.$t('W_5M').toString(),\r\n this.$t('W_6M').toString(),\r\n this.$t('W_7M').toString(),\r\n this.$t('W_8M').toString(),\r\n this.$t('W_9M').toString(),\r\n this.$t('W_10M').toString(),\r\n this.$t('W_11M').toString(),\r\n this.$t('W_12M').toString(),\r\n ]);\r\n }\r\n\r\n get getSelectedStatus() : any {\r\n // 수정화면에서 들어왔을 때 저장된 정보로\r\n if(this.localRecurrence.ui_useRecurring){\r\n switch (this.localRecurrence.ui_recurringType) {\r\n case 1:\r\n this.isNotUsed = false\r\n return this.$t('W_Schedule_EveryDay').toString();\r\n case 2:\r\n this.isNotUsed = false\r\n return this.$t('W_Schedule_EveryWeek').toString();\r\n case 3:\r\n this.isNotUsed = false\r\n return this.$t('W_Schedule_EveryMonth').toString();\r\n case 4:\r\n this.isNotUsed = false\r\n return this.$t('W_Schedule_EveryYear').toString();\r\n }\r\n }\r\n else {\r\n if(this.RecurringType === ''){\r\n this.isNotUsed = true;\r\n return this.$t('사용_안_함').toString();\r\n }else{\r\n switch (this.RecurringType) {\r\n case '1':\r\n return this.$t('W_Schedule_EveryDay').toString();\r\n case '2':\r\n return this.$t('W_Schedule_EveryWeek').toString();\r\n case '3':\r\n return this.$t('W_Schedule_EveryMonth').toString();\r\n case '4':\r\n return this.$t('W_Schedule_EveryYear').toString();\r\n }\r\n }\r\n }\r\n }\r\n\r\n get getEndType() {\r\n if(this.localRecurrence.ui_endType)\r\n {\r\n switch(this.localRecurrence.ui_endType)\r\n {\r\n case '1':\r\n this.localRecurrence.endDate = null;\r\n return this.$t('종료일_지정안함').toString();\r\n case '2':\r\n return this.localRecurrence.numberOfOccurrences + this.$t('W_Schedule_EndAfter').toString();\r\n case '3':\r\n //this.localRecurrence.endDate = this.value.recurrence.endDate;\r\n let EDate = this.localRecurrence.endDate?.split('T')[0];\r\n return EDate + this.$t('종료').toString();\r\n }\r\n }\r\n \r\n }\r\n\r\n /**\r\n * 반복일정 설정 내용을 표시합니다\r\n */\r\n get getRecurrencePatternDisplay() {\r\n\r\n let beautifyStartTime;\r\n let beautifyEndTime;\r\n\r\n if(this.value.starttime && this.value.starttime.length >3) {\r\n beautifyStartTime = this.value.starttime.substr(0, this.value.starttime.length -3);\r\n }\r\n if(this.value.endtime && this.value.endtime.length >3) {\r\n beautifyEndTime = this.value.endtime.substr(0, this.value.endtime.length -3);\r\n }\r\n \r\n let beautifyStartDate = this.value.recurrence.startDate.split('T')[0];\r\n let beautifyEndDate;\r\n if(this.localRecurrence.endDate != null ) {\r\n beautifyEndDate = dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.IEDate(this.localRecurrence.endDate));\r\n }\r\n \r\n let display: string = '';\r\n \r\n if(this.localRecurrence.ui_recurringType == 1) {\r\n if(this.localRecurrence.endDate != null) \r\n {\r\n // 매일 / 종료일 특정 날짜\r\n //display = `${beautifyEndDate} 까지 ${this.localRecurrence.interval}일 마다 반복`;\r\n display = this.$t('종료일까지_N일마다_반복', {endDate: beautifyEndDate, interval: this.localRecurrence.interval}).toString();\r\n }\r\n else\r\n {\r\n // 매일 / 종료일 기한 없음\r\n //display = `${this.localRecurrence.interval}일 마다 반복`;\r\n display = this.$t('N일마다_반복', {interval: this.localRecurrence.interval}).toString();\r\n }\r\n }\r\n //매주\r\n else if(this.localRecurrence.ui_recurringType == 2) {\r\n // 반복일정 수정할 때 요일 체크한거 화면에 display\r\n this.showWeekText = this.weeklist.filter((x:any) => \r\n (this.localRecurrence.daysOfTheWeekArray?.indexOf(x.value) != -1) \r\n ).map((x) => {return x.text;}).join(',');\r\n\r\n //this.showWeekText = weekArrayString;\r\n\r\n if(this.localRecurrence.endDate != null)\r\n {\r\n // 매주 / 종료일 특정 날짜\r\n //display = `${beautifyEndDate} 까지 ${this.localRecurrence.interval}주마다 ${this.showWeekText} 반복`;\r\n display = this.$t('종료일까지_N주마다_반복', {endDate: beautifyStartDate, interval: this.value.recurrence.interval, weekText: this.showWeekText}).toString();\r\n }\r\n else \r\n {\r\n // 매주 / 종료일 기한 없음\r\n //display = `${this.localRecurrence.interval}주마다 ${this.showWeekText} 에 반복`;\r\n display = this.$t('N주마다_반복', {interval: this.value.recurrence.interval, weekText: this.showWeekText}).toString();\r\n }\r\n }\r\n //매월\r\n else if(this.localRecurrence.ui_recurringType == 3) {\r\n if(this.localRecurrence.endDate != null)\r\n {\r\n // 매월 / 종료일 특정 날짜\r\n //display = `${beautifyEndDate} 까지 ${this.localRecurrence.interval}개월마다 ${this.localRecurrence.dayOfMonth}일에 반복`;\r\n display = this.$t('종료일까지_N개월마다_반복', {endDate: beautifyStartDate, interval: this.value.recurrence.interval, day: this.localRecurrence.dayOfMonth}).toString();\r\n }\r\n else \r\n {\r\n // 매월 / 종료일 기한 없음\r\n //display = `${this.localRecurrence.interval}개월마다 ${this.localRecurrence.dayOfMonth}일에 반복`;\r\n display = this.$t('N개월마다_반복', {interval: this.value.recurrence.interval, day: this.localRecurrence.dayOfMonth}).toString();\r\n }\r\n }\r\n //매년\r\n else if(this.localRecurrence.ui_recurringType == 4) {\r\n if(this.localRecurrence.endDate != null)\r\n {\r\n // 매년 / 종료일 특정 날짜\r\n //display = `${beautifyEndDate} 까지 매년 ${this.localRecurrence.monthValue}월 ${this.localRecurrence.dayOfMonth}일마다 반복`;\r\n display = this.$t('종료일까지_N년마다_반복', {endDate: beautifyStartDate, month: this.localRecurrence.monthValue, day: this.localRecurrence.dayOfMonth}).toString();\r\n }\r\n else \r\n {\r\n // 매년 / 종료일 기한 없음\r\n //display = `매년 ${this.localRecurrence.monthValue}월 ${this.localRecurrence.dayOfMonth}일마다 반복`;\r\n display = this.$t('N년마다_반복', {month: this.localRecurrence.monthValue, day: this.localRecurrence.dayOfMonth}).toString();\r\n }\r\n }\r\n \r\n if (!this.value.isEWS) {\r\n this.value.pidLidRecurrencePattern = display;\r\n }\r\n return display;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 반복일정 사용 안 함 클릭 이벤트\r\n */\r\n notUsingRecurring() {\r\n this.isNotUsed = true\r\n this.typeChangeOpen = false\r\n }\r\n\r\n /**\r\n * 반복일정 타입 클릭 이벤트\r\n */\r\n passRecurringType(value: string) {\r\n this.isNotUsed = false\r\n this.typeChangeOpen = false\r\n this.RecurringType = value\r\n }\r\n\r\n //반복일정을 설정한다 ***( 유효성 검사 )***\r\n async save() {\r\n // 반복일정 설정 안함은 유효성 검사 X\r\n if (this.isNotUsed) {\r\n this.localRecurrence = {} as calendar.CalendarItemRecurrence\r\n } else {\r\n //let selectedValue = dateutil.getDurationFromText(this.durationDispalyText);\r\n let checkday: number = 0;\r\n let valid: string = '';\r\n this.localRecurrence.startDate = dateutil.DateAndTimeSplitor(this.localRecurrence.startDate)[0];\r\n this.localRecurrence.endDate = dateutil.DateAndTimeSplitor(this.localRecurrence.endDate + '')[0];\r\n //this.value.start = this.localRecurrence.startDate + '';\r\n\r\n // if (!this.timeChanged(dateutil.getDurationFromText(this.durationDispalyText), true)) {\r\n // return;\r\n // }\r\n //let checkedArray = this.WeekCheckboxArray.filter((x) => x.flag).map((x) => x.value);\r\n\r\n if (this.localRecurrence.ui_endType == '3' && dateutil.IEDate(this.localRecurrence.endDate) < dateutil.IEDate(this.localRecurrence.startDate)) {\r\n //valid = '반복 종료일자가 반복 시작일자보다 빠를 수 없습니다';\r\n valid = this.$t('M_Schedule_FastRepeatEnd').toString();\r\n }\r\n else if (!this.localRecurrence.interval || this.localRecurrence.interval <= 0) {\r\n //valid ='주기는 1 이상 지정해야 합니다';\r\n valid = this.$t('M_Schedule_LowInterval').toString();\r\n }\r\n else if (dateutil.IEDate(this.value.end + 'T' + this.value.endtime) < dateutil.IEDate(this.value.start + 'T' + this.value.starttime)) {\r\n //valid = '종료일자가 시작일자보다 빠를 수 없습니다';\r\n valid = this.$t('M_Schedule_FastEnd').toString();\r\n }\r\n // else if (this.localRecurrence.ui_recurringType == 2 && !checkedArray.length) {\r\n // valid = '요일을 1개 이상 선택해 주세요';\r\n // }\r\n else if (this.localRecurrence.ui_recurringType == 3 && ((this.localRecurrence.dayOfMonth as number) <= 0 || !this.localRecurrence.dayOfMonth)) {\r\n //valid = '월별 날짜는 1 이상 지정해야 합니다';\r\n valid = this.$t('M_Schedule_SelectMonthDay').toString();\r\n }\r\n\r\n // 매주\r\n else if (this.localRecurrence.ui_recurringType == 2) {\r\n let copyCheckedArray = [] as number[];\r\n //매주 - 요일 1개 체크 시 (배열 붙여서 비교) \r\n //Object.assign(copyCheckedArray, checkedArray.map((x) => x + 7));\r\n //let validCheckedArray = [...checkedArray, ...copyCheckedArray];\r\n // 매주 - 요일 2개 이상 체크 시\r\n // ex) 체크한 요일에 대한 배열이 [일, 월, 목, 금] -> [0, 1, 4, 5] 일 경우 Bubble sort 처럼 빼서 비교\r\n // 뺄 때 마다 selectedValue.totalDays랑 비교해서 유효성 검사\r\n /*\r\n if (validCheckedArray.length > 2) {\r\n for (let i = 0; i < validCheckedArray.length - 1; i++) {\r\n checkday = validCheckedArray[i + 1] - validCheckedArray[i];\r\n if (checkday < selectedValue.totalDays) {\r\n valid = '기간이 너무 깁니다';\r\n break;\r\n }\r\n }\r\n }\r\n */\r\n }\r\n //매월일 경우\r\n //29일 이상은 '월의 마지막일로 계산된다'라는 안내창\r\n else if (this.RecurringType == '3') {\r\n if ((this.localRecurrence.dayOfMonth as number) >= 29) {\r\n //await(window as any).confirmAsync('29일 이상은 월의 마지막일로 계산됩니다.');\r\n await(window as any).confirmAsync(this.$t('M_Schedule_LastMonth').toString());\r\n }\r\n }\r\n \r\n if (valid) {\r\n await(window as any).alertAsync(valid);\r\n return;\r\n }\r\n\r\n this.localRecurrence.ui_useDefaultDate = false;\r\n this.localRecurrence.ui_useRecurringDisplay = true;\r\n this.localRecurrence.ui_useRecurring = true;\r\n\r\n //this.localRecurrence.daysOfTheWeekArray = checkedArray;\r\n if (this.localRecurrence.endDate == 'null') {\r\n this.localRecurrence.endDate = null;\r\n }\r\n\r\n if (this.localRecurrence.numberOfOccurrences == 0) {\r\n this.localRecurrence.numberOfOccurrences = null;\r\n }\r\n }\r\n\r\n this.value.recurrence = this.localRecurrence\r\n\r\n //this.setCurrentItem(this.value);\r\n //this.setCurrentRecurring(this.value.recurrence);\r\n this.$router.push({\r\n path: '/calendar/write',\r\n query: {pvalue: encodeURIComponent(JSON.stringify(this.value))}\r\n });\r\n }\r\n\r\n setEndDate(date: string | null, type: string, count: number) {\r\n this.localRecurrence.endDate = date\r\n this.localRecurrence.ui_endType = type\r\n this.localRecurrence.numberOfOccurrences = count\r\n this.showEndDateModal = false\r\n }\r\n\r\n setDay(dayArray: any) {\r\n this.localRecurrence.daysOfTheWeekArray = dayArray\r\n this.showWeekText = this.weeklist.filter((x:any) => \r\n (this.localRecurrence.daysOfTheWeekArray?.indexOf(x.value) != -1) \r\n ).map((x) => {return x.text;}).join(',');\r\n this.showDayModal = false\r\n }\r\n\r\n @Watch(\"RecurringType\")\r\n onRecurringTypeChanged(cvalue: any) {\r\n this.localRecurrence.ui_recurringType = Number(cvalue) as 1 | 2 | 3 | 4;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n if (!this.value.recurrence.hasEnd) {\r\n this.value.recurrence.ui_endType = '1';\r\n }\r\n else {\r\n if (this.value.recurrence.numberOfOccurrences != null) {\r\n this.value.recurrence.ui_endType = '2';\r\n }\r\n if (this.value.recurrence.endDate != null) {\r\n this.value.recurrence.ui_endType = '3';\r\n }\r\n }\r\n\r\n if(this.localRecurrence.ui_useRecurring === false){\r\n this.notUsingRecurring;\r\n }\r\n\r\n if(this.localRecurrence.daysOfTheWeekArray){\r\n this.showWeekText = this.weeklist.filter((x:any) => \r\n (this.value.recurrence.daysOfTheWeekArray?.indexOf(x.value) != -1) \r\n ).map((x) => {return x.text;}).join(',');\r\n }\r\n\r\n if(this.localRecurrence.ui_useRecurring === false) {\r\n this.localRecurrence.ui_endType == '';\r\n this.localRecurrence.endDate = null;\r\n this.localRecurrence.interval == null;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecurringContainer.vue?vue&type=template&id=e26e5e6a&\"\nimport script from \"./RecurringContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecurringContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageEditHeaderWithActionBar from '@/components/common/Header/PageEditHeaderWithActionBar.vue'\r\nimport RecurringContainer from '@calendar/containers/RecurringContainer.vue'\r\n@Component({\r\n components: { PageEditHeaderWithActionBar, RecurringContainer }\r\n})\r\nexport default class RecurringView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n save() {\r\n (this.$refs.recurringContainer as any).save()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./RecurringView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecurringView.vue?vue&type=template&id=e1f7e06a&\"\nimport script from \"./RecurringView.ts?vue&type=script&lang=ts&\"\nexport * from \"./RecurringView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\r\nimport CalendarView from '../views/CalendarView.vue'\r\nimport ReadView from '../views/ReadView.vue'\r\nimport WriteView from '../views/WriteView.vue'\r\nimport EditView from '../views/EditView.vue'\r\nimport RecurringView from '../views/RecurringView.vue'\r\nconst Calendar = () => import(/* webpackChunkName: \"calendar\" */ '@calendar/Index.vue')\r\nconst CalendarMaster = () => import(/* webpackChunkName: \"calendar\" */ '@calendar/views/Master.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/calendar',\r\n component: Calendar,\r\n children: [\r\n {\r\n path: '',\r\n component: CalendarMaster,\r\n children: [\r\n {\r\n path: 'main',\r\n name: 'calendar-main',\r\n component: CalendarView,\r\n },\r\n {\r\n path: 'read',\r\n name: 'calendar-read',\r\n component: ReadView,\r\n },\r\n {\r\n path: 'write',\r\n name: 'calendar-write',\r\n component: WriteView,\r\n },\r\n {\r\n path: 'edit',\r\n name: 'calendar-edit',\r\n component: EditView,\r\n },\r\n {\r\n path: 'recurring',\r\n name: 'calendar-recurring',\r\n component: RecurringView,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',[_c('div',{staticClass:\"dropdown\"},[_c('a',{staticClass:\"btn-drop\",on:{\"click\":function($event){_vm.actionOpen = !_vm.actionOpen}}},[_c('i',{staticClass:\"icon-more\"})]),_c('div',{class:['dropdown-content', {show: _vm.actionOpen}]},[_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":{name: 'contact-edit'}}},[_c('i',{staticClass:\"icon-to-me\"}),_vm._v(_vm._s(_vm.$t('연락처_수정'))+\" \")])],1),_c('li',[_c('a',{on:{\"click\":_vm.deleteItem}},[_c('i',{staticClass:\"icon-denied\"}),_vm._v(_vm._s(_vm.$t('연락처_삭제'))+\" \")])])])])])]),_c('ViewContainer',{ref:\"viewContainer\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ContactPhoto',{attrs:{\"item\":_vm.item}}),_c('ViewForm',{attrs:{\"item\":_vm.item}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"profile-wrap\"},[_c('div',{staticClass:\"padding\"},[_c('div',{staticClass:\"profile-img-wrap\"},[_c('div',{staticClass:\"profile-img\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/v1/img/ghost_loading.png\"},on:{\"error\":_vm.error}}):_c('img',{attrs:{\"src\":_vm.avatar.url},on:{\"error\":_vm.errorGhost}})])]),_c('div',{staticClass:\"profile-info-wrap\"},[_c('span',{staticClass:\"profile-name\"},[_vm._v(_vm._s(_vm.item.displayName))]),_c('span',{staticClass:\"profile-team\"},[_vm._v(_vm._s(_vm.item.department))]),(_vm.item.department && _vm.item.jobTitle)?_c('span',{staticClass:\"txt-vibide\"}):_vm._e(),_c('span',{staticClass:\"profile-rank\"},[_vm._v(_vm._s(_vm.item.jobTitle))]),_c('span',{staticClass:\"profile-number\",attrs:{\"id\":\"btnModal\"}},[_c('a',{staticClass:\"profile-number\",on:{\"click\":function($event){_vm.showModal = true}}},[_vm._v(\" \"+_vm._s(_vm.item.mobile)+\" \")])]),_c('ContactModal',{attrs:{\"show\":_vm.showModal,\"phoneNumber\":_vm.item.mobile},on:{\"close\":function($event){_vm.showModal = false}}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal\",style:({display: _vm.show?'block':'none'}),on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"modal-wrap\"},[_c('a',{staticClass:\"close\"}),_c('div',{staticClass:\"modal-content row-content\"},[_c('div',{staticClass:\"modal-items\"},[_c('div',{staticClass:\"item\"},[_c('a',{staticClass:\"item-btn\",on:{\"click\":function($event){return _vm.call(_vm.phoneNumber)}}},[_c('i',{staticClass:\"icon-telephone\"}),_vm._v(\" 전화걸기 \")])]),_c('div',{staticClass:\"item\"},[_c('a',{staticClass:\"item-btn\",attrs:{\"href\":'sms:' + _vm.phoneNumber}},[_c('i',{staticClass:\"icon-communication\"}),_vm._v(\" 문자보내기 \")])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactModal.vue?vue&type=template&id=43208945&\"\nimport script from \"./ContactModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./ContactModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport ContactModal from '@/components/common/Modal/ContactModal.vue'\r\nimport { cache } from '@/util';\r\n\r\n@Component({\r\n components: { ContactModal },\r\n})\r\nexport default class ContactPhoto extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: contacts.ContactItem\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n showModal: boolean = false;\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n };\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png';\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/faux/images/ghost.png';\r\n }\r\n\r\n getImage(senderMail?: string) {\r\n if (senderMail && senderMail.indexOf('/') == -1) {\r\n this.avatar.loading = true;\r\n cache.avatar.get(senderMail).then((url: string) => {\r\n this.avatar.url = url;\r\n this.avatar.loading = false;\r\n });\r\n }\r\n }\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created() {\r\n if (this.item.email) {\r\n this.getImage(this.item.email);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactPhoto.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactPhoto.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactPhoto.vue?vue&type=template&id=4b8adabe&\"\nimport script from \"./ContactPhoto.ts?vue&type=script&lang=ts&\"\nexport * from \"./ContactPhoto.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{staticClass:\"write-area\"},[_c('form',[_c('div',{staticClass:\"ip-name\"},[_vm._m(0),_c('div',{staticClass:\"info-txt\"},[_c('p',[_vm._v(_vm._s(_vm.item.displayName))])])]),_c('div',{staticClass:\"ip-phone-number\"},[_vm._m(1),_c('div',{staticClass:\"info-txt\"},[_c('p',[_vm._v(_vm._s(_vm.item.mobile))])])]),_c('div',{staticClass:\"ip-mail\"},[_vm._m(2),_c('div',{staticClass:\"info-txt\"},[_c('p',{on:{\"click\":_vm.writeMail}},[_vm._v(_vm._s(_vm.item.email))])])]),_c('div',{staticClass:\"ip-company\"},[_vm._m(3),_c('div',{staticClass:\"info-txt\"},[_c('p',[_vm._v(_vm._s(_vm.item.companyName))])])]),_c('div',{staticClass:\"ip-company-number\"},[_vm._m(4),_c('div',{staticClass:\"info-txt\"},[_c('p',[_vm._v(_vm._s(_vm.item.businessPhone))])])]),_c('div',{staticClass:\"ip-rank\"},[_vm._m(5),_c('div',{staticClass:\"info-txt\"},[_c('p',[_vm._v(_vm._s(_vm.item.jobTitle))])])]),_c('div',{staticClass:\"ip-team\"},[_vm._m(6),_c('div',{staticClass:\"info-txt\"},[_c('p',[_vm._v(_vm._s(_vm.item.department))])])]),_c('div',{staticClass:\"ip-company-address\"},[_vm._m(7),_c('div',{staticClass:\"info-txt\"},[_c('p',[_vm._v(_vm._s(_vm.item.officeLocation))])])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-phone\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('a',[_c('label',[_c('i',{staticClass:\"icon-un-email\"})])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-em-office\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-office-call\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-rank\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user-group\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-location\"})])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component({\r\n})\r\nexport default class ViewForm extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: contacts.ContactItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async writeMail() {\r\n if (this.item.email) {\r\n this.$router.push({\r\n path: '/mail/write',\r\n query: { id: '', type: 'draft', uid: this.item.email },\r\n });\r\n } else {\r\n await(window as any).alertAsync(this.$t('M_Contact_NoEmail').toString());\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ViewForm.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ViewForm.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewForm.vue?vue&type=template&id=75da057c&\"\nimport script from \"./ViewForm.ts?vue&type=script&lang=ts&\"\nexport * from \"./ViewForm.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport ContactPhoto from '@contact/components/View/ContactPhoto.vue'\r\nimport ViewForm from '@contact/components/View/ViewForm.vue'\r\nimport { mapGetters } from 'vuex';\r\nimport * as types from '@contact/store/types'\r\nimport api from '@contact/api'\r\nimport { ContactsStoredType } from '../types';\r\nimport { DeleteMode } from '@/modules/mail/types/enums';\r\n\r\n@Component({\r\n components: { ContactPhoto, ViewForm },\r\n computed: {\r\n ...mapGetters({\r\n currentItem: types.CURRENT_CONTACT_ITEM\r\n })\r\n }\r\n\r\n})\r\nexport default class ViewContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n item!: contacts.ContactItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentItem!: contacts.ContactItem\r\n\r\n async deleteItem() {\r\n if (await(window as any).confirmAsync(this.$t('정말_삭제하시겠습니까').toString())) {\r\n let ids = [this.item.id]\r\n let option = DeleteMode.MoveToDeletedItems\r\n let storedType = ContactsStoredType.EWS\r\n api.contact.deleteContacts(ids, option, storedType).then((res) => {\r\n if (res) {\r\n this.$router.push({ path: '/contact/list' })\r\n }\r\n });\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n @Watch('currentItem')\r\n onChangedCurrentItem(newValue: contacts.ContactItem) {\r\n this.item = newValue\r\n }\r\n\r\n created() {\r\n this.item = this.currentItem\r\n }\r\n}","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ViewContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ViewContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewContainer.vue?vue&type=template&id=372d15d8&\"\nimport script from \"./ViewContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ViewContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ViewContainer from '@contact/containers/ViewContainer.vue'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, ViewContainer }\r\n})\r\nexport default class ContactView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n actionOpen: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n deleteItem() {\r\n (this.$refs.viewContainer as any).deleteItem()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ContactView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactView.vue?vue&type=template&id=37f4455a&\"\nimport script from \"./ContactView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ContactView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.selectionCount == 0 && !_vm.searchMode)?_c('PageHeaderWithActionBar',{attrs:{\"title\":_vm.currentPage.name}},[_c('a',{staticClass:\"item\",on:{\"click\":function($event){_vm.searchMode = true}}},[_c('i',{staticClass:\"icon-search\"})])]):_vm._e(),(_vm.selectionCount == 0 && _vm.searchMode)?_c('PageHeaderWithSearchBar',{attrs:{\"title\":_vm.currentPage.name,\"basic\":false}}):_vm._e(),(_vm.selectionCount > 0)?_c('PageViewHeaderWithActionBar',{attrs:{\"title\":_vm.$t('_LENGTH_개_선택됨', { length: _vm.selectionCount }),\"eventBus\":true}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.deleteItem}},[_c('i',{staticClass:\"icon-bin\"})]),_c('a',{staticClass:\"item\",on:{\"click\":_vm.selectAll}},[_c('i',{staticClass:\"icon-check\"})])]):_vm._e(),_c('ListContainer',{ref:\"listContainer\",attrs:{\"id\":_vm.$route.query.id},on:{\"searchEnd\":function($event){_vm.searchMode = false}}}),_c('div',{staticClass:\"write-link\"},[_c('router-link',{attrs:{\"to\":{ name: 'contact-add'},\"title\":this.$t('W_Contact_NewContact').toString()}},[_c('i',{staticClass:\"icon-add\"})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('section',[_c('div',{staticClass:\"address-list\"},[_c('table',[_vm._m(0),(_vm.contactList && _vm.contactList.length)?_c('tbody',_vm._l((_vm.contactList),function(item){return _c('ContactListItem',{key:item.id,attrs:{\"item\":item,\"isChecked\":true}})}),1):_c('div',{staticClass:\"not-found-wrap\"},[_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_address.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('일치하는_항목이_없습니다')))])])])])])]),_c('WebMailBottom')],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('colgroup',[_c('col',{attrs:{\"width\":\"80px\"}})])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WebMailBottom from '@/components/common/WebMailBottom.vue'\r\nimport ContactListItem from '@contact/components/List/ContactListItem.vue'\r\nimport { createEventBus, removeEventBus } from '@/util'\r\nimport { DeleteMode, FilterComparisonModes, FilterConditions, FilterContainmentModes, WellKnownFolderName } from '@/modules/mail/types'\r\nimport api from '@contact/api'\r\nimport * as types from '@contact/store/types'\r\nimport { ContactsStoredType } from '../types/enums'\r\nimport { mapMutations } from 'vuex'\r\nimport contact from '../api/contact'\r\n@Component({\r\n components: { \r\n WebMailBottom,\r\n ContactListItem\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setSelectAll: types.CONTACT_SELECT_ALL\r\n })\r\n }\r\n})\r\nexport default class ListContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String, default: null }) id!: string\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setSelectAll!: (items: contacts.ContactItem[]) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n contactList: contacts.ContactItem[] = []\r\n query: string = ''\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getContactList() {\r\n\r\n const query = this.query\r\n\r\n const filters: mail.api.FilterOption[] = [\r\n {\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'ItemClass',\r\n value: 'IPM.Contact',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n {\r\n key: 'ItemClass',\r\n value: 'IPM.DistList',\r\n condition: FilterConditions.IsEqualTo,\r\n },\r\n ],\r\n },\r\n ];\r\n \r\n //#region [검색어 설정]\r\n if (query) {\r\n filters.push({\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'DisplayName',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Prefixed,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.FullString,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.ExactPhrase,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'DisplayName',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.PrefixOnWords,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'CompanyName',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'EmailAddress1',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'PidLidEmail1OriginalDisplayName',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'MobilePhone',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n {\r\n key: 'JobTitle',\r\n value: query,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase,\r\n },\r\n ],\r\n });\r\n }\r\n\r\n // 간편 주소록 (즐겨찾기)\r\n if (this.id == 'favorite') {\r\n filters.push({\r\n key: 'USER_IS_FAVORITE',\r\n value: 'true',\r\n condition: FilterConditions.IsEqualTo,\r\n })\r\n }\r\n\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: [],\r\n filters: filters,\r\n parentId: this.id == 'favorite' ? null : this.id,\r\n sorts: [],\r\n pageSize: 50,//pageSize || 50,\r\n offset: 0,//nextPageOffset || 0,\r\n wellKnownParentName: WellKnownFolderName.Contacts,\r\n type: 'Contact'\r\n };\r\n api.contact.getContactsList(data, ContactsStoredType.EWS).then((res) => {\r\n this.contactList = res.items\r\n this.isloading(false)\r\n })\r\n }\r\n\r\n handleSearchRequest(keyword: string) {\r\n if (keyword) {\r\n this.query = keyword\r\n } else {\r\n this.query = ''\r\n this.$emit('searchEnd')\r\n }\r\n this.getContactList()\r\n }\r\n\r\n async deleteItem(list: any[]) {\r\n if (await(window as any).confirmAsync(this.$t('정말_삭제하시겠습니까').toString())) {\r\n let ids = list\r\n let option = DeleteMode.MoveToDeletedItems\r\n let storedType = ContactsStoredType.EWS\r\n api.contact.deleteContacts(ids, option, storedType).then((res) => {\r\n if (res) {\r\n this.$router.push({ path: '/contact/list' })\r\n }\r\n });\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n selectAll() {\r\n this.setSelectAll(this.contactList)\r\n }\r\n\r\n @Watch('id')\r\n onChangedFolderId() {\r\n this.getContactList()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I T E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n createEventBus(window, 'header-search', this.handleSearchRequest)\r\n this.isloading(true)\r\n this.getContactList()\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListContainer.vue?vue&type=template&id=088aae06&\"\nimport script from \"./ListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport PageHeaderWithSearchBar from '@/components/common/Header/PageHeaderWithSearchBar.vue'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ListContainer from '@contact/containers/ListContainer.vue'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as contactTypes from '@contact/store/types'\r\nimport * as types from '@/store/types'\r\nimport { createEventBus, removeEventBus } from '@/modules/@appbase/util'\r\n@Component({\r\n components: { PageHeaderWithActionBar, PageHeaderWithSearchBar, PageViewHeaderWithActionBar, ListContainer },\r\n computed: {\r\n ...mapGetters({\r\n selectionList: contactTypes.CONTACT_SELECTION,\r\n currentPage: types.CURRENT_PAGE\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n selectListClear: contactTypes.CONTACT_SELECT_CLEAR,\r\n setCurrentPage: types.CURRENT_PAGE\r\n })\r\n }\r\n})\r\nexport default class ListView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n searchMode: boolean = false\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectionList!: string[]\r\n currentPage!: object\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n selectListClear!: () => void\r\n setCurrentPage!: (page: object) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get selectionCount() {\r\n return this.selectionList.length\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n deleteItem() {\r\n (this.$refs.listContainer as any).deleteItem(this.selectionList)\r\n }\r\n\r\n selectAll() {\r\n (this.$refs.listContainer as any).selectAll()\r\n }\r\n\r\n handleBackRequest() {\r\n this.selectListClear()\r\n }\r\n\r\n @Watch('$route.query.id')\r\n onChangedId(id: string) {\r\n var currentPage = {\r\n name : this.$t('연락처').toString()\r\n }\r\n if (!id) this.setCurrentPage(currentPage)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, 'header-back', this.handleBackRequest)\r\n\r\n const id = this.$route.query.id as string\r\n this.onChangedId(id)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-back', this.handleBackRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListView.vue?vue&type=template&id=2206afc5&\"\nimport script from \"./ListView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageEditHeaderWithActionBar',{attrs:{\"title\":this.$t('W_Contact_NewContact').toString()}},[_c('a',{staticClass:\"item\",on:{\"click\":_vm.save}},[_c('i',{staticClass:\"icon-check-mark\"})])]),_c('div',{attrs:{\"id\":\"inner-container\"}},[_c('AddContainer',{ref:\"addContainer\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ProfilePhoto'),_c('WriteForm',{attrs:{\"item\":_vm.item}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"profile-wrap\"},[_c('div',{staticClass:\"padding\"},[_c('div',{staticClass:\"profile-img-wrap\"},[_c('div',{staticClass:\"profile-img\"},[_c('img',{attrs:{\"src\":\"/cm/gres/faux/images/ghost.png\"}})])])])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n@Component({\r\n components: {\r\n },\r\n})\r\nexport default class ProfilePhoto extends Vue {\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProfilePhoto.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProfilePhoto.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProfilePhoto.vue?vue&type=template&id=7d785260&\"\nimport script from \"./ProfilePhoto.ts?vue&type=script&lang=ts&\"\nexport * from \"./ProfilePhoto.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{staticClass:\"write-area\"},[_c('form',[_c('div',{staticClass:\"ip-last-name\"},[_vm._m(0),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.surname),expression:\"item.surname\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Contact_Lastname')},domProps:{\"value\":(_vm.item.surname)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"surname\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-name\"},[_vm._m(1),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.givenName),expression:\"item.givenName\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Contact_Firstname')},domProps:{\"value\":(_vm.item.givenName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"givenName\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-phone-number\"},[_vm._m(2),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.mobile),expression:\"item.mobile\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('휴대전화')},domProps:{\"value\":(_vm.item.mobile)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"mobile\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-mail\"},[_vm._m(3),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.email),expression:\"item.email\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Contact_Email')},domProps:{\"value\":(_vm.item.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"email\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-company\"},[_vm._m(4),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.companyName),expression:\"item.companyName\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Contact_CompanyName')},domProps:{\"value\":(_vm.item.companyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"companyName\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-company-number\"},[_vm._m(5),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.businessPhone),expression:\"item.businessPhone\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Contact_BizPhone')},domProps:{\"value\":(_vm.item.businessPhone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"businessPhone\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-rank\"},[_vm._m(6),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.jobTitle),expression:\"item.jobTitle\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Contact_JobTitle')},domProps:{\"value\":(_vm.item.jobTitle)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"jobTitle\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-team\"},[_vm._m(7),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.department),expression:\"item.department\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('부서명')},domProps:{\"value\":(_vm.item.department)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"department\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-company-address\"},[_vm._m(8),_c('div',{staticClass:\"form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.officeLocation),expression:\"item.officeLocation\"}],attrs:{\"type\":\"text\",\"placeholder\":this.$t('W_Contact_BizAddress')},domProps:{\"value\":(_vm.item.officeLocation)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"officeLocation\", $event.target.value)}}})])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-phone\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('a',[_c('label',[_c('i',{staticClass:\"icon-un-email\"})])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-em-office\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-office-call\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-rank\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user-group\"})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-location\"})])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n@Component({\r\n components: {\r\n },\r\n})\r\nexport default class WriteForm extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Object}) item!: contacts.ContactItem\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteForm.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./WriteForm.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WriteForm.vue?vue&type=template&id=cb86dee4&\"\nimport script from \"./WriteForm.ts?vue&type=script&lang=ts&\"\nexport * from \"./WriteForm.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport ProfilePhoto from '@contact/components/Add/ProfilePhoto.vue'\r\nimport WriteForm from '@contact/components/Add/WriteForm.vue'\r\nimport api from '@contact/api'\r\nimport { ContactsStoredType } from '../types/enums'\r\n@Component({\r\n components: { \r\n ProfilePhoto,\r\n WriteForm\r\n },\r\n})\r\nexport default class AddContainer extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n item = ({\r\n displayName: '',\r\n surname: '',\r\n givenName: '',\r\n email: '',\r\n companyName: '',\r\n department: '',\r\n jobTitle: '',\r\n officeLocation: '',\r\n hasPicture: true,\r\n mobile: '',\r\n businessPhone: '',\r\n businessFax: '',\r\n businessHomePage: '',\r\n businessAddress: {\r\n city: '',\r\n countryOrRegion: '',\r\n postalCode: '',\r\n state: '',\r\n street: '',\r\n } as contacts.ContactAddresses,\r\n homeAddress: {\r\n city: '',\r\n countryOrRegion: '',\r\n postalCode: '',\r\n state: '',\r\n street: '',\r\n } as contacts.ContactAddresses,\r\n deletedDate: '',\r\n //attachments: [] as any,\r\n photoPath: '',\r\n targetPersonCode: '',\r\n parentFolderId: '',\r\n //itemClass:\r\n //storedType:\r\n isSharing: false,\r\n isShared: false,\r\n } as contacts.ContactItem);\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async save() {\r\n const item = this.item;\r\n \r\n if (item.givenName === '') {\r\n await(window as any).alertAsync(this.$t('M_Contact_InvalidValueError6').toString());\r\n return false;\r\n } else {\r\n const fields: mail.api.FieldOption[] = [\r\n { key: 'GivenName', value: item.givenName },\r\n {\r\n key: 'DisplayName',\r\n value: item.surname?.concat(item.givenName),\r\n },\r\n ];\r\n if (item.email) {\r\n fields.push({\r\n key: 'EmailAddresses',\r\n indexedKey: 'EmailAddress1',\r\n value: item.email,\r\n });\r\n }\r\n if (item.surname) {\r\n fields.push({ key: 'Surname', value: item.surname });\r\n }\r\n if (item.mobile) {\r\n fields.push({\r\n key: 'PhoneNumbers',\r\n indexedKey: 'MobilePhone',\r\n value: item.mobile,\r\n });\r\n }\r\n if (item.companyName) {\r\n fields.push({ key: 'CompanyName', value: item.companyName });\r\n }\r\n if (item.department) {\r\n fields.push({ key: 'Department', value: item.department });\r\n }\r\n if (item.jobTitle) {\r\n fields.push({ key: 'JobTitle', value: item.jobTitle });\r\n }\r\n if (item.businessPhone) {\r\n fields.push({\r\n key: 'PhoneNumbers',\r\n indexedKey: 'BusinessPhone',\r\n value: item.businessPhone,\r\n });\r\n }\r\n if (item.businessFax) {\r\n fields.push({\r\n key: 'PhoneNumbers',\r\n indexedKey: 'BusinessFax',\r\n value: item.businessFax,\r\n });\r\n }\r\n if (item.businessHomePage) {\r\n fields.push({\r\n key: 'BusinessHomePage',\r\n indexedKey: 'BusinessHomePage',\r\n value: item.businessHomePage,\r\n });\r\n }\r\n \r\n if (item.businessAddress && item.businessAddress.street) {\r\n fields.push({\r\n key: 'PhysicalAddresses',\r\n indexedKey: 'BusinessAddressStreet',\r\n value: {\r\n Street: item.businessAddress.street,\r\n PostalCode: item.businessAddress.postalCode,\r\n },\r\n });\r\n }\r\n if (item.homeAddress && item.homeAddress.street) {\r\n fields.push({\r\n key: 'PhysicalAddresses',\r\n indexedKey: 'HomeAddressStreet',\r\n value: {\r\n Street: item.homeAddress.street,\r\n PostalCode: item.homeAddress.postalCode,\r\n },\r\n });\r\n }\r\n if (item.officeLocation) {\r\n fields.push({ key: 'OfficeLocation', value: item.officeLocation });\r\n }\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: fields,\r\n parentId: item.parentFolderId,\r\n type: 'Contact',\r\n };\r\n\r\n api.contact.createContact(data, ContactsStoredType.EWS).then((res) => {\r\n if (res) {\r\n this.$router.push('/contact/list')\r\n }\r\n })\r\n .catch(async (err) => {\r\n console.log('addcontact error', err);\r\n if (err.type === 'DuplicateNameException') {\r\n await(window as any).alertAsync(this.$t('M_Contact_DuplicateContact2').toString());\r\n return Promise.reject(err);\r\n }\r\n });\r\n }\r\n }\r\n\r\n created() {\r\n api.personal.getBasicContactFolder().then((res) => {\r\n this.item.parentFolderId = res[0].id\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AddContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AddContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddContainer.vue?vue&type=template&id=6d3b9746&\"\nimport script from \"./AddContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./AddContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageEditHeaderWithActionBar from '@/components/common/Header/PageEditHeaderWithActionBar.vue'\r\nimport AddContainer from '@contact/containers/AddContainer.vue'\r\n@Component({\r\n components: { PageEditHeaderWithActionBar, AddContainer }\r\n})\r\nexport default class AddView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n save() {\r\n (this.$refs.addContainer as any).save()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AddView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./AddView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddView.vue?vue&type=template&id=3518ed6b&\"\nimport script from \"./AddView.ts?vue&type=script&lang=ts&\"\nexport * from \"./AddView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',[_c('a',{staticClass:\"item\",on:{\"click\":_vm.save}},[_c('i',{staticClass:\"icon-check-mark\"})])]),_c('EditContainer',{ref:\"editContainer\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ProfilePhoto'),_c('EditForm',{attrs:{\"item\":_vm.item}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('div',{staticClass:\"write-area\"},[_c('form',[_c('div',{staticClass:\"ip-last-name\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user\"}),_vm._v(_vm._s(_vm.$t('W_Contact_Lastname')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.surname),expression:\"item.surname\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.surname)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"surname\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-name\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user\"}),_vm._v(_vm._s(_vm.$t('W_Contact_Firstname')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.givenName),expression:\"item.givenName\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.givenName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"givenName\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-phone-number\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-phone\"}),_vm._v(_vm._s(_vm.$t('휴대전화')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.mobile),expression:\"item.mobile\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.mobile)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"mobile\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-mail\"},[_c('h4',{staticClass:\"title-icon\"},[_c('a',[_c('label',[_c('i',{staticClass:\"icon-un-email\"}),_vm._v(_vm._s(_vm.$t('W_Contact_Email')))])])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.email),expression:\"item.email\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"email\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-company\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-em-office\"}),_vm._v(_vm._s(_vm.$t('W_Contact_CompanyName')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.companyName),expression:\"item.companyName\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.companyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"companyName\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-company-number\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-office-call\"}),_vm._v(_vm._s(_vm.$t('W_Contact_BizPhone')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.businessPhone),expression:\"item.businessPhone\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.businessPhone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"businessPhone\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-rank\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-rank\"}),_vm._v(_vm._s(_vm.$t('W_Contact_JobTitle')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.jobTitle),expression:\"item.jobTitle\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.jobTitle)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"jobTitle\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-team\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-user-group\"}),_vm._v(_vm._s(_vm.$t('부서명')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.department),expression:\"item.department\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.department)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"department\", $event.target.value)}}})])]),_c('div',{staticClass:\"ip-company-address\"},[_c('h4',{staticClass:\"title-icon\"},[_c('label',[_c('i',{staticClass:\"icon-location\"}),_vm._v(_vm._s(_vm.$t('W_Contact_BizAddress')))])]),_c('div',{staticClass:\"info-txt\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.officeLocation),expression:\"item.officeLocation\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.officeLocation)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"officeLocation\", $event.target.value)}}})])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n@Component({\r\n components: {\r\n },\r\n})\r\nexport default class EditForm extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({type: Object}) item!: contacts.ContactItem\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./EditForm.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./EditForm.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditForm.vue?vue&type=template&id=6e0876c0&\"\nimport script from \"./EditForm.ts?vue&type=script&lang=ts&\"\nexport * from \"./EditForm.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport ProfilePhoto from '@contact/components/Add/ProfilePhoto.vue'\r\nimport EditForm from '@contact/components/Edit/EditForm.vue'\r\nimport api from '@contact/api'\r\nimport { ContactsStoredType } from '../types/enums'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@contact/store/types'\r\n@Component({\r\n components: { \r\n ProfilePhoto,\r\n EditForm\r\n },\r\n computed: {\r\n ...mapGetters({\r\n item: types.CURRENT_CONTACT_ITEM\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCurreuntItem: types.CURRENT_CONTACT_ITEM,\r\n })\r\n }\r\n})\r\nexport default class EditContainer extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n item!: contacts.ContactItem\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n \r\n setCurreuntItem!: (item: contacts.ContactItem) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async save() {\r\n const item = this.item;\r\n \r\n if (item.givenName === '') {\r\n await(window as any).alertAsync(this.$t('M_Contact_InvalidValueError6').toString());\r\n return false;\r\n } else {\r\n item.displayName = item.surname == null ? item.givenName : item.surname?.concat(item.givenName)\r\n const fields: mail.api.FieldOption[] = [\r\n { key: 'GivenName', value: item.givenName },\r\n {\r\n key: 'DisplayName',\r\n value: item.surname?.concat(item.givenName),\r\n },\r\n ];\r\n if (item.email) {\r\n fields.push({\r\n key: 'EmailAddresses',\r\n indexedKey: 'EmailAddress1',\r\n value: item.email,\r\n });\r\n }\r\n if (item.surname) {\r\n fields.push({ key: 'Surname', value: item.surname });\r\n }\r\n if (item.mobile) {\r\n fields.push({\r\n key: 'PhoneNumbers',\r\n indexedKey: 'MobilePhone',\r\n value: item.mobile,\r\n });\r\n }\r\n if (item.companyName) {\r\n fields.push({ key: 'CompanyName', value: item.companyName });\r\n }\r\n if (item.department) {\r\n fields.push({ key: 'Department', value: item.department });\r\n }\r\n if (item.jobTitle) {\r\n fields.push({ key: 'JobTitle', value: item.jobTitle });\r\n }\r\n if (item.businessPhone) {\r\n fields.push({\r\n key: 'PhoneNumbers',\r\n indexedKey: 'BusinessPhone',\r\n value: item.businessPhone,\r\n });\r\n }\r\n if (item.businessFax) {\r\n fields.push({\r\n key: 'PhoneNumbers',\r\n indexedKey: 'BusinessFax',\r\n value: item.businessFax,\r\n });\r\n }\r\n if (item.businessHomePage) {\r\n fields.push({\r\n key: 'BusinessHomePage',\r\n indexedKey: 'BusinessHomePage',\r\n value: item.businessHomePage,\r\n });\r\n }\r\n \r\n if (item.businessAddress && item.businessAddress.street) {\r\n fields.push({\r\n key: 'PhysicalAddresses',\r\n indexedKey: 'BusinessAddressStreet',\r\n value: {\r\n Street: item.businessAddress.street,\r\n PostalCode: item.businessAddress.postalCode,\r\n },\r\n });\r\n }\r\n if (item.homeAddress && item.homeAddress.street) {\r\n fields.push({\r\n key: 'PhysicalAddresses',\r\n indexedKey: 'HomeAddressStreet',\r\n value: {\r\n Street: item.homeAddress.street,\r\n PostalCode: item.homeAddress.postalCode,\r\n },\r\n });\r\n }\r\n if (item.officeLocation) {\r\n fields.push({ key: 'OfficeLocation', value: item.officeLocation });\r\n }\r\n const data: mail.api.DynamicApiOptions = {\r\n fields: fields,\r\n id: item.id,\r\n type: 'Contact',\r\n };\r\n\r\n api.contact.editContact(data, ContactsStoredType.EWS).then((res) => {\r\n this.setCurreuntItem(item)\r\n this.$router.push({ name: 'contact-view' })\r\n })\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditContainer.vue?vue&type=template&id=e0b7c576&\"\nimport script from \"./EditContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./EditContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport EditContainer from '@contact/containers/EditContainer.vue'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, EditContainer }\r\n})\r\nexport default class EditView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n save() {\r\n (this.$refs.editContainer as any).save()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./EditView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditView.vue?vue&type=template&id=19343ee6&\"\nimport script from \"./EditView.ts?vue&type=script&lang=ts&\"\nexport * from \"./EditView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\r\nimport ContactView from '../views/ContactView.vue'\r\nimport ListView from '../views/ListView.vue'\r\nimport AddView from '../views/AddView.vue'\r\nimport EditView from '../views/EditView.vue'\r\nconst Contact = () => import(/* webpackChunkName: \"contact\" */ '@contact/Index.vue')\r\nconst ContactMaster = () => import(/* webpackChunkName: \"contact\" */ '@contact/views/Master.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/contact',\r\n component: Contact,\r\n children: [\r\n {\r\n path: '',\r\n component: ContactMaster,\r\n children: [\r\n {\r\n path: 'list',\r\n name: 'contact-list',\r\n component: ListView,\r\n },\r\n {\r\n path: 'add',\r\n name: 'contact-add',\r\n component: AddView,\r\n },\r\n {\r\n path: 'view',\r\n name: 'contact-view',\r\n component: ContactView,\r\n },\r\n {\r\n path: 'edit',\r\n name: 'contact-edit',\r\n component: EditView,\r\n },\r\n ],\r\n },\r\n {\r\n path:'',\r\n redirect: 'list'\r\n }\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',{attrs:{\"title\":_vm.currentPage.name}},_vm._l((_vm.getActionItems()),function(item,idx){return _c('a',{key:idx,staticClass:\"item\",on:{\"click\":function($event){return _vm.action(item)}}},[_c('div',{staticClass:\"lh\"},[_c('img',{attrs:{\"src\":_vm.getActionImgUrl(item)}}),_c('span',[_vm._v(_vm._s(item.resourceId))])])])}),0),_c('ViewContainer'),_c('ApprovalProcessingModal',{attrs:{\"show\":_vm.showModal,\"actionItem\":_vm.actionItem},on:{\"close\":function($event){_vm.showModal = false},\"goto\":_vm.showModalGotoList}}),_c('CommentModal',{attrs:{\"show\":_vm.toggleCommentModal},on:{\"close\":function($event){_vm.toggleCommentModal = false}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"read-area\"},[(_vm.current)?_c('section',[_c('div',{staticClass:\"read-title\"},[_c('Title',{attrs:{\"item\":_vm.current.apm}})],1),_c('div',{staticClass:\"approval-title flex-layout board-list\"},[_c('ProcessLine',{model:{value:(_vm.current.approvalLineList),callback:function ($$v) {_vm.$set(_vm.current, \"approvalLineList\", $$v)},expression:\"current.approvalLineList\"}}),_c('div',{staticClass:\"title-right\"},[_c('a',{on:{\"click\":function($event){_vm.show = !_vm.show}}},[_c('i',{class:[_vm.show ? 'icon-up' : 'icon-down']})])])],1),(_vm.show && _vm.current.approvalLineList)?_c('ApprovalStatus',{model:{value:(_vm.current.approvalLineList),callback:function ($$v) {_vm.$set(_vm.current, \"approvalLineList\", $$v)},expression:\"current.approvalLineList\"}}):_vm._e(),_c('ApprovalInfo',{attrs:{\"item\":_vm.current.apm,\"detail\":true}}),_c('div',{staticClass:\"read-frame\"},[_c('iframe',{attrs:{\"src\":_vm.readUrl,\"id\":\"workflowFrame\"},on:{\"load\":_vm.iframeLoading}})])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"title-left\"},[_c('h4',[_vm._v(_vm._s(_vm.item.subject))]),_c('div',{staticClass:\"info\"},[_c('span',{staticClass:\"writer\"},[_vm._v(\" [\"+_vm._s(_vm.item.reqDeptName)+\"] \"+_vm._s(_vm.item.reqName + _vm.getPositionName(_vm.item))+\" \")]),_c('span',{staticClass:\"divide-md\"}),_c('span',{staticClass:\"created\"},[_vm._v(\" \"+_vm._s(_vm.getDate(_vm.item.createdDate, 'yyyy-MM-dd H:i'))+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport * as dateutil from '@/util/date-helper'\r\n\r\n@Component({\r\n})\r\nexport default class Title extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Object }) item!: workflow.WorkflowItem;\r\n \r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getDate(dateStr: string, format: string) {\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr));\r\n }\r\n\r\n getPositionName(item: any) {\r\n return item.positionName ? item.positionName : '';\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./Title.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./Title.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Title.vue?vue&type=template&id=f897a528&\"\nimport script from \"./Title.ts?vue&type=script&lang=ts&\"\nexport * from \"./Title.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.lineInfo && _vm.lineInfo.length)?_c('div',{staticClass:\"approval-status approval-scroll\"},[_c('ul',_vm._l((_vm.lineInfo),function(line,idx){return _c('li',{key:idx,class:_vm.getLineClass(line.approvalStatus)},[_c('div',{staticClass:\"approval-manager\"},[_c('div',{staticClass:\"manager-img\"},[(_vm.avatar.loading)?_c('img',{attrs:{\"src\":\"/cm/gres/v1/img/ghost_loading.png\"},on:{\"error\":_vm.error}}):_c('img',{ref:\"userPhoto\",refInFor:true,attrs:{\"src\":_vm.getPersonImage(line.approverCode)},on:{\"error\":_vm.errorGhost}})]),_c('div',{staticClass:\"manager-info\"},[_c('span',{staticClass:\"user-info\"},[_vm._v(\" [\"+_vm._s(line.deptName)+\"] \"+_vm._s(line.approverName + _vm.getPositionName(line))+\" \")]),(_vm.getDisplayDate(line))?_c('span',{staticClass:\"date\"},[_vm._v(_vm._s(_vm.getDisplayDate(line)))]):_vm._e(),(_vm.getDisplayDate(line))?_c('span',{staticClass:\"divide-md\"}):_vm._e(),(_vm.getDisplayTime(line))?_c('span',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.getDisplayTime(line)))]):_vm._e(),(line.approverComment)?_c('a',{staticClass:\"comment\"},[_c('i',{staticClass:\"icon-communication\"}),_c('p',[_vm._v(_vm._s(line.approverComment))])]):_vm._e()])])])}),0)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport * as dateutil from '@/util/date-helper';\r\nimport { cache } from '@appbase/util/index';\r\n\r\n@Component({\r\n})\r\nexport default class ApprovalStatus extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Array }) value!: any;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n lineInfo: any = [];\r\n photoInfo: any = [];\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n };\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getDate(dateStr: string, format: string) {\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr));\r\n }\r\n\r\n getDisplayDate(line: any) {\r\n var date = null;\r\n if (line.approvedDate) {\r\n date = this.getDate(line.approvedDate, 'yyyy-MM-dd');\r\n } else if (line.receptionDate) {\r\n date = this.getDate(line.receptionDate, 'yyyy-MM-dd');\r\n }\r\n return date;\r\n }\r\n\r\n getDisplayTime(line: any) {\r\n var date = null;\r\n if (line.approvedDate) {\r\n date = this.getDate(line.approvedDate, 'H:i');\r\n } else if (line.receptionDate) {\r\n date = this.getDate(line.receptionDate, 'H:i');\r\n }\r\n return date;\r\n }\r\n\r\n getLineClass(status: string) {\r\n switch (status) {\r\n case 'A0': return 'fail'; // 부결\r\n case 'A1': return 'complete'; // 승인\r\n case 'A2': return ''; // 진행\r\n case 'A3': return ''; // 대기\r\n case 'A4': return ''; // 임시저장\r\n case 'A5': return 'complete'; // 스킵\r\n case 'A6': return ''; // 대결진행\r\n case 'A7': return 'complete'; // 대결승인\r\n case 'A8': return 'fail'; // 대결부결\r\n case 'A9': return 'fail'; // 대결폐기\r\n case 'AC': return ''; // 참조\r\n case 'AD': return 'fail'; // 폐기\r\n case 'DE': return 'fail'; // 삭제\r\n case 'HD': return ''; // 보류\r\n case 'HE': return ''; // 수정요청\r\n case 'DR': return ''; // 공문 수신대기\r\n case 'DU': return 'complete'; // 공문 수신\r\n case 'DL': return 'fail'; // 공문 거절\r\n case 'AA': return 'complete'; // 전결\r\n case 'AP': return 'complete'; // 기안\r\n case 'DA': return 'complete'; // 부서협조 접수 (재사용개념)\r\n case 'D2': return ''; // 부서협조 진행\r\n }\r\n return '';\r\n }\r\n\r\n getPositionName(line: any) {\r\n return line.positionName ? line.positionName : '';\r\n }\r\n\r\n getPhotoInfo() {\r\n let codes: string[] = [];\r\n this.lineInfo.map((line: any) => {\r\n codes.push(line.approverCode)\r\n });\r\n this.avatar.loading = true;\r\n cache.avatar.getByCodes(codes).then((res: any) => {\r\n this.avatar.loading = false;\r\n this.photoInfo = res;\r\n });\r\n }\r\n\r\n getPersonImage(personCode: string) {\r\n const personImage = this.photoInfo.filter((info: any) => \r\n info.personCode === personCode\r\n )\r\n return personImage[0].photoPath;\r\n }\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png';\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement;\r\n elem.src = '/cm/gres/faux/images/ghost.png';\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.lineInfo = this.value.filter((v: any) => {\r\n return v.sortNumber > 0 && v.isDisplay;\r\n });\r\n\r\n console.log('this.lineInfo', this.lineInfo)\r\n this.getPhotoInfo()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalStatus.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalStatus.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApprovalStatus.vue?vue&type=template&id=ac2b85e8&\"\nimport script from \"./ApprovalStatus.ts?vue&type=script&lang=ts&\"\nexport * from \"./ApprovalStatus.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"approval-info\"},[_c('dl',{staticClass:\"document-type\"},[_c('dt',{staticClass:\"tit\"},[_vm._v(_vm._s(_vm.$t('문서유형')))]),_c('dd',[_c('span',[_vm._v(_vm._s(_vm.item.applicationName))])])]),(_vm.detail)?_c('dl',{staticClass:\"document-number\"},[_c('dt',{staticClass:\"tit\"},[_vm._v(_vm._s(_vm.$t('W_Document_number')))]),_c('dd',[_c('span',[_vm._v(_vm._s(_vm.item.applicationId))])])]):_vm._e(),(_vm.detail)?_c('dl',{staticClass:\"deadline\"},[_c('dt',{staticClass:\"tit\"},[_vm._v(_vm._s(_vm.$t('처리기한')))]),_c('dd',[_c('span',[_vm._v(\" \"+_vm._s(_vm.getDate(_vm.item.draftDate, 'yyyy-MM-dd H:i')))])])]):_vm._e(),(!_vm.detail)?_c('dl',{staticClass:\"date\"},[_c('dt',{staticClass:\"tit\"},[_vm._v(_vm._s(_vm.$t('W_Date_of_draft')))]),_c('dd',[_c('span',[_vm._v(_vm._s(_vm.getDate(_vm.item.createdDate, 'yyyy-MM-dd H:i')))])])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport * as dateutil from '@/util/date-helper'\r\n\r\n@Component({\r\n})\r\nexport default class ApprovalInfo extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: any;\r\n @Prop({ type: Boolean, default: true }) detail!: any;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getDate(dateStr: string, format: string) {\r\n return dateutil.uGetDateFormat(format, dateutil.IEDate(dateStr));\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalInfo.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalInfo.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApprovalInfo.vue?vue&type=template&id=55649540&\"\nimport script from \"./ApprovalInfo.ts?vue&type=script&lang=ts&\"\nexport * from \"./ApprovalInfo.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"process\",staticStyle:{\"height\":\"auto\"}},[_c('ul',[_vm._l((_vm.approverList),function(line,lineidx){return _c('li',{key:lineidx},[_c('p',{class:_vm.getLineClass(line.approvalStatus)},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(line.approverName))])])])}),(!_vm.isLast)?_c('li',[_c('p',{staticClass:\"next\"})]):_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name: 'ProcessLine',\r\n})\r\nexport default class ProcessLine extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n @Prop({ type: Array }) value!: any;\r\n @Prop({ type: String }) apmInfo!: any;\r\n @Prop({ type: String }) type!: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n data: string = '';\r\n isLast: boolean = false;\r\n lineInfo: any = [];\r\n approverList: workflow.ApprovalLine[] = [] as workflow.ApprovalLine[];\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('value')\r\n onValueChanged() {\r\n this.setProcessLine();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n getLineClass(status: string) {\r\n switch (status) {\r\n case 'A0': return 'proceed last';\r\n case 'A1': return 'approval';\r\n case 'A2': return 'proceed';\r\n case 'A3': return 'proceed last';\r\n case 'A4': return 'proceed last';\r\n case 'A5': return 'approval';\r\n case 'A6': return 'proceed';\r\n case 'A7': return 'approval';\r\n case 'A8': return 'proceed last';\r\n case 'A9': return 'proceed last';\r\n case 'AC': return 'proceed last';\r\n case 'AD': return 'proceed last';\r\n case 'DE': return 'proceed last';\r\n case 'HD': return 'proceed';\r\n case 'HE': return 'proceed';\r\n case 'DR': return 'proceed last'; // 공문 수신대기\r\n case 'DU': return 'approval'; // 공문 수신\r\n case 'DL': return 'proceed last'; // 공문 거절\r\n case 'AA': return 'approval'; // 전결\r\n case 'AP': return 'approval'; // 기안\r\n case 'DA': return 'approval'; // 부서협조 접수 (재사용개념)\r\n case 'D2': return 'proceed'; // 부서협조 진행\r\n }\r\n return 'proceed last';\r\n }\r\n\r\n setProcessLine() {\r\n if (this.value) {\r\n this.lineInfo = this.value.filter((v: any) => {\r\n return v.sortNumber > 0 && v.isDisplay;\r\n });\r\n this.approverList = this.lineInfo;\r\n this.isLast = true;\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n created() {\r\n this.setProcessLine(); \r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProcessLine.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ProcessLine.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProcessLine.vue?vue&type=template&id=dfa1f8f4&\"\nimport script from \"./ProcessLine.ts?vue&type=script&lang=ts&\"\nexport * from \"./ProcessLine.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"searchable-iframe-wrapper\"},[_c('span',{attrs:{\"hidden\":\"\"}},[_vm._v(\"empty...\")]),_c('iframe',{ref:\"iframe\",staticClass:\"searchable-iframe\",class:[_vm.full ? 'body-full' : 'body-expand'],attrs:{\"src\":_vm.src},on:{\"load\":_vm.loaded}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { mapMutations } from 'vuex'\r\n//const Mark = require('mark.js');\r\nimport $ from 'jquery';\r\n//import { buildPattern } from '@/util';\r\nimport * as types from '@/store/types'\r\n\r\n@Component({\r\n})\r\nexport default class Iframe extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n globalBusy!: (flag: boolean) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n instance?: any;\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: String }) src!: string;\r\n @Prop({ type: String, default: '' }) type!: string;\r\n @Prop({ type: Boolean, default: true }) full!: boolean;\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loaded() {\r\n /** ContextMenu Hide */\r\n const _window = window as Window;\r\n const _this = this;\r\n var frame = document.querySelector(\r\n '.searchable-iframe'\r\n ) as HTMLFrameElement;\r\n let contentDocument = frame.contentDocument as HTMLDocument;\r\n if (contentDocument) {\r\n if (\r\n Number(contentDocument.body.offsetHeight) < frame.offsetHeight\r\n ) {\r\n contentDocument.body.style.minHeight = `${frame.offsetHeight}px`;\r\n }\r\n\r\n contentDocument.body.addEventListener(\r\n 'mouseup',\r\n (e) => {\r\n _window.document\r\n .querySelectorAll('.btnContextMenuClose')\r\n .forEach((x) => {\r\n (x as HTMLElement).click();\r\n });\r\n },\r\n false\r\n );\r\n }\r\n\r\n /** Appointment, Contact Valid */\r\n if (contentDocument) {\r\n let $html = $('
');\r\n let $div = $(contentDocument).find('[data-key=\"Appointment\"]');\r\n if (!$div.length) {\r\n $div = $(contentDocument).find('[data-key=\"Contact\"]');\r\n }\r\n\r\n if ($div.length) {\r\n let buttonStyle =\r\n 'border: 1px solid #808080;background:none;cursor:pointer;padding: 5px 10px;';\r\n let dataKey = $div.attr('data-key') as\r\n | 'Appointment'\r\n | 'Contact'\r\n | 'Exception';\r\n let itemid = $div.find('input[type=\"hidden\"]').val() as string;\r\n let title = this.$t(\r\n dataKey == 'Appointment'\r\n ? 'message.W_Schedule_Schedule'\r\n : 'message.W_Contact_Contact'\r\n ).toString();\r\n let $h1 = $(`

${title}

`);\r\n let $p = $(\r\n `

${this.$t(\r\n 'message.M_Valid_MessageType'\r\n ).toString()}

`\r\n );\r\n let $btnRestore = $(\r\n ``\r\n );\r\n let $btnHardDelete = $(\r\n ``\r\n );\r\n\r\n $html.append($h1);\r\n $html.append($p);\r\n $html.append($btnRestore);\r\n $html.append($btnHardDelete);\r\n if (dataKey == 'Appointment' || dataKey == 'Contact') {\r\n $div.append($html);\r\n }\r\n }\r\n }\r\n\r\n const jqs = $('.searchable-iframe')\r\n .contents()\r\n .find('a')\r\n .off('click')\r\n .click(function(event) {\r\n window.open(event.target.href);\r\n event.preventDefault();\r\n });\r\n\r\n this.setIframeHeight();\r\n\r\n this.$emit('iframeLoading');\r\n }\r\n\r\n /**\r\n * 컨텐츠 크기와 일치하도록 IFrame 높이를 설정합니다.\r\n * @param $event\r\n */\r\n setIframeHeight($event?: any) {\r\n const ifrm = this.$refs.iframe as any;\r\n var doc = this.getIframeDocument();\r\n // ifrm.style.visibility = 'hidden';\r\n // ifrm.style.height = '10px'; // reset to minimal height ...\r\n // IE opt. for bing/msn needs a bit added or scrollbar appears\r\n ifrm.style.height = this.calcSize('Height', doc) + 'px';\r\n ifrm.style.width = this.calcSize('Width', doc) + 'px';\r\n ifrm.style.visibility = 'visible';\r\n }\r\n\r\n getIframeDocument() {\r\n const ifrm = this.$refs.iframe as any;\r\n var doc = ifrm.contentDocument\r\n ? ifrm.contentDocument\r\n : ifrm.contentWindow.document;\r\n return doc;\r\n }\r\n\r\n calcSize(target: string, doc: any) {\r\n doc = doc || document;\r\n // stackoverflow.com/questions/1145850/\r\n var body = doc.body,\r\n html = doc.documentElement;\r\n var size = Math.max(\r\n body[`scroll${target}`],\r\n body[`offset${target}`],\r\n html[`client${target}`],\r\n html[`scroll${target}`],\r\n html[`offset${target}`]\r\n );\r\n return size + 100;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n var context = document.querySelector('.searchable-iframe-wrapper');\r\n //this.instance = new Mark(context);\r\n }\r\n\r\n beforeDestroy() {\r\n //delete this.instance;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Iframe.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./Iframe.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Iframe.vue?vue&type=template&id=547bfb80&scoped=true&\"\nimport script from \"./Iframe.ts?vue&type=script&lang=ts&\"\nexport * from \"./Iframe.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./Iframe.vue?vue&type=style&index=0&id=547bfb80&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"547bfb80\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport Title from '@workflow/components/Title.vue'\r\nimport ApprovalStatus from '@workflow/components/ApprovalStatus.vue'\r\nimport ApprovalInfo from '@workflow/components/ApprovalInfo.vue'\r\nimport ProcessLine from '@workflow/components/Read/ProcessLine.vue'\r\nimport Iframe from '@workflow/components/Read/Iframe.vue'\r\nimport { mapGetters, mapMutations } from 'vuex';\r\nimport * as types from '@workflow/store/types'\r\n@Component({\r\n components: { \r\n Title, \r\n ApprovalStatus, \r\n ApprovalInfo, \r\n ProcessLine, \r\n Iframe\r\n },\r\n computed: {\r\n ...mapGetters({\r\n current: types.WORKFLOW_CURRENT,\r\n })\r\n }\r\n})\r\nexport default class ViewContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n current!: workflow.CM_Form;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n show: boolean = false\r\n isLoading: boolean = true\r\n readUrl: string = '';\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n iframeLoading() {\r\n const _this = this;\r\n var iframe = window.document.getElementById('workflowFrame'); // workflow iframe div\r\n //var iframe = frame?.getElementsByTagName('iframe')[0] // iframe\r\n var contents = (iframe as any).contentDocument; // iframe document \r\n \r\n // 폼 로드 체크\r\n const loadCheckFn = function() {\r\n var formBody = contents.querySelector('#formBody'); // 폼 로드 시 무조건 존재\r\n if (formBody) {\r\n _this.isloading(false);\r\n clearInterval(loadCheckInterval);\r\n }\r\n };\r\n\r\n var loadCheckInterval = setInterval(loadCheckFn, 1000);\r\n \r\n // 폼 로드 10초 이상 지연시 로딩 제거\r\n setTimeout(function(){\r\n _this.isloading(false);\r\n clearInterval(loadCheckInterval);\r\n }, 10000);\r\n }\r\n\r\n loadDocument() {\r\n this.isloading(true);\r\n var storekey = `s_${Date.now()}`;\r\n var applicationId = this.current.apm?.applicationId;\r\n var workflowPageUrl = `/workflow/page/form?apmid=${this.$route.query.apmid}&appid=${applicationId}&storekey=${storekey}&pop=1&frame=true`;\r\n if (process.env.NODE_ENV === 'development') {\r\n workflowPageUrl = (window as any).domain + workflowPageUrl\r\n };\r\n this.readUrl = workflowPageUrl;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.loadDocument()\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ViewContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ViewContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewContainer.vue?vue&type=template&id=411ef474&scoped=true&\"\nimport script from \"./ViewContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ViewContainer.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ViewContainer.vue?vue&type=style&index=0&id=411ef474&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"411ef474\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":_vm.$t(_vm.actionItem.resourceId)},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([(_vm.item.apm)?{key:\"body\",fn:function(){return [_c('div',{staticClass:\"layer-info-title\"},[_c('h5',[_vm._v(_vm._s(_vm.item.apm.subject))]),_c('span',{staticClass:\"layer-approval-writer\"},[_vm._v(\" [\"+_vm._s(_vm.item.apm.reqDeptName)+\"] \"+_vm._s(_vm.item.apm.reqName)+\" \"+_vm._s(_vm.item.apm.reqTitleName))])]),_c('div',{staticClass:\"layer-text-field\",staticStyle:{\"text-align\":\"center\"}},[_c('h6',[_vm._v(_vm._s(_vm.$t('의견')))]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.comment),expression:\"comment\"}],attrs:{\"placeholder\":_vm.$t('의견을_입력해주세요')},domProps:{\"value\":(_vm.comment)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.comment=$event.target.value}}})])]},proxy:true}:null,{key:\"bottom\",fn:function(){return _vm._l((_vm.getActionChildItems()),function(item,idx){return _c('div',{key:idx,staticClass:\"layer-f-btn\",on:{\"click\":function($event){return _vm.action(item)}}},[_c('a',{staticClass:\"ronud-btn\"},[_c('i',{class:item.actionId === 'RJ' ? 'icon-denied' : 'icon-check-mark'})]),_c('p',[_vm._v(_vm._s(item.resourceId))])])})},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch, PropSync } from 'vue-property-decorator'\r\nimport PopupModal from '@/components/common/Modal/PopupModal.vue'\r\n//YSJ\r\n//import { mapGetters, mapMutations } from 'vuex'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex';\r\n\r\nimport * as types from '@workflow/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\nimport api from '@workflow/api'\r\n@Component({\r\n name: 'ApprovalProcessingModal',\r\n components: { PopupModal },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n current: types.WORKFLOW_CURRENT,\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n setCurrent : types.WORKFLOW_CURRENT\r\n }),\r\n ...mapMutations({\r\n\r\n })\r\n }\r\n})\r\nexport default class ApprovalProcessingModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean }) show!: boolean\r\n @Prop({ type: Object }) actionItem!: workflow.TC_APM_MENUS\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n current!: workflow.CM_Form\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrent!: (data: any) => Promise;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n actionFlag: boolean = false;\r\n comment: string = ''\r\n item: any = {} as workflow.WorkflowItem\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('current')\r\n onChangedWorkflowDetail() {\r\n if (this.current) {\r\n this.item = this.current\r\n }\r\n }\r\n\r\n async action(item: workflow.TC_APM_MENUS) {\r\n if (item.actionId) {\r\n\r\n // ISU Custom Valid\r\n if (item.menuName == 'ISU_접수취소') {\r\n if (!await(window as any).confirmAsync(this.$t('접수취소를_하시겠습니까').toString())) {\r\n return;\r\n }\r\n }\r\n\r\n if (item.actionId == 'DD') {\r\n if (!await(window as any).confirmAsync(this.$t('정말_삭제하시겠습니까_삭제_시_복원할_수_없습니다').toString())) {\r\n return;\r\n }\r\n }\r\n\r\n var rflag = false;\r\n if (!this.comment?.trim()) {\r\n item.nextActionList?.split(',').forEach((x) => {\r\n if (['RJ','DL','GJ'].indexOf(x) != -1) {\r\n rflag = true;\r\n }\r\n });\r\n }\r\n\r\n if (rflag) {\r\n await(window as any).alertAsync(this.$t('의견을_입력해주세요').toString());\r\n return;\r\n }\r\n\r\n if (['RJ','DL','GJ'].includes(item.actionId) && !this.comment?.trim()) {\r\n await(window as any).alertAsync(this.$t('의견을_입력해주세요').toString());\r\n return;\r\n }\r\n\r\n if (!item.isCustom) {\r\n if (['ED'].includes(item.actionId) && !this.comment?.trim()) {\r\n await(window as any).alertAsync(this.$t('의견을_입력해주세요').toString());\r\n return;\r\n }\r\n }\r\n\r\n if (item.actionId == 'CO') {\r\n if (!await(window as any).confirmAsync(this.$t('처리완료하시겠습니까_').toString())) {\r\n return;\r\n }\r\n }\r\n\r\n if (item.actionId == 'CH') {\r\n if (!await(window as any).confirmAsync(this.$t('확인완료하시겠습니까_').toString())) {\r\n return;\r\n }\r\n }\r\n \r\n }\r\n if (this.actionFlag == false) {\r\n this.actionFlag = true;\r\n var data: any = {\r\n actionId: item.actionId,\r\n nextActionList: item.nextActionList,\r\n comment: this.comment,\r\n personCode: this.User.personCode,\r\n application: this.current.application,\r\n apm: this.current.apm,\r\n apmDetail: this.current.apmDetail,\r\n apmConnectList: this.current.apmConnectList,\r\n approvalLineList: this.current.approvalLineList,\r\n isMobile: true\r\n }\r\n api.form.actionForm(data).then(async res => {\r\n if (res.isError) {\r\n await(window as any).alertAsync(res.message)\r\n } else {\r\n if (res.isRedirect) {\r\n var actionMessage = '';\r\n let actionId = data.actionId.toUpperCase();\r\n\r\n switch (actionId) {\r\n case 'RT':\r\n actionMessage = this.$t('문서를_회수했습니다').toString();\r\n break;\r\n case 'AP':\r\n actionMessage = this.$t('문서를_상신했습니다').toString();\r\n break;\r\n case 'AV':\r\n actionMessage = this.$t('문서를_승인했습니다').toString();\r\n break;\r\n case 'RJ':\r\n actionMessage = this.$t('문서를_반송했습니다').toString();\r\n break;\r\n case 'DA':\r\n actionMessage = this.$t('문서를_접수했습니다').toString();\r\n break;\r\n case 'DU':\r\n actionMessage = this.$t('문서를_접수했습니다').toString();\r\n break;\r\n case 'TD':\r\n case 'DD':\r\n actionMessage = this.$t('문서를_삭제했습니다').toString();\r\n break;\r\n case 'RS':\r\n actionMessage = this.$t('문서를_복원했습니다').toString();\r\n break;\r\n }\r\n\r\n if (actionMessage) {\r\n await(window as any).alertAsync(actionMessage);\r\n }\r\n }\r\n\r\n this.reload()\r\n this.$emit('goto')\r\n this.actionFlag = false;\r\n // this.$emit('close')\r\n }\r\n }).catch(async (err) => {\r\n console.log(err)\r\n await(window as any).alertAsync(err && err.responseText ? err.responseText : (err.message || 'Fail'));\r\n this.reload()\r\n this.$emit('goto')\r\n this.actionFlag = false;\r\n })\r\n }\r\n }\r\n\r\n reload() {\r\n var data: any = {\r\n apmId: Number(this.current.apm?.apmId), // 문서번호\r\n isMobile: true\r\n }\r\n\r\n this.setCurrent(data).then(res => {\r\n })\r\n }\r\n\r\n getActionChildItems() {\r\n return this.current.menus?.filter((x: any) => x.parentMenuId == this.actionItem?.menuId)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalProcessingModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalProcessingModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApprovalProcessingModal.vue?vue&type=template&id=51815b96&\"\nimport script from \"./ApprovalProcessingModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./ApprovalProcessingModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":_vm.$t('의견')},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [(_vm.CommentList.length)?_vm._l((_vm.CommentList),function(item,idx){return _c('div',{key:idx,staticClass:\"list-item\"},[(item.approverComment)?_c('div',{staticClass:\"subject-wrap\"},[_c('p',{staticClass:\"subject\"},[_vm._v(\" \"+_vm._s(idx + 1)+\".\"+_vm._s(item.approverName)+\" \")]),_c('div',{staticClass:\"info\"},[_vm._v(\" \"+_vm._s(item.approverComment)+\" \")])]):_vm._e()])}):[_c('div',{staticClass:\"list-item\"},[_c('div',[_vm._v(_vm._s(_vm.$t('의견이_없습니다')))])])]]},proxy:true},{key:\"bottom\",fn:function(){return undefined},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport PopupModal from '@/components/common/Modal/PopupModal.vue'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\n\r\nimport * as types from '@workflow/store/types'\r\n\r\n@Component({\r\n name: 'ApprovalProcessingModal',\r\n components: { PopupModal },\r\n computed: {\r\n ...mapGetters({\r\n formData: types.WORKFLOW_CURRENT,\r\n }),\r\n },\r\n methods: {\r\n ...mapMutations({\r\n \r\n })\r\n }\r\n})\r\nexport default class CommentModal extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean }) show!: boolean\r\n \r\n //@Prop({ type: Object }) formData!: any\r\n\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n CommentList:any = [];\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n formData!: workflow.CM_Form\r\n\r\n //\r\n // ──────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y L C L E : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created(){\r\n this.CommentList = this.formData?.approvalLineList?.filter((x:any) => x.approverComment);\r\n }\r\n \r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CommentModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./CommentModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommentModal.vue?vue&type=template&id=e142c8cc&\"\nimport script from \"./CommentModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./CommentModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ViewContainer from '@workflow/containers/ViewContainer.vue'\r\nimport ApprovalProcessingModal from '@workflow/components/Modals/ApprovalProcessingModal.vue'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex'\r\nimport CommentModal from '@workflow/components/Modals/CommentModal.vue'\r\nimport * as types from '@workflow/store/types'\r\nimport api from '@workflow/api'\r\nimport * as accountTypes from '@account/store/types'\r\nimport * as globalTypes from '@/store/types'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, ViewContainer, ApprovalProcessingModal,CommentModal },\r\n computed: {\r\n ...mapGetters({\r\n current: types.WORKFLOW_CURRENT,\r\n User: accountTypes.USER,\r\n currentPage: globalTypes.CURRENT_PAGE,\r\n workflowOptions: types.GET_WORKFLOW_OPTIONS\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n \r\n }),\r\n ...mapActions({\r\n setCurrent: types.WORKFLOW_CURRENT,\r\n setWorkflowOptions: types.GET_WORKFLOW_OPTIONS\r\n })\r\n }\r\n})\r\nexport default class ReadView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n setCurrent!: (data: any) => Promise;\r\n setWorkflowOptions!: () => Promise\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n current!: workflow.CM_Form\r\n User!: account.User\r\n currentPage!: object\r\n workflowOptions!: { application: any, system: any };\r\n\r\n toggleCommentModal: boolean = false;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n approvalMenu: number[] = [3, 20] // 결재, 수신\r\n showModal: boolean = false\r\n actionItem: workflow.TC_APM_MENUS | null = null\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get IsExistComment() {\r\n var list = this.current?.approvalLineList?.filter((x:any) => x.approverComment);\r\n var bResult = (list?.length || 0) > 0;\r\n return bResult;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 의견 모달창을 엽니다.\r\n */\r\n showCommentModal(){\r\n this.toggleCommentModal = true\r\n }\r\n\r\n /**\r\n * 액션 가능한 메뉴 그룹 아이템을 가져옵니다.\r\n */\r\n getActionItems() {\r\n var list = this.current.menus?.filter((x: any) => \r\n !x.parentMenuId && x.isRead != this.current.isEdit && !x.isHide && x.isMobile)\r\n list = list?.sort((a:any, b:any) => a.order - b.order)\r\n return list\r\n }\r\n\r\n /**\r\n * 액션 아이템 아이콘 이미지 url을 반환합니다.\r\n */\r\n getActionImgUrl(item: any) {\r\n var url = '';\r\n if (item.iconName) {\r\n url = item.iconName + '?v=1';\r\n } else {\r\n url = '/cm/gres/workflow/workflow/images/mn_03.png';\r\n }\r\n return url;\r\n }\r\n\r\n /**\r\n * 옵션 값을 조회합니다\r\n */\r\n loadData(){\r\n this.getOptionValues([\r\n 'IsOnePersonApproval', \r\n 'IsAbleToDisplayCommentsFirst', \r\n 'IsAbleToDisplaySubject', \r\n 'IsSignatureLineLayout', \r\n 'ApprovalEditPermission', \r\n 'IsChangeDagLine',\r\n 'ApproverEditPermission', \r\n 'IsDirectDocNumber']);\r\n }\r\n\r\n /**\r\n * 액션 모달창을 엽니다.\r\n */\r\n openModal(item: any) {\r\n this.showModal = true\r\n this.actionItem = item\r\n }\r\n\r\n async action(item: workflow.TC_APM_MENUS) {\r\n\r\n if (item.isGroup) { // 그룹 액션 메뉴는 모달에서 처리함\r\n\r\n // ISU Custom Valid\r\n \r\n // 외부 수신의 경우\r\n if (this.current.lineRoleList?.filter((x) => x == 'OuterRequester').length) {\r\n // 외부 수신 접수 상태의 경우\r\n if (item.menuName == 'ISU_외부결재') {\r\n var requesters = this.current.approvalLineList?.filter(x => x.approvalStatus == 'DU' && x.approverCode == this.User.personCode);\r\n if (requesters?.length) {\r\n var requester = requesters[0];\r\n if (this.current.approvalLineList?.filter((x) => x.parentApprovalLineId == requester.parentApprovalLineId).length == 1\r\n && this.current.approvalLineList?.filter((x) => x.sortNumber > 0 && x.approvalStatus == 'A3' && x.approverType == 'AU' && x.lineType != 'SG').length == 0) {\r\n if (!await(window as any).confirmAsync(this.$t('본인전결_하시겠습니까').toString())) {\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // 내부 수신의 경우\r\n if (this.current.lineRoleList?.filter((x) => x == 'InnerRequester').length) {\r\n // 내부 수신 접수 상태의 경우\r\n if (item.menuName == 'ISU_내부결재') {\r\n var requesters = this.current.approvalLineList?.filter(x => x.approvalStatus == 'DA' && x.approverCode == this.User.personCode);\r\n if (requesters?.length) {\r\n var requester = requesters[0];\r\n if (this.current.approvalLineList?.filter((x) => x.parentApprovalLineId == requester.parentApprovalLineId && x.lineType != 'SG').length == 1) {\r\n if (!await(window as any).confirmAsync(this.$t('본인전결_하시겠습니까').toString())) {\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.showModal = true\r\n this.actionItem = item\r\n } else {\r\n if (item.actionId) {\r\n\r\n // ISU Custom Valid\r\n if (item.menuName == 'ISU_접수취소') {\r\n if (!await(window as any).confirmAsync(this.$t('접수취소를_하시겠습니까').toString())) {\r\n return;\r\n }\r\n }\r\n\r\n if (item.actionId == 'DD') {\r\n if (!await(window as any).confirmAsync(this.$t('정말_삭제하시겠습니까_삭제_시_복원할_수_없습니다').toString())) {\r\n return;\r\n }\r\n }\r\n\r\n var data: any = {\r\n actionId: item.actionId,\r\n nextActionList: item.nextActionList,\r\n comment: null,\r\n personCode: this.User.personCode,\r\n application: this.current.application,\r\n apm: this.current.apm,\r\n apmDetail: this.current.apmDetail,\r\n apmConnectList: this.current.apmConnectList,\r\n approvalLineList: this.current.approvalLineList,\r\n isMobile: true\r\n }\r\n api.form.actionForm(data).then(async res => {\r\n if (res.isError) {\r\n await(window as any).alertAsync(res.message)\r\n } else {\r\n if (res.isRedirect) {\r\n var actionMessage = '';\r\n let actionId = data.actionId.toUpperCase();\r\n \r\n switch (actionId) {\r\n case 'RT':\r\n actionMessage = this.$t('문서를_회수했습니다').toString();\r\n break;\r\n case 'AP':\r\n actionMessage = this.$t('문서를_상신했습니다').toString();\r\n break;\r\n case 'AV':\r\n actionMessage = this.$t('문서를_승인했습니다').toString();\r\n break;\r\n case 'RJ':\r\n actionMessage = this.$t('문서를_반송했습니다').toString();\r\n break;\r\n case 'DA':\r\n actionMessage = this.$t('문서를_접수했습니다').toString();\r\n break;\r\n case 'DU':\r\n actionMessage = this.$t('문서를_접수했습니다').toString();\r\n break;\r\n case 'TD':\r\n case 'DD':\r\n actionMessage = this.$t('문서를_삭제했습니다').toString();\r\n break;\r\n case 'RS':\r\n actionMessage = this.$t('문서를_복원했습니다').toString();\r\n break;\r\n }\r\n \r\n if (actionMessage) {\r\n await(window as any).alertAsync(actionMessage);\r\n }\r\n }\r\n \r\n window.history.back();\r\n \r\n }\r\n }).catch((err) => {\r\n console.log(err)\r\n })\r\n \r\n } else {\r\n switch (item.menuName) {\r\n case '의견':\r\n this.toggleCommentModal = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n \r\n }\r\n\r\n /**\r\n * 액션 모달창을 닫고 결재함 목록으로 이동합니다.\r\n */\r\n showModalGotoList() {\r\n this.showModal = false\r\n window.history.back();\r\n }\r\n\r\n /**\r\n * 옵션 값을 조회하여 해당 변수에 값을 할당합니다\r\n */\r\n getOptionValues(props: Array) {\r\n props.forEach((prop: string) => {\r\n var appValues: Array = this.workflowOptions.application[prop];\r\n var sysValue: any = this.workflowOptions.system[prop];\r\n // 양식별 옵션 값이 있는 경우\r\n if (appValues !== undefined && appValues.length) {\r\n if (appValues.length > 1 && this.$route.query.appid && this.$route.query.appid !== undefined) {\r\n var applicationId = this.$route.query.appid.toString();\r\n var idx = appValues.findIndex(x => x.applicationId !== null && x.applicationId.toString() === applicationId);\r\n // index 0 은 공통 옵션 값임\r\n if (idx > 0) {\r\n (this as any)[prop] = appValues[idx].value;\r\n }\r\n else {\r\n (this as any)[prop] = appValues[0].value;\r\n }\r\n\r\n }\r\n else {\r\n (this as any)[prop] = appValues[0].value;\r\n }\r\n }\r\n if (sysValue && sysValue !== undefined) {\r\n (this as any)[prop] = sysValue;\r\n }\r\n })\r\n }\r\n\r\n @Watch('$route.query')\r\n onQueryChanged(newValue: any, oldValue: any) {\r\n // console.log('onQueryChanged', newValue);\r\n // 기안하기 페이지에서 양식을 변경하는 경우 다시 로드해야함\r\n // 재사용시와 충돌하지 않도록 조건 수정함\r\n if (newValue.appid && newValue.storekey !== oldValue.storekey) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n var data: any = {\r\n apmId: Number(this.$route.query.apmid), // 문서번호\r\n personCode: this.User.personCode,\r\n isMobile: true\r\n }\r\n\r\n\r\n this.setCurrent(data).then(res => {\r\n })\r\n this.getActionItems()\r\n this.setWorkflowOptions().then(()=>{\r\n this.loadData();\r\n })\r\n this.toggleCommentModal = this.IsExistComment;\r\n\r\n }\r\n\r\n // isApprovalPossible() {\r\n // var isProssible = false;\r\n // if (this.current.menus) {\r\n // if (this.current.menus?.filter((x: any) => \r\n // !x.parentMenuId && x.isRead != this.current.isEdit && this.approvalMenu.indexOf(x.menuId) != -1).length\r\n // ) {\r\n // isProssible = true;\r\n // }\r\n // }\r\n // return isProssible;\r\n // }\r\n // IsAbleToDisplayCommentsFirst:boolean = false;\r\n // get ShowCommentModal() {\r\n // return this.current.isEdit === false && this.IsAbleToDisplayCommentsFirst && (this.current.approvalLineList?.length ? this.current.approvalLineList.findIndex((x:any) => x.approverComment || '') > -1 : false);\r\n // }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ReadView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReadView.vue?vue&type=template&id=394db398&scoped=true&\"\nimport script from \"./ReadView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ReadView.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ReadView.vue?vue&type=style&index=0&id=394db398&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"394db398\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.searchMode)?_c('PageHeaderWithActionBar',{attrs:{\"title\":_vm.currentPage.name}},[_c('a',{staticClass:\"item\",on:{\"click\":function($event){_vm.searchMode = true}}},[_c('i',{staticClass:\"icon-search\"})])]):_c('PageHeaderWithSearchBar',{attrs:{\"basic\":false}}),_c('ListContainer',{on:{\"searchEnd\":function($event){_vm.searchMode = false}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[(_vm.workflowList && _vm.workflowList.length)?_c('h6',{staticClass:\"mail-pack\",domProps:{\"innerHTML\":_vm._s(_vm.$t('총__LENGTH_개의_문서가_있습니다', { length: (\" \" + _vm.totalCount + \" \") }))}}):_vm._e(),_c('div',{directives:[{name:\"infinite-scroll\",rawName:\"v-infinite-scroll\",value:(_vm.loadMore),expression:\"loadMore\"}],staticClass:\"board-list\",attrs:{\"infinite-scroll-disabled\":\"busy\",\"infinite-scroll-distance\":\"63\",\"infinite-scroll-immediate-check\":\"false\"}},[(_vm.workflowList && _vm.workflowList.length)?_c('div',_vm._l((_vm.workflowList),function(item,idx){return _c('WorkflowListItem',{key:idx,attrs:{\"item\":item},on:{\"showDrafterModal\":_vm.setDrafter}})}),1):_c('div',{staticClass:\"not-found\"},[_c('img',{attrs:{\"src\":\"/cm/gres/v1/mobile/images/not_found_mail.png\"}}),_c('p',[_vm._v(_vm._s(_vm.$t('표시할_항목이_없습니다')))])])])]),_c('DrafterViewModal',{attrs:{\"item\":_vm.drafterInfo,\"show\":_vm.showDrafterModal},on:{\"close\":function($event){_vm.showDrafterModal = false}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PopupModal',{attrs:{\"show\":_vm.show,\"header\":this.$t('기안자보기').toString()},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('ProfilePhoto'),_c('div',{staticClass:\"profile-info-wrap\"},[_c('span',{staticClass:\"profile-name\"},[_vm._v(_vm._s(_vm.drafter.displayName))]),_c('span',{staticClass:\"profile-team\"},[_vm._v(_vm._s(_vm.drafter.departmentName))]),_c('span',{staticClass:\"txt-vibide\"}),_c('span',{staticClass:\"profile-rank\"},[_vm._v(_vm._s(_vm.drafter.gradeName))]),_c('span',{staticClass:\"profile-number\",attrs:{\"id\":\"btnModal\"}},[_vm._v(_vm._s(_vm.drafter.mobileTel))])])]},proxy:true},{key:\"bottom\",fn:function(){return [_c('div',{staticClass:\"layer-f-btn\"},[_c('a',{on:{\"click\":function($event){return _vm.call(_vm.drafter.mobileTel)}}},[_c('i',{staticClass:\"icon-telephone\"})])]),_c('div',{staticClass:\"layer-f-btn\"},[_c('a',{attrs:{\"href\":'sms:' + _vm.drafter.mobileTel}},[_c('i',{staticClass:\"icon-communication\"})])]),_c('div',{staticClass:\"layer-f-btn\"},[_c('a',{on:{\"click\":_vm.writeEmail}},[_c('i',{staticClass:\"icon-un-email\"})])])]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DrafterViewModal.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DrafterViewModal.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DrafterViewModal.vue?vue&type=template&id=0c287e50&\"\nimport script from \"./DrafterViewModal.ts?vue&type=script&lang=ts&\"\nexport * from \"./DrafterViewModal.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Watch } from 'vue-property-decorator'\r\nimport WorkflowListItem from '@workflow/components/List/WorkflowListItem.vue'\r\nimport DrafterViewModal from '@workflow/components/Modals/DrafterViewModal.vue'\r\nimport { createEventBus, removeEventBus, uGetDate, uGetDateFormat } from '@/util'\r\nimport api from '@workflow/api'\r\nimport { mapGetters } from 'vuex'\r\nimport * as accountTypes from '@account/store/types'\r\n@Component({\r\n components: { WorkflowListItem, DrafterViewModal },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER\r\n })\r\n }\r\n})\r\nexport default class ListContainer extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n User!: account.User\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n pageNumber: number = 1\r\n itemsPerPage: number = 10\r\n loadMorePossible: boolean = true\r\n searchValue: workflow.EnumSearchType | null = null\r\n workflowList: Array = []\r\n showDrafterModal: boolean = false\r\n drafterInfo: Object | null = null\r\n documentPages: Array = []\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n /**\r\n * 전자결재 문서 총 개수\r\n */\r\n get totalCount(): Number {\r\n let count = 0;\r\n if (this.workflowList && this.workflowList.length)\r\n count = this.workflowList[0].totalCount;\r\n return count;\r\n }\r\n\r\n get pageItem() {\r\n var item = this.documentPages?.filter((x) => x.no == Number(this.$route.query.id))[0]\r\n if (item) {\r\n return item\r\n }\r\n return null\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setDrafter(newVal: any) {\r\n this.drafterInfo = newVal\r\n this.showDrafterModal = true\r\n }\r\n\r\n loadData() {\r\n var requestDocument: workflow.RequestDocument = {\r\n documentQueryNumber: Number(this.$route.query.id),\r\n personCode: this.User.personCode,\r\n deptCode: this.User.deptCode,\r\n apmStatus: null,\r\n applicationId: null,\r\n startDate: uGetDateFormat('yyyy-MM-DD' ,uGetDate(-1, new Date(), 'year')),\r\n endDate: uGetDateFormat('yyyy-MM-DD', new Date()),\r\n searchType: this.searchValue ? 1 : -1,\r\n searchValue: this.searchValue,\r\n itemsPerPage: this.itemsPerPage,\r\n page: this.pageNumber,\r\n sortValue: this.pageItem?.searchSortValue || 4,\r\n }\r\n console.log(requestDocument)\r\n //추가 페이지 여부 확인 2023-05-30\r\n if(this.totalCount > 0){\r\n if (this.pageNumber > Math.ceil(Number(this.totalCount)/this.itemsPerPage))\r\n {\r\n this.loadMorePossible = false\r\n return false\r\n }\r\n }\r\n\r\n api.document.getDocumentList(requestDocument).then((res) => {\r\n if (res.length) {\r\n if (this.pageNumber > 1) {\r\n this.workflowList = [...(this.workflowList || []), ...res]\r\n } else {\r\n this.isloading(false)\r\n this.workflowList = res\r\n }\r\n } else {\r\n this.isloading(false)\r\n this.loadMorePossible = false\r\n }\r\n this.isloading(false)\r\n })\r\n }\r\n\r\n loadMore() {\r\n if (this.loadMorePossible) {\r\n this.pageNumber ++\r\n this.loadData()\r\n }\r\n }\r\n\r\n loadDataReset() {\r\n this.workflowList = []\r\n this.pageNumber = 1\r\n this.loadMorePossible = true\r\n }\r\n\r\n getDocumentPages() {\r\n api.common.getDocumentPages().then((res: any) => {\r\n this.documentPages = res\r\n }).then(() => this.loadData())\r\n }\r\n\r\n handleSearchRequest(keyword: any) {\r\n if (keyword) {\r\n this.searchValue = keyword\r\n } else {\r\n this.searchValue = null\r\n this.$emit('searchEnd')\r\n }\r\n this.loadDataReset()\r\n this.loadData()\r\n }\r\n\r\n @Watch('$route.query.id')\r\n onChangedDocumentId() {\r\n this.loadDataReset()\r\n this.loadData()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.isloading(true)\r\n this.getDocumentPages()\r\n\r\n createEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, 'header-search', this.handleSearchRequest)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListContainer.vue?vue&type=template&id=76602327&\"\nimport script from \"./ListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageHeaderWithActionBar from '@/components/common/Header/PageHeaderWithActionBar.vue'\r\nimport PageHeaderWithSearchBar from '@/components/common/Header/PageHeaderWithSearchBar.vue'\r\nimport ListContainer from '@workflow/containers/ListContainer.vue'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@/store/types'\r\n@Component({\r\n components: { PageHeaderWithActionBar, PageHeaderWithSearchBar, ListContainer },\r\n computed: {\r\n ...mapGetters({\r\n currentPage: types.CURRENT_PAGE\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setCurrentPage: types.CURRENT_PAGE\r\n })\r\n }\r\n})\r\nexport default class ListView extends Vue {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n currentPage!: object\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCurrentPage!: (page: object) => void\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n searchMode: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n const home = this.$route.query.home as string\r\n var currentPage = {\r\n name : this.$t('W_Pending_box').toString()\r\n }\r\n if (Boolean(home)) this.setCurrentPage(currentPage)\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ListView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListView.vue?vue&type=template&id=7ac320d6&\"\nimport script from \"./ListView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ListView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('PageViewHeaderWithActionBar',{attrs:{\"title\":_vm.$t('결재현황보기')}}),_c('ApprovalStateContainer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"inner-container\"}},[_c('section',[_c('div',{staticClass:\"read-area\"},[_c('div',{staticClass:\"read-title\"},[_c('Title',{attrs:{\"item\":_vm.current.apm}})],1),_c('ApprovalInfo',{attrs:{\"item\":_vm.current.apm,\"detail\":false}}),_c('ApprovalStatus',{model:{value:(_vm.current.approvalLineList),callback:function ($$v) {_vm.$set(_vm.current, \"approvalLineList\", $$v)},expression:\"current.approvalLineList\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component} from 'vue-property-decorator'\r\nimport Title from '@workflow/components/Title.vue'\r\nimport ApprovalInfo from '@workflow/components/ApprovalInfo.vue'\r\nimport ApprovalStatus from '@workflow/components/ApprovalStatus.vue'\r\nimport { mapGetters } from 'vuex';\r\nimport * as types from '@workflow/store/types'\r\n\r\n@Component({\r\n components: { Title, ApprovalInfo, ApprovalStatus },\r\n computed: {\r\n ...mapGetters({\r\n current: types.WORKFLOW_CURRENT\r\n })\r\n }\r\n})\r\nexport default class ApprovalStateContainer extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n current!: any\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalStateContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalStateContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApprovalStateContainer.vue?vue&type=template&id=dadf54fc&\"\nimport script from \"./ApprovalStateContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./ApprovalStateContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport PageViewHeaderWithActionBar from '@/components/common/Header/PageViewHeaderWithActionBar.vue'\r\nimport ApprovalStateContainer from '@workflow/containers/ApprovalStateContainer.vue'\r\n@Component({\r\n components: { PageViewHeaderWithActionBar, ApprovalStateContainer }\r\n})\r\nexport default class ApprovalStateView extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n searchMode: boolean = false\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalStateView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ApprovalStateView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApprovalStateView.vue?vue&type=template&id=8dab545a&\"\nimport script from \"./ApprovalStateView.ts?vue&type=script&lang=ts&\"\nexport * from \"./ApprovalStateView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\r\nimport ReadView from '../views/ReadView.vue'\r\nimport ListView from '../views/ListView.vue'\r\nimport ApprovalStateView from '../views/ApprovalStateView.vue'\r\nconst Workflow = () => import(/* webpackChunkName: \"workflow\" */ '@workflow/Index.vue')\r\nconst WorkflowMaster = () => import(/* webpackChunkName: \"workflow\" */ '@workflow/views/Master.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: '/workflow',\r\n component: Workflow,\r\n children: [\r\n {\r\n path: '',\r\n component: WorkflowMaster,\r\n children: [\r\n {\r\n path: 'read',\r\n name: 'workflow-read',\r\n component: ReadView,\r\n },\r\n {\r\n path: 'list',\r\n name: 'workflow-list',\r\n component: ListView,\r\n },\r\n {\r\n path: 'approvalState',\r\n name: 'workflow-approvalState',\r\n component: ApprovalStateView,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","import { NavigationGuard, NavigationGuardNext, Route } from 'vue-router'\r\nimport store from '@/store'\r\nimport * as types from '../store/types'\r\nimport appbaseStore from '@appbase/store'\r\nimport * as msTeams from '@microsoft/teams-js'\r\nimport { LoginActionPayload } from '../store/actions'\r\n\r\n//\r\n// ──────────────────────────────────────────────────── I ──────────\r\n// :::::: C O M M O N : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────\r\n//\r\n\r\nconst BYPASS_NAMES = ['account-login']\r\n\r\n/**\r\n * 인증 상태를 확인합니다.\r\n */\r\nconst authenticated = (): boolean => {\r\n var current = store.state.$account?.current\r\n return current !== null\r\n}\r\n\r\n/**\r\n * 로그인 상태가 아닌경우, 이메일 주소만으로 로그인 처리합니다.\r\n * @param email 로그인할 이메일 주소\r\n * @returns true: 로그인 또는 토큰 정상, false: 인증 실패\r\n */\r\nconst authWithEmail = async (email: string): Promise => {\r\n if (!authenticated()) {\r\n var loginData = {\r\n username: email,\r\n password: '',\r\n } as LoginActionPayload\r\n return store\r\n .dispatch(types.LOGINEX, loginData)\r\n .then((result: account.TCurrent) => {\r\n if (result.user) {\r\n return true\r\n } else {\r\n throw new Error(`Login failed. Reason`)\r\n }\r\n })\r\n .catch((err) => {\r\n // TODO: 로그인 실패 페이지로 이동\r\n console.error(err)\r\n throw new Error(`Login failed. Reason : ${err}`)\r\n })\r\n } else {\r\n // 이미 로그인 되어 있음\r\n return true\r\n }\r\n}\r\n\r\n/**\r\n * 로그인 상태가 아닌경우, 이메일 주소만으로 로그인 처리합니다.\r\n * @param email 로그인할 이메일 주소\r\n * @returns true: 로그인 또는 토큰 정상, false: 인증 실패\r\n */\r\nconst authWithLoginHint = async (hint: string): Promise => {\r\n if (!authenticated()) {\r\n var loginData = {\r\n username: hint,\r\n password: '',\r\n } as LoginActionPayload\r\n return store\r\n .dispatch(types.LOGINHINT, loginData)\r\n .then((result: account.TCurrent) => {\r\n if (result.user) {\r\n return true\r\n } else {\r\n throw new Error(`Login failed. Reason`)\r\n }\r\n })\r\n .catch((err) => {\r\n // TODO: 로그인 실패 페이지로 이동\r\n console.error(err)\r\n throw new Error(`Login failed. Reason : ${err}`)\r\n })\r\n } else {\r\n // 이미 로그인 되어 있음\r\n return true\r\n }\r\n}\r\n\r\n//\r\n// ────────────────────────────────────────────────────────── I ──────────\r\n// :::::: F O R T E A M S : : : : : : : :\r\n// ────────────────────────────────────────────────────────────────────\r\n//\r\n\r\n/**\r\n * Teams 내부에서 동작 중인지 여부\r\n * @returns true: teams에서 동작 중임, false: 일반 브라우저\r\n */\r\nconst isTeams = () => appbaseStore.state.teams\r\n\r\n/**\r\n * 팀즈 SDK를 이용하여 로그인된 사용자의 Email 주소를 획득합니다.\r\n * @returns email address\r\n */\r\nconst getLoginHintFromTeams = () => {\r\n return new Promise((resolve, reject) => {\r\n msTeams.getContext((context: any) => {\r\n if (context?.loginHint) {\r\n resolve(context.loginHint)\r\n } else {\r\n reject('Cannot get context information from Teams.')\r\n }\r\n })\r\n })\r\n}\r\n\r\nconst processForTeams = async (to: Route, from: Route, next: NavigationGuardNext) => {\r\n const hint = await getLoginHintFromTeams()\r\n // 암호 없이 이메일 주소만을 이용하여 인증을 수행합니다.\r\n if (hint && (await authWithLoginHint(hint))) {\r\n next()\r\n } else {\r\n // TODO: Teams 초기화 실패 페이지로 이동\r\n throw new Error('An error occurred while initializing Teams.')\r\n }\r\n}\r\n\r\n//\r\n// ──────────────────────────────────────────────────── I ──────────\r\n// :::::: P U B L I C : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────\r\n//\r\n\r\n/**\r\n * 로그인을 위한 라우트를 재설정합니다.\r\n * @param to\r\n * @param from\r\n * @param next\r\n */\r\nconst resetRouteForLogin = async (to: Route, from: Route, next: NavigationGuardNext) => {\r\n const { search } = window.location\r\n // 웹앱이 Teams 안에서 구동되는 경우\r\n if (isTeams()) {\r\n await processForTeams(to, from, next)\r\n }\r\n // 웹앱이 브라우저에서 구동되는 경우\r\n else {\r\n const useWindowsAuth = false\r\n // 여기서 분기처리 windows 인증 사용여부에 따라 EWA REDRIECT\r\n // Config 정보가 사용자 정보와 같이 전달되기 때문에 로그인전에는 Crrent == null\r\n // 웹 서버에 배포된 환경에서만 윈도우즈 인증을 지원\r\n if (process.env.NODE_ENV === 'production' && useWindowsAuth) {\r\n const url = `${window.location.origin}/ewa`\r\n const baseUrl = process.env.BASE_URL.slice(0, -1) // '/po/'에서 마지막 '/' 제거\r\n const returnUrl = encodeURIComponent(\r\n `${baseUrl}${to.path}${search}`\r\n )\r\n window.location.href = `${url}?returnUrl=${returnUrl}`\r\n }\r\n // 코딩 타임이나 윈도우즈 인증을 사용하지 않은 경우에는 로그인 페이지로 이동\r\n else {\r\n if(location.host.indexOf('localhost') > -1 || location.host == 'gwt.isu.co.kr')\r\n {\r\n next({\r\n name: BYPASS_NAMES[0],\r\n query: {\r\n returnUrl: `${to.path}${search}`,\r\n },\r\n })\r\n }\r\n else{\r\n const url = `${window.location.origin}/cm`\r\n const baseUrl = process.env.BASE_URL.slice(0, -1) // '/po/'에서 마지막 '/' 제거\r\n var returnUrl = encodeURIComponent(\r\n `${baseUrl}${to.path}${search}`\r\n )\r\n var decodeReturnUrl = decodeURIComponent(returnUrl)\r\n\r\n if (decodeReturnUrl.startsWith('/mobile/')) {\r\n var addQueryString = 'applogin=1'\r\n //returnUrl = encodeURIComponent(`/mobile/login?returnUrl=${returnUrl}`)\r\n if (decodeReturnUrl.indexOf('?') > -1) {\r\n addQueryString = '&' + addQueryString\r\n } else {\r\n addQueryString = '?' + addQueryString\r\n }\r\n returnUrl = returnUrl + encodeURIComponent(addQueryString)\r\n }\r\n \r\n window.location.href = `${url}/account/adfs?returnUrl=${returnUrl}`\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 인증 상태를 확인하고 인증이 필요한 경우 라우트를 재 설정합니다.\r\n * @param to\r\n * @param from\r\n * @param next\r\n * @returns\r\n */\r\nconst authGuard: NavigationGuard = async (to, from, next) => {\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n // 이미 로그인 되어 있거나 로그인 페이지로 향하는 경우 가드 통과\r\n if (BYPASS_NAMES.includes(to.name || '') || authenticated()) {\r\n console.log('auth-guard', 'route to : ', to.name, BYPASS_NAMES.includes(to.name || ''))\r\n next()\r\n }\r\n // ────────────────────────────────────────────────────────────────────────────────\r\n // 로그인 처리 위한 라우트 재지정\r\n else {\r\n try {\r\n console.log('auth-guard', 'reset route to : ', to.name)\r\n await store.dispatch(types.CURRENT)\r\n if (authenticated()) {\r\n next() // 인증이 되어 있는 경우 현재 가드 통과 처리\r\n } else {\r\n console.error('There is no current.')\r\n await resetRouteForLogin(to, from, next)\r\n }\r\n } catch (err) {\r\n console.error(err)\r\n await resetRouteForLogin(to, from, next)\r\n }\r\n }\r\n}\r\nexport default authGuard\r\n","import { NavigationGuardNext, Route, RouteConfig } from 'vue-router'\r\nimport api from '../api'\r\nexport { default as AuthGuard } from './auth-guard'\r\nconst Account = () => import(/* webpackChunkName: \"account\" */ '@account/Index.vue')\r\nconst AccountMaster = () => import(/* webpackChunkName: \"account\" */ '@account/views/Master.vue')\r\nconst LoginView = () =>\r\n import(/* webpackChunkName: \"account\" */ '@account/views/LoginView/LoginView.vue')\r\nconst NotAuthView = () => import(/* webpackChunkName: \"account\" */ '@account/views/NotAuthView.vue')\r\n\r\n/**\r\n * Ŭ���̾�Ʈ�� ���� �������� �����ϴ��� Ȯ��\r\n */\r\nconst guardAccessControl = (to: Route, from: Route, next: NavigationGuardNext) => {\r\n api.ac\r\n .check()\r\n .then((allowed) => {\r\n console.log('check ac : ' + allowed)\r\n // if (allowed) next()\r\n // else window.location.href = '/cm/noauth'\r\n })\r\n .catch((err) => {\r\n console.error(err)\r\n next('/noauth')\r\n })\r\n}\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: 'account',\r\n component: Account,\r\n children: [\r\n {\r\n path: '',\r\n component: AccountMaster,\r\n children: [\r\n {\r\n path: 'login',\r\n name: 'account-login',\r\n // beforeEnter: guardAccessControl,\r\n component: LoginView,\r\n },\r\n {\r\n path: 'noauth',\r\n component: NotAuthView,\r\n },\r\n {\r\n path: '',\r\n redirect: 'login',\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModalSlotLayout',{attrs:{\"isModal\":_vm.isModal,\"modalClassStr\":_vm.isModal ? '' : 'pop-bggray org-chart',\"modalStyleStr\":_vm.isModal ? _vm.value.style : ''}},[_c('div',{staticClass:\"pop-header\"},[_c('OrgTab',{attrs:{\"onSelect\":_vm.handleTabSelect,\"handleActive\":_vm.handleTabActive,\"usePersonal\":_vm.options.personal,\"usePublic\":_vm.options.public}})],1),_c('div',{staticClass:\"pop-content\"},[_c('div',{staticClass:\"pop-size optional-pop-padding optional-pop-h-full\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-group org-tab-content flex-3\"},[_c(_vm.contentComponent,{tag:\"component\",attrs:{\"addableDept\":_vm.options.addableDept,\"rollOut\":_vm.options.rollOut}})],1),(_vm.hasContainers)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.options.single),expression:\"!options.single\"}],staticClass:\"col-n org-container flex-1\"},[_c('div',{staticClass:\"area-flex-column\"},_vm._l((_vm.options.containers),function(item,index){return _c('WishListContainer',{key:index,attrs:{\"useMove\":_vm.options.move,\"item\":item}})}),1)]):_vm._e()])])]),_c('div',{staticClass:\"pop-footer\"},[_c('div',{staticClass:\"dp-flex\"},[(_vm.options.containers.length > 0)?_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",attrs:{\"id\":\"btnApply\"},on:{\"click\":_vm.handleOk}},[_vm._v(_vm._s(_vm.$t('적용')))]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":_vm.handleClose}},[_vm._v(_vm._s(_vm.$t('취소')))])]):_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":_vm.handleClose}},[_vm._v(_vm._s(_vm.$t('닫기')))])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DeptTree',{attrs:{\"items\":_vm.items,\"onExpand\":_vm.handleExpand,\"current\":_vm.dept,\"companies\":_vm.companies,\"userlang\":_vm.userlang},on:{\"selectDept\":_vm.selectDept,\"addDept\":_vm.addDept,\"selCompany\":_vm.selectCompany}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue, { VueConstructor } from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport api from '@orgmap/api'\r\nimport * as types from '@orgmap/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\nimport { DeptTree } from '@orgmap/components'\r\n\r\nconst REQUEST_LEVEL = 5\r\n\r\n@Component({\r\n name: 'DepartmentListContainer',\r\n components: { DeptTree },\r\n computed: {\r\n ...mapGetters({\r\n user: accountTypes.USER,\r\n }),\r\n },\r\n methods: {\r\n ...mapMutations({\r\n add: types.ORG_CONTAINER_DEPT_ITEM_ADD,\r\n }),\r\n },\r\n})\r\nexport default class DepartmentListContainer extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) addableDept!: boolean\r\n @Prop({ type: String }) userlang!: string\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n user!: account.User\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n add!: (payload: orgmap.TWishContainerItem) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n companies: orgmap.Company[] = []\r\n items: orgmap.TDepartmentTreeItem[] = []\r\n dept: orgmap.TDepartmentTreeItem | null = null\r\n currentCompany: orgmap.Company | null = null\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async created() {\r\n this.loadData()\r\n\r\n this.companies = await this.loadCompanies()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async loadData() {\r\n const { comCode, deptCode } = this.user\r\n var dept\r\n\r\n // 선택한 계열사가 있는 경우\r\n if (this.currentCompany) {\r\n this.items = await api.hr.getOrgTree({\r\n parentDeptCode: null,\r\n comCode: this.currentCompany.comCode,\r\n level: REQUEST_LEVEL\r\n })\r\n\r\n if (this.items.length) {\r\n if (this.currentCompany.comCode === comCode) {\r\n dept = await this.expandToMyDept(comCode, deptCode)\r\n } else {\r\n dept = await this.expandToMyDept(this.currentCompany.comCode, this.getDefaultDeptCode(this.items, Math.min(REQUEST_LEVEL, 3)))\r\n }\r\n\r\n if (dept) {\r\n this.selectDept({\r\n ...dept,\r\n selected: true,\r\n })\r\n }\r\n } else {\r\n this.selectDept(null)\r\n }\r\n }\r\n // 현재 선택한 계열사가 없는 경우( 처음 조회하는 경우 )\r\n else {\r\n this.items = await api.hr.getOrgTree({\r\n parentDeptCode: null,\r\n comCode: comCode,\r\n level: REQUEST_LEVEL,\r\n })\r\n const { com, id } = this.$route.params\r\n if (com && id) {\r\n await this.expandToMyDept(com, id)\r\n } else {\r\n const { comCode, deptCode } = this.user\r\n dept = await this.expandToMyDept(comCode, deptCode)\r\n if (dept) {\r\n this.selectDept({\r\n ...dept,\r\n selected: true,\r\n })\r\n }\r\n } \r\n }\r\n this.$emit('getDepartments', this.items);\r\n }\r\n\r\n async handleExpand(item: orgmap.TDepartmentTreeItem) {\r\n console.log('000', item)\r\n const dept = this.findDept(this.items, item.deptCode)\r\n console.log('111', dept)\r\n if (dept) {\r\n dept.expanded = !dept.expanded\r\n if (!dept.children || dept.children.length === 0) {\r\n dept.children = await api.hr.getOrgTree({\r\n parentDeptCode: dept.deptCode,\r\n comCode: dept.comCode,\r\n level: REQUEST_LEVEL,\r\n })\r\n }\r\n }\r\n }\r\n\r\n async expandToMyDept(comCode: string, deptCode: string) {\r\n const _self = this\r\n const currentDepts = this.items\r\n var paths = await api.hr\r\n .getDeptPath({ comCode, deptCode })\r\n .then((res) => res.items)\r\n .then((items) => items[0].path.split('/').slice(1))\r\n paths = paths.reverse()\r\n var dept: orgmap.TDepartmentTreeItem\r\n var updatableDept: orgmap.TDepartmentTreeItem\r\n const load = async (path?: string): Promise => {\r\n if (path) {\r\n // a. 부서 검색\r\n if (dept) {\r\n if (dept.children) {\r\n dept.expanded = true\r\n dept = dept.children.filter((dept) => dept.deptCode === path)[0]\r\n }\r\n } else {\r\n dept = currentDepts.filter((dept) => dept.deptCode === path)[0]\r\n }\r\n // b. children 없을 시 조회\r\n if (dept.hasChildren && (!dept.children || dept.children.length === 0)) {\r\n const items = await api.hr.getOrgTree({\r\n parentDeptCode: path,\r\n comCode: comCode,\r\n level: 1,\r\n })\r\n dept.children = items\r\n if (!updatableDept) {\r\n updatableDept = dept\r\n } else {\r\n if (updatableDept.deptCode === dept.parentDeptCode) {\r\n updatableDept = dept\r\n const tdept = _self.findDept(_self.items, updatableDept.deptCode)\r\n if (tdept) {\r\n tdept.expanded = true\r\n tdept.children = updatableDept.children\r\n } else {\r\n updatableDept.children?.forEach((item) => (item.expanded = true))\r\n _self.items = updatableDept.children || []\r\n }\r\n }\r\n }\r\n return load(paths.pop())\r\n } else {\r\n return load(paths.pop())\r\n }\r\n } else {\r\n // c. commit list\r\n if (updatableDept) {\r\n const dept = _self.findDept(_self.items, updatableDept.deptCode)\r\n if (dept) {\r\n dept.expanded = true\r\n dept.children = updatableDept.children\r\n } else {\r\n updatableDept.children?.forEach((item) => (item.expanded = true))\r\n _self.items = updatableDept.children || []\r\n }\r\n }\r\n return dept\r\n // action.dispatch(types.HR_TREE_CURRENT, dept)\r\n }\r\n }\r\n return await load(paths.pop())\r\n }\r\n\r\n async loadCompanies() {\r\n const { comCode } = this.user\r\n return await api.hr.getCompanies().then((res: orgmap.Company[]) => {\r\n return res.map((x) => {\r\n return {\r\n ...x,\r\n selected: x.comCode === comCode,\r\n }\r\n })\r\n })\r\n }\r\n\r\n /**\r\n * 적절한 갯수가 보여질 때까지 부서트리의 하위 부서코드를 탐색합니다\r\n * @param depts 부서트리 루트 배열\r\n * @param minLength 표시 최소 갯수 제한 (기본 3)\r\n * @param deptCode 부서코드 (내부변수)\r\n * @returns \r\n */\r\n getDefaultDeptCode(depts: orgmap.TDepartmentTreeItem[], minLength = 3, deptCode = ''): string {\r\n if (depts && depts.length) {\r\n if (depts.length < minLength) {\r\n for (var i=0; i,\r\n parentDeptCode: string\r\n ): orgmap.TDepartmentTreeItem | undefined {\r\n const _self = this\r\n for (var dept of parents) {\r\n if (dept.deptCode === parentDeptCode) {\r\n return dept\r\n } else if (dept.children && dept.children.length > 0) {\r\n const foundDept = _self.findDept(dept.children, parentDeptCode)\r\n if (foundDept) return foundDept\r\n }\r\n }\r\n }\r\n\r\n selectDept(item: orgmap.TDepartmentTreeItem | null) {\r\n this.dept = item\r\n this.$emit('select', item)\r\n }\r\n\r\n addDept(item: orgmap.TDepartmentTreeItem) {\r\n if (this.addableDept) {\r\n const newItem = {\r\n ...item,\r\n name: item.deptName,\r\n title: '',\r\n personCode: '',\r\n text: item.deptName,\r\n value: item.email,\r\n selected: false,\r\n } as orgmap.TWishContainerItem\r\n\r\n this.add(newItem)\r\n }\r\n }\r\n\r\n async selectCompany(item: orgmap.Company) {\r\n this.currentCompany = item\r\n await this.loadData()\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./DepartmentListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DepartmentListContainer.vue?vue&type=template&id=09efbed8&\"\nimport script from \"./DepartmentListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./DepartmentListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(_vm._s(_vm.$t('사용자_목록'))+\" \"+_vm._s(_vm.$route.path))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\n@Component\r\nexport default class PersonListContainer extends Vue {}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonListContainer.vue?vue&type=template&id=3c6e6c24&\"\nimport script from \"./PersonListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./PersonListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(\" \"+_vm._s(_vm.$t('사용자_목록'))+\" \"+_vm._s(_vm.$route.path)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\n@Component\r\nexport default class SearchContainer extends Vue {}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./SearchContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./SearchContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchContainer.vue?vue&type=template&id=0e327af0&\"\nimport script from \"./SearchContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./SearchContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['dp-flex', 'flex-' + _vm.container.height]},[_c('div',{staticClass:\"org-btn-gp\"},[_c('button',{staticClass:\"btn sub-btn btn-gray-outline\",attrs:{\"id\":\"btnAdd\"},on:{\"click\":_vm.handleAdd}},[_c('i',{staticClass:\"icon-fux-arrow-right-line\"})]),_c('button',{staticClass:\"btn sub-btn btn-gray-outline\",attrs:{\"id\":\"btnSubtract\"},on:{\"click\":_vm.handleDelete}},[_c('i',{staticClass:\"icon-fux-arrow-left-line\"})])]),_c('div',{staticClass:\"org-target-wrap\",on:{\"click\":_vm.handleActivate}},[_c('div',{staticClass:\"org-target-head\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto ellipsis\"},[_c('div',{staticClass:\"checkbox\"},[_c('label',{staticClass:\"ellipsis w-100\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.container.selectedAll),expression:\"container.selectedAll\"}],attrs:{\"type\":\"checkbox\",\"disabled\":_vm.container.items.length === 0},domProps:{\"checked\":Array.isArray(_vm.container.selectedAll)?_vm._i(_vm.container.selectedAll,null)>-1:(_vm.container.selectedAll)},on:{\"click\":function (e) { return _vm.handleSelectAll(e.target.checked); },\"change\":function($event){var $$a=_vm.container.selectedAll,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.container, \"selectedAll\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.container, \"selectedAll\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.container, \"selectedAll\", $$c)}}}}),_c('span',{staticClass:\"label m-l-xs b\"},[_vm._v(\" \"+_vm._s(_vm.container.name)+\" \"),_c('b',{staticClass:\"ft-red\"},[_vm._v(\"(\"+_vm._s(_vm.container.items.length)+\")\")])])])])]),(_vm.useMove)?_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"title\":\"위로 이동\"},on:{\"click\":function($event){return _vm.up();}}},[_c('i',{staticClass:\"icon-fux-up\"})]):_vm._e(),(_vm.useMove)?_c('button',{staticClass:\"btn sm-btn btn-gray-outline\",attrs:{\"title\":\"아래로 이동\"},on:{\"click\":function($event){return _vm.down();}}},[_c('i',{staticClass:\"icon-fux-down\"})]):_vm._e()])]),_c('div',{staticClass:\"org-target-body\"},[(_vm.container.items.length > 0)?_c('WishList',{attrs:{\"info\":_vm.container,\"onDeleteOne\":_vm.handleDeleteOne,\"onAdd\":_vm.handleAdd,\"onDelete\":_vm.handleDelete,\"onSelect\":_vm.handleSelect,\"userLang\":_vm.userLang}}):_c('div',{staticClass:\"org-target-none\"},[_c('span',[_vm._v(_vm._s(_vm.$t('선택한_대상이_없습니다')))])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { VueConstructor } from 'vue/types/umd'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport {\r\n TOrgContainerItemAddMutationPayload,\r\n TOrgContainerItemDelMutationPayload,\r\n TWishContainerSelectAllPayload,\r\n TWishContainerSelectPayload,\r\n TOrgContainerActivateMutationPayload\r\n} from '../store/mutations'\r\nimport { WishList } from '../components'\r\nimport * as types from '../store/types'\r\nimport { i18n } from '@appbase/util/i18n-setup'\r\nimport * as usertypes from '@account/store/types';\r\n\r\n@Component({\r\n components: { WishList },\r\n methods: {\r\n ...mapMutations({\r\n registerContainer: types.ORG_CONTAINER_REGISTER,\r\n addToContainer: types.ORG_CONTAINER_ITEM_ADD,\r\n deleteFromContainer: types.ORG_CONTAINER_ITEM_DEL,\r\n select: types.ORG_CONTAINER_ITEM_SELECT,\r\n moveup: types.ORG_CONTAINER_ITEM_MOVE_UP,\r\n movedown: types.ORG_CONTAINER_ITEM_MOVE_DOWN,\r\n selectAll: types.ORG_CONTAINER_ITEM_SELECT_ALL,\r\n activateContainer: types.ORG_CONTAINER_ACTIVATE,\r\n }),\r\n },\r\n computed: {\r\n ...mapGetters({\r\n wishContainers: types.ORG_CONTAINER_REGISTER,\r\n userCurrent: usertypes.CURRENT,\r\n }),\r\n },\r\n})\r\nexport default class WishListContainer extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) item!: orgmap.TWishContainerOptionItem\r\n @Prop({ type: Boolean, default: false }) useMove!: boolean;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n registerContainer!: (item: orgmap.TWishContainerOptionItem) => void\r\n select!: (payload: TWishContainerSelectPayload) => void\r\n moveup!: (payload: number) => void\r\n movedown!: (payload: number) => void\r\n selectAll!: (payload: TWishContainerSelectAllPayload) => void\r\n addToContainer!: (payload: TOrgContainerItemAddMutationPayload) => void\r\n deleteFromContainer!: (payload: TOrgContainerItemDelMutationPayload) => void\r\n activateContainer!: (payload: TOrgContainerActivateMutationPayload) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n wishContainers!: orgmap.TWishContainer[]\r\n userCurrent!: account.TCurrent;\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get container() {\r\n const { id } = this.item\r\n return this.wishContainers.find((c) => c.id === id)\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n userLang: String = '' \r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.userLang = this.userCurrent.userConfig.language\r\n this.registerContainer(this.item)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleAdd() {\r\n console.log(`${this.item.name}` + i18n.t('컨테이너에_추가').toString());\r\n this.addToContainer({ containerId: this.item.id })\r\n }\r\n\r\n handleDeleteOne(item: orgmap.TWishContainerItem) {\r\n this.handleSelectAll(false);\r\n this.handleSelect(item);\r\n this.deleteFromContainer({ containerId: this.item.id })\r\n }\r\n\r\n /**\r\n * @param item? Wish List Item 우측에 있는 X 버튼 클릭 시 전달되는 아이템 객체\r\n */\r\n handleDelete(item?: orgmap.TWishContainerItem) {\r\n console.log(`${this.item.name} 컨테이너에 제거`)\r\n this.deleteFromContainer({ containerId: this.item.id })\r\n }\r\n\r\n handleSelect(item: orgmap.TWishContainerItem) {\r\n this.select({\r\n id: this.item.id,\r\n item,\r\n })\r\n }\r\n\r\n handleSelectAll(select: boolean) {\r\n this.selectAll({\r\n id: this.item.id,\r\n select: select,\r\n })\r\n }\r\n\r\n handleActivate(){\r\n this.activateContainer({ containerId: this.item.id });\r\n }\r\n\r\n up() {\r\n this.moveup(this.item.id);\r\n }\r\n\r\n down() {\r\n this.movedown(this.item.id);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WishListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./WishListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WishListContainer.vue?vue&type=template&id=a8f032d4&\"\nimport script from \"./WishListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./WishListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"area-flex-column\"},[_c('div',{staticClass:\"area-scroll-hide\"},[_c('div',{staticClass:\"search-bar\"},[(_vm.userCurrent.permissions.isSuperAdmin || _vm.rollOut)?_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.retiredFlag),expression:\"retiredFlag\"}],staticStyle:{\"min-width\":\"100px\",\"margin-right\":\"5px\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.retiredFlag=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(_vm._s(_vm.$t('재직자')))]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(_vm._s(_vm.$t('퇴직자')))])]):_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.keyword),expression:\"keyword\"}],staticClass:\"w-100\",attrs:{\"type\":\"text\",\"placeholder\":this.$t('이름_또는_부서명을_검색해_주세요').toString()},domProps:{\"value\":(_vm.keyword)},on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.refresh.apply(null, arguments)}],\"input\":function($event){if($event.target.composing){ return; }_vm.keyword=$event.target.value}}}),_c('a',{staticClass:\"btn-search\",on:{\"click\":_vm.search}},[_c('i',{staticClass:\"icon-fux-search\"})])]),_c('div',{staticClass:\"space-m\"}),_c('DepartmentInfo',{attrs:{\"name\":_vm.name,\"count\":_vm.totalCount}})],1),_c('MemberList',{attrs:{\"loading\":_vm.loading,\"value\":_vm.members,\"onSelectOne\":_vm.handleSelectOne,\"onSelect\":_vm.handleSelect,\"onSelectAll\":_vm.handleSelectAll,\"userlang\":_vm.userlang}}),_c('DetailCard',{attrs:{\"item\":_vm.hitMember,\"userlang\":_vm.userlang,\"companyName\":_vm.companyName}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue, { VueConstructor } from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { MemberList, DepartmentInfo } from '@orgmap/components'\r\nimport api from '@orgmap/api'\r\nimport * as types from '@orgmap/store/types'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex'\r\nimport { OrgMemberListActionPayload } from '@orgmap/store/actions'\r\nimport { OrgMemberSelectMutationPayload } from '@orgmap/store/mutations'\r\nimport { DetailCard } from '@orgmap/components'\r\n\r\n@Component({\r\n name: 'MemeberListContainer',\r\n components: { MemberList, DepartmentInfo, DetailCard },\r\n computed: mapGetters({\r\n members: types.ORG_MEMBER_LIST,\r\n userCurrent: types.ACCOUNT_CURRENT\r\n }),\r\n methods: {\r\n ...mapActions({\r\n loadMemberList: types.ORG_MEMBER_LIST,\r\n searchMember: types.ORG_MEMBER_SEARCH,\r\n }),\r\n ...mapMutations({\r\n select: types.ORG_MEMBER_SELECT,\r\n selectAll: types.ORG_MEMBER_SELECT_ALL\r\n }),\r\n },\r\n})\r\nexport default class MemeberListContainer extends Vue {\r\n @Prop({ type: String }) deptCode!: string\r\n @Prop({ type: String }) deptName!: string\r\n @Prop({ type: String }) comCode!: string\r\n @Prop({ type: String }) userlang!: string\r\n @Prop({ type: String }) companyName!: string\r\n @Prop({ type: Boolean, default: false }) rollOut!: boolean;\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n loadMemberList!: (payload: OrgMemberListActionPayload) => Promise\r\n searchMember!: (payload: { option: orgmap.SearchOptions; comCode: string }) => Promise\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select!: (payload: OrgMemberSelectMutationPayload) => void\r\n selectAll!: (payload: boolean) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n members!: orgmap.TMemberList\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n loading: boolean = false\r\n searching: boolean = false\r\n keyword: string = ''\r\n hitMember: orgmap.TMemberItem | null = null\r\n retiredFlag: string = '1';\r\n userCurrent!: orgmap.account.TCurrent;\r\n \r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get totalCount() {\r\n return this.members?.totalCount || 0\r\n }\r\n\r\n get name() {\r\n return this.searching ? this.$t('W_Orgmap_SearchResults').toString() : this.deptName\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('deptCode')\r\n onDeptCodeChanged(newValue: string) {\r\n this.load()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async created() {\r\n await this.load()\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async load() {\r\n try {\r\n this.loading = true\r\n await this.loadMemberList({\r\n comCode: this.comCode,\r\n deptCode: this.deptCode,\r\n })\r\n } catch (e) {\r\n throw e\r\n }\r\n this.loading = false\r\n }\r\n\r\n handleSelectOne(user: orgmap.TMemberItem, isSingle: boolean) {\r\n this.handleSelectAll(false);\r\n this.handleSelect(user);\r\n if (isSingle) {\r\n var btnApply = document.querySelector('#btnApply');\r\n if (btnApply) {\r\n (btnApply as HTMLButtonElement).click();\r\n }\r\n } else {\r\n var btnAdd = document.querySelector('#btnAdd');\r\n if (btnAdd) {\r\n (btnAdd as HTMLButtonElement).click();\r\n }\r\n }\r\n }\r\n\r\n handleSelect(user: orgmap.TMemberItem) {\r\n this.hitMember = user\r\n this.select({\r\n items: [user],\r\n select: !user.selected,\r\n })\r\n }\r\n\r\n handleSelectAll(select: boolean) {\r\n this.selectAll(select)\r\n }\r\n\r\n async search() {\r\n if (this.keyword.length) {\r\n try {\r\n this.loading = true\r\n this.searching = true\r\n var data = {\r\n option: {\r\n query: this.keyword,\r\n includeAllFlag: false,\r\n retiredFlag: this.retiredFlag == '1' ? false : true,\r\n } as orgmap.SearchOptions,\r\n comCode: this.comCode,\r\n }\r\n await this.searchMember(data)\r\n } catch (e) {\r\n throw e\r\n }\r\n this.loading = false\r\n }\r\n }\r\n\r\n refresh() {\r\n this.keyword = ''\r\n this.searching = false\r\n this.load()\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MemberListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./MemberListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MemberListContainer.vue?vue&type=template&id=b83d70a0&\"\nimport script from \"./MemberListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./MemberListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DeptTree',{attrs:{\"showCompany\":false,\"items\":_vm.items,\"current\":_vm.dept},on:{\"selectDept\":_vm.selectDept,\"addDept\":_vm.addDept}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\nimport * as types from '@orgmap/store/types';\r\nimport * as userTypes from '@account/store/types';\r\n\r\nimport { DeptTree } from '@orgmap/components'\r\n\r\n@Component({\r\n name: 'PublicAddressFolderListContainer',\r\n components: { DeptTree },\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n load: types.ORG_PUBLIC_FOLDER_LIST,\r\n }),\r\n ...mapMutations({\r\n add: types.ORG_CONTAINER_DEPT_ITEM_ADD\r\n }),\r\n },\r\n})\r\nexport default class PublicAddressFolderListContainer extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: Boolean, default: false }) addableDept!: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n items: orgmap.TDepartmentTreeItem[] = []\r\n dept: orgmap.TDepartmentTreeItem | null = null;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n load!: (payload: orgmap.DLGroupApiOption) => Promise;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n add!: (payload: orgmap.TWishContainerItem) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async loadData(){\r\n const payload = {\r\n pageNum: 1,\r\n rowSize: 100,\r\n } as orgmap.DLGroupApiOption;\r\n const { data, totalCount } = await this.load(payload);\r\n this.items = data.map((x, idx) => {\r\n return {\r\n id: x.identity,\r\n comCode: x.comCode || '',\r\n deptCode: x.manageDeptCode,\r\n deptName: x.displayName,\r\n deptNameEn: x.displayName,\r\n dept_Level: '',\r\n email: x.emailAddress,\r\n hasChildren: false,\r\n level: 0,\r\n parentDeptCode: '',\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n } as orgmap.TDepartmentTreeItem\r\n });\r\n this.selectDept(this.items[0]);\r\n }\r\n\r\n selectDept(item: orgmap.TDepartmentTreeItem | null){\r\n this.dept = item;\r\n this.$emit('select', item);\r\n }\r\n \r\n addDept(item: orgmap.TDepartmentTreeItem){\r\n if(this.addableDept){\r\n const newItem = {\r\n ...item,\r\n name: item.deptName,\r\n title: '',\r\n personCode: '',\r\n text: item.deptName,\r\n value: item.email, \r\n selected: false,\r\n } as orgmap.TWishContainerItem;\r\n \r\n this.add(newItem);\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n this.loadData();\r\n }\r\n\r\n created() {\r\n\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicAddressFolderListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicAddressFolderListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PublicAddressFolderListContainer.vue?vue&type=template&id=7aaeaef5&\"\nimport script from \"./PublicAddressFolderListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./PublicAddressFolderListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"area-flex-column\"},[_c('div',{staticClass:\"area-scroll-hide\"},[_c('div',{staticClass:\"search-bar\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.keyword),expression:\"keyword\"}],staticClass:\"w-100\",attrs:{\"type\":\"text\",\"placeholder\":\"검색어를 입력하세요.\"},domProps:{\"value\":(_vm.keyword)},on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.refresh.apply(null, arguments)}],\"input\":function($event){if($event.target.composing){ return; }_vm.keyword=$event.target.value}}}),_c('a',{staticClass:\"btn-search\",on:{\"click\":_vm.search}},[_c('i',{staticClass:\"icon-fux-search\"})])]),_c('div',{staticClass:\"space-m\"}),_c('DepartmentInfo',{attrs:{\"name\":_vm.name,\"count\":_vm.totalCount}})],1),_c('MemberList',{attrs:{\"loading\":_vm.loading,\"value\":_vm.members,\"onSelect\":_vm.handleSelect,\"onSelectAll\":_vm.handleSelectAll}}),_c('PageNavigationBar',{attrs:{\"value\":_vm.currentPage,\"total\":_vm.totalCount,\"size\":_vm.itemsPerPage,\"range\":_vm.pageRange},on:{\"pageMove\":_vm.pageMove}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pagination-wrap\"},[_c('div',{staticClass:\"align-left\"},[_c('span',{staticClass:\"ft-gray ft-s\"},[_vm._v(_vm._s(((((_vm.value -1) * _vm.size) + 1) + \" - \" + ((_vm.size * _vm.value) > _vm.total ? _vm.total :(_vm.size * _vm.value)) + \" of \" + _vm.total + \" items\")))])]),_c('div',{staticClass:\"align-center\"},[_c('Paginate',{attrs:{\"value\":_vm.value,\"prevClass\":'pagination-prevnext',\"nextClass\":'pagination-prevnext',\"pageCount\":_vm.totalPageCount,\"page-range\":_vm.range,\"pageLinkClass\":'page-link',\"isFirstPage\":_vm.isFirstPage,\"isLastPage\":_vm.isLastPage},on:{\"moveByNumber\":_vm.moveByNumber}})],1),_c('div',{staticClass:\"align-right\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"pagination\"},[_c('li',[_c('a',{class:['page-link', 'first', { 'disabled': _vm.isFirstPage }],on:{\"click\":function($event){return _vm.selectFirstPage()}}},[_c('i',{staticClass:\"icon-fux-arrow-first-bold\"})])]),_c('li',[_c('a',{class:['page-link', 'prev', { 'disabled': _vm.isFirstPage }],on:{\"click\":function($event){return _vm.prevPage()}}},[_c('i',{staticClass:\"icon-fux-arrow-left-line-bold\"})])]),_vm._l((_vm.pages),function(page){return _c('li',{key:page.index},[_c('a',{class:[_vm.pageLinkClass, page.selected ? _vm.activeClass : ''],on:{\"click\":function($event){return _vm.handlePageSelected(page.index + 1)}}},[_vm._v(\" \"+_vm._s(page.content))])])}),_c('li',[_c('a',{class:['page-link', 'next', { 'disabled': _vm.isLastPage }],on:{\"click\":function($event){return _vm.nextPage()}}},[_c('i',{staticClass:\"icon-fux-arrow-right-line-bold\"})])]),_c('li',[_c('a',{class:['page-link', 'last', { 'disabled': _vm.isLastPage }],on:{\"click\":function($event){return _vm.selectLastPage()}}},[_c('i',{staticClass:\"icon-fux-arrow-last-bold\"})])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Paginate.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Paginate.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Paginate.vue?vue&type=template&id=7b4d40ef&scoped=true&\"\nimport script from \"./Paginate.vue?vue&type=script&lang=js&\"\nexport * from \"./Paginate.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Paginate.vue?vue&type=style&index=0&id=7b4d40ef&lang=css&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b4d40ef\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport Paginate from './Paginate.vue'\r\n\r\n@Component({\r\n components: { Paginate },\r\n})\r\nexport default class PageNavigationBar extends Vue {\r\n //\r\n // props\r\n //\r\n\r\n // page number of page\r\n @Prop({ type: Number, default: 0 }) value!: number\r\n // total count\r\n @Prop({ type: Number, default: 0 }) total!: number\r\n // page size\r\n @Prop({ type: Number, default: 20 }) size!: number\r\n // range\r\n @Prop({ type: Number, default: 5 }) range!: number\r\n\r\n //\r\n // computed\r\n //\r\n\r\n get currentPage() {\r\n return this.value\r\n }\r\n\r\n get lastPage() {\r\n return this.totalPageCount\r\n }\r\n\r\n get totalPageCount() {\r\n return Math.ceil(this.total / this.size)\r\n }\r\n\r\n get isFirstPage() {\r\n return this.currentPage == 1\r\n }\r\n\r\n get isLastPage() {\r\n return this.currentPage == this.totalPageCount\r\n }\r\n\r\n //\r\n // methods\r\n //\r\n\r\n moveByNumber(idxTo: number) {\r\n this.$emit('pageMove', idxTo)\r\n this.$emit('input', idxTo)\r\n }\r\n\r\n moveToFirst() {\r\n this.moveByNumber(1)\r\n }\r\n\r\n moveToLast() {\r\n this.moveByNumber(this.lastPage)\r\n }\r\n\r\n moveToNext() {\r\n this.moveByNumber(this.calcNextPageNumber(1))\r\n }\r\n\r\n moveToPrev() {\r\n this.moveByNumber(this.calcPrevPageNumber(1))\r\n }\r\n\r\n moveToNextRange() {\r\n this.moveByNumber(this.calcNextPageNumber(this.range))\r\n }\r\n\r\n moveToPrevRange() {\r\n this.moveByNumber(this.calcPrevPageNumber(this.range))\r\n }\r\n\r\n calcNextPageNumber(range: number) {\r\n let idxTo = this.value + range > this.lastPage ? this.value : this.value + range\r\n return idxTo\r\n }\r\n\r\n calcPrevPageNumber(range: number) {\r\n let idxTo = this.value - range < 1 ? this.value : this.value - range\r\n return idxTo\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PageNavigationBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PageNavigationBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageNavigationBar.vue?vue&type=template&id=5feac846&\"\nimport script from \"./PageNavigationBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./PageNavigationBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\nimport * as types from '@orgmap/store/types';\r\nimport * as userTypes from '@account/store/types';\r\n\r\nimport { OrgMemberSelectMutationPayload } from '@orgmap/store/mutations';\r\n\r\nimport { DepartmentInfo, MemberList } from '@orgmap/components'\r\nimport PageNavigationBar from '@appbase/components/Paginate/PageNavigationBar.vue'\r\nimport { i18n } from '@appbase/util/i18n-setup'\r\n\r\n\r\n\r\n@Component({\r\n name: 'PublicAddressMemberListContainer',\r\n components: { DepartmentInfo, MemberList, PageNavigationBar },\r\n computed: {\r\n ...mapGetters({\r\n members: types.ORG_MEMBER_LIST,\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n load: types.ORG_PUBLIC_MEMBER_LIST,\r\n }),\r\n ...mapMutations({\r\n select: types.ORG_MEMBER_SELECT,\r\n selectAll: types.ORG_MEMBER_SELECT_ALL,\r\n }),\r\n },\r\n})\r\nexport default class PublicAddressMemberListContainer extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: String, default: '' }) id!: string;\r\n @Prop({ type: String, default: '' }) deptName!: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n loading: boolean = false\r\n searching: boolean = false;\r\n keyword: string = '';\r\n pageRange: number = 10;\r\n currentPage: number = 1;\r\n itemsPerPage: number = 50;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n members!: orgmap.TMemberList;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n load!: (payload: orgmap.DLGroupApiOption) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select!: (payload: OrgMemberSelectMutationPayload) => void\r\n selectAll!: (payload: boolean) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get totalCount() {\r\n return this.members?.totalCount || 0\r\n }\r\n \r\n get name(){\r\n return this.searching ? i18n.t('검색결과') : this.deptName;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n initParam(){\r\n this.keyword = '';\r\n this.currentPage = 1;\r\n this.searching = false;\r\n }\r\n\r\n async loadData(){\r\n var payload = {\r\n pageNum: this.currentPage,\r\n rowSize: this.itemsPerPage,\r\n searchFilter: 0,\r\n searchWord: this.keyword,\r\n identity: this.id\r\n } as orgmap.DLGroupApiOption\r\n try{\r\n this.loading = true;\r\n await this.load(payload);\r\n }\r\n catch(ex){\r\n throw ex\r\n }\r\n\r\n this.loading = false;\r\n }\r\n\r\n handleSelect(user: orgmap.TMemberItem) {\r\n this.select({\r\n items: [user],\r\n select: !user.selected,\r\n })\r\n }\r\n \r\n handleSelectAll(select: boolean) {\r\n this.selectAll(select)\r\n }\r\n\r\n search(){\r\n if(this.keyword.length){\r\n this.loadData()\r\n }\r\n }\r\n\r\n refresh(){\r\n this.keyword = '';\r\n this.searching = false;\r\n this.loadData();\r\n }\r\n\r\n /**\r\n * 페이지 번호 클릭 시 호출됩니다.\r\n * @param pageNum \r\n */\r\n pageMove(pageNum: number){\r\n this.currentPage = pageNum;\r\n this.loadData();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('id')\r\n onIdChanged(newValue: string, oldValue: string){\r\n if(newValue){\r\n this.initParam();\r\n this.loadData();\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async mounted() {\r\n this.initParam();\r\n await this.loadData(); \r\n }\r\n\r\n created() {\r\n\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicAddressMemberListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicAddressMemberListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PublicAddressMemberListContainer.vue?vue&type=template&id=76d5b444&\"\nimport script from \"./PublicAddressMemberListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./PublicAddressMemberListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DeptTree',{attrs:{\"showCompany\":false,\"items\":_vm.items,\"current\":_vm.dept,\"onExpand\":_vm.handleExpand},on:{\"selectDept\":_vm.selectDept}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\nimport * as types from '@orgmap/store/types';\r\nimport * as userTypes from '@account/store/types';\r\n\r\nimport { DeptTree } from '@orgmap/components'\r\nimport api from '@orgmap/api';\r\n\r\n@Component({\r\n name: 'PersonalFolderListContainer',\r\n components: { DeptTree },\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n load: types.ORG_PERSONAL_FOLDER_LIST,\r\n }),\r\n ...mapMutations({\r\n add: types.ORG_CONTAINER_DEPT_ITEM_ADD\r\n }),\r\n },\r\n})\r\nexport default class PersonalFolderListContainer extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n items: orgmap.TDepartmentTreeItem[] = []\r\n dept: orgmap.TDepartmentTreeItem | null = null;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n load!: () => Promise>;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n add!: (payload: orgmap.TWishContainerItem) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async loadData(){\r\n const data = await this.load()\r\n this.items = data.map((x) => {\r\n return {\r\n id: x.id,\r\n comCode: '',\r\n deptCode: '',\r\n deptName: x.displayName,\r\n deptNameEn: x.displayName,\r\n dept_Level: '',\r\n email: '',\r\n hasChildren: x.childFolderCount ? x.childFolderCount > 0 : false,\r\n level: 0,\r\n parentDeptCode: '',\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n type: x.storedType.toString()\r\n } as orgmap.TDepartmentTreeItem\r\n });\r\n\r\n this.selectDept(this.items[0]);\r\n\r\n }\r\n\r\n selectDept(item: orgmap.TDepartmentTreeItem | null){\r\n this.dept = item;\r\n this.$emit('select', item);\r\n }\r\n\r\n async handleExpand(item: orgmap.TDepartmentTreeItem) {\r\n const dept = this.findDept(this.items, item.id)\r\n if (dept) {\r\n dept.expanded = !dept.expanded\r\n if (!dept.children || dept.children.length === 0) {\r\n var items: Array = [];\r\n switch(item.type){\r\n case '0': // ContactsStoredType.DB\r\n items = await api.local.getContactTree(item.id)\r\n break;\r\n case '1': // ContactsStoredType.EWS\r\n items = await api.personal.getContactTree(item.id)\r\n break;\r\n }\r\n\r\n dept.children = items.map((x: orgmap.PersonalFolder) => {\r\n return {\r\n id: x.id,\r\n comCode: '',\r\n deptCode: '',\r\n deptName: x.displayName,\r\n deptNameEn: x.displayName,\r\n dept_Level: '',\r\n email: '',\r\n hasChildren: x.childFolderCount ? x.childFolderCount > 0 : false,\r\n level: 0,\r\n parentDeptCode: '',\r\n children: null,\r\n expanded: false,\r\n selected: false,\r\n type: x.storedType.toString()\r\n } as orgmap.TDepartmentTreeItem\r\n })\r\n }\r\n }\r\n }\r\n\r\n findDept(parent: Array, id: string) {\r\n const _self = this\r\n const result = parent.find((dept) => dept.id === id)\r\n if (result) {\r\n return result\r\n } else {\r\n var foundDept = null\r\n parent.forEach((dept) => {\r\n if (dept.children && dept.children.length > 0) {\r\n foundDept = _self.findDept(dept.children, id)\r\n }\r\n })\r\n return foundDept\r\n }\r\n }\r\n \r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async mounted() {\r\n await this.loadData();\r\n }\r\n\r\n created() {\r\n\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalFolderListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalFolderListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonalFolderListContainer.vue?vue&type=template&id=61ad586e&\"\nimport script from \"./PersonalFolderListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./PersonalFolderListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"area-flex-column\"},[_c('div',{staticClass:\"area-scroll-hide\"},[_c('div',{staticClass:\"search-bar\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.keyword),expression:\"keyword\"}],staticClass:\"w-100\",attrs:{\"type\":\"text\",\"placeholder\":this.$t('M_Orgmap_Keyword').toString()},domProps:{\"value\":(_vm.keyword)},on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.refresh.apply(null, arguments)}],\"input\":function($event){if($event.target.composing){ return; }_vm.keyword=$event.target.value}}}),_c('a',{staticClass:\"btn-search\",on:{\"click\":_vm.search}},[_c('i',{staticClass:\"icon-fux-search\"})])]),_c('div',{staticClass:\"space-m\"}),_c('DepartmentInfo',{attrs:{\"name\":_vm.name,\"count\":_vm.totalCount}})],1),_c('MemberList',{attrs:{\"loading\":_vm.loading,\"value\":_vm.members,\"onSelect\":_vm.handleSelect,\"onSelectAll\":_vm.handleSelectAll}}),_c('PageNavigationBar',{attrs:{\"value\":_vm.currentPage,\"total\":_vm.totalCount,\"size\":_vm.itemsPerPage,\"range\":_vm.pageRange},on:{\"pageMove\":_vm.pageMove}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\nimport { i18n } from '@appbase/util/i18n-setup'\r\n\r\nimport * as types from '@orgmap/store/types';\r\nimport * as userTypes from '@account/store/types';\r\n\r\nimport { OrgMemberSelectMutationPayload } from '@orgmap/store/mutations';\r\nimport { ContactsStoredType, FilterComparisonModes, FilterConditions, FilterContainmentModes } from '@orgmap/types/enums';\r\n\r\nimport { DepartmentInfo, MemberList } from '@orgmap/components'\r\nimport PageNavigationBar from '@appbase/components/Paginate/PageNavigationBar.vue'\r\n\r\n@Component({\r\n name: 'PersonalMemberListContainer',\r\n components: { DepartmentInfo, MemberList, PageNavigationBar },\r\n computed: {\r\n ...mapGetters({\r\n members: types.ORG_MEMBER_LIST,\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n load: types.ORG_PERSONAL_MEMBER_LIST,\r\n loadMembers: types.ORG_PERSONAL_GROUPMEMBER_LIST,\r\n }),\r\n ...mapMutations({\r\n select: types.ORG_MEMBER_SELECT,\r\n selectAll: types.ORG_MEMBER_SELECT_ALL,\r\n }),\r\n },\r\n})\r\nexport default class PersonalMemberListContainer extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: String, default: '' }) id!: string;\r\n @Prop({ type: String, default: '' }) deptName!: string;\r\n @Prop({ type: String, default: '0' }) type!: string;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n \r\n loading: boolean = false\r\n searching: boolean = false;\r\n keyword: string = '';\r\n pageRange: number = 10;\r\n currentPage: number = 1;\r\n itemsPerPage: number = 50;\r\n\r\n apiOption: orgmap.api.DynamicApiOptions = {\r\n fields: {},\r\n filters: [\r\n {\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'ItemClass',\r\n value: 'IPM.Contact',\r\n condition: FilterConditions.IsEqualTo\r\n },\r\n {\r\n key: 'ItemClass',\r\n value: 'IPM.DistList',\r\n condition: FilterConditions.IsEqualTo\r\n }\r\n ]\r\n },\r\n \r\n ],\r\n sorts: [\r\n { field: 'DisplayName', 'dir': 'asc' },\r\n ],\r\n pageSize: this.itemsPerPage,\r\n offset: (this.currentPage -1) * this.itemsPerPage,\r\n type: 'Contact',\r\n } as orgmap.api.DynamicApiOptions;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n members!: orgmap.TMemberList;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n load!: (payload: { data: orgmap.api.DynamicApiOptions, type: ContactsStoredType }) => void;\r\n loadMembers!: (payload: { item: orgmap.TMemberItem, type: ContactsStoredType }) => void;\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n select!: (payload: OrgMemberSelectMutationPayload) => void\r\n selectAll!: (payload: boolean) => void\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get totalCount() {\r\n return this.members?.totalCount || 0\r\n }\r\n \r\n get name(){\r\n return this.searching ? i18n.t('검색결과').toString() : this.deptName;\r\n }\r\n\r\n get storedType(){\r\n return this.type === '0' ? ContactsStoredType.DB : ContactsStoredType.EWS ;\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n initParam(){\r\n this.keyword = '';\r\n this.currentPage = 1;\r\n this.searching = false;\r\n }\r\n\r\n async loadData(){\r\n var payload = {\r\n ... this.apiOption,\r\n pageSize: this.itemsPerPage,\r\n offset: (this.currentPage -1) * this.itemsPerPage,\r\n parentId: this.id,\r\n } as orgmap.api.DynamicApiOptions\r\n try{\r\n this.loading = true;\r\n await this.load({ data: payload, type: this.storedType });\r\n }\r\n catch(ex){\r\n throw ex\r\n }\r\n\r\n this.loading = false;\r\n }\r\n\r\n handleSelect(user: orgmap.TMemberItem) {\r\n this.select({\r\n items: [user],\r\n select: !user.selected,\r\n })\r\n }\r\n \r\n handleSelectAll(select: boolean) {\r\n const _this = this;\r\n this.selectAll(select);\r\n }\r\n\r\n async search(){\r\n if(this.keyword.length){\r\n var payload = {\r\n ... this.apiOption,\r\n filters: this.apiOption.filters?.concat({\r\n operator: 'or',\r\n filters: [\r\n {\r\n key: 'DisplayName',\r\n value: this.keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Substring,\r\n comparisonMode: FilterComparisonModes.IgnoreCase\r\n },\r\n {\r\n key: 'CompanyName',\r\n value: this.keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Prefixed,\r\n comparisonMode: FilterComparisonModes.IgnoreCase\r\n },\r\n {\r\n key: 'PidLidEmail1OriginalDisplayName',\r\n value: this.keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Prefixed,\r\n comparisonMode: FilterComparisonModes.IgnoreCase\r\n },\r\n {\r\n key: 'MobilePhone',\r\n value: this.keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Prefixed,\r\n comparisonMode: FilterComparisonModes.IgnoreCase\r\n },\r\n {\r\n key: 'JobTitle',\r\n value: this.keyword,\r\n condition: FilterConditions.ContainsSubstring,\r\n containmentMode: FilterContainmentModes.Prefixed,\r\n comparisonMode: FilterComparisonModes.IgnoreCase\r\n }\r\n ]\r\n }),\r\n parentId: this.id,\r\n } as orgmap.api.DynamicApiOptions;\r\n \r\n try{\r\n this.loading = true;\r\n await this.load({ data: payload, type: this.storedType });\r\n }\r\n catch(ex){\r\n throw ex\r\n }\r\n \r\n this.loading = false;\r\n }\r\n\r\n }\r\n\r\n refresh(){\r\n this.keyword = '';\r\n this.searching = false;\r\n this.loadData();\r\n }\r\n\r\n\r\n /**\r\n * 페이지 번호 클릭 시 호출됩니다.\r\n * @param pageNum \r\n */\r\n pageMove(pageNum: number){\r\n this.currentPage = pageNum;\r\n this.loadData();\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n \r\n @Watch('id')\r\n onIdChanged(newValue: string, oldValue: string){\r\n if(newValue){\r\n this.initParam();\r\n this.loadData();\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n async mounted() {\r\n this.initParam();\r\n await this.loadData(); \r\n }\r\n\r\n created() {\r\n\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalMemberListContainer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalMemberListContainer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonalMemberListContainer.vue?vue&type=template&id=4e2eedd8&\"\nimport script from \"./PersonalMemberListContainer.ts?vue&type=script&lang=ts&\"\nexport * from \"./PersonalMemberListContainer.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-group org-tab-content flex-3\"},[_c('div',{staticClass:\"col-n org-chart-dept flex-1\"},[_c('DepartmentListContainer',{attrs:{\"addableDept\":_vm.addableDept,\"userlang\":_vm.userlang},on:{\"getDepartments\":_vm.getDepartments,\"select\":_vm.select}})],1),_c('div',{staticClass:\"col-n org-chart-user flex-2\"},[_c('HrUserListView',{attrs:{\"dept\":_vm.dept,\"userlang\":_vm.userlang,\"rollOut\":_vm.rollOut}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('MemberListContainer',{attrs:{\"deptCode\":_vm.deptCode,\"comCode\":_vm.comCode,\"deptName\":_vm.deptName,\"userlang\":_vm.userlang,\"companyName\":_vm.companyName,\"rollOut\":_vm.rollOut}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { MemberListContainer } from '../../containers'\r\nimport api from '@orgmap/api'\r\n\r\n@Component({\r\n name: 'HrUserListView',\r\n components: { MemberListContainer },\r\n})\r\nexport default class HrUserListView extends Vue {\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n \r\n @Prop({ type: Object, default: null }) dept!: orgmap.TDepartmentTreeItem;\r\n @Prop({ type: String }) userlang!: string\r\n @Prop({ type: Boolean, default: false }) rollOut!: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n deptCode: string = ''\r\n comCode: string = ''\r\n deptName: string = ''\r\n companyName: string = ''\r\n\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n \r\n @Watch('dept')\r\n onCurrentDeptChanged(newValue: orgmap.TDepartmentTreeItem, oldValue: orgmap.TDepartmentTreeItem) {\r\n if(newValue){\r\n this.deptCode = newValue.deptCode\r\n this.comCode = newValue.comCode\r\n this.deptName = (this.userlang == 'ko-kr' ? newValue.deptName : newValue.deptNameEn)\r\n }\r\n else{\r\n this.deptCode = '';\r\n this.comCode = '';\r\n this.deptName = '';\r\n }\r\n }\r\n\r\n @Watch('comCode')\r\n onCurrentComCodeChanged(comCode: string) {\r\n api.hr.getCompanies().then((res: orgmap.Company[]) => {\r\n var company = res.find(x => x.comCode == comCode)\r\n if (company)\r\n this.companyName = (this.userlang == 'ko-kr' ? company.companyName : company.companyNameEng)\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./HrUserListView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./HrUserListView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HrUserListView.vue?vue&type=template&id=3318ca79&\"\nimport script from \"./HrUserListView.ts?vue&type=script&lang=ts&\"\nexport * from \"./HrUserListView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { mapGetters } from 'vuex';\r\nimport { DepartmentListContainer } from '../../containers'\r\nimport * as types from '@orgmap/store/types'\r\nimport HrUserListView from './HrUserListView.vue';\r\n\r\n@Component({\r\n name:'HrView',\r\n components: { DepartmentListContainer, HrUserListView },\r\n computed: mapGetters({\r\n userCurrent: types.ACCOUNT_CURRENT\r\n })\r\n})\r\nexport default class HrView extends Vue {\r\n\r\n @Prop({ type: Boolean, default: false }) addableDept!: boolean;\r\n @Prop({ type: Boolean, default: false }) rollOut!: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n userCurrent!: orgmap.account.TCurrent;\r\n\r\n dept: orgmap.TDepartmentTreeItem | null = null;\r\n \r\n get userlang (){\r\n let lang = 'ko-kr'\r\n if (this.userCurrent){\r\n lang = this.userCurrent.userConfig.language.toLowerCase()\r\n }\r\n return lang\r\n }\r\n\r\n select(item: orgmap.TDepartmentTreeItem | null){\r\n this.dept = item;\r\n this.$emit('selectDept', this.dept);\r\n }\r\n\r\n getDepartments(items: orgmap.TDepartmentTreeItem[] | null) {\r\n this.$emit('getDepartments', items);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./HrView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./HrView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HrView.vue?vue&type=template&id=03af98cf&\"\nimport script from \"./HrView.ts?vue&type=script&lang=ts&\"\nexport * from \"./HrView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-group org-tab-content flex-3\"},[_c('div',{staticClass:\"col-n org-chart-dept flex-1\"},[_c('PersonalFolderListContainer',{on:{\"select\":_vm.select}})],1),_c('div',{staticClass:\"col-n org-chart-user flex-2\"},[_c('PersonalMembersView',{attrs:{\"dept\":_vm.dept}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PersonalMemberListContainer',{attrs:{\"id\":_vm.id,\"deptName\":_vm.deptName,\"type\":_vm.type}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\n\r\nimport { PersonalMemberListContainer } from '@orgmap/containers'\r\n\r\n@Component({\r\n components: { PersonalMemberListContainer }\r\n})\r\nexport default class PersonalMembersView extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: Object, default: null }) dept!: orgmap.TDepartmentTreeItem;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n id: string = ''\r\n deptName: string = ''\r\n type: string = ''\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('dept')\r\n onCurrentDeptChanged(newValue: orgmap.TDepartmentTreeItem, oldValue: orgmap.TDepartmentTreeItem) {\r\n if(newValue){\r\n this.id = newValue.id\r\n this.deptName = newValue.deptName\r\n this.type = newValue.type || '';\r\n }\r\n else{\r\n this.id = '';\r\n this.deptName = '';\r\n this.type = '';\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n \r\n }\r\n\r\n created() {\r\n\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalMembersView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalMembersView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonalMembersView.vue?vue&type=template&id=b47d9266&\"\nimport script from \"./PersonalMembersView.ts?vue&type=script&lang=ts&\"\nexport * from \"./PersonalMembersView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\n\r\nimport { PersonalFolderListContainer } from '@orgmap/containers'\r\nimport PersonalMembersView from './PersonalMembersView.vue';\r\n\r\n@Component({\r\n components: { PersonalFolderListContainer, PersonalMembersView }\r\n})\r\nexport default class PersonalAddressBookView extends Vue {\r\n\r\n @Prop({ type: Boolean, default: false }) addableDept!: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n dept: orgmap.TDepartmentTreeItem | null = null;\r\n \r\n\r\n select(item: orgmap.TDepartmentTreeItem | null){\r\n this.dept = item;\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalAddressBookView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PersonalAddressBookView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonalAddressBookView.vue?vue&type=template&id=152c6a98&\"\nimport script from \"./PersonalAddressBookView.ts?vue&type=script&lang=ts&\"\nexport * from \"./PersonalAddressBookView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col-group org-tab-content flex-3\"},[_c('div',{staticClass:\"col-n org-chart-dept flex-1\"},[_c('PublicAddressFolderListContainer',{attrs:{\"addableDept\":_vm.addableDept},on:{\"select\":_vm.select}})],1),_c('div',{staticClass:\"col-n org-chart-user flex-2\"},[_c('PublicMembersView',{attrs:{\"dept\":_vm.dept}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('PublicAddressMemberListContainer',{attrs:{\"id\":_vm.id,\"deptName\":_vm.deptName}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport { mapGetters, mapActions, mapMutations } from 'vuex';\r\n\r\nimport * as types from '@orgmap/store/types';\r\nimport * as userTypes from '@account/store/types';\r\n\r\nimport { PublicAddressMemberListContainer } from '@orgmap/containers'\r\n\r\n@Component({\r\n name: 'PublicMembersView',\r\n components: { PublicAddressMemberListContainer },\r\n computed: {\r\n ...mapGetters({\r\n }),\r\n },\r\n methods: {\r\n ...mapActions({\r\n }),\r\n ...mapMutations({\r\n }),\r\n },\r\n})\r\nexport default class PublicMembersView extends Vue {\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n @Prop({ type: Object, default: null }) dept!: orgmap.TDepartmentTreeItem;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n // \r\n\r\n id: string = ''\r\n deptName: string = ''\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: W A T C H : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Watch('dept')\r\n onCurrentDeptChanged(newValue: orgmap.TDepartmentTreeItem, oldValue: orgmap.TDepartmentTreeItem) {\r\n if(newValue){\r\n this.id = newValue.id\r\n this.deptName = newValue.deptName\r\n }\r\n else{\r\n this.id = '';\r\n this.deptName = '';\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n mounted() {\r\n \r\n }\r\n\r\n created() {\r\n\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicMembersView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicMembersView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PublicMembersView.vue?vue&type=template&id=1869c619&\"\nimport script from \"./PublicMembersView.ts?vue&type=script&lang=ts&\"\nexport * from \"./PublicMembersView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { PublicAddressFolderListContainer } from '@orgmap/containers';\r\nimport PublicMembersView from './PublicMembersView.vue';\r\n\r\n\r\n@Component({\r\n components: { PublicAddressFolderListContainer, PublicMembersView }\r\n})\r\nexport default class PublicAddressBookView extends Vue {\r\n\r\n @Prop({ type: Boolean, default: false }) addableDept!: boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n dept: orgmap.TDepartmentTreeItem | null = null;\r\n \r\n\r\n select(item: orgmap.TDepartmentTreeItem | null){\r\n this.dept = item;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicAddressBookView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./PublicAddressBookView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PublicAddressBookView.vue?vue&type=template&id=b7e1b600&\"\nimport script from \"./PublicAddressBookView.ts?vue&type=script&lang=ts&\"\nexport * from \"./PublicAddressBookView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue, { Component } from 'vue'\r\nimport { dispatchEventBus } from '@appbase/util/eventBus'\r\nimport HrView from './hr/HrView.vue'\r\nimport PersonalAddressBookView from './personal/PersonalAddressBookView.vue'\r\nimport PublicAddressBookView from './public/PublicAddressBookView.vue'\r\n\r\nexport type TTabNames = 'hr' | 'personal' | 'public'\r\n\r\nexport interface IOrgmapMain {\r\n options: orgmap.TWishContainerOptions\r\n event: string\r\n propsOption: orgmap.TWishItemPropsOptions | null\r\n}\r\n\r\nexport abstract class OrgmapMainBase extends Vue implements IOrgmapMain {\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n containers!: orgmap.TWishContainer[]\r\n\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n // ?event=test&option=%5B%7B%22id%22%3A0%2C%22name%22%3A%22%EB%B0%9B%EB%8A%94%EC%82%AC%EB%9E%8C%22%2C%22height%22%3A%223%22%7D%2C%7B%22id%22%3A1%2C%22name%22%3A%22%EC%B0%B8%EC%A1%B0%22%2C%22height%22%3A%222%22%7D%2C%7B%22id%22%3A2%2C%22name%22%3A%22%EC%88%A8%EC%9D%80%EC%B0%B8%EC%A1%B0%22%2C%22height%22%3A%221%22%7D%5D&props=%7B%22props%22%3A%5B%22id%22%2C%22name%22%2C%22personCode%22%5D%7D\r\n // ?event=%24orglist%2Forg%2Fpopup&option={\"containers\"%3A[{\"id\"%3A0,\"name\"%3A\"권한멤버\",\"height\"%3A\"1\"}]}\r\n\r\n options: orgmap.TWishContainerOptions = {\r\n addableDept: false,\r\n single: false,\r\n move: false,\r\n personal: true,\r\n public: true,\r\n rollOut: false,\r\n containers: [],\r\n }\r\n event: string = ''\r\n propsOption: orgmap.TWishItemPropsOptions | null = null\r\n tab: TTabNames = 'hr'\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get contentComponent(): Component {\r\n switch (this.tab) {\r\n case 'hr':\r\n return HrView\r\n\r\n case 'personal':\r\n return PersonalAddressBookView\r\n\r\n case 'public':\r\n return PublicAddressBookView\r\n\r\n default:\r\n throw new Error('[NOT_SUPPORTED_ERROR] ' + this.tab)\r\n }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n processTabSelect(name: TTabNames) {\r\n this.tab = name\r\n }\r\n\r\n processTabActive(name: TTabNames) {\r\n return this.tab === name\r\n }\r\n\r\n processOk(dispatchTarget: any) {\r\n const { propsOption } = this\r\n console.log(2)\r\n if (propsOption) {\r\n var returnData = this.containers.map((c) => {\r\n const items = c.items\r\n return {\r\n id: c.id,\r\n items: items.map((x: { [key: string]: any }) => {\r\n const keys = propsOption.props\r\n var val: { [key: string]: any } = { text: x.text, value: x.value }\r\n keys.forEach((key) => {\r\n if (x[key]) val[key] = x[key]\r\n })\r\n return val\r\n }),\r\n }\r\n })\r\n if (this.event) {\r\n //2022-04-12 모달의 경우 opener 가 없음 분기 처리\r\n //모달은 opener null 임\r\n let target = null\r\n\r\n if (window.opener == null) {\r\n target = window\r\n } else {\r\n target = window.opener\r\n }\r\n\r\n (target as any).dispatchEvent(new CustomEvent(this.event, { detail: (returnData as any) }));\r\n dispatchEventBus(dispatchTarget, this.event, returnData)\r\n }\r\n } else {\r\n // query string에 props가 정의되지 않은 경우 모든 필드 값을 반환\r\n if (this.event) {\r\n var wholeData = this.containers.map((c) => {\r\n const items = c.items\r\n return {\r\n id: c.id,\r\n items: items.map((x) => {\r\n return { ...x, text: x.text, value: x.value }\r\n }),\r\n }\r\n });\r\n window.opener.dispatchEvent(new CustomEvent(this.event, { detail: (wholeData as any) }));\r\n dispatchEventBus(dispatchTarget, this.event, wholeData);\r\n }\r\n }\r\n this.handleClose()\r\n }\r\n\r\n abstract handleClose(): void\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"nav nav-tabs tab-bar-white\"},[_c('li',{class:{'active': _vm.handleActive('hr')}},[_c('a',{attrs:{\"data-toggle\":\"tab\",\"href\":\"#tab1\"},on:{\"click\":function () { return _vm.onSelect('hr'); }}},[_vm._v(_vm._s(_vm.$t('W_Organization')))])]),(_vm.usePersonal)?_c('li',{class:{'active': _vm.handleActive('personal')}},[_c('a',{attrs:{\"data-toggle\":\"tab\",\"href\":\"#tab2\"},on:{\"click\":function () { return _vm.onSelect('personal'); }}},[_vm._v(_vm._s(_vm.$t('W_Orgmap_PersonalAB')))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport { TTabNames } from '../views/OrgmapMainBase'\r\n\r\n@Component\r\nexport default class OrgTab extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Function }) onSelect!: (name: TTabNames) => void\r\n @Prop({ type: Function }) handleActive!: (name: TTabNames) => boolean\r\n @Prop({ type: Boolean }) usePersonal!: boolean\r\n @Prop({ type: Boolean }) usePublic!: boolean\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgTab.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./OrgTab.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrgTab.vue?vue&type=template&id=16047042&\"\nimport script from \"./OrgTab.ts?vue&type=script&lang=ts&\"\nexport * from \"./OrgTab.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.modalClass(),attrs:{\"id\":_vm.isModal ? '' : 'pop-wrapper'}},[(_vm.isModal)?[_c('div',{class:{'modal-flex': _vm.isModal}},[_c('div',{class:{'modal-flex-inner':_vm.isModal},style:(_vm.modalStyle())},[_vm._t(\"default\")],2)])]:_vm._e(),(!_vm.isModal)?[_vm._t(\"default\")]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport { Prop } from 'vue-property-decorator'\r\n\r\n\r\n@Component({\r\n components: { },\r\n})\r\nexport default class ModalSlotLayout extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) isModal!: boolean\r\n @Prop({ type: String, default: '' }) modalStyleStr?: string\r\n @Prop({ type: String, default: '' }) modalClassStr?: string\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n modalClass(){\r\n var classStr = \"\";\r\n\r\n if(this.isModal){\r\n classStr += 'modal ';\r\n }\r\n \r\n classStr += this.modalClassStr;\r\n\r\n return classStr\r\n }\r\n\r\n modalStyle(){\r\n return this.modalStyleStr;\r\n }\r\n\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalSlotLayout.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalSlotLayout.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalSlotLayout.vue?vue&type=template&id=6cf558d1&\"\nimport script from \"./ModalSlotLayout.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalSlotLayout.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { WishListContainer } from '../containers'\r\nimport * as types from '../store/types'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport { OrgmapMainBase, TTabNames } from './OrgmapMainBase'\r\nimport OrgTab from '../components/OrgTab.vue'\r\nimport { createEventBus, getDispatchData, removeEventBus } from '@/modules/@appbase/util'\r\nimport ModalSlotLayout from '@/modules/@appbase/containers/ModalContainer/ModalSlotLayout.vue'\r\nimport modalHelper from '@/modules/@appbase/util/modal-helper'\r\n\r\n@Component({\r\n components: { WishListContainer, OrgTab, ModalSlotLayout },\r\n computed: {\r\n ...mapGetters({\r\n containers: types.ORG_CONTAINER_REGISTER,\r\n }),\r\n },\r\n methods: {\r\n ...mapMutations({\r\n updateContainer: types.ORG_CONTAINER_UPDATE,\r\n setOptions: types.ORG_OPTION_SET,\r\n }),\r\n },\r\n})\r\nexport default class PopupView extends OrgmapMainBase {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Object }) value!: any;\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n isModal?: boolean = false;\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n updateContainer!: (payload: orgmap.TWishContainerOptionItem) => void\r\n setOptions!: (payload: orgmap.TWishContainerOptions) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n get hasContainers() {\r\n return this.options?.containers?.length > 0\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n var paramValue;\r\n if(this.value) {\r\n paramValue = this.value;\r\n this.isModal = true;\r\n }\r\n else{\r\n paramValue = this.$route.query\r\n }\r\n\r\n const { option, event, props } = paramValue\r\n\r\n if (option && typeof option === 'string') {\r\n this.options = {\r\n ...this.options,\r\n ...(JSON.parse(option) as orgmap.TWishContainerOptions),\r\n }\r\n }\r\n\r\n this.setOptions(this.options);\r\n\r\n if (event && typeof event === 'string') {\r\n this.event = event\r\n }\r\n\r\n if (props && typeof props === 'string') {\r\n console.log('props', props)\r\n this.propsOption = JSON.parse(props) as orgmap.TWishItemPropsOptions\r\n }\r\n\r\n createEventBus(window, types.ORG_EVENT_TYPE, this.handleEventBus)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, types.ORG_EVENT_TYPE, this.handleEventBus)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleTabSelect(name: TTabNames) {\r\n this.processTabSelect.bind(this, name)()\r\n }\r\n\r\n handleTabActive(name: TTabNames) {\r\n return this.processTabActive.bind(this, name)()\r\n }\r\n\r\n handleOk() {\r\n this.processOk.bind(this, window.opener)()\r\n }\r\n\r\n handleClose() {\r\n if(this.isModal){\r\n modalHelper.close();\r\n }\r\n else{\r\n window.close()\r\n }\r\n }\r\n\r\n handleEventBus() {\r\n var res: Array<{ id: number; items: orgmap.TWishContainerItem[] }> = getDispatchData(\r\n types.ORG_EVENT_TYPE\r\n )\r\n if (res.length) {\r\n this.options.containers\r\n .map((x) => {\r\n return {\r\n ...x,\r\n items: res.find((a) => a.id === x.id)?.items,\r\n }\r\n })\r\n .forEach((a) => {\r\n this.updateContainer(a)\r\n })\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./PopupView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PopupView.vue?vue&type=template&id=68457877&\"\nimport script from \"./PopupView.ts?vue&type=script&lang=ts&\"\nexport * from \"./PopupView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[_c('router-link',{attrs:{\"to\":\"/orgmap/hr\"}},[_vm._v(_vm._s(_vm.$t('W_Organization')))]),_vm._v(\" | \"),_c('router-link',{attrs:{\"to\":\"/orgmap/personal\"}},[_vm._v(_vm._s(_vm.$t('W_Orgmap_PersonalAB')))]),_vm._v(\" | \"),_c('router-link',{attrs:{\"to\":\"/orgmap/public\"}},[_vm._v(_vm._s(_vm.$t('W_Contact_PublicAB')))])],1),_c('div',[_c('router-view'),_c('div',_vm._l((_vm.options),function(item,index){return _c('WishListContainer',{key:index,attrs:{\"item\":item}})}),1)],1),_c('div',[_c('button',{on:{\"click\":_vm.handleOk}},[_vm._v(_vm._s(_vm.$t('확인')))]),_c('button',{on:{\"click\":_vm.handleCancel}},[_vm._v(_vm._s(_vm.$t('취소')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport { WishListContainer } from '../containers'\r\n\r\n@Component({\r\n components: { WishListContainer },\r\n})\r\nexport default class MainView extends Vue {\r\n \r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n options: orgmap.TWishContainerOptionItem[] = [\r\n {\r\n id: 0,\r\n name: '받는사람',\r\n height: '40%',\r\n },\r\n {\r\n id: 1,\r\n name: '참조',\r\n height: '30%',\r\n },\r\n {\r\n id: 2,\r\n name: '숨은참조',\r\n height: '30%',\r\n },\r\n ]\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleOk() {\r\n console.log('clicked ok button.')\r\n }\r\n\r\n handleCancel() {\r\n console.log('clicked cancel button.')\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MainView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./MainView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainView.vue?vue&type=template&id=0f874764&\"\nimport script from \"./MainView.ts?vue&type=script&lang=ts&\"\nexport * from \"./MainView.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\r\nimport { MainView, PopupView, MobileView } from '../views'\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: 'orgmap',\r\n component: () => import(/* webpackChunkName: \"orgmap\" */ '@orgmap/Index.vue'),\r\n children: [\r\n {\r\n path: 'main',\r\n component: MainView,\r\n },\r\n {\r\n path: 'popup',\r\n component: PopupView,\r\n },\r\n {\r\n path: 'mobile',\r\n component: MobileView,\r\n },\r\n {\r\n path: '',\r\n redirect: 'popup',\r\n },\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","import Vue from 'vue'\r\nimport api from '../../api'\r\nimport store from '@/store'\r\nimport { NavigationGuard } from 'vue-router'\r\n\r\nconst PortalCacheGuard: NavigationGuard = async (to, from, next) => {\r\n console.log(`Evaluating ${PortalCacheGuard.name}...`)\r\n const current = (store.state as any).$account?.current as account.TCurrent | null | undefined\r\n if (current) {\r\n const comCode = current.user.comCode\r\n const [menu, quick, webparts] = await Promise.all([\r\n api.cache.loadMenuCache(comCode, current.cacheVersion.menu || 0),\r\n api.cache.loadQuickMenuCache(comCode, current.cacheVersion.quickMenu || 0),\r\n api.cache.loadWebpartCache(comCode, current.cacheVersion.webpart || 0),\r\n ])\r\n const cache: appbase.cache.TPortalCache = {\r\n menu,\r\n quick,\r\n webparts,\r\n }\r\n Vue.prototype.portalCache = {\r\n ...Vue.prototype.portalCache,\r\n ...cache,\r\n }\r\n next()\r\n } else {\r\n throw new Error(\r\n `[INVALID_OPERATION_ERROR] ${PortalCacheGuard.name} : store.state.$account is not initialized.`\r\n )\r\n }\r\n}\r\n\r\nexport default PortalCacheGuard\r\n","import Vue from 'vue'\r\nimport api from '../../api'\r\nimport store from '@/store'\r\nimport { NavigationGuard } from 'vue-router'\r\nimport { setI18nLanguage } from '../../util/i18n-setup'\r\n\r\nconst I18nGuard: NavigationGuard = async (to, from, next) => {\r\n console.log(`Evaluating ${I18nGuard.name}...`)\r\n const current = (store.state as any).$account?.current as account.TCurrent | null | undefined\r\n if (current) {\r\n const lang = current.userConfig.language.substring(0, 2)\r\n const dic = await api.cache.loadDictionary(lang, current.cacheVersion.lang || 0)\r\n Vue.prototype.portalCache = {\r\n ...Vue.prototype.portalCache,\r\n dic,\r\n lang,\r\n }\r\n setI18nLanguage(lang, dic)\r\n next()\r\n } else {\r\n throw new Error(\r\n `[INVALID_OPERATION_ERROR] ${I18nGuard.name} : store.state.$account is not initialized.`\r\n )\r\n }\r\n}\r\n\r\nexport default I18nGuard\r\n","import { NavigationGuard, NavigationGuardNext, Route } from 'vue-router'\r\n\r\nconst evaluateGuards = async (\r\n guards: NavigationGuard[],\r\n to: Route,\r\n from: Route,\r\n next: NavigationGuardNext\r\n) => {\r\n const guardsLeft = guards.slice(0) // clone the array so we do not accidentally modify it\r\n const nextGuard = guardsLeft.shift()\r\n\r\n if (nextGuard) {\r\n await nextGuard(to, from, async (nextArg) => {\r\n if (nextArg) {\r\n next(nextArg)\r\n } else {\r\n await evaluateGuards(guardsLeft, to, from, next)\r\n }\r\n })\r\n } else next()\r\n}\r\n\r\nconst multiguard = function(guards: NavigationGuard[], bypass: string[]): NavigationGuard {\r\n if (!Array.isArray(guards)) throw new Error('You must specify an array of guards')\r\n\r\n return (to, from, next) => {\r\n if (bypass.includes(to.path)) {\r\n next()\r\n } else {\r\n evaluateGuards(guards, to, from, next)\r\n }\r\n }\r\n}\r\n\r\nexport default multiguard\r\n","import { RouteConfig } from 'vue-router'\r\nexport { default as PortalCacheGuard } from './guards/portal-cache.guard'\r\nexport { default as SkinGuard } from './guards/skin.guard'\r\nexport { default as I18nGuard } from './guards/i18n.guard'\r\nexport { default as multiguard } from './vue-router-multiguard.helper'\r\nconst Appbase = () => import(/* webpackChunkName: \"appbase\" */ '@appbase/Index.vue')\r\nconst AppbaseMaster = () => import(/* webpackChunkName: \"appbase\" */ '@appbase/views/Master.vue')\r\nconst ErrorView = () => import(/* webpackChunkName: \"appbase\" */ '@appbase/views/ErrorView.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: 'appbase',\r\n component: Appbase,\r\n children: [\r\n {\r\n path: '',\r\n component: AppbaseMaster,\r\n children: [],\r\n },\r\n ],\r\n },\r\n {\r\n path: 'error',\r\n name: 'error-page',\r\n component: ErrorView\r\n },\r\n]\r\nexport default routes\r\n","import { RouteConfig } from 'vue-router'\r\nconst Gnb = () => import(/* webpackChunkName: \"gnb\" */ '@gnb/Index.vue')\r\nconst GnbMaster = () => import(/* webpackChunkName: \"gnb\" */ '@gnb/views/Master.vue')\r\nconst GlobalNavigationBar = () =>\r\n import(/* webpackChunkName: \"gnb\" */ '@gnb/views/GlobalNavigationBar/GlobalNavigationBar.vue')\r\n// const QuickMenuUserSet = () => import('@gnb/views/GlobalNavigationBar/QuickMenuUserSetView.vue')\r\nconst GlobalNavigationBarLeft = () => import('@gnb/views/GnbLeft/GnbLeftView.vue')\r\nconst QuickMenuUserSetPop = () => import(/* webpackChunkName: \"gnb\" */ '@gnb/views/GnbLeft/QuickMenuSetPopView.vue')\r\nconst SignPreview = () => import('@gnb/views/SignPreview/SignPreview.vue')\r\n\r\nconst routes: RouteConfig[] = [\r\n {\r\n path: 'gnb',\r\n component: Gnb,\r\n children: [\r\n {\r\n path: 'test',\r\n component: GlobalNavigationBar,\r\n children: [\r\n \r\n ]\r\n },\r\n {\r\n path: \"left\",\r\n component: GlobalNavigationBarLeft,\r\n children: [\r\n \r\n ]\r\n },\r\n {\r\n path: '',\r\n redirect: 'test',\r\n },\r\n {\r\n path: 'setquickmenu',\r\n name: 'quickmenu-userset',\r\n component: QuickMenuUserSetPop,\r\n },\r\n \r\n {\r\n path: '',\r\n component: GnbMaster,\r\n children: [\r\n \r\n ],\r\n },\r\n\r\n {\r\n name: 'sign-preview',\r\n path: '/preview/sign/:lang',\r\n component: SignPreview,\r\n children: [],\r\n },\r\n ],\r\n },\r\n]\r\nexport default routes\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('router-view'),_c('DocumentViewer'),_c('iframe',{staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"iframe_logout\",\"src\":\"\"},on:{\"load\":_vm.logoutLoad}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"layer-popup document-viwer-wrapper\"},[_c('div',{staticClass:\"layer-pop-header\"},[_c('h4',[_vm._v(_vm._s(_vm.filename))]),_c('div',{staticClass:\"layer-close left\"},[_c('a',{on:{\"click\":_vm.handleClose}},[_c('i',{staticClass:\"icon-close\"})])])]),_c('div',{staticClass:\"layer-pop-content\",staticStyle:{\"width\":\"100%\",\"height\":\"100%\",\"overflow\":\"scroll !important\",\"-webkit-overflow-scrolling\":\"touch !important\"}},[_c('iframe',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"src\":_vm.url,\"scrolling\":\"yes\",\"frameborder\":\"0\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator'\r\nimport {\r\n createEventBus,\r\n getDispatchData,\r\n removeEventBus,\r\n} from '@/util/eventBus'\r\n\r\nconst SHOW_DOC_VIEWER = `evtbus-show-document-viewer`\r\n\r\nexport interface ShowViewerOption {\r\n show: boolean\r\n filename: string\r\n url: string\r\n}\r\n\r\n@Component\r\nexport default class DocumentViewer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n filename: string = ''\r\n url: string = ''\r\n show: boolean = false\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n createEventBus(window, SHOW_DOC_VIEWER, this.open)\r\n }\r\n\r\n beforeDestroy() {\r\n removeEventBus(window, SHOW_DOC_VIEWER, this.open)\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n handleClose() {\r\n this.show = false\r\n }\r\n\r\n open(data: any) {\r\n const payload = getDispatchData(SHOW_DOC_VIEWER)\r\n if (payload) {\r\n const { filename, url, show } = payload\r\n this.show = show\r\n this.filename = filename\r\n this.url = url\r\n } else {\r\n console.error('INVALID_OPERATION_ERROR : cannot open doc-vierwer(payload is null)')\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./DocumentViewer.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./DocumentViewer.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentViewer.vue?vue&type=template&id=6c6fb6a8&\"\nimport script from \"./DocumentViewer.ts?vue&type=script&lang=ts&\"\nexport * from \"./DocumentViewer.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentViewer.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport { Component } from 'vue-property-decorator';\r\nimport DocumentViewer from \"@/components/common/Modal/DocumentViewer.vue\";\r\n@Component({\r\n components: {\r\n DocumentViewer\r\n }\r\n})\r\nexport default class BaseLayout extends Vue {\r\n logoutLoad() {\r\n let iframe = document.getElementById('iframe_logout') as HTMLIFrameElement\r\n if (iframe.src.indexOf('adfs') > -1)\r\n this.$router.push({ name: 'login' })\r\n }\r\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./BaseLayout.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!./BaseLayout.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseLayout.vue?vue&type=template&id=0b36ca93&\"\nimport script from \"./BaseLayout.ts?vue&type=script&lang=ts&\"\nexport * from \"./BaseLayout.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport VueRouter, { NavigationGuard, RouteConfig } from 'vue-router'\r\nimport routesBoard from '@board/router'\r\nimport routesHome from '@home/router'\r\nimport routesMail from '@mail/router'\r\nimport routesCalendar from '@calendar/router'\r\nimport routesContact from '@contact/router'\r\nimport routesWorkflow from '@workflow/router'\r\nimport routesAccount from '@account/router'\r\nimport routesOrgmap from '@orgmap/router'\r\nimport { PortalCacheGuard, multiguard, I18nGuard } from '@appbase/router'\r\nimport moduleAppbase from '@appbase/router'\r\nimport routesGnb from '@gnb/router'\r\nimport BaseLayout from '@/templates/BaseLayout/BaseLayout.vue';\r\nimport authGuard from '@account/router/auth-guard'\r\nimport store from '@/store'\r\nconst AppLoginView = () =>\r\n import(/* webpackChunkName: \"account\" */ '@/components/login/AppLoginView.vue')\r\n\r\nVue.use(VueRouter)\r\n\r\ninterface web2appPayload {\r\n group: string\r\n function: string\r\n args: any\r\n}\r\n\r\nconst mailRoutes: string[] = ['mail-home', 'mail-list', 'contact-list']\r\n\r\nconst AppLoginGuard: NavigationGuard = (to, from, next) => {\r\n var current = store.state.$account?.current\r\n\r\n if (to.query.applogin && current) {\r\n //모바일앱 푸시를 위한 기기 사용자 등록 처리\r\n var web2appPayload: web2appPayload = {\r\n group: 'login',\r\n function: 'logined',\r\n args: {\r\n userId: current.user.id,\r\n topics: current.topics // 토픽 정보\r\n }\r\n };\r\n\r\n try {\r\n (window as any).dsmobileapp.web2app(web2appPayload.group, web2appPayload.function, web2appPayload.args);\r\n } catch (err) {\r\n console.log('err: ' + err + '\\n\\nuseragent:' + window.navigator.userAgent)\r\n }\r\n\r\n delete to.query[\"applogin\"]\r\n\r\n next({\r\n name: to.name || '',\r\n query: to.query,\r\n })\r\n \r\n\r\n } else {\r\n next()\r\n }\r\n}\r\n\r\nconst MailOnlyGuard: NavigationGuard = (to, from, next) => {\r\n var current = store.state.$account?.current\r\n if (current) {\r\n if (current.user.deptCode.indexOf('MAILONLY') > -1) {\r\n if (!mailRoutes.includes(to.name || '')) {\r\n next('/mail/home')\r\n } else {\r\n next()\r\n }\r\n } else {\r\n next()\r\n }\r\n } \r\n}\r\n\r\nconst routes: RouteConfig[] = [\r\n ...routesAccount,\r\n {\r\n path: '/',\r\n component: BaseLayout,\r\n beforeEnter: multiguard(\r\n [PortalCacheGuard, I18nGuard, AppLoginGuard, MailOnlyGuard],\r\n ['/account/login']\r\n ),\r\n children: [\r\n ...routesBoard,\r\n ...routesHome,\r\n ...routesMail,\r\n ...routesCalendar,\r\n ...routesContact,\r\n ...routesWorkflow,\r\n ...routesOrgmap,\r\n ...moduleAppbase,\r\n ...routesGnb,\r\n {\r\n path:'',\r\n redirect: 'home/main'\r\n },\r\n {\r\n path: 'login',\r\n component: AppLoginView\r\n }\r\n ]\r\n }\r\n]\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes,\r\n})\r\n\r\nrouter.beforeEach(authGuard)\r\n\r\nexport default router\r\n","import Vue from 'vue'\r\nimport storage from './local-storage-helper'\r\nconst KEY = 'EventBus';\r\n\r\nexport const createEventBus = function (obj: any, eventName: string, callback: (data: any) => void) {\r\n if (!obj.eventBus) {\r\n obj.eventBus = new Vue();\r\n }\r\n console.log('createEventBus', eventName, obj.eventBus);\r\n obj.eventBus.$on(eventName, callback);\r\n}\r\n\r\nexport const removeEventBus = function (obj: any, eventName: string, callback: (data: any) => void) {\r\n if (!obj.eventBus) {\r\n obj.eventBus = new Vue();\r\n }\r\n console.log('removeEventBus', eventName, obj.eventBus);\r\n obj.eventBus.$off(eventName, callback);\r\n}\r\n\r\nexport const dispatchEventBus = function (obj: any, eventName: string, data: any) {\r\n try {\r\n if (obj.eventBus) {\r\n console.log('dispatchEvent', eventName, obj.eventBus);\r\n var dataset = storage.get(KEY) || {};\r\n dataset[eventName] = data;\r\n storage.set(KEY, dataset);\r\n\r\n obj.eventBus.$emit(eventName, data);\r\n }\r\n } catch (e) {\r\n //��Ʋ������ â���� �� CORS����\r\n console.log('dispatchEventError', e);\r\n }\r\n}\r\n\r\nexport const listenEvent = function (obj: any, eventName: string, callback: (data: any) => void) {\r\n if (obj.eventBus) {\r\n console.log('listenEvent', eventName, obj.eventBus);\r\n obj.eventBus.$on(eventName, callback);\r\n }\r\n}\r\n\r\nexport const getDispatchData = function (eventName: string): any {\r\n var dataset = storage.get(KEY) || {};\r\n return dataset[eventName];\r\n}","import api from '@/api';\r\n\r\nexport default {\r\n //게시판의 모든 article 가져오기\r\n getTotalArticles(searchSet: article.TotalArticleSearchSet): Promise> {\r\n return api.post>({\r\n url: `/api/BoardApi/Article/getTotalArticles`,\r\n data: searchSet\r\n });\r\n },\r\n //article 가져오기\r\n getArticles(searchSet: article.SearchSet): Promise> {\r\n return api.post>({\r\n url: `/api/BoardApi/Article/getArticles`,\r\n data: searchSet\r\n });\r\n },\r\n //관리자 article 가져오기\r\n getAdminArticles(searchSet: article.SearchSet): Promise> {\r\n return api.post>({\r\n url: `/api/BoardApi/BoardAdmin/getArticles`,\r\n data: searchSet\r\n });\r\n },\r\n //Blog Article 가져오기\r\n getBlogArticles(searchSet: article.SearchSet): Promise> {\r\n return api.post>({\r\n url: `/api/BoardApi/Article/getBlogArticles`,\r\n data: searchSet\r\n });\r\n },\r\n //글 작성\r\n createArticle(set: article.ArticleQuerySet): Promise {\r\n return api.post({\r\n //url: `/api/BoardApi/Article/createArticle`,\r\n url: `/IsuBoard/ISU_Article/createArticle`,\r\n data: set\r\n })\r\n },\r\n //작성글 보기\r\n getArticleDetail(boardId: number, articleId: number): Promise {\r\n return api.get({\r\n //url: `/api/BoardApi/Article?boardId=${boardId}&articleId=${articleId}`,\r\n url: `/IsuBoard/ISU_Article?boardId=${boardId}&articleId=${articleId}`,\r\n })\r\n },\r\n //게시글 이력 조회\r\n getArticleDetailHistory(boardId: number, articleId: number, articleVersion: number): Promise {\r\n return api.get({\r\n url: `/api/BoardApi/Article?boardId=${boardId}&articleId=${articleId}&articleVersion=${articleVersion}`,\r\n })\r\n },\r\n //작성글 수정\r\n updateArticle(set: article.ArticleQuerySet): Promise {\r\n return api.post({\r\n //url: `/api/BoardApi/Article/updateArticle`,\r\n url: `/IsuBoard/ISU_Article/updateArticle`,\r\n data: set\r\n })\r\n },\r\n //작성글 삭제\r\n deleteArticle(set: article.DeleteArticle): Promise {\r\n return api.post({\r\n url: `/api/BoardApi/Article/deleteArticle`,\r\n data: set\r\n })\r\n },\r\n\r\n deleteArticles(set: article.DeleteArticleSet): Promise {\r\n return api.post({\r\n url: `/api/BoardApi/BoardAdmin/deleteArticles`,\r\n data: set\r\n })\r\n },\r\n\r\n restoreArticles(set: number[]): Promise {\r\n return api.post({\r\n url: `/api/BoardApi/BoardAdmin/restoreArticles`,\r\n data: set\r\n })\r\n },\r\n\r\n //게시글 권한\r\n createPermission(set: article.PermissionSet): Promise {\r\n return api.post({\r\n url:`/api/BoardApi/Article/createPermission`,\r\n data: set\r\n })\r\n },\r\n createArticleFile(set: article.FileCreateSet): Promise {\r\n return api.post({\r\n url: `/api/db/article/createFile`,\r\n data: set\r\n });\r\n },\r\n //첨부파일 \r\n getArticleFile(fildCode: string): Promise {\r\n return api.get({\r\n url: `/File/ISU_File/${fildCode}`\r\n })\r\n },\r\n getArticleFileHistory(fileCode: string, articleVersion: number): Promise {\r\n return api.get({\r\n url: `/api/BoardApi/Article/articlefilehistory?fileCode=${fileCode}&articleVersion=${articleVersion}`\r\n })\r\n },\r\n //댓글 가져오기\r\n getArticleComments(set: article.CommentFetchSet): Promise> {\r\n return api.post>({\r\n url: `/api/BoardApi/Article/getComments`,\r\n data: set\r\n })\r\n },\r\n //조회수\r\n createViewLog(set: article.CreateOptionSet): Promise {\r\n return api.post({\r\n url: `/api/BoardApi/Article/createViewLog`,\r\n data: set\r\n })\r\n },\r\n //댓글 작성\r\n createComment(set: article.CreateComment): Promise {\r\n return api.post({\r\n url: `/api/BoardApi/Article/createComment`,\r\n data: set\r\n })\r\n },\r\n //댓글 삭제\r\n deleteComment(commentId: number): Promise {\r\n return api.get({\r\n url: `/api/BoardApi/Article/deleteComment?commentId=${commentId}`\r\n })\r\n },\r\n //추천수 +1\r\n createRecommend(set: article.CreateOptionSet): Promise {\r\n return api.post({\r\n url: `/api/BoardApi/Article/createRecommend`,\r\n data: set\r\n })\r\n },\r\n //추천수 -1\r\n deleteRecommend(set: article.DeleteRecommendSet): Promise {\r\n return api.get({\r\n url: `/api/BoardApi/Article/deleteRecommend?articleId=${set.articleId}&userCode=${set.userCode}`\r\n })\r\n },\r\n //추천인 리스트\r\n getRecommendList(articleId: number): Promise {\r\n return api.get({\r\n url: `/api/BoardApi/Article/recommends?articleId=${articleId}`\r\n })\r\n },\r\n //조회한 사용자 리스트\r\n getViewLogList(articleId: number): Promise {\r\n return api.get({\r\n url:`/api/BoardApi/Article/viewlogs?articleId=${articleId}`\r\n })\r\n },\r\n \r\n sendArticleMailAlarm(set: article.ArticleMailAlarmSet): Promise {\r\n return api.post({\r\n url:`/api/BoardApi/Article/sendMailAlaram`,\r\n data: set\r\n });\r\n },\r\n\r\n checkArticlePassword(set: article.PasswordCheckSet): Promise {\r\n return api.post({\r\n url: '/api/BoardApi/Article/checkPassword',\r\n data: set\r\n });\r\n },\r\n\r\n getArticleHistoryList(articleId: number): Promise {\r\n return api.get({\r\n url: `/api/BoardApi/Article/articlehistory?articleId=${articleId}`\r\n })\r\n },\r\n\r\n getSystemAuth(systemId: number): Promise {\r\n return api.get({\r\n url: '/common/menu/api/menu/personsystemlist',\r\n params: {\r\n systemId: systemId\r\n }\r\n })\r\n },\r\n\r\n //문서복호화 파일 저장\r\n createExportFile(id: number): Promise{\r\n return api.get({\r\n url: '/File/ISU_File/exportinsert',\r\n params: {\r\n id: id\r\n }\r\n })\r\n },\r\n}","import api from \"@/api\";\r\nexport default {\r\n getWriteConfig(boardId: number): Promise {\r\n return api.get({\r\n url: `/api/boardapi/Board/writeConfig?boardId=${boardId}`,\r\n });\r\n },\r\n docViewerKeyRequest(payload: any) {\r\n return api.post({\r\n url: \"/workflow/outinterface/api/commonrequest\",\r\n //url: '/common/outinterface/api/request',\r\n data: payload,\r\n });\r\n },\r\n\r\n /** 2024-09-12 개선사항 적용하기 위해 사용되는 api 호출\r\n * param 없음. 새 게시글이 등록 된 BoardId를 가져옴**/\r\n fetchNewArticleBoardId() {\r\n return api.get({\r\n url: \"/api/BoardApi/Board/newArticleBoard\",\r\n });\r\n },\r\n};\r\n","import article from './article'\r\nimport board from './board'\r\n\r\nexport default{\r\n article,\r\n board\r\n}","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport PopupModal from '@/components/common/Modal/PopupModal.vue'\r\nimport ProfilePhoto from '@/components/common/ProfilePhoto.vue'\r\nimport { cache } from '@/util';\r\nimport { mapGetters } from 'vuex';\r\nimport * as types from '@workflow/store/types'\r\nimport orgmapApi from '@orgmap/api'\r\n\r\n@Component({\r\n components: { PopupModal, ProfilePhoto },\r\n})\r\nexport default class DrafterViewModal extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean\r\n @Prop({ type: Object }) item!: any\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n avatar = {\r\n url: '',\r\n loading: false,\r\n };\r\n\r\n drafter: any = {}\r\n //\r\n // ────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────\r\n //\r\n\r\n call(phoneNumber: string) {\r\n let Param: any = {}\r\n Param.Type = 'Call'\r\n Param.PhoneNumber = phoneNumber\r\n this.invokeCSCode(JSON.stringify(Param))\r\n }\r\n\r\n async invokeCSCode(data: any) {\r\n try {\r\n if ((window as any).invokeCSharpAction) {\r\n (window as any).invokeCSharpAction(data)\r\n } else {\r\n var obj = JSON.parse(data);\r\n const link = document.createElement('a')\r\n link.href = 'tel:' + obj.PhoneNumber\r\n link.click();\r\n (process as any).nextTick(() => link.remove())\r\n }\r\n } catch (err) {\r\n await(window as any).alertAsync(err);\r\n }\r\n }\r\n\r\n getImage(email?: string) {\r\n if (email && email.indexOf('/') == -1) {\r\n this.avatar.loading = true\r\n cache.avatar.get(email).then((url: string) => {\r\n this.avatar.url = url\r\n this.avatar.loading = false\r\n });\r\n }\r\n }\r\n\r\n error(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/v1/img/ghost_loading.png'\r\n }\r\n\r\n errorGhost(e: Event) {\r\n var elem = e.srcElement as HTMLImageElement\r\n elem.src = '/cm/gres/faux/images/ghost.png'\r\n }\r\n\r\n async writeEmail() {\r\n if (this.drafter.email) {\r\n this.$router.push({\r\n path: '/mail/write',\r\n query: { id: '', type: 'draft', uid: this.drafter.email },\r\n });\r\n } else {\r\n await(window as any).alertAsync(this.$t('M_Contact_NoEmail').toString());\r\n }\r\n }\r\n\r\n @Watch('item')\r\n onChangedDrafter() {\r\n if (this.item) {\r\n this.drafter = this.item;\r\n this.getImage(this.drafter.email);\r\n }\r\n }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadView.vue?vue&type=style&index=0&id=394db398&scoped=true&lang=css&\"","import api from '@/api'\r\n\r\nexport default {\r\n setmenuLog(item: gnb.MenuItemRequest): Promise {\r\n return api.post({\r\n url: '/Common/Statistics/api/menu',\r\n data: item,\r\n })\r\n },\r\n getOrgPersonSearch: (searchText: string, comCode: string): Promise => {\r\n return api.get({\r\n url: '/Common/gnb/api/gnbsearch',\r\n params:{\r\n searchText: searchText,\r\n comCode: comCode\r\n }\r\n });\r\n },\r\n getWorkFeedList:(personCode: string, comCode: string): Promise => {\r\n return api.get({\r\n url: '/Common/gnb/api/workfeed/list',\r\n params:{\r\n personCode: personCode,\r\n comCode: comCode,\r\n readFlag: 'N'\r\n }\r\n });\r\n },\r\n getWorkFeedUnreadCount:(personCode: string, comCode: string): any => {\r\n return api.get({\r\n url: '/Common/gnb/api/workfeed/workfeedcount',\r\n params: {\r\n personCode: personCode,\r\n comCode: comCode\r\n }\r\n }).then((res: any) => {\r\n return res;\r\n });\r\n },\r\n setWorkFeedReadStatus:(alarmId: number, isRead: boolean): any => {\r\n return api.get({\r\n url: '/Common/gnb/api/workfeed/updateread',\r\n params:{\r\n AlarmId: alarmId,\r\n IsRead: isRead\r\n }\r\n }).then((res: any) => {\r\n return res;\r\n });\r\n },\r\n setWorkFeedAllReadStatus:(personCode: string, comCode: string): any => {\r\n return api.get({\r\n url: '/Common/gnb/api/workfeed/updateallread',\r\n params:{\r\n PersonCode: personCode,\r\n ComCode: comCode\r\n }\r\n }).then((res: any) => {\r\n return res;\r\n });\r\n },\r\n getBookMarkList:(personCode: string, comCode: string): any => {\r\n return api.get({\r\n url: '/Common/gnb/api/bookmark/list',\r\n params: {\r\n PersonCode: personCode,\r\n ComCode: comCode\r\n }\r\n });\r\n },\r\n deleteBookMark:(bookMarkId: number, personCode: string, comCode: string): any => {\r\n return api.get({\r\n url: '/Common/gnb/api/bookmark/delete',\r\n params: {\r\n BookMarkId: bookMarkId,\r\n PersonCode: personCode,\r\n ComCode: comCode\r\n }\r\n }).then((res: any) => {\r\n return res;\r\n });\r\n },\r\n getUserQuickMenuList:(personCode: string, comCode: string, employeeNumber: string, displayName: string, payType: string, payTypeGubun: string, searchType: string): any => {\r\n return api.get({\r\n url: '/IsuCommon/ISU_Gnb/api/quickmenu/list',\r\n params: {\r\n PersonCode: personCode,\r\n ComCode: comCode,\r\n EmployeeNumber: employeeNumber,\r\n DisplayName: displayName,\r\n PayType: payType,\r\n PayTypeGubun: payTypeGubun,\r\n SearchType: searchType\r\n }\r\n })\r\n },\r\n insertQuickMenuUserSet:(personCode: string, comCode: string, quickMenuIds: string): any => {\r\n return api.get({\r\n url: '/Common/gnb/api/quickmenu/userset',\r\n params: {\r\n PersonCode: personCode, \r\n ComCode: comCode,\r\n QuickMenuIds: quickMenuIds\r\n } \r\n })\r\n },\r\n getTotalArticles(searchSet: gnbarticle.TotalArticleSearchSet): Promise> {\r\n return api.post>({\r\n url: `/api/BoardApi/Article/getTotalArticles`,\r\n data: searchSet\r\n });\r\n },\r\n searchOrg: function(\r\n options: gnborgmap.SearchOptions,\r\n comCode: string\r\n ): Promise> {\r\n let { query } = options\r\n if (query) {\r\n query = encodeURIComponent(query)\r\n }\r\n var data = {\r\n ...options,\r\n comCode: comCode\r\n }\r\n return api.post({\r\n url: '/api/hr/department/search?searchVal=' + query,\r\n data: data,\r\n })\r\n },\r\n \r\n initMulticapmersSsoInit:(apiurl: string,tenant: string): any => {\r\n return api.post({\r\n headers: {\r\n Step:'INIT',\r\n 'Tenant-Id':tenant,\r\n 'Enc-Type':'AES-256'\r\n\r\n },\r\n url: apiurl,\r\n })\r\n },\r\n \r\n initMulticapmersSsoBody:(apiurl: string,hmac: string,linkKey: string,code : string): any => {\r\n const qs = require('qs');\r\n return api.post({\r\n headers: {\r\n 'content-type': 'application/x-www-form-urlencoded',\r\n Step:'BODY',\r\n HMAC: hmac,\r\n 'Link-Key': linkKey,\r\n 'Enc-Type':'AES-256'\r\n\r\n },\r\n data: qs.stringify({\r\n gubun: 'id',\r\n code: code\r\n\r\n }),\r\n url: apiurl,\r\n })\r\n },\r\n \r\n initMulticapmersSsoEnd:(apiurl: string,hmac: string,linkKey: string): any => {\r\n return api.post({\r\n headers: {\r\n Step:'END',\r\n HMAC: hmac,\r\n 'Link-Key': linkKey,\r\n 'Enc-Type':'AES-256'\r\n\r\n },\r\n url: apiurl,\r\n })\r\n },\r\n}","import api from '@/api'\r\n\r\nexport default {\r\n /**\r\n * 검색어로 부서 또는 직원을 조회합니다.\r\n * @param {object} options 검색옵션\r\n */\r\n searchOrg: (\r\n options: orgmap.SearchOptions,\r\n comCode: string\r\n ): Promise> => {\r\n let { query } = options\r\n if (query) {\r\n query = encodeURIComponent(query)\r\n }\r\n var data = {\r\n ...options,\r\n comCode: comCode,\r\n }\r\n return api.post({\r\n url: '/api/hr/department/search?searchVal=' + query,\r\n data: data,\r\n })\r\n },\r\n}\r\n","\r\nimport api from '@/api'\r\n\r\nexport default {\r\n /**\r\n * 통합 검색 전자결재 , 게시판, 조직도\r\n * @param data \r\n * @returns \r\n */\r\n totalSearch: (data:gnbTotalSearch.TotalSearchRequest) : Promise => {\r\n \r\n return api.post({\r\n url: '/api/isu/totalsearch',\r\n data: data,\r\n })\r\n },\r\n}\r\n\r\n \r\n\r\n\r\n\r\n// ","import api from '@/api'\r\n\r\nexport type MailboxSizeInfo = {\r\n personCode: string\r\n totalSizeBytes: number\r\n sizeLimitBytes: number\r\n}\r\n\r\nexport default {\r\n getMailboxSizeInfo() {\r\n return api.get({\r\n url: '/api/mail/mailbox/size',\r\n })\r\n },\r\n}\r\n","import gnb from './gnb'\r\nimport orgmap from './orgmap'\r\nimport totalSearch from './totalSearch'\r\nimport common from './common'\r\nimport mail from './mail'\r\n\r\nexport default {\r\n gnb,\r\n orgmap,\r\n totalSearch,\r\n common,\r\n mail\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.menuLevel < 3)?_c('ul',{class:'depth-' + (_vm.menuLevel)},_vm._l((_vm.menuItems),function(menu){return _c('li',{key:menu.menuId},[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('gnbclick', menu)}}},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.userLang == 'ko-KR' ? menu.menuName : menu.menuNameEn))])]),(menu.hasChildren)?_c('sub-gnbitem',{attrs:{\"menuItems\":menu.children,\"menuLevel\":_vm.menuLevel + 1},on:{\"gnbclick\":function (item) { return _vm.$emit('gnbclick', item); }}}):_vm._e()],1)}),0):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport * as typesGlobal from '@/store/types'\r\n\r\n@Component({\r\n name:'sub-gnbitem'\r\n})\r\nexport default class SubGlobalNavigationBar extends Vue {\r\n @Prop({ type: Array }) menuItems!: appbase.cache.TMenuItem[]\r\n @Prop({ type: Number }) menuLevel!: Number\r\n @Prop({ type: String }) userLang!: String\r\n\r\n created(){\r\n }\r\n}","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./SubGlobalNavigationBar.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!./SubGlobalNavigationBar.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubGlobalNavigationBar.vue?vue&type=template&id=56cbb50d&\"\nimport script from \"./SubGlobalNavigationBar.ts?vue&type=script&lang=ts&\"\nexport * from \"./SubGlobalNavigationBar.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentViewer.vue?vue&type=style&index=0&lang=scss&\"","const path = '$gnb';\r\n\r\n//\r\n// ────────────────────────────────────────────────────────────────────── I ──────────\r\n// :::::: L A N G U A G E A N D T I M E : : : : : : : :\r\n// ────────────────────────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const LANGUAGE_TIME_CHANGE = `${path}/language/time/change`;\r\nexport const LANGUAGE_LOAD = `${path}/language/load`;\r\nexport const TIME_LOAD = `${path}/time/load`;\r\n\r\n//\r\n// ──────────────────────────────────────────────────────── I ──────────\r\n// :::::: U S E R C A R D : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const GET_CARDSTATE = `${path}/get/cardstate`;\r\nexport const GET_CARD = `${path}/get/card`;\r\nexport const UPDATE_CARD = `${path}/update/card`;\r\n\r\n//\r\n// ──────────────────────────────────────────────────────── I ──────────\r\n// :::::: D O W N L O A D : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const DOWNLOAD_PC = `${path}/download/pc`;\r\n\r\n//\r\n// ──────────────────────────────────────────────────────── I ──────────\r\n// :::::: S E T T I N G S : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────────\r\n//\r\nexport const SETTINGS_MYSETTING_LOAD = `${path}/get/mysetting/load`;\r\nexport const SETTINGS_MYSETTING_DATA = `${path}/get/mysetting/data`;\r\nexport const SETTINGS_MYSETTING_SAVE = `${path}/set/mysetting/save`;\r\nexport const APPLICATION_LIST_DATA = `${path}/get/applicationlist/data`;\r\nexport const APPLICATION_LIST_LOAD = `${path}/get/applicationlist/load`;\r\nexport const SETTINGS_DELEGATOR_LIST_DATA = `${path}/get/delegatorlist/data`;\r\nexport const SETTINGS_DELEGATOR_LIST_LOAD = `${path}/get/delegatorlist/load`;\r\nexport const SETTINGS_DELEGATOR_ADD = `${path}/set/delegator/add`;\r\nexport const SETTINGS_DELEGATOR_REMOVE = `${path}/set/delegator/remove`;\r\n\r\n//\r\n// ──────────────────────────────────────────────────── I ──────────\r\n// :::::: C O M M O N : : : : : : : :\r\n// ──────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const COMMON_LOADDING = `${path}/common/loading`;\r\n\r\nexport enum DeleteMode {\r\n /// \r\n /// The item or folder will be permanently deleted.\r\n /// \r\n HardDelete,\r\n\r\n /// \r\n /// The item or folder will be moved to the dumpster. Items and folders in the dumpster can be recovered.\r\n /// \r\n SoftDelete,\r\n\r\n /// \r\n /// The item or folder will be moved to the mailbox' Deleted Items folder.\r\n /// \r\n MoveToDeletedItems,\r\n}\r\n\r\n\r\n\r\n\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadView.vue?vue&type=style&index=0&lang=scss&\"","const path = '$contact';\r\n\r\n//\r\n// ────────────────────────────────────────────────────── I ──────────\r\n// :::::: C O N T A C T : : : : : : : :\r\n// ────────────────────────────────────────────────────────────────\r\n//\r\n\r\nexport const CURRENT_CONTACT_ITEM = `${path}/contact/current/item`;\r\nexport const CONTACT_LIST = `${path}/contact/list`;\r\nexport const CONTACT_LIST_NEXT = `${path}/contact/list/next`;\r\nexport const CONTACT_LIST_FILTER = `${path}/contact/list/filter`;\r\nexport const CONTACT_DETAIL = `${path}/contact/detail`;\r\nexport const CONTACT_SELECT = `${path}/contact/select`;\r\nexport const CONTACT_SELECT_ALL = `${path}/contact/select/all`;\r\nexport const CONTACT_SELECT_CLEAR = `${path}/contact/select/clear`;\r\nexport const CONTACT_SELECTION = `${path}/contact/selection`;\r\nexport const CONTACT_ADD = `${path}/contact/add`;\r\nexport const CONTACT_EDIT = `${path}/contact/edit`;\r\nexport const CONTACT_COPY = `${path}/contact/copy`;\r\nexport const CONTACT_MOVE = `${path}/contact/move`;\r\nexport const CONTACT_DELETE = `${path}/contact/delete`;\r\nexport const CONTACT_DOWNLOAD = `${path}/contact/download`;\r\nexport const CONTACT_SELECT_DOWNLOAD = `${path}/contact/download/select`;\r\nexport const CONTACT_UPLOAD = `${path}/contact/upload`;\r\nexport const CONTACT_NEW = `${path}/contact/new`;\r\nexport const CONTACT_SHARE = `${path}/contact/share`;\r\nexport const CONTACT_SHARE_TARGET = `${path}/contact/share/target`;\r\nexport const CONTACT_SHARE_ADD = `${path}/contact/share/add`;\r\nexport const CONTACT_SHARE_REMOVE = `${path}/contact/share/remove`;","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./CardTemplate.scss?vue&type=style&index=0&lang=scss&\"","import store from '@/store'\r\nimport * as types from '../store/types'\r\nconst _ = require('lodash')\r\n\r\nconst showModal = (options: appbase.TModalInfo) => {\r\n const { force, ...etc } = options\r\n if (force) {\r\n // 항상 모달로만 표시\r\n }\r\n store.commit(\r\n types.MODAL_CURRENT,\r\n {\r\n ...etc,\r\n // name: _.kebabCase(etc.name),\r\n } || null\r\n )\r\n}\r\n\r\nconst closeModal = () => {\r\n store.commit(types.MODAL_CURRENT, null)\r\n}\r\n\r\nconst modalHelper = {\r\n show: showModal,\r\n close: closeModal,\r\n}\r\n\r\nexport default modalHelper\r\n","export const readablizeBytes = function(bytes: number): string {\r\n var s = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n var e = Math.floor(Math.log(bytes) / Math.log(1024));\r\n return (bytes / Math.pow(1024, e)).toFixed(2) + ' ' + s[e];\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=ba693fc4&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import RoleGroupModal from './RoleGroupModal.vue'\r\nimport IframeModalV3 from './IframeModalV3.vue'\r\n\r\nexport const ROLE_GROUP_MODAL = 'role-group-modal-v3'\r\nexport const IFRAME_MODAL = 'iframe-modal-v3'\r\n ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show && _vm.options)?_c(_vm.options.component,_vm._g(_vm._b({tag:\"component\",on:{\"close-current-eum-modal\":_vm.closeModal},model:{value:(_vm.options.vmodel),callback:function ($$v) {_vm.$set(_vm.options, \"vmodel\", $$v)},expression:\"options.vmodel\"}},'component',_vm.options.vbind,false),_vm.options.vevent)):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\n\r\ntype ComponentOptions = {\r\n component: any\r\n vmodel: any\r\n vbind: { [key: string]: any }\r\n vevent: { [key: string]: Function }\r\n /**\r\n * @deprecated\r\n */\r\n value: any\r\n canbind: boolean\r\n}\r\n\r\n@Component({\r\n name: 'eum-modal',\r\n})\r\nexport default class EumModal extends Vue implements appbase.IModalOpenable {\r\n show: boolean = false\r\n options: ComponentOptions = Object.create(null)\r\n\r\n openModal(options: appbase.TModalInfo) {\r\n const { 'v-model': vmodel, ...props } = options.props || {}\r\n const events = options?.events || {}\r\n // value는 deprecated 되었기 때문에, value에 값이 할당된 경우\r\n // 예전 버전에서 개발된 모달로 보고 props와 event를 바인딩하지 않도록 함.\r\n const canBind = options?.value ? false : true\r\n this.options = {\r\n component: options?.component,\r\n vmodel: vmodel,\r\n vbind: props,\r\n vevent: events,\r\n value: options?.value,\r\n canbind: canBind,\r\n }\r\n this.show = true\r\n console.log('show', 'eum-modal-container', this.options)\r\n }\r\n\r\n closeModal(key?: string) {\r\n this.show = false\r\n console.log('close', 'eum-modal-container', this.options)\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EumModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EumModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EumModal.vue?vue&type=template&id=6070bf35&\"\nimport script from \"./EumModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./EumModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ModalLayout',{ref:\"modal\",attrs:{\"title\":_vm.$t('권한그룹'),\"mStyle\":_vm.modalSize,\"loading\":_vm.loading},on:{\"close\":function($event){return _vm.$emit('cancel')}},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('ok', _vm.selectedRoles)}}},[_vm._v(\" \"+_vm._s(_vm.$t('저장'))+\" \")]),_c('button',{staticClass:\"btn page-btn btn-basic\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" \"+_vm._s(_vm.$t('취소'))+\" \")])])]},proxy:true}])},[_c('div',{staticClass:\"pop-content pop-bggray role-group-modal-inner\"},[_c('div',{staticClass:\"fux-popup optional-pop-h-full optional-pop-padding\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-n flex-1\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-title\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h5',{staticClass:\"ft-blue\"},[_vm._v(\" \"+_vm._s(_vm.$t('권한그룹_목록'))+\" \")])])]),_c('div',{staticClass:\"card-body\",attrs:{\"id\":\"divSystemRoleList\"}},[_c('draggable',_vm._b({staticClass:\"tag-node-container\",attrs:{\"tag\":\"ul\",\"sort\":true},model:{value:(_vm.availableRoles),callback:function ($$v) {_vm.availableRoles=$$v},expression:\"availableRoles\"}},'draggable',_vm.dragOptions,false),_vm._l((_vm.roles),function(role){return _c('li',{key:role.roleId,attrs:{\"id\":'trSysRole_' + role.roleId}},[_vm._v(\" \"+_vm._s(role.roleName)+\" \")])}),0)],1)])]),_c('div',{staticClass:\"col-n flex-1\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-title\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h5',{staticClass:\"ft-blue\"},[_vm._v(\" \"+_vm._s(_vm.$t('선택된_권한_목록'))+\" \")])]),_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"btn sub-btn btn-basic-outline\",on:{\"click\":_vm.clear}},[_vm._v(\" \"+_vm._s(_vm.$t('전체삭제'))+\" \")])])]),_c('div',{staticClass:\"card-body\",attrs:{\"id\":\"divMenuAuthList\"}},[_c('draggable',_vm._b({staticClass:\"tag-node-container\",attrs:{\"tag\":\"ul\"},model:{value:(_vm.selectedRoles),callback:function ($$v) {_vm.selectedRoles=$$v},expression:\"selectedRoles\"}},'draggable',_vm.dragOptions,false),_vm._l((_vm.selectedRoles),function(role){return _c('li',{key:role.roleId,attrs:{\"id\":'trMenuAuth_' + role.roleId}},[_vm._v(\" \"+_vm._s(role.roleName)+\" \")])}),0)],1)])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","function userAgent(pattern) {\r\n\tif (typeof window !== 'undefined' && window.navigator) {\r\n\t\treturn !!/*@__PURE__*/navigator.userAgent.match(pattern);\r\n\t}\r\n}\r\n\r\nexport const IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\r\nexport const Edge = userAgent(/Edge/i);\r\nexport const FireFox = userAgent(/firefox/i);\r\nexport const Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\r\nexport const IOS = userAgent(/iP(ad|od|hone)/i);\r\nexport const ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\r\n ","import { IE11OrLess } from './BrowserInfo.js';\r\nimport Sortable from './Sortable.js';\r\n\r\nconst captureMode = {\r\n\tcapture: false,\r\n\tpassive: false\r\n};\r\n\r\nfunction on(el, event, fn) {\r\n\tel.addEventListener(event, fn, !IE11OrLess && captureMode);\r\n}\r\n\r\n\r\nfunction off(el, event, fn) {\r\n\tel.removeEventListener(event, fn, !IE11OrLess && captureMode);\r\n}\r\n\r\nfunction matches(/**HTMLElement*/el, /**String*/selector) {\r\n\tif (!selector) return;\r\n\r\n\tselector[0] === '>' && (selector = selector.substring(1));\r\n\r\n\tif (el) {\r\n\t\ttry {\r\n\t\t\tif (el.matches) {\r\n\t\t\t\treturn el.matches(selector);\r\n\t\t\t} else if (el.msMatchesSelector) {\r\n\t\t\t\treturn el.msMatchesSelector(selector);\r\n\t\t\t} else if (el.webkitMatchesSelector) {\r\n\t\t\t\treturn el.webkitMatchesSelector(selector);\r\n\t\t\t}\r\n\t\t} catch(_) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\nfunction getParentOrHost(el) {\r\n\treturn (el.host && el !== document && el.host.nodeType)\r\n\t\t? el.host\r\n\t\t: el.parentNode;\r\n}\r\n\r\nfunction closest(/**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {\r\n\tif (el) {\r\n\t\tctx = ctx || document;\r\n\r\n\t\tdo {\r\n\t\t\tif (\r\n\t\t\t\tselector != null &&\r\n\t\t\t\t(\r\n\t\t\t\t\tselector[0] === '>' ?\r\n\t\t\t\t\tel.parentNode === ctx && matches(el, selector) :\r\n\t\t\t\t\tmatches(el, selector)\r\n\t\t\t\t) ||\r\n\t\t\t\tincludeCTX && el === ctx\r\n\t\t\t) {\r\n\t\t\t\treturn el;\r\n\t\t\t}\r\n\r\n\t\t\tif (el === ctx) break;\r\n\t\t\t/* jshint boss:true */\r\n\t\t} while (el = getParentOrHost(el));\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nconst R_SPACE = /\\s+/g;\r\n\r\nfunction toggleClass(el, name, state) {\r\n\tif (el && name) {\r\n\t\tif (el.classList) {\r\n\t\t\tel.classList[state ? 'add' : 'remove'](name);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\r\n\t\t\tel.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\nfunction css(el, prop, val) {\r\n\tlet style = el && el.style;\r\n\r\n\tif (style) {\r\n\t\tif (val === void 0) {\r\n\t\t\tif (document.defaultView && document.defaultView.getComputedStyle) {\r\n\t\t\t\tval = document.defaultView.getComputedStyle(el, '');\r\n\t\t\t}\r\n\t\t\telse if (el.currentStyle) {\r\n\t\t\t\tval = el.currentStyle;\r\n\t\t\t}\r\n\r\n\t\t\treturn prop === void 0 ? val : val[prop];\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (!(prop in style) && prop.indexOf('webkit') === -1) {\r\n\t\t\t\tprop = '-webkit-' + prop;\r\n\t\t\t}\r\n\r\n\t\t\tstyle[prop] = val + (typeof val === 'string' ? '' : 'px');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction matrix(el, selfOnly) {\r\n\tlet appliedTransforms = '';\r\n\tif (typeof(el) === 'string') {\r\n\t\tappliedTransforms = el;\r\n\t} else {\r\n\t\tdo {\r\n\t\t\tlet transform = css(el, 'transform');\r\n\r\n\t\t\tif (transform && transform !== 'none') {\r\n\t\t\t\tappliedTransforms = transform + ' ' + appliedTransforms;\r\n\t\t\t}\r\n\t\t\t/* jshint boss:true */\r\n\t\t} while (!selfOnly && (el = el.parentNode));\r\n\t}\r\n\r\n\tconst matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\r\n\t/*jshint -W056 */\r\n\treturn matrixFn && (new matrixFn(appliedTransforms));\r\n}\r\n\r\n\r\nfunction find(ctx, tagName, iterator) {\r\n\tif (ctx) {\r\n\t\tlet list = ctx.getElementsByTagName(tagName), i = 0, n = list.length;\r\n\r\n\t\tif (iterator) {\r\n\t\t\tfor (; i < n; i++) {\r\n\t\t\t\titerator(list[i], i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list;\r\n\t}\r\n\r\n\treturn [];\r\n}\r\n\r\n\r\n\r\nfunction getWindowScrollingElement() {\r\n\tlet scrollingElement = document.scrollingElement;\r\n\r\n\tif (scrollingElement) {\r\n\t\treturn scrollingElement\r\n\t} else {\r\n\t\treturn document.documentElement\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\r\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\r\n\tif (!el.getBoundingClientRect && el !== window) return;\r\n\r\n\tlet elRect,\r\n\t\ttop,\r\n\t\tleft,\r\n\t\tbottom,\r\n\t\tright,\r\n\t\theight,\r\n\t\twidth;\r\n\r\n\tif (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\r\n\t\telRect = el.getBoundingClientRect();\r\n\t\ttop = elRect.top;\r\n\t\tleft = elRect.left;\r\n\t\tbottom = elRect.bottom;\r\n\t\tright = elRect.right;\r\n\t\theight = elRect.height;\r\n\t\twidth = elRect.width;\r\n\t} else {\r\n\t\ttop = 0;\r\n\t\tleft = 0;\r\n\t\tbottom = window.innerHeight;\r\n\t\tright = window.innerWidth;\r\n\t\theight = window.innerHeight;\r\n\t\twidth = window.innerWidth;\r\n\t}\r\n\r\n\tif ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\r\n\t\t// Adjust for translate()\r\n\t\tcontainer = container || el.parentNode;\r\n\r\n\t\t// solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\r\n\t\t// Not needed on <= IE11\r\n\t\tif (!IE11OrLess) {\r\n\t\t\tdo {\r\n\t\t\t\tif (\r\n\t\t\t\t\tcontainer &&\r\n\t\t\t\t\tcontainer.getBoundingClientRect &&\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\tcss(container, 'transform') !== 'none' ||\r\n\t\t\t\t\t\trelativeToNonStaticParent &&\r\n\t\t\t\t\t\tcss(container, 'position') !== 'static'\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\tlet containerRect = container.getBoundingClientRect();\r\n\r\n\t\t\t\t\t// Set relative to edges of padding box of container\r\n\t\t\t\t\ttop -= containerRect.top + parseInt(css(container, 'border-top-width'));\r\n\t\t\t\t\tleft -= containerRect.left + parseInt(css(container, 'border-left-width'));\r\n\t\t\t\t\tbottom = top + elRect.height;\r\n\t\t\t\t\tright = left + elRect.width;\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\t/* jshint boss:true */\r\n\t\t\t} while (container = container.parentNode);\r\n\t\t}\r\n\t}\r\n\r\n\tif (undoScale && el !== window) {\r\n\t\t// Adjust for scale()\r\n\t\tlet elMatrix = matrix(container || el),\r\n\t\t\tscaleX = elMatrix && elMatrix.a,\r\n\t\t\tscaleY = elMatrix && elMatrix.d;\r\n\r\n\t\tif (elMatrix) {\r\n\t\t\ttop /= scaleY;\r\n\t\t\tleft /= scaleX;\r\n\r\n\t\t\twidth /= scaleX;\r\n\t\t\theight /= scaleY;\r\n\r\n\t\t\tbottom = top + height;\r\n\t\t\tright = left + width;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: top,\r\n\t\tleft: left,\r\n\t\tbottom: bottom,\r\n\t\tright: right,\r\n\t\twidth: width,\r\n\t\theight: height\r\n\t};\r\n}\r\n\r\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\r\nfunction isScrolledPast(el, elSide, parentSide) {\r\n\tlet parent = getParentAutoScrollElement(el, true),\r\n\t\telSideVal = getRect(el)[elSide];\r\n\r\n\t/* jshint boss:true */\r\n\twhile (parent) {\r\n\t\tlet parentSideVal = getRect(parent)[parentSide],\r\n\t\t\tvisible;\r\n\r\n\t\tif (parentSide === 'top' || parentSide === 'left') {\r\n\t\t\tvisible = elSideVal >= parentSideVal;\r\n\t\t} else {\r\n\t\t\tvisible = elSideVal <= parentSideVal;\r\n\t\t}\r\n\r\n\t\tif (!visible) return parent;\r\n\r\n\t\tif (parent === getWindowScrollingElement()) break;\r\n\r\n\t\tparent = getParentAutoScrollElement(parent, false);\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n\r\n\r\n\r\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\r\nfunction getChild(el, childNum, options, includeDragEl) {\r\n\tlet currentChild = 0,\r\n\t\ti = 0,\r\n\t\tchildren = el.children;\r\n\r\n\twhile (i < children.length) {\r\n\t\tif (\r\n\t\t\tchildren[i].style.display !== 'none' &&\r\n\t\t\tchildren[i] !== Sortable.ghost &&\r\n\t\t\t(includeDragEl || children[i] !== Sortable.dragged) &&\r\n\t\t\tclosest(children[i], options.draggable, el, false)\r\n\t\t) {\r\n\t\t\tif (currentChild === childNum) {\r\n\t\t\t\treturn children[i];\r\n\t\t\t}\r\n\t\t\tcurrentChild++;\r\n\t\t}\r\n\r\n\t\ti++;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\r\nfunction lastChild(el, selector) {\r\n\tlet last = el.lastElementChild;\r\n\r\n\twhile (\r\n\t\tlast &&\r\n\t\t(\r\n\t\t\tlast === Sortable.ghost ||\r\n\t\t\tcss(last, 'display') === 'none' ||\r\n\t\t\tselector && !matches(last, selector)\r\n\t\t)\r\n\t) {\r\n\t\tlast = last.previousElementSibling;\r\n\t}\r\n\r\n\treturn last || null;\r\n}\r\n\r\n\r\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\r\nfunction index(el, selector) {\r\n\tlet index = 0;\r\n\r\n\tif (!el || !el.parentNode) {\r\n\t\treturn -1;\r\n\t}\r\n\r\n\t/* jshint boss:true */\r\n\twhile (el = el.previousElementSibling) {\r\n\t\tif ((el.nodeName.toUpperCase() !== 'TEMPLATE') && el !== Sortable.clone && (!selector || matches(el, selector))) {\r\n\t\t\tindex++;\r\n\t\t}\r\n\t}\r\n\r\n\treturn index;\r\n}\r\n\r\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\r\nfunction getRelativeScrollOffset(el) {\r\n\tlet offsetLeft = 0,\r\n\t\toffsetTop = 0,\r\n\t\twinScroller = getWindowScrollingElement();\r\n\r\n\tif (el) {\r\n\t\tdo {\r\n\t\t\tlet elMatrix = matrix(el),\r\n\t\t\t\tscaleX = elMatrix.a,\r\n\t\t\t\tscaleY = elMatrix.d;\r\n\r\n\t\t\toffsetLeft += el.scrollLeft * scaleX;\r\n\t\t\toffsetTop += el.scrollTop * scaleY;\r\n\t\t} while (el !== winScroller && (el = el.parentNode));\r\n\t}\r\n\r\n\treturn [offsetLeft, offsetTop];\r\n}\r\n\r\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\r\nfunction indexOfObject(arr, obj) {\r\n\tfor (let i in arr) {\r\n\t\tif (!arr.hasOwnProperty(i)) continue;\r\n\t\tfor (let key in obj) {\r\n\t\t\tif (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n\r\nfunction getParentAutoScrollElement(el, includeSelf) {\r\n\t// skip to window\r\n\tif (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\r\n\r\n\tlet elem = el;\r\n\tlet gotSelf = false;\r\n\tdo {\r\n\t\t// we don't need to get elem css if it isn't even overflowing in the first place (performance)\r\n\t\tif (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\r\n\t\t\tlet elemCSS = css(elem);\r\n\t\t\tif (\r\n\t\t\t\telem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') ||\r\n\t\t\t\telem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')\r\n\t\t\t) {\r\n\t\t\t\tif (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\r\n\r\n\t\t\t\tif (gotSelf || includeSelf) return elem;\r\n\t\t\t\tgotSelf = true;\r\n\t\t\t}\r\n\t\t}\r\n\t/* jshint boss:true */\r\n\t} while (elem = elem.parentNode);\r\n\r\n\treturn getWindowScrollingElement();\r\n}\r\n\r\nfunction extend(dst, src) {\r\n\tif (dst && src) {\r\n\t\tfor (let key in src) {\r\n\t\t\tif (src.hasOwnProperty(key)) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn dst;\r\n}\r\n\r\n\r\nfunction isRectEqual(rect1, rect2) {\r\n\treturn Math.round(rect1.top) === Math.round(rect2.top) &&\r\n\t\tMath.round(rect1.left) === Math.round(rect2.left) &&\r\n\t\tMath.round(rect1.height) === Math.round(rect2.height) &&\r\n\t\tMath.round(rect1.width) === Math.round(rect2.width);\r\n}\r\n\r\n\r\nlet _throttleTimeout;\r\nfunction throttle(callback, ms) {\r\n\treturn function () {\r\n\t\tif (!_throttleTimeout) {\r\n\t\t\tlet args = arguments,\r\n\t\t\t\t_this = this;\r\n\r\n\t\t\tif (args.length === 1) {\r\n\t\t\t\tcallback.call(_this, args[0]);\r\n\t\t\t} else {\r\n\t\t\t\tcallback.apply(_this, args);\r\n\t\t\t}\r\n\r\n\t\t\t_throttleTimeout = setTimeout(function () {\r\n\t\t\t\t_throttleTimeout = void 0;\r\n\t\t\t}, ms);\r\n\t\t}\r\n\t};\r\n}\r\n\r\n\r\nfunction cancelThrottle() {\r\n\tclearTimeout(_throttleTimeout);\r\n\t_throttleTimeout = void 0;\r\n}\r\n\r\n\r\nfunction scrollBy(el, x, y) {\r\n\tel.scrollLeft += x;\r\n\tel.scrollTop += y;\r\n}\r\n\r\n\r\nfunction clone(el) {\r\n\tlet Polymer = window.Polymer;\r\n\tlet $ = window.jQuery || window.Zepto;\r\n\r\n\tif (Polymer && Polymer.dom) {\r\n\t\treturn Polymer.dom(el).cloneNode(true);\r\n\t}\r\n\telse if ($) {\r\n\t\treturn $(el).clone(true)[0];\r\n\t}\r\n\telse {\r\n\t\treturn el.cloneNode(true);\r\n\t}\r\n}\r\n\r\n\r\nfunction setRect(el, rect) {\r\n\tcss(el, 'position', 'absolute');\r\n\tcss(el, 'top', rect.top);\r\n\tcss(el, 'left', rect.left);\r\n\tcss(el, 'width', rect.width);\r\n\tcss(el, 'height', rect.height);\r\n}\r\n\r\nfunction unsetRect(el) {\r\n\tcss(el, 'position', '');\r\n\tcss(el, 'top', '');\r\n\tcss(el, 'left', '');\r\n\tcss(el, 'width', '');\r\n\tcss(el, 'height', '');\r\n}\r\n\r\n\r\nconst expando = 'Sortable' + (new Date).getTime();\r\n\r\n\r\nexport {\r\n\ton,\r\n\toff,\r\n\tmatches,\r\n\tgetParentOrHost,\r\n\tclosest,\r\n\ttoggleClass,\r\n\tcss,\r\n\tmatrix,\r\n\tfind,\r\n\tgetWindowScrollingElement,\r\n\tgetRect,\r\n\tisScrolledPast,\r\n\tgetChild,\r\n\tlastChild,\r\n\tindex,\r\n\tgetRelativeScrollOffset,\r\n\tindexOfObject,\r\n\tgetParentAutoScrollElement,\r\n\textend,\r\n\tisRectEqual,\r\n\tthrottle, \r\n\tcancelThrottle,\r\n\tscrollBy,\r\n\tclone,\r\n\tsetRect,\r\n\tunsetRect,\r\n\texpando\r\n};\r\n","import { getRect, css, matrix, isRectEqual, indexOfObject } from './utils.js';\r\nimport Sortable from './Sortable.js';\r\n\r\nexport default function AnimationStateManager() {\r\n\tlet animationStates = [],\r\n\t\tanimationCallbackId;\r\n\r\n\treturn {\r\n\t\tcaptureAnimationState() {\r\n\t\t\tanimationStates = [];\r\n\t\t\tif (!this.options.animation) return;\r\n\t\t\tlet children = [].slice.call(this.el.children);\r\n\r\n\t\t\tchildren.forEach(child => {\r\n\t\t\t\tif (css(child, 'display') === 'none' || child === Sortable.ghost) return;\r\n\t\t\t\tanimationStates.push({\r\n\t\t\t\t\ttarget: child,\r\n\t\t\t\t\trect: getRect(child)\r\n\t\t\t\t});\r\n\t\t\t\tlet fromRect = { ...animationStates[animationStates.length - 1].rect };\r\n\r\n\t\t\t\t// If animating: compensate for current animation\r\n\t\t\t\tif (child.thisAnimationDuration) {\r\n\t\t\t\t\tlet childMatrix = matrix(child, true);\r\n\t\t\t\t\tif (childMatrix) {\r\n\t\t\t\t\t\tfromRect.top -= childMatrix.f;\r\n\t\t\t\t\t\tfromRect.left -= childMatrix.e;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tchild.fromRect = fromRect;\r\n\t\t\t});\r\n\t\t},\r\n \r\n\t\taddAnimationState(state) {\r\n\t\t\tanimationStates.push(state);\r\n\t\t},\r\n\r\n\t\tremoveAnimationState(target) {\r\n\t\t\tanimationStates.splice(indexOfObject(animationStates, { target }), 1);\r\n\t\t},\r\n\r\n\t\tanimateAll(callback) {\r\n\t\t\tif (!this.options.animation) {\r\n\t\t\t\tclearTimeout(animationCallbackId);\r\n\t\t\t\tif (typeof(callback) === 'function') callback();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet animating = false,\r\n\t\t\t\tanimationTime = 0;\r\n\r\n\t\t\tanimationStates.forEach((state) => {\r\n\t\t\t\tlet time = 0,\r\n\t\t\t\t\tanimatingThis = false,\r\n\t\t\t\t\ttarget = state.target,\r\n\t\t\t\t\tfromRect = target.fromRect,\r\n\t\t\t\t\ttoRect = getRect(target),\r\n\t\t\t\t\tprevFromRect = target.prevFromRect,\r\n\t\t\t\t\tprevToRect = target.prevToRect,\r\n\t\t\t\t\tanimatingRect = state.rect,\r\n\t\t\t\t\ttargetMatrix = matrix(target, true);\r\n\r\n\r\n\t\t\t\tif (targetMatrix) {\r\n\t\t\t\t\t// Compensate for current animation\r\n\t\t\t\t\ttoRect.top -= targetMatrix.f;\r\n\t\t\t\t\ttoRect.left -= targetMatrix.e;\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttarget.toRect = toRect;\r\n\r\n\t\t\t\tif (target.thisAnimationDuration) {\r\n\t\t\t\t\t// Could also check if animatingRect is between fromRect and toRect\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tisRectEqual(prevFromRect, toRect) &&\r\n\t\t\t\t\t\t!isRectEqual(fromRect, toRect) &&\r\n\t\t\t\t\t\t// Make sure animatingRect is on line between toRect & fromRect\r\n\t\t\t\t\t\t(animatingRect.top - toRect.top) /\r\n\t\t\t\t\t\t(animatingRect.left - toRect.left) ===\r\n\t\t\t\t\t\t(fromRect.top - toRect.top) /\r\n\t\t\t\t\t\t(fromRect.left - toRect.left)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// If returning to same place as started from animation and on same axis\r\n\t\t\t\t\t\ttime = calculateRealTime(animatingRect, prevFromRect, prevToRect, this.options);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if fromRect != toRect: animate\r\n\t\t\t\tif (!isRectEqual(toRect, fromRect)) {\r\n\t\t\t\t\ttarget.prevFromRect = fromRect;\r\n\t\t\t\t\ttarget.prevToRect = toRect;\r\n\r\n\t\t\t\t\tif (!time) {\r\n\t\t\t\t\t\ttime = this.options.animation;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.animate(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tanimatingRect,\r\n\t\t\t\t\t\ttoRect,\r\n\t\t\t\t\t\ttime\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (time) {\r\n\t\t\t\t\tanimating = true;\r\n\t\t\t\t\tanimationTime = Math.max(animationTime, time);\r\n\t\t\t\t\tclearTimeout(target.animationResetTimer);\r\n\t\t\t\t\ttarget.animationResetTimer = setTimeout(function() {\r\n\t\t\t\t\t\ttarget.animationTime = 0;\r\n\t\t\t\t\t\ttarget.prevFromRect = null;\r\n\t\t\t\t\t\ttarget.fromRect = null;\r\n\t\t\t\t\t\ttarget.prevToRect = null;\r\n\t\t\t\t\t\ttarget.thisAnimationDuration = null;\r\n\t\t\t\t\t}, time);\r\n\t\t\t\t\ttarget.thisAnimationDuration = time;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tclearTimeout(animationCallbackId);\r\n\t\t\tif (!animating) {\r\n\t\t\t\tif (typeof(callback) === 'function') callback();\r\n\t\t\t} else {\r\n\t\t\t\tanimationCallbackId = setTimeout(function() {\r\n\t\t\t\t\tif (typeof(callback) === 'function') callback();\r\n\t\t\t\t}, animationTime);\r\n\t\t\t}\r\n\t\t\tanimationStates = [];\r\n\t\t},\r\n\r\n\t\tanimate(target, currentRect, toRect, duration) {\r\n\t\t\tif (duration) {\r\n\t\t\t\tcss(target, 'transition', '');\r\n\t\t\t\tcss(target, 'transform', '');\r\n\t\t\t\tlet elMatrix = matrix(this.el),\r\n\t\t\t\t\tscaleX = elMatrix && elMatrix.a,\r\n\t\t\t\t\tscaleY = elMatrix && elMatrix.d,\r\n\t\t\t\t\ttranslateX = (currentRect.left - toRect.left) / (scaleX || 1),\r\n\t\t\t\t\ttranslateY = (currentRect.top - toRect.top) / (scaleY || 1);\r\n\r\n\t\t\t\ttarget.animatingX = !!translateX;\r\n\t\t\t\ttarget.animatingY = !!translateY;\r\n\r\n\t\t\t\tcss(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\r\n\r\n\t\t\t\tthis.forRepaintDummy = repaint(target); // repaint\r\n\r\n\t\t\t\tcss(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\r\n\t\t\t\tcss(target, 'transform', 'translate3d(0,0,0)');\r\n\t\t\t\t(typeof target.animated === 'number') && clearTimeout(target.animated);\r\n\t\t\t\ttarget.animated = setTimeout(function () {\r\n\t\t\t\t\tcss(target, 'transition', '');\r\n\t\t\t\t\tcss(target, 'transform', '');\r\n\t\t\t\t\ttarget.animated = false;\r\n\r\n\t\t\t\t\ttarget.animatingX = false;\r\n\t\t\t\t\ttarget.animatingY = false;\r\n\t\t\t\t}, duration);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction repaint(target) {\r\n\treturn target.offsetWidth;\r\n}\r\n\r\n\r\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\r\n\treturn (\r\n\t\tMath.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) /\r\n\t\tMath.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2))\r\n\t) * options.animation;\r\n}\r\n","let plugins = [];\r\n\r\nconst defaults = {\r\n\tinitializeByDefault: true\r\n};\r\n\r\nexport default {\r\n\tmount(plugin) {\r\n\t\t// Set default static properties\r\n\t\tfor (let option in defaults) {\r\n\t\t\tif (defaults.hasOwnProperty(option) && !(option in plugin)) {\r\n\t\t\t\tplugin[option] = defaults[option];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tplugins.forEach(p => {\r\n\t\t\tif (p.pluginName === plugin.pluginName) {\r\n\t\t\t\tthrow (`Sortable: Cannot mount plugin ${ plugin.pluginName } more than once`);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tplugins.push(plugin);\r\n\t},\r\n\tpluginEvent(eventName, sortable, evt) {\r\n\t\tthis.eventCanceled = false;\r\n\t\tevt.cancel = () => {\r\n\t\t\tthis.eventCanceled = true;\r\n\t\t};\r\n\t\tconst eventNameGlobal = eventName + 'Global';\r\n\t\tplugins.forEach(plugin => {\r\n\t\t\tif (!sortable[plugin.pluginName]) return;\r\n\t\t\t// Fire global events if it exists in this sortable\r\n\t\t\tif (\r\n\t\t\t\tsortable[plugin.pluginName][eventNameGlobal]\r\n\t\t\t) {\r\n\t\t\t\tsortable[plugin.pluginName][eventNameGlobal]({ sortable, ...evt }); \r\n\t\t\t}\r\n\r\n\t\t\t// Only fire plugin event if plugin is enabled in this sortable,\r\n\t\t\t// and plugin has event defined\r\n\t\t\tif (\r\n\t\t\t\tsortable.options[plugin.pluginName] &&\r\n\t\t\t\tsortable[plugin.pluginName][eventName]\r\n\t\t\t) {\r\n\t\t\t\tsortable[plugin.pluginName][eventName]({ sortable, ...evt });\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\tinitializePlugins(sortable, el, defaults, options) {\r\n\t\tplugins.forEach(plugin => {\r\n\t\t\tconst pluginName = plugin.pluginName;\r\n\t\t\tif (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\r\n\r\n\t\t\tlet initialized = new plugin(sortable, el, sortable.options);\r\n\t\t\tinitialized.sortable = sortable;\r\n\t\t\tinitialized.options = sortable.options;\r\n\t\t\tsortable[pluginName] = initialized;\r\n\r\n\t\t\t// Add default options from plugin\r\n\t\t\tObject.assign(defaults, initialized.defaults);\r\n\t\t});\r\n\r\n\t\tfor (let option in sortable.options) {\r\n\t\t\tif (!sortable.options.hasOwnProperty(option)) continue;\r\n\t\t\tlet modified = this.modifyOption(sortable, option, sortable.options[option]);\r\n\t\t\tif (typeof(modified) !== 'undefined') {\r\n\t\t\t\tsortable.options[option] = modified;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tgetEventProperties(name, sortable) {\r\n\t\tlet eventProperties = {};\r\n\t\tplugins.forEach(plugin => {\r\n\t\t\tif (typeof(plugin.eventProperties) !== 'function') return;\r\n\t\t\tObject.assign(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\r\n\t\t});\r\n\r\n\t\treturn eventProperties;\r\n\t},\r\n\tmodifyOption(sortable, name, value) {\r\n\t\tlet modifiedValue;\r\n\t\tplugins.forEach(plugin => {\r\n\t\t\t// Plugin must exist on the Sortable\r\n\t\t\tif (!sortable[plugin.pluginName]) return;\r\n\r\n\t\t\t// If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\r\n\t\t\tif (plugin.optionListeners && typeof(plugin.optionListeners[name]) === 'function') {\r\n\t\t\t\tmodifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn modifiedValue;\r\n\t}\r\n};\r\n","import { IE11OrLess, Edge } from './BrowserInfo.js';\r\nimport { expando } from './utils.js';\r\nimport PluginManager from './PluginManager.js';\r\n\r\nexport default function dispatchEvent(\r\n\t{\r\n\t\tsortable, rootEl, name,\r\n\t\ttargetEl, cloneEl, toEl, fromEl,\r\n\t\toldIndex, newIndex,\r\n\t\toldDraggableIndex, newDraggableIndex,\r\n\t\toriginalEvent, putSortable, extraEventProperties\r\n\t}\r\n) {\r\n\tsortable = (sortable || (rootEl && rootEl[expando]));\r\n\tif (!sortable) return;\r\n\r\n\tlet evt,\r\n\t\toptions = sortable.options,\r\n\t\tonName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\r\n\t// Support for new CustomEvent feature\r\n\tif (window.CustomEvent && !IE11OrLess && !Edge) {\r\n\t\tevt = new CustomEvent(name, {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true\r\n\t\t});\r\n\t} else {\r\n\t\tevt = document.createEvent('Event');\r\n\t\tevt.initEvent(name, true, true);\r\n\t}\r\n\r\n\tevt.to = toEl || rootEl;\r\n\tevt.from = fromEl || rootEl;\r\n\tevt.item = targetEl || rootEl;\r\n\tevt.clone = cloneEl;\r\n\r\n\tevt.oldIndex = oldIndex; \r\n\tevt.newIndex = newIndex;\r\n\r\n\tevt.oldDraggableIndex = oldDraggableIndex;\r\n\tevt.newDraggableIndex = newDraggableIndex;\r\n\r\n\tevt.originalEvent = originalEvent;\r\n\tevt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\r\n\r\n\tlet allEventProperties = { ...extraEventProperties, ...PluginManager.getEventProperties(name, sortable) };\r\n\tfor (let option in allEventProperties) {\r\n\t\tevt[option] = allEventProperties[option];\r\n\t}\r\n\r\n\tif (rootEl) {\r\n\t\trootEl.dispatchEvent(evt);\r\n\t}\r\n\r\n\tif (options[onName]) {\r\n\t\toptions[onName].call(sortable, evt);\r\n\t}\r\n}\r\n","/**!\r\n * Sortable\r\n * @author\tRubaXa \r\n * @author\towenm \r\n * @license MIT\r\n */\r\n\r\nimport { IE11OrLess, Edge, FireFox, Safari, IOS, ChromeForAndroid } from './BrowserInfo.js';\r\n\r\nimport AnimationStateManager from './Animation.js';\r\n\r\nimport PluginManager from './PluginManager.js';\r\n\r\nimport dispatchEvent from './EventDispatcher.js';\r\n\r\nimport {\r\n\ton,\r\n\toff,\r\n\tclosest,\r\n\ttoggleClass,\r\n\tcss,\r\n\tmatrix,\r\n\tfind,\r\n\tgetWindowScrollingElement,\r\n\tgetRect,\r\n\tisScrolledPast,\r\n\tgetChild,\r\n\tlastChild,\r\n\tindex,\r\n\tgetRelativeScrollOffset,\r\n\textend,\r\n\tthrottle,\r\n\tscrollBy,\r\n\tclone,\r\n\texpando\r\n} from './utils.js';\r\n\r\n\r\nlet pluginEvent = function(eventName, sortable, { evt: originalEvent, ...data } = {}) {\r\n\tPluginManager.pluginEvent.bind(Sortable)(eventName, sortable, {\r\n\t\tdragEl,\r\n\t\tparentEl,\r\n\t\tghostEl,\r\n\t\trootEl,\r\n\t\tnextEl,\r\n\t\tlastDownEl,\r\n\t\tcloneEl,\r\n\t\tcloneHidden,\r\n\t\tdragStarted: moved,\r\n\t\tputSortable,\r\n\t\tactiveSortable: Sortable.active,\r\n\t\toriginalEvent,\r\n\r\n\t\toldIndex,\r\n\t\toldDraggableIndex,\r\n\t\tnewIndex,\r\n\t\tnewDraggableIndex,\r\n\r\n\t\thideGhostForTarget: _hideGhostForTarget,\r\n\t\tunhideGhostForTarget: _unhideGhostForTarget,\r\n\r\n\r\n\t\tcloneNowHidden() {\r\n\t\t\tcloneHidden = true;\r\n\t\t},\r\n\t\tcloneNowShown() {\r\n\t\t\tcloneHidden = false;\r\n\t\t},\r\n\r\n\t\tdispatchSortableEvent(name) {\r\n\t\t\t_dispatchEvent({ sortable, name, originalEvent });\r\n\t\t},\r\n\r\n\t\t...data\r\n\t});\r\n};\r\n\r\nfunction _dispatchEvent(info) {\r\n\tdispatchEvent({\r\n\t\tputSortable,\r\n\t\tcloneEl,\r\n\t\ttargetEl: dragEl,\r\n\t\trootEl,\r\n\t\toldIndex,\r\n\t\toldDraggableIndex,\r\n\t\tnewIndex,\r\n\t\tnewDraggableIndex,\r\n\t\t...info\r\n\t});\r\n}\r\n\r\n\r\nlet dragEl,\r\n\tparentEl,\r\n\tghostEl,\r\n\trootEl,\r\n\tnextEl,\r\n\tlastDownEl,\r\n\r\n\tcloneEl,\r\n\tcloneHidden,\r\n\r\n\toldIndex,\r\n\tnewIndex,\r\n\toldDraggableIndex,\r\n\tnewDraggableIndex,\r\n\r\n\tactiveGroup,\r\n\tputSortable,\r\n\r\n\tawaitingDragStarted = false,\r\n\tignoreNextClick = false,\r\n\tsortables = [],\r\n\r\n\ttapEvt,\r\n\ttouchEvt,\r\n\tlastDx,\r\n\tlastDy,\r\n\ttapDistanceLeft,\r\n\ttapDistanceTop,\r\n\r\n\tmoved,\r\n\r\n\tlastTarget,\r\n\tlastDirection,\r\n\tpastFirstInvertThresh = false,\r\n\tisCircumstantialInvert = false,\r\n\r\n\ttargetMoveDistance,\r\n\r\n\t// For positioning ghost absolutely\r\n\tghostRelativeParent,\r\n\tghostRelativeParentInitialScroll = [], // (left, top)\r\n\r\n\t_silent = false,\r\n\tsavedInputChecked = [];\r\n\r\n\t/** @const */\r\n\tconst documentExists = typeof document !== 'undefined',\r\n\r\n\tPositionGhostAbsolutely = IOS,\r\n\r\n\tCSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\r\n\r\n\t// This will not pass for IE9, because IE9 DnD only works on anchors\r\n\tsupportDraggable = documentExists && !ChromeForAndroid && !IOS && ('draggable' in document.createElement('div')),\r\n\r\n\tsupportCssPointerEvents = (function() {\r\n\t\tif (!documentExists) return;\r\n\t\t// false when <= IE11\r\n\t\tif (IE11OrLess) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tlet el = document.createElement('x');\r\n\t\tel.style.cssText = 'pointer-events:auto';\r\n\t\treturn el.style.pointerEvents === 'auto';\r\n\t})(),\r\n\r\n\t_detectDirection = function(el, options) {\r\n\t\tlet elCSS = css(el),\r\n\t\t\telWidth = parseInt(elCSS.width)\r\n\t\t\t\t- parseInt(elCSS.paddingLeft)\r\n\t\t\t\t- parseInt(elCSS.paddingRight)\r\n\t\t\t\t- parseInt(elCSS.borderLeftWidth)\r\n\t\t\t\t- parseInt(elCSS.borderRightWidth),\r\n\t\t\tchild1 = getChild(el, 0, options),\r\n\t\t\tchild2 = getChild(el, 1, options),\r\n\t\t\tfirstChildCSS = child1 && css(child1),\r\n\t\t\tsecondChildCSS = child2 && css(child2),\r\n\t\t\tfirstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\r\n\t\t\tsecondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\r\n\r\n\t\tif (elCSS.display === 'flex') {\r\n\t\t\treturn elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse'\r\n\t\t\t? 'vertical' : 'horizontal';\r\n\t\t}\r\n\r\n\t\tif (elCSS.display === 'grid') {\r\n\t\t\treturn elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\r\n\t\t}\r\n\r\n\t\tif (child1 && firstChildCSS.float && firstChildCSS.float !== 'none') {\r\n\t\t\tlet touchingSideChild2 = firstChildCSS.float === 'left' ? 'left' : 'right';\r\n\r\n\t\t\treturn child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ?\r\n\t\t\t\t'vertical' : 'horizontal';\r\n\t\t}\r\n\r\n\t\treturn (child1 &&\r\n\t\t\t(\r\n\t\t\t\tfirstChildCSS.display === 'block' ||\r\n\t\t\t\tfirstChildCSS.display === 'flex' ||\r\n\t\t\t\tfirstChildCSS.display === 'table' ||\r\n\t\t\t\tfirstChildCSS.display === 'grid' ||\r\n\t\t\t\tfirstChildWidth >= elWidth &&\r\n\t\t\t\telCSS[CSSFloatProperty] === 'none' ||\r\n\t\t\t\tchild2 &&\r\n\t\t\t\telCSS[CSSFloatProperty] === 'none' &&\r\n\t\t\t\tfirstChildWidth + secondChildWidth > elWidth\r\n\t\t\t) ?\r\n\t\t\t'vertical' : 'horizontal'\r\n\t\t);\r\n\t},\r\n\r\n\t_dragElInRowColumn = function(dragRect, targetRect, vertical) {\r\n\t\tlet dragElS1Opp = vertical ? dragRect.left : dragRect.top,\r\n\t\t\tdragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\r\n\t\t\tdragElOppLength = vertical ? dragRect.width : dragRect.height,\r\n\t\t\ttargetS1Opp = vertical ? targetRect.left : targetRect.top,\r\n\t\t\ttargetS2Opp = vertical ? targetRect.right : targetRect.bottom,\r\n\t\t\ttargetOppLength = vertical ? targetRect.width : targetRect.height;\r\n\r\n\t\treturn (\r\n\t\t\tdragElS1Opp === targetS1Opp ||\r\n\t\t\tdragElS2Opp === targetS2Opp ||\r\n\t\t\t(dragElS1Opp + dragElOppLength / 2) === (targetS1Opp + targetOppLength / 2)\r\n\t\t);\r\n\t},\r\n\r\n\t/**\r\n\t * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\r\n\t * @param {Number} x X position\r\n\t * @param {Number} y Y position\r\n\t * @return {HTMLElement} Element of the first found nearest Sortable\r\n\t */\r\n\t_detectNearestEmptySortable = function(x, y) {\r\n\t\tlet ret;\r\n\t\tsortables.some((sortable) => {\r\n\t\t\tconst threshold = sortable[expando].options.emptyInsertThreshold;\r\n\t\t\tif (!threshold || lastChild(sortable)) return;\r\n\r\n\t\t\tconst rect = getRect(sortable),\r\n\t\t\t\tinsideHorizontally = x >= (rect.left - threshold) && x <= (rect.right + threshold),\r\n\t\t\t\tinsideVertically = y >= (rect.top - threshold) && y <= (rect.bottom + threshold);\r\n\r\n\t\t\tif (insideHorizontally && insideVertically) {\r\n\t\t\t\treturn (ret = sortable);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn ret;\r\n\t},\r\n\r\n\t_prepareGroup = function (options) {\r\n\t\tfunction toFn(value, pull) {\r\n\t\t\treturn function(to, from, dragEl, evt) {\r\n\t\t\t\tlet sameGroup = to.options.group.name &&\r\n\t\t\t\t\t\t\t\tfrom.options.group.name &&\r\n\t\t\t\t\t\t\t\tto.options.group.name === from.options.group.name;\r\n\r\n\t\t\t\tif (value == null && (pull || sameGroup)) {\r\n\t\t\t\t\t// Default pull value\r\n\t\t\t\t\t// Default pull and put value if same group\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} else if (value == null || value === false) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else if (pull && value === 'clone') {\r\n\t\t\t\t\treturn value;\r\n\t\t\t\t} else if (typeof value === 'function') {\r\n\t\t\t\t\treturn toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet otherGroup = (pull ? to : from).options.group.name;\r\n\r\n\t\t\t\t\treturn (value === true ||\r\n\t\t\t\t\t(typeof value === 'string' && value === otherGroup) ||\r\n\t\t\t\t\t(value.join && value.indexOf(otherGroup) > -1));\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tlet group = {};\r\n\t\tlet originalGroup = options.group;\r\n\r\n\t\tif (!originalGroup || typeof originalGroup != 'object') {\r\n\t\t\toriginalGroup = {name: originalGroup};\r\n\t\t}\r\n\r\n\t\tgroup.name = originalGroup.name;\r\n\t\tgroup.checkPull = toFn(originalGroup.pull, true);\r\n\t\tgroup.checkPut = toFn(originalGroup.put);\r\n\t\tgroup.revertClone = originalGroup.revertClone;\r\n\r\n\t\toptions.group = group;\r\n\t},\r\n\r\n\t_hideGhostForTarget = function() {\r\n\t\tif (!supportCssPointerEvents && ghostEl) {\r\n\t\t\tcss(ghostEl, 'display', 'none');\r\n\t\t}\r\n\t},\r\n\r\n\t_unhideGhostForTarget = function() {\r\n\t\tif (!supportCssPointerEvents && ghostEl) {\r\n\t\t\tcss(ghostEl, 'display', '');\r\n\t\t}\r\n\t};\r\n\r\n\r\n// #1184 fix - Prevent click event on fallback if dragged but item not changed position\r\nif (documentExists && !ChromeForAndroid) {\r\n\tdocument.addEventListener('click', function(evt) {\r\n\t\tif (ignoreNextClick) {\r\n\t\t\tevt.preventDefault();\r\n\t\t\tevt.stopPropagation && evt.stopPropagation();\r\n\t\t\tevt.stopImmediatePropagation && evt.stopImmediatePropagation();\r\n\t\t\tignoreNextClick = false;\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}, true);\r\n}\r\n\r\nlet nearestEmptyInsertDetectEvent = function(evt) {\r\n\tif (dragEl) {\r\n\t\tevt = evt.touches ? evt.touches[0] : evt;\r\n\t\tlet nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\r\n\r\n\t\tif (nearest) {\r\n\t\t\t// Create imitation event\r\n\t\t\tlet event = {};\r\n\t\t\tfor (let i in evt) {\r\n\t\t\t\tif (evt.hasOwnProperty(i)) {\r\n\t\t\t\t\tevent[i] = evt[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tevent.target = event.rootEl = nearest;\r\n\t\t\tevent.preventDefault = void 0;\r\n\t\t\tevent.stopPropagation = void 0;\r\n\t\t\tnearest[expando]._onDragOver(event);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n\r\nlet _checkOutsideTargetEl = function(evt) {\r\n\tif (dragEl) {\r\n\t\tdragEl.parentNode[expando]._isOutsideThisEl(evt.target);\r\n\t}\r\n};\r\n\r\n\r\n/**\r\n * @class Sortable\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\r\nfunction Sortable(el, options) {\r\n\tif (!(el && el.nodeType && el.nodeType === 1)) {\r\n\t\tthrow `Sortable: \\`el\\` must be an HTMLElement, not ${ {}.toString.call(el) }`;\r\n\t}\r\n\r\n\tthis.el = el; // root element\r\n\tthis.options = options = Object.assign({}, options);\r\n\r\n\r\n\t// Export instance\r\n\tel[expando] = this;\r\n\r\n\tlet defaults = {\r\n\t\tgroup: null,\r\n\t\tsort: true,\r\n\t\tdisabled: false,\r\n\t\tstore: null,\r\n\t\thandle: null,\r\n\t\tdraggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\r\n\t\tswapThreshold: 1, // percentage; 0 <= x <= 1\r\n\t\tinvertSwap: false, // invert always\r\n\t\tinvertedSwapThreshold: null, // will be set to same as swapThreshold if default\r\n\t\tremoveCloneOnHide: true,\r\n\t\tdirection: function() {\r\n\t\t\treturn _detectDirection(el, this.options);\r\n\t\t},\r\n\t\tghostClass: 'sortable-ghost',\r\n\t\tchosenClass: 'sortable-chosen',\r\n\t\tdragClass: 'sortable-drag',\r\n\t\tignore: 'a, img',\r\n\t\tfilter: null,\r\n\t\tpreventOnFilter: true,\r\n\t\tanimation: 0,\r\n\t\teasing: null,\r\n\t\tsetData: function (dataTransfer, dragEl) {\r\n\t\t\tdataTransfer.setData('Text', dragEl.textContent);\r\n\t\t},\r\n\t\tdropBubble: false,\r\n\t\tdragoverBubble: false,\r\n\t\tdataIdAttr: 'data-id',\r\n\t\tdelay: 0,\r\n\t\tdelayOnTouchOnly: false,\r\n\t\ttouchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\r\n\t\tforceFallback: false,\r\n\t\tfallbackClass: 'sortable-fallback',\r\n\t\tfallbackOnBody: false,\r\n\t\tfallbackTolerance: 0,\r\n\t\tfallbackOffset: {x: 0, y: 0},\r\n\t\tsupportPointer: Sortable.supportPointer !== false && ('PointerEvent' in window) && !Safari,\r\n\t\temptyInsertThreshold: 5\r\n\t};\r\n\r\n\tPluginManager.initializePlugins(this, el, defaults);\r\n\r\n\t// Set default options\r\n\tfor (let name in defaults) {\r\n\t\t!(name in options) && (options[name] = defaults[name]);\r\n\t}\r\n\r\n\t_prepareGroup(options);\r\n\r\n\t// Bind all private methods\r\n\tfor (let fn in this) {\r\n\t\tif (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\r\n\t\t\tthis[fn] = this[fn].bind(this);\r\n\t\t}\r\n\t}\r\n\r\n\t// Setup drag mode\r\n\tthis.nativeDraggable = options.forceFallback ? false : supportDraggable;\r\n\r\n\tif (this.nativeDraggable) {\r\n\t\t// Touch start threshold cannot be greater than the native dragstart threshold\r\n\t\tthis.options.touchStartThreshold = 1;\r\n\t}\r\n\r\n\t// Bind events\r\n\tif (options.supportPointer) {\r\n\t\ton(el, 'pointerdown', this._onTapStart);\r\n\t} else {\r\n\t\ton(el, 'mousedown', this._onTapStart);\r\n\t\ton(el, 'touchstart', this._onTapStart);\r\n\t}\r\n\r\n\tif (this.nativeDraggable) {\r\n\t\ton(el, 'dragover', this);\r\n\t\ton(el, 'dragenter', this);\r\n\t}\r\n\r\n\tsortables.push(this.el);\r\n\r\n\t// Restore sorting\r\n\toptions.store && options.store.get && this.sort(options.store.get(this) || []);\r\n\r\n\t// Add animation state manager\r\n\tObject.assign(this, AnimationStateManager());\r\n}\r\n\r\nSortable.prototype = /** @lends Sortable.prototype */ {\r\n\tconstructor: Sortable,\r\n\r\n\t_isOutsideThisEl: function(target) {\r\n\t\tif (!this.el.contains(target) && target !== this.el) {\r\n\t\t\tlastTarget = null;\r\n\t\t}\r\n\t},\r\n\r\n\t_getDirection: function(evt, target) {\r\n\t\treturn (typeof this.options.direction === 'function') ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\r\n\t},\r\n\r\n\t_onTapStart: function (/** Event|TouchEvent */evt) {\r\n\t\tif (!evt.cancelable) return;\r\n\t\tlet _this = this,\r\n\t\t\tel = this.el,\r\n\t\t\toptions = this.options,\r\n\t\t\tpreventOnFilter = options.preventOnFilter,\r\n\t\t\ttype = evt.type,\r\n\t\t\ttouch = (evt.touches && evt.touches[0]) || (evt.pointerType && evt.pointerType === 'touch' && evt),\r\n\t\t\ttarget = (touch || evt).target,\r\n\t\t\toriginalTarget = evt.target.shadowRoot && ((evt.path && evt.path[0]) || (evt.composedPath && evt.composedPath()[0])) || target,\r\n\t\t\tfilter = options.filter;\r\n\r\n\t\t_saveInputCheckedState(el);\r\n\r\n\r\n\t\t// Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\r\n\t\tif (dragEl) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\r\n\t\t\treturn; // only left button and enabled\r\n\t\t}\r\n\r\n\t\t// cancel dnd if original target is content editable\r\n\t\tif (originalTarget.isContentEditable) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Safari ignores further event handling after mousedown\r\n\t\tif (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttarget = closest(target, options.draggable, el, false);\r\n\r\n\r\n\t\tif (target && target.animated) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (lastDownEl === target) {\r\n\t\t\t// Ignoring duplicate `down`\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Get the index of the dragged element within its parent\r\n\t\toldIndex = index(target);\r\n\t\toldDraggableIndex = index(target, options.draggable);\r\n\r\n\t\t// Check filter\r\n\t\tif (typeof filter === 'function') {\r\n\t\t\tif (filter.call(this, evt, target, this)) {\r\n\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\tsortable: _this,\r\n\t\t\t\t\trootEl: originalTarget,\r\n\t\t\t\t\tname: 'filter',\r\n\t\t\t\t\ttargetEl: target,\r\n\t\t\t\t\ttoEl: el,\r\n\t\t\t\t\tfromEl: el\r\n\t\t\t\t});\r\n\t\t\t\tpluginEvent('filter', _this, { evt });\r\n\t\t\t\tpreventOnFilter && evt.cancelable && evt.preventDefault();\r\n\t\t\t\treturn; // cancel dnd\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (filter) {\r\n\t\t\tfilter = filter.split(',').some(function (criteria) {\r\n\t\t\t\tcriteria = closest(originalTarget, criteria.trim(), el, false);\r\n\r\n\t\t\t\tif (criteria) {\r\n\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\tsortable: _this,\r\n\t\t\t\t\t\trootEl: criteria,\r\n\t\t\t\t\t\tname: 'filter',\r\n\t\t\t\t\t\ttargetEl: target,\r\n\t\t\t\t\t\tfromEl: el,\r\n\t\t\t\t\t\ttoEl: el\r\n\t\t\t\t\t});\r\n\t\t\t\t\tpluginEvent('filter', _this, { evt });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (filter) {\r\n\t\t\t\tpreventOnFilter && evt.cancelable && evt.preventDefault();\r\n\t\t\t\treturn; // cancel dnd\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (options.handle && !closest(originalTarget, options.handle, el, false)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Prepare `dragstart`\r\n\t\tthis._prepareDragStart(evt, touch, target);\r\n\t},\r\n\r\n\t_prepareDragStart: function (/** Event */evt, /** Touch */touch, /** HTMLElement */target) {\r\n\t\tlet _this = this,\r\n\t\t\tel = _this.el,\r\n\t\t\toptions = _this.options,\r\n\t\t\townerDocument = el.ownerDocument,\r\n\t\t\tdragStartFn;\r\n\r\n\t\tif (target && !dragEl && (target.parentNode === el)) {\r\n\t\t\tlet dragRect = getRect(target);\r\n\t\t\trootEl = el;\r\n\t\t\tdragEl = target;\r\n\t\t\tparentEl = dragEl.parentNode;\r\n\t\t\tnextEl = dragEl.nextSibling;\r\n\t\t\tlastDownEl = target;\r\n\t\t\tactiveGroup = options.group;\r\n\r\n\t\t\tSortable.dragged = dragEl;\r\n\r\n\t\t\ttapEvt = {\r\n\t\t\t\ttarget: dragEl,\r\n\t\t\t\tclientX: (touch || evt).clientX,\r\n\t\t\t\tclientY: (touch || evt).clientY\r\n\t\t\t};\r\n\r\n\t\t\ttapDistanceLeft = tapEvt.clientX - dragRect.left;\r\n\t\t\ttapDistanceTop = tapEvt.clientY - dragRect.top;\r\n\r\n\t\t\tthis._lastX = (touch || evt).clientX;\r\n\t\t\tthis._lastY = (touch || evt).clientY;\r\n\r\n\t\t\tdragEl.style['will-change'] = 'all';\r\n\r\n\t\t\tdragStartFn = function () {\r\n\t\t\t\tpluginEvent('delayEnded', _this, { evt });\r\n\t\t\t\tif (Sortable.eventCanceled) {\r\n\t\t\t\t\t_this._onDrop();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t// Delayed drag has been triggered\r\n\t\t\t\t// we can re-enable the events: touchmove/mousemove\r\n\t\t\t\t_this._disableDelayedDragEvents();\r\n\r\n\t\t\t\tif (!FireFox && _this.nativeDraggable) {\r\n\t\t\t\t\tdragEl.draggable = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Bind the events: dragstart/dragend\r\n\t\t\t\t_this._triggerDragStart(evt, touch);\r\n\r\n\t\t\t\t// Drag start event\r\n\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\tsortable: _this,\r\n\t\t\t\t\tname: 'choose',\r\n\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Chosen item\r\n\t\t\t\ttoggleClass(dragEl, options.chosenClass, true);\r\n\t\t\t};\r\n\r\n\t\t\t// Disable \"draggable\"\r\n\t\t\toptions.ignore.split(',').forEach(function (criteria) {\r\n\t\t\t\tfind(dragEl, criteria.trim(), _disableDraggable);\r\n\t\t\t});\r\n\r\n\t\t\ton(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\r\n\t\t\ton(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\r\n\t\t\ton(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\r\n\r\n\t\t\ton(ownerDocument, 'mouseup', _this._onDrop);\r\n\t\t\ton(ownerDocument, 'touchend', _this._onDrop);\r\n\t\t\ton(ownerDocument, 'touchcancel', _this._onDrop);\r\n\r\n\t\t\t// Make dragEl draggable (must be before delay for FireFox)\r\n\t\t\tif (FireFox && this.nativeDraggable) {\r\n\t\t\t\tthis.options.touchStartThreshold = 4;\r\n\t\t\t\tdragEl.draggable = true;\r\n\t\t\t}\r\n\r\n\t\t\tpluginEvent('delayStart', this, { evt });\r\n\r\n\t\t\t// Delay is impossible for native DnD in Edge or IE\r\n\t\t\tif (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\r\n\t\t\t\tif (Sortable.eventCanceled) {\r\n\t\t\t\t\tthis._onDrop();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t// If the user moves the pointer or let go the click or touch\r\n\t\t\t\t// before the delay has been reached:\r\n\t\t\t\t// disable the delayed drag\r\n\t\t\t\ton(ownerDocument, 'mouseup', _this._disableDelayedDrag);\r\n\t\t\t\ton(ownerDocument, 'touchend', _this._disableDelayedDrag);\r\n\t\t\t\ton(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\r\n\t\t\t\ton(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\r\n\t\t\t\ton(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\r\n\t\t\t\toptions.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\r\n\r\n\t\t\t\t_this._dragStartTimer = setTimeout(dragStartFn, options.delay);\r\n\t\t\t} else {\r\n\t\t\t\tdragStartFn();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t_delayedDragTouchMoveHandler: function (/** TouchEvent|PointerEvent **/e) {\r\n\t\tlet touch = e.touches ? e.touches[0] : e;\r\n\t\tif (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY))\r\n\t\t\t\t>= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))\r\n\t\t) {\r\n\t\t\tthis._disableDelayedDrag();\r\n\t\t}\r\n\t},\r\n\r\n\t_disableDelayedDrag: function () {\r\n\t\tdragEl && _disableDraggable(dragEl);\r\n\t\tclearTimeout(this._dragStartTimer);\r\n\r\n\t\tthis._disableDelayedDragEvents();\r\n\t},\r\n\r\n\t_disableDelayedDragEvents: function () {\r\n\t\tlet ownerDocument = this.el.ownerDocument;\r\n\t\toff(ownerDocument, 'mouseup', this._disableDelayedDrag);\r\n\t\toff(ownerDocument, 'touchend', this._disableDelayedDrag);\r\n\t\toff(ownerDocument, 'touchcancel', this._disableDelayedDrag);\r\n\t\toff(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\r\n\t\toff(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\r\n\t\toff(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\r\n\t},\r\n\r\n\t_triggerDragStart: function (/** Event */evt, /** Touch */touch) {\r\n\t\ttouch = touch || (evt.pointerType == 'touch' && evt);\r\n\r\n\t\tif (!this.nativeDraggable || touch) {\r\n\t\t\tif (this.options.supportPointer) {\r\n\t\t\t\ton(document, 'pointermove', this._onTouchMove);\r\n\t\t\t} else if (touch) {\r\n\t\t\t\ton(document, 'touchmove', this._onTouchMove);\r\n\t\t\t} else {\r\n\t\t\t\ton(document, 'mousemove', this._onTouchMove);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\ton(dragEl, 'dragend', this);\r\n\t\t\ton(rootEl, 'dragstart', this._onDragStart);\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tif (document.selection) {\r\n\t\t\t\t// Timeout neccessary for IE9\r\n\t\t\t\t_nextTick(function () {\r\n\t\t\t\t\tdocument.selection.empty();\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\twindow.getSelection().removeAllRanges();\r\n\t\t\t}\r\n\t\t} catch (err) {\r\n\t\t}\r\n\t},\r\n\r\n\t_dragStarted: function (fallback, evt) {\r\n\t\tlet _this = this;\r\n\t\tawaitingDragStarted = false;\r\n\t\tif (rootEl && dragEl) {\r\n\t\t\tpluginEvent('dragStarted', this, { evt });\r\n\r\n\t\t\tif (this.nativeDraggable) {\r\n\t\t\t\ton(document, 'dragover', _checkOutsideTargetEl);\r\n\t\t\t}\r\n\t\t\tlet options = this.options;\r\n\r\n\t\t\t// Apply effect\r\n\t\t\t!fallback && toggleClass(dragEl, options.dragClass, false);\r\n\t\t\ttoggleClass(dragEl, options.ghostClass, true);\r\n\r\n\t\t\tSortable.active = this;\r\n\r\n\t\t\tfallback && this._appendGhost();\r\n\r\n\t\t\t// Drag start event\r\n\t\t\t_dispatchEvent({\r\n\t\t\t\tsortable: this,\r\n\t\t\t\tname: 'start',\r\n\t\t\t\toriginalEvent: evt\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis._nulling();\r\n\t\t}\r\n\t},\r\n\r\n\t_emulateDragOver: function () {\r\n\t\tif (touchEvt) {\r\n\t\t\tthis._lastX = touchEvt.clientX;\r\n\t\t\tthis._lastY = touchEvt.clientY;\r\n\r\n\t\t\t_hideGhostForTarget();\r\n\r\n\t\t\tlet target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\r\n\t\t\tlet parent = target;\r\n\r\n\t\t\twhile (target && target.shadowRoot) {\r\n\t\t\t\ttarget = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\r\n\t\t\t\tif (target === parent) break;\r\n\t\t\t\tparent = target;\r\n\t\t\t}\r\n\r\n\t\t\tdragEl.parentNode[expando]._isOutsideThisEl(target);\r\n\r\n\t\t\tif (parent) {\r\n\t\t\t\tdo {\r\n\t\t\t\t\tif (parent[expando]) {\r\n\t\t\t\t\t\tlet inserted;\r\n\r\n\t\t\t\t\t\tinserted = parent[expando]._onDragOver({\r\n\t\t\t\t\t\t\tclientX: touchEvt.clientX,\r\n\t\t\t\t\t\t\tclientY: touchEvt.clientY,\r\n\t\t\t\t\t\t\ttarget: target,\r\n\t\t\t\t\t\t\trootEl: parent\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (inserted && !this.options.dragoverBubble) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttarget = parent; // store last element\r\n\t\t\t\t}\r\n\t\t\t\t/* jshint boss:true */\r\n\t\t\t\twhile (parent = parent.parentNode);\r\n\t\t\t}\r\n\r\n\t\t\t_unhideGhostForTarget();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t_onTouchMove: function (/**TouchEvent*/evt) {\r\n\t\tif (tapEvt) {\r\n\t\t\tlet\toptions = this.options,\r\n\t\t\t\tfallbackTolerance = options.fallbackTolerance,\r\n\t\t\t\tfallbackOffset = options.fallbackOffset,\r\n\t\t\t\ttouch = evt.touches ? evt.touches[0] : evt,\r\n\t\t\t\tghostMatrix = ghostEl && matrix(ghostEl, true),\r\n\t\t\t\tscaleX = ghostEl && ghostMatrix && ghostMatrix.a,\r\n\t\t\t\tscaleY = ghostEl && ghostMatrix && ghostMatrix.d,\r\n\t\t\t\trelativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\r\n\t\t\t\tdx = ((touch.clientX - tapEvt.clientX)\r\n\t\t\t\t\t\t+ fallbackOffset.x) / (scaleX || 1)\r\n\t\t\t\t\t\t+ (relativeScrollOffset ? (relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0]) : 0) / (scaleX || 1),\r\n\t\t\t\tdy = ((touch.clientY - tapEvt.clientY)\r\n\t\t\t\t\t\t+ fallbackOffset.y) / (scaleY || 1)\r\n\t\t\t\t\t\t+ (relativeScrollOffset ? (relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1]) : 0) / (scaleY || 1);\r\n\r\n\t\t\t// only set the status to dragging, when we are actually dragging\r\n\t\t\tif (!Sortable.active && !awaitingDragStarted) {\r\n\t\t\t\tif (fallbackTolerance &&\r\n\t\t\t\t\tMath.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis._onDragStart(evt, true);\r\n\t\t\t}\r\n\r\n\t\t\tif (ghostEl) {\r\n\t\t\t\tif (ghostMatrix) {\r\n\t\t\t\t\tghostMatrix.e += dx - (lastDx || 0);\r\n\t\t\t\t\tghostMatrix.f += dy - (lastDy || 0);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tghostMatrix = {\r\n\t\t\t\t\t\ta: 1,\r\n\t\t\t\t\t\tb: 0,\r\n\t\t\t\t\t\tc: 0,\r\n\t\t\t\t\t\td: 1,\r\n\t\t\t\t\t\te: dx,\r\n\t\t\t\t\t\tf: dy\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet cssMatrix = `matrix(${ghostMatrix.a},${ghostMatrix.b},${ghostMatrix.c},${ghostMatrix.d},${ghostMatrix.e},${ghostMatrix.f})`;\r\n\r\n\t\t\t\tcss(ghostEl, 'webkitTransform', cssMatrix);\r\n\t\t\t\tcss(ghostEl, 'mozTransform', cssMatrix);\r\n\t\t\t\tcss(ghostEl, 'msTransform', cssMatrix);\r\n\t\t\t\tcss(ghostEl, 'transform', cssMatrix);\r\n\r\n\t\t\t\tlastDx = dx;\r\n\t\t\t\tlastDy = dy;\r\n\r\n\t\t\t\ttouchEvt = touch;\r\n\t\t\t}\r\n\r\n\t\t\tevt.cancelable && evt.preventDefault();\r\n\t\t}\r\n\t},\r\n\r\n\t_appendGhost: function () {\r\n\t\t// Bug if using scale(): https://stackoverflow.com/questions/2637058\r\n\t\t// Not being adjusted for\r\n\t\tif (!ghostEl) {\r\n\t\t\tlet container = this.options.fallbackOnBody ? document.body : rootEl,\r\n\t\t\t\trect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\r\n\t\t\t\toptions = this.options;\r\n\r\n\t\t\t// Position absolutely\r\n\t\t\tif (PositionGhostAbsolutely) {\r\n\t\t\t\t// Get relatively positioned parent\r\n\t\t\t\tghostRelativeParent = container;\r\n\r\n\t\t\t\twhile (\r\n\t\t\t\t\tcss(ghostRelativeParent, 'position') === 'static' &&\r\n\t\t\t\t\tcss(ghostRelativeParent, 'transform') === 'none' &&\r\n\t\t\t\t\tghostRelativeParent !== document\r\n\t\t\t\t) {\r\n\t\t\t\t\tghostRelativeParent = ghostRelativeParent.parentNode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\r\n\t\t\t\t\tif (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\r\n\r\n\t\t\t\t\trect.top += ghostRelativeParent.scrollTop;\r\n\t\t\t\t\trect.left += ghostRelativeParent.scrollLeft;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tghostRelativeParent = getWindowScrollingElement();\r\n\t\t\t\t}\r\n\t\t\t\tghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\r\n\t\t\t}\r\n\r\n\r\n\t\t\tghostEl = dragEl.cloneNode(true);\r\n\r\n\t\t\ttoggleClass(ghostEl, options.ghostClass, false);\r\n\t\t\ttoggleClass(ghostEl, options.fallbackClass, true);\r\n\t\t\ttoggleClass(ghostEl, options.dragClass, true);\r\n\r\n\t\t\tcss(ghostEl, 'transition', '');\r\n\t\t\tcss(ghostEl, 'transform', '');\r\n\r\n\t\t\tcss(ghostEl, 'box-sizing', 'border-box');\r\n\t\t\tcss(ghostEl, 'margin', 0);\r\n\t\t\tcss(ghostEl, 'top', rect.top);\r\n\t\t\tcss(ghostEl, 'left', rect.left);\r\n\t\t\tcss(ghostEl, 'width', rect.width);\r\n\t\t\tcss(ghostEl, 'height', rect.height);\r\n\t\t\tcss(ghostEl, 'opacity', '0.8');\r\n\t\t\tcss(ghostEl, 'position', (PositionGhostAbsolutely ? 'absolute' : 'fixed'));\r\n\t\t\tcss(ghostEl, 'zIndex', '100000');\r\n\t\t\tcss(ghostEl, 'pointerEvents', 'none');\r\n\r\n\r\n\t\t\tSortable.ghost = ghostEl;\r\n\r\n\t\t\tcontainer.appendChild(ghostEl);\r\n\r\n\t\t\t// Set transform-origin\r\n\t\t\tcss(ghostEl, 'transform-origin', (tapDistanceLeft / parseInt(ghostEl.style.width) * 100) + '% ' + (tapDistanceTop / parseInt(ghostEl.style.height) * 100) + '%');\r\n\t\t}\r\n\t},\r\n\r\n\t_onDragStart: function (/**Event*/evt, /**boolean*/fallback) {\r\n\t\tlet _this = this;\r\n\t\tlet dataTransfer = evt.dataTransfer;\r\n\t\tlet options = _this.options;\r\n\r\n\t\tpluginEvent('dragStart', this, { evt });\r\n\t\tif (Sortable.eventCanceled) {\r\n\t\t\tthis._onDrop();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tpluginEvent('setupClone', this);\r\n\t\tif (!Sortable.eventCanceled) {\r\n\t\t\tcloneEl = clone(dragEl);\r\n\t\t\tcloneEl.removeAttribute(\"id\");\r\n\t\t\tcloneEl.draggable = false;\r\n\t\t\tcloneEl.style['will-change'] = '';\r\n\r\n\t\t\tthis._hideClone();\r\n\r\n\t\t\ttoggleClass(cloneEl, this.options.chosenClass, false);\r\n\t\t\tSortable.clone = cloneEl;\r\n\t\t}\r\n\r\n\r\n\t\t// #1143: IFrame support workaround\r\n\t\t_this.cloneId = _nextTick(function() {\r\n\t\t\tpluginEvent('clone', _this);\r\n\t\t\tif (Sortable.eventCanceled) return;\r\n\r\n\t\t\tif (!_this.options.removeCloneOnHide) {\r\n\t\t\t\trootEl.insertBefore(cloneEl, dragEl);\r\n\t\t\t}\r\n\t\t\t_this._hideClone();\r\n\r\n\t\t\t_dispatchEvent({\r\n\t\t\t\tsortable: _this,\r\n\t\t\t\tname: 'clone'\r\n\t\t\t});\r\n\t\t});\r\n\r\n\r\n\t\t!fallback && toggleClass(dragEl, options.dragClass, true);\r\n\r\n\t\t// Set proper drop events\r\n\t\tif (fallback) {\r\n\t\t\tignoreNextClick = true;\r\n\t\t\t_this._loopId = setInterval(_this._emulateDragOver, 50);\r\n\t\t} else {\r\n\t\t\t// Undo what was set in _prepareDragStart before drag started\r\n\t\t\toff(document, 'mouseup', _this._onDrop);\r\n\t\t\toff(document, 'touchend', _this._onDrop);\r\n\t\t\toff(document, 'touchcancel', _this._onDrop);\r\n\r\n\t\t\tif (dataTransfer) {\r\n\t\t\t\tdataTransfer.effectAllowed = 'move';\r\n\t\t\t\toptions.setData && options.setData.call(_this, dataTransfer, dragEl);\r\n\t\t\t}\r\n\r\n\t\t\ton(document, 'drop', _this);\r\n\r\n\t\t\t// #1276 fix:\r\n\t\t\tcss(dragEl, 'transform', 'translateZ(0)');\r\n\t\t}\r\n\r\n\t\tawaitingDragStarted = true;\r\n\r\n\t\t_this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\r\n\t\ton(document, 'selectstart', _this);\r\n\r\n\t\tmoved = true;\r\n\r\n\t\tif (Safari) {\r\n\t\t\tcss(document.body, 'user-select', 'none');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// Returns true - if no further action is needed (either inserted or another condition)\r\n\t_onDragOver: function (/**Event*/evt) {\r\n\t\tlet el = this.el,\r\n\t\t\ttarget = evt.target,\r\n\t\t\tdragRect,\r\n\t\t\ttargetRect,\r\n\t\t\trevert,\r\n\t\t\toptions = this.options,\r\n\t\t\tgroup = options.group,\r\n\t\t\tactiveSortable = Sortable.active,\r\n\t\t\tisOwner = (activeGroup === group),\r\n\t\t\tcanSort = options.sort,\r\n\t\t\tfromSortable = (putSortable || activeSortable),\r\n\t\t\tvertical,\r\n\t\t\t_this = this,\r\n\t\t\tcompletedFired = false;\r\n\r\n\t\tif (_silent) return;\r\n\r\n\t\tfunction dragOverEvent(name, extra) {\r\n\t\t\tpluginEvent(name, _this, {\r\n\t\t\t\tevt,\r\n\t\t\t\tisOwner,\r\n\t\t\t\taxis: vertical ? 'vertical' : 'horizontal',\r\n\t\t\t\trevert,\r\n\t\t\t\tdragRect,\r\n\t\t\t\ttargetRect,\r\n\t\t\t\tcanSort,\r\n\t\t\t\tfromSortable,\r\n\t\t\t\ttarget,\r\n\t\t\t\tcompleted,\r\n\t\t\t\tonMove(target, after) {\r\n\t\t\t\t\treturn onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\r\n\t\t\t\t},\r\n\t\t\t\tchanged,\r\n\t\t\t\t...extra\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Capture animation state\r\n\t\tfunction capture() {\r\n\t\t\tdragOverEvent('dragOverAnimationCapture');\r\n\r\n\t\t\t_this.captureAnimationState();\r\n\t\t\tif (_this !== fromSortable) {\r\n\t\t\t\tfromSortable.captureAnimationState();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Return invocation when dragEl is inserted (or completed)\r\n\t\tfunction completed(insertion) {\r\n\t\t\tdragOverEvent('dragOverCompleted', { insertion });\r\n\r\n\t\t\tif (insertion) {\r\n\t\t\t\t// Clones must be hidden before folding animation to capture dragRectAbsolute properly\r\n\t\t\t\tif (isOwner) {\r\n\t\t\t\t\tactiveSortable._hideClone();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tactiveSortable._showClone(_this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this !== fromSortable) {\r\n\t\t\t\t\t// Set ghost class to new sortable's ghost class\r\n\t\t\t\t\ttoggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\r\n\t\t\t\t\ttoggleClass(dragEl, options.ghostClass, true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (putSortable !== _this && _this !== Sortable.active) {\r\n\t\t\t\t\tputSortable = _this;\r\n\t\t\t\t} else if (_this === Sortable.active && putSortable) {\r\n\t\t\t\t\tputSortable = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Animation\r\n\t\t\t\tif (fromSortable === _this) {\r\n\t\t\t\t\t_this._ignoreWhileAnimating = target;\r\n\t\t\t\t}\r\n\t\t\t\t_this.animateAll(function() {\r\n\t\t\t\t\tdragOverEvent('dragOverAnimationComplete');\r\n\t\t\t\t\t_this._ignoreWhileAnimating = null;\r\n\t\t\t\t});\r\n\t\t\t\tif (_this !== fromSortable) {\r\n\t\t\t\t\tfromSortable.animateAll();\r\n\t\t\t\t\tfromSortable._ignoreWhileAnimating = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// Null lastTarget if it is not inside a previously swapped element\r\n\t\t\tif ((target === dragEl && !dragEl.animated) || (target === el && !target.animated)) {\r\n\t\t\t\tlastTarget = null;\r\n\t\t\t}\r\n\r\n\t\t\t// no bubbling and not fallback\r\n\t\t\tif (!options.dragoverBubble && !evt.rootEl && target !== document) {\r\n\t\t\t\tdragEl.parentNode[expando]._isOutsideThisEl(evt.target);\r\n\r\n\t\t\t\t// Do not detect for empty insert if already inserted\r\n\t\t\t\t!insertion && nearestEmptyInsertDetectEvent(evt);\r\n\t\t\t}\r\n\r\n\t\t\t!options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\r\n\r\n\t\t\treturn (completedFired = true);\r\n\t\t}\r\n\r\n\t\t// Call when dragEl has been inserted\r\n\t\tfunction changed() {\r\n\t\t\tnewIndex = index(dragEl);\r\n\t\t\tnewDraggableIndex = index(dragEl, options.draggable);\r\n\t\t\t_dispatchEvent({\r\n\t\t\t\tsortable: _this,\r\n\t\t\t\tname: 'change',\r\n\t\t\t\ttoEl: el,\r\n\t\t\t\tnewIndex,\r\n\t\t\t\tnewDraggableIndex,\r\n\t\t\t\toriginalEvent: evt\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tif (evt.preventDefault !== void 0) {\r\n\t\t\tevt.cancelable && evt.preventDefault();\r\n\t\t}\r\n\r\n\r\n\t\ttarget = closest(target, options.draggable, el, true);\r\n\r\n\t\tdragOverEvent('dragOver');\r\n\t\tif (Sortable.eventCanceled) return completedFired;\r\n\r\n\t\tif (\r\n\t\t\tdragEl.contains(evt.target) ||\r\n\t\t\ttarget.animated && target.animatingX && target.animatingY ||\r\n\t\t\t_this._ignoreWhileAnimating === target\r\n\t\t) {\r\n\t\t\treturn completed(false);\r\n\t\t}\r\n\r\n\t\tignoreNextClick = false;\r\n\r\n\t\tif (activeSortable && !options.disabled &&\r\n\t\t\t(isOwner\r\n\t\t\t\t? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\r\n\t\t\t\t: (\r\n\t\t\t\t\tputSortable === this ||\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t(this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) &&\r\n\t\t\t\t\t\tgroup.checkPut(this, activeSortable, dragEl, evt)\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\tvertical = this._getDirection(evt, target) === 'vertical';\r\n\r\n\t\t\tdragRect = getRect(dragEl);\r\n\r\n\t\t\tdragOverEvent('dragOverValid');\r\n\t\t\tif (Sortable.eventCanceled) return completedFired;\r\n\r\n\t\t\tif (revert) {\r\n\t\t\t\tparentEl = rootEl; // actualization\r\n\t\t\t\tcapture();\r\n\r\n\t\t\t\tthis._hideClone();\r\n\r\n\t\t\t\tdragOverEvent('revert');\r\n\r\n\t\t\t\tif (!Sortable.eventCanceled) {\r\n\t\t\t\t\tif (nextEl) {\r\n\t\t\t\t\t\trootEl.insertBefore(dragEl, nextEl);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trootEl.appendChild(dragEl);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn completed(true);\r\n\t\t\t}\r\n\r\n\t\t\tlet elLastChild = lastChild(el, options.draggable);\r\n\r\n\t\t\tif (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\r\n\t\t\t\t// Insert to end of list\r\n\r\n\t\t\t\t// If already at end of list: Do not insert\r\n\t\t\t\tif (elLastChild === dragEl) {\r\n\t\t\t\t\treturn completed(false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if there is a last element, it is the target\r\n\t\t\t\tif (elLastChild && el === evt.target) {\r\n\t\t\t\t\ttarget = elLastChild;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (target) {\r\n\t\t\t\t\ttargetRect = getRect(target);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\r\n\t\t\t\t\tcapture();\r\n\t\t\t\t\tif (elLastChild && elLastChild.nextSibling) { // the last draggable element is not the last node\r\n\t\t\t\t\t\tel.insertBefore(dragEl, elLastChild.nextSibling);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tel.appendChild(dragEl);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tparentEl = el; // actualization\r\n\r\n\t\t\t\t\tchanged();\r\n\t\t\t\t\treturn completed(true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\r\n\t\t\t\t// Insert to start of list\r\n\t\t\t\tlet firstChild = getChild(el, 0, options, true);\r\n\t\t\t\tif (firstChild === dragEl) {\r\n\t\t\t\t\treturn completed(false);\r\n\t\t\t\t}\r\n\t\t\t\ttarget = firstChild;\r\n\t\t\t\ttargetRect = getRect(target);\r\n\r\n\t\t\t\tif (onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\r\n\t\t\t\t\tcapture();\r\n\t\t\t\t\tel.insertBefore(dragEl, firstChild);\r\n\t\t\t\t\tparentEl = el; // actualization\r\n\r\n\t\t\t\t\tchanged();\r\n\t\t\t\t\treturn completed(true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (target.parentNode === el) {\r\n\t\t\t\ttargetRect = getRect(target);\r\n\t\t\t\tlet direction = 0,\r\n\t\t\t\t\ttargetBeforeFirstSwap,\r\n\t\t\t\t\tdifferentLevel = dragEl.parentNode !== el,\r\n\t\t\t\t\tdifferentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\r\n\t\t\t\t\tside1 = vertical ? 'top' : 'left',\r\n\t\t\t\t\tscrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\r\n\t\t\t\t\tscrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\r\n\r\n\r\n\t\t\t\tif (lastTarget !== target) {\r\n\t\t\t\t\ttargetBeforeFirstSwap = targetRect[side1];\r\n\t\t\t\t\tpastFirstInvertThresh = false;\r\n\t\t\t\t\tisCircumstantialInvert = (!differentRowCol && options.invertSwap) || differentLevel;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdirection = _getSwapDirection(\r\n\t\t\t\t\tevt, target, targetRect, vertical,\r\n\t\t\t\t\tdifferentRowCol ? 1 : options.swapThreshold,\r\n\t\t\t\t\toptions.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold,\r\n\t\t\t\t\tisCircumstantialInvert,\r\n\t\t\t\t\tlastTarget === target\r\n\t\t\t\t);\r\n\r\n\t\t\t\tlet sibling;\r\n\r\n\t\t\t\tif (direction !== 0) {\r\n\t\t\t\t\t// Check if target is beside dragEl in respective direction (ignoring hidden elements)\r\n\t\t\t\t\tlet dragIndex = index(dragEl);\r\n\r\n\t\t\t\t\tdo {\r\n\t\t\t\t\t\tdragIndex -= direction;\r\n\t\t\t\t\t\tsibling = parentEl.children[dragIndex];\r\n\t\t\t\t\t} while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\r\n\t\t\t\t}\r\n\t\t\t\t// If dragEl is already beside target: Do not insert\r\n\t\t\t\tif (\r\n\t\t\t\t\tdirection === 0 ||\r\n\t\t\t\t\tsibling === target\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn completed(false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlastTarget = target;\r\n\r\n\t\t\t\tlastDirection = direction;\r\n\r\n\t\t\t\tlet nextSibling = target.nextElementSibling,\r\n\t\t\t\t\tafter = false;\r\n\r\n\t\t\t\tafter = direction === 1;\r\n\r\n\t\t\t\tlet moveVector = onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\r\n\r\n\t\t\t\tif (moveVector !== false) {\r\n\t\t\t\t\tif (moveVector === 1 || moveVector === -1) {\r\n\t\t\t\t\t\tafter = (moveVector === 1);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_silent = true;\r\n\t\t\t\t\tsetTimeout(_unsilent, 30);\r\n\r\n\t\t\t\t\tcapture();\r\n\r\n\t\t\t\t\tif (after && !nextSibling) {\r\n\t\t\t\t\t\tel.appendChild(dragEl);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttarget.parentNode.insertBefore(dragEl, after ? nextSibling : target);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Undo chrome's scroll adjustment (has no effect on other browsers)\r\n\t\t\t\t\tif (scrolledPastTop) {\r\n\t\t\t\t\t\tscrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tparentEl = dragEl.parentNode; // actualization\r\n\r\n\t\t\t\t\t// must be done before animation\r\n\t\t\t\t\tif (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\r\n\t\t\t\t\t\ttargetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tchanged();\r\n\r\n\t\t\t\t\treturn completed(true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (el.contains(dragEl)) {\r\n\t\t\t\treturn completed(false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\t_ignoreWhileAnimating: null,\r\n\r\n\t_offMoveEvents: function() {\r\n\t\toff(document, 'mousemove', this._onTouchMove);\r\n\t\toff(document, 'touchmove', this._onTouchMove);\r\n\t\toff(document, 'pointermove', this._onTouchMove);\r\n\t\toff(document, 'dragover', nearestEmptyInsertDetectEvent);\r\n\t\toff(document, 'mousemove', nearestEmptyInsertDetectEvent);\r\n\t\toff(document, 'touchmove', nearestEmptyInsertDetectEvent);\r\n\t},\r\n\r\n\t_offUpEvents: function () {\r\n\t\tlet ownerDocument = this.el.ownerDocument;\r\n\r\n\t\toff(ownerDocument, 'mouseup', this._onDrop);\r\n\t\toff(ownerDocument, 'touchend', this._onDrop);\r\n\t\toff(ownerDocument, 'pointerup', this._onDrop);\r\n\t\toff(ownerDocument, 'touchcancel', this._onDrop);\r\n\t\toff(document, 'selectstart', this);\r\n\t},\r\n\r\n\t_onDrop: function (/**Event*/evt) {\r\n\t\tlet el = this.el,\r\n\t\t\toptions = this.options;\r\n\r\n\t\t// Get the index of the dragged element within its parent\r\n\t\tnewIndex = index(dragEl);\r\n\t\tnewDraggableIndex = index(dragEl, options.draggable);\r\n\r\n\t\tpluginEvent('drop', this, {\r\n\t\t\tevt\r\n\t\t});\r\n\r\n\t\tparentEl = dragEl && dragEl.parentNode;\r\n\r\n\t\t// Get again after plugin event\r\n\t\tnewIndex = index(dragEl);\r\n\t\tnewDraggableIndex = index(dragEl, options.draggable);\r\n\r\n\t\tif (Sortable.eventCanceled) {\r\n\t\t\tthis._nulling();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tawaitingDragStarted = false;\r\n\t\tisCircumstantialInvert = false;\r\n\t\tpastFirstInvertThresh = false;\r\n\r\n\t\tclearInterval(this._loopId);\r\n\r\n\t\tclearTimeout(this._dragStartTimer);\r\n\r\n\t\t_cancelNextTick(this.cloneId);\r\n\t\t_cancelNextTick(this._dragStartId);\r\n\r\n\t\t// Unbind events\r\n\t\tif (this.nativeDraggable) {\r\n\t\t\toff(document, 'drop', this);\r\n\t\t\toff(el, 'dragstart', this._onDragStart);\r\n\t\t}\r\n\t\tthis._offMoveEvents();\r\n\t\tthis._offUpEvents();\r\n\r\n\r\n\t\tif (Safari) {\r\n\t\t\tcss(document.body, 'user-select', '');\r\n\t\t}\r\n\r\n\t\tcss(dragEl, 'transform', '');\r\n\r\n\t\tif (evt) {\r\n\t\t\tif (moved) {\r\n\t\t\t\tevt.cancelable && evt.preventDefault();\r\n\t\t\t\t!options.dropBubble && evt.stopPropagation();\r\n\t\t\t}\r\n\r\n\t\t\tghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\r\n\r\n\t\t\tif (rootEl === parentEl || (putSortable && putSortable.lastPutMode !== 'clone')) {\r\n\t\t\t\t// Remove clone(s)\r\n\t\t\t\tcloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\r\n\t\t\t}\r\n\r\n\t\t\tif (dragEl) {\r\n\t\t\t\tif (this.nativeDraggable) {\r\n\t\t\t\t\toff(dragEl, 'dragend', this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_disableDraggable(dragEl);\r\n\t\t\t\tdragEl.style['will-change'] = '';\r\n\r\n\t\t\t\t// Remove classes\r\n\t\t\t\t// ghostClass is added in dragStarted\r\n\t\t\t\tif (moved && !awaitingDragStarted) {\r\n\t\t\t\t\ttoggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\r\n\t\t\t\t}\r\n\t\t\t\ttoggleClass(dragEl, this.options.chosenClass, false);\r\n\r\n\t\t\t\t// Drag stop event\r\n\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\tsortable: this,\r\n\t\t\t\t\tname: 'unchoose',\r\n\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\tnewIndex: null,\r\n\t\t\t\t\tnewDraggableIndex: null,\r\n\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t});\r\n\r\n\r\n\t\t\t\tif (rootEl !== parentEl) {\r\n\r\n\t\t\t\t\tif (newIndex >= 0) {\r\n\t\t\t\t\t\t// Add event\r\n\t\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\t\trootEl: parentEl,\r\n\t\t\t\t\t\t\tname: 'add',\r\n\t\t\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\t\t\tfromEl: rootEl,\r\n\t\t\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// Remove event\r\n\t\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\t\tsortable: this,\r\n\t\t\t\t\t\t\tname: 'remove',\r\n\t\t\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// drag from one list and drop into another\r\n\t\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\t\trootEl: parentEl,\r\n\t\t\t\t\t\t\tname: 'sort',\r\n\t\t\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\t\t\tfromEl: rootEl,\r\n\t\t\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\t\tsortable: this,\r\n\t\t\t\t\t\t\tname: 'sort',\r\n\t\t\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tputSortable && putSortable.save();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (newIndex !== oldIndex) {\r\n\t\t\t\t\t\tif (newIndex >= 0) {\r\n\t\t\t\t\t\t\t// drag & drop within the same list\r\n\t\t\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\t\t\tsortable: this,\r\n\t\t\t\t\t\t\t\tname: 'update',\r\n\t\t\t\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\t\t\tsortable: this,\r\n\t\t\t\t\t\t\t\tname: 'sort',\r\n\t\t\t\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Sortable.active) {\r\n\t\t\t\t\t/* jshint eqnull:true */\r\n\t\t\t\t\tif (newIndex == null || newIndex === -1) {\r\n\t\t\t\t\t\tnewIndex = oldIndex;\r\n\t\t\t\t\t\tnewDraggableIndex = oldDraggableIndex;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_dispatchEvent({\r\n\t\t\t\t\t\tsortable: this,\r\n\t\t\t\t\t\tname: 'end',\r\n\t\t\t\t\t\ttoEl: parentEl,\r\n\t\t\t\t\t\toriginalEvent: evt\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// Save sorting\r\n\t\t\t\t\tthis.save();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tthis._nulling();\r\n\t},\r\n\r\n\t_nulling: function() {\r\n\t\tpluginEvent('nulling', this);\r\n\r\n\t\trootEl =\r\n\t\tdragEl =\r\n\t\tparentEl =\r\n\t\tghostEl =\r\n\t\tnextEl =\r\n\t\tcloneEl =\r\n\t\tlastDownEl =\r\n\t\tcloneHidden =\r\n\r\n\t\ttapEvt =\r\n\t\ttouchEvt =\r\n\r\n\t\tmoved =\r\n\t\tnewIndex =\r\n\t\tnewDraggableIndex =\r\n\t\toldIndex =\r\n\t\toldDraggableIndex =\r\n\r\n\t\tlastTarget =\r\n\t\tlastDirection =\r\n\r\n\t\tputSortable =\r\n\t\tactiveGroup =\r\n\t\tSortable.dragged =\r\n\t\tSortable.ghost =\r\n\t\tSortable.clone =\r\n\t\tSortable.active = null;\r\n\r\n\t\tsavedInputChecked.forEach(function (el) {\r\n\t\t\tel.checked = true;\r\n\t\t});\r\n\r\n\t\tsavedInputChecked.length =\r\n\t\tlastDx =\r\n\t\tlastDy = 0;\r\n\t},\r\n\r\n\thandleEvent: function (/**Event*/evt) {\r\n\t\tswitch (evt.type) {\r\n\t\t\tcase 'drop':\r\n\t\t\tcase 'dragend':\r\n\t\t\t\tthis._onDrop(evt);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'dragenter':\r\n\t\t\tcase 'dragover':\r\n\t\t\t\tif (dragEl) {\r\n\t\t\t\t\tthis._onDragOver(evt);\r\n\t\t\t\t\t_globalDragOver(evt);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'selectstart':\r\n\t\t\t\tevt.preventDefault();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * Serializes the item into an array of string.\r\n\t * @returns {String[]}\r\n\t */\r\n\ttoArray: function () {\r\n\t\tlet order = [],\r\n\t\t\tel,\r\n\t\t\tchildren = this.el.children,\r\n\t\t\ti = 0,\r\n\t\t\tn = children.length,\r\n\t\t\toptions = this.options;\r\n\r\n\t\tfor (; i < n; i++) {\r\n\t\t\tel = children[i];\r\n\t\t\tif (closest(el, options.draggable, this.el, false)) {\r\n\t\t\t\torder.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn order;\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * Sorts the elements according to the array.\r\n\t * @param {String[]} order order of the items\r\n\t */\r\n\tsort: function (order, useAnimation) {\r\n\t\tlet items = {}, rootEl = this.el;\r\n\r\n\t\tthis.toArray().forEach(function (id, i) {\r\n\t\t\tlet el = rootEl.children[i];\r\n\r\n\t\t\tif (closest(el, this.options.draggable, rootEl, false)) {\r\n\t\t\t\titems[id] = el;\r\n\t\t\t}\r\n\t\t}, this);\r\n\r\n\t\tuseAnimation && this.captureAnimationState();\r\n\t\torder.forEach(function (id) {\r\n\t\t\tif (items[id]) {\r\n\t\t\t\trootEl.removeChild(items[id]);\r\n\t\t\t\trootEl.appendChild(items[id]);\r\n\t\t\t}\r\n\t\t});\r\n\t\tuseAnimation && this.animateAll();\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * Save the current sorting\r\n\t */\r\n\tsave: function () {\r\n\t\tlet store = this.options.store;\r\n\t\tstore && store.set && store.set(this);\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n\t * @param {HTMLElement} el\r\n\t * @param {String} [selector] default: `options.draggable`\r\n\t * @returns {HTMLElement|null}\r\n\t */\r\n\tclosest: function (el, selector) {\r\n\t\treturn closest(el, selector || this.options.draggable, this.el, false);\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * Set/get option\r\n\t * @param {string} name\r\n\t * @param {*} [value]\r\n\t * @returns {*}\r\n\t */\r\n\toption: function (name, value) {\r\n\t\tlet options = this.options;\r\n\r\n\t\tif (value === void 0) {\r\n\t\t\treturn options[name];\r\n\t\t} else {\r\n\t\t\tlet modifiedValue = PluginManager.modifyOption(this, name, value);\r\n\t\t\tif (typeof modifiedValue !== 'undefined') {\r\n\t\t\t\toptions[name] = modifiedValue;\r\n\t\t\t} else {\r\n\t\t\t\toptions[name] = value;\r\n\t\t\t}\r\n\r\n\t\t\tif (name === 'group') {\r\n\t\t\t\t_prepareGroup(options);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t/**\r\n\t * Destroy\r\n\t */\r\n\tdestroy: function () {\r\n\t\tpluginEvent('destroy', this);\r\n\t\tlet el = this.el;\r\n\r\n\t\tel[expando] = null;\r\n\r\n\t\toff(el, 'mousedown', this._onTapStart);\r\n\t\toff(el, 'touchstart', this._onTapStart);\r\n\t\toff(el, 'pointerdown', this._onTapStart);\r\n\r\n\t\tif (this.nativeDraggable) {\r\n\t\t\toff(el, 'dragover', this);\r\n\t\t\toff(el, 'dragenter', this);\r\n\t\t}\r\n\t\t// Remove draggable attributes\r\n\t\tArray.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\r\n\t\t\tel.removeAttribute('draggable');\r\n\t\t});\r\n\r\n\t\tthis._onDrop();\r\n\r\n\t\tthis._disableDelayedDragEvents();\r\n\r\n\t\tsortables.splice(sortables.indexOf(this.el), 1);\r\n\r\n\t\tthis.el = el = null;\r\n\t},\r\n\r\n\t_hideClone: function() {\r\n\t\tif (!cloneHidden) {\r\n\t\t\tpluginEvent('hideClone', this);\r\n\t\t\tif (Sortable.eventCanceled) return;\r\n\r\n\r\n\t\t\tcss(cloneEl, 'display', 'none');\r\n\t\t\tif (this.options.removeCloneOnHide && cloneEl.parentNode) {\r\n\t\t\t\tcloneEl.parentNode.removeChild(cloneEl);\r\n\t\t\t}\r\n\t\t\tcloneHidden = true;\r\n\t\t}\r\n\t},\r\n\r\n\t_showClone: function(putSortable) {\r\n\t\tif (putSortable.lastPutMode !== 'clone') {\r\n\t\t\tthis._hideClone();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\r\n\t\tif (cloneHidden) {\r\n\t\t\tpluginEvent('showClone', this);\r\n\t\t\tif (Sortable.eventCanceled) return;\r\n\r\n\t\t\t// show clone at dragEl or original position\r\n\t\t\tif (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\r\n\t\t\t\trootEl.insertBefore(cloneEl, dragEl);\r\n\t\t\t} else if (nextEl) {\r\n\t\t\t\trootEl.insertBefore(cloneEl, nextEl);\r\n\t\t\t} else {\r\n\t\t\t\trootEl.appendChild(cloneEl);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.options.group.revertClone) {\r\n\t\t\t\tthis.animate(dragEl, cloneEl);\r\n\t\t\t}\r\n\r\n\t\t\tcss(cloneEl, 'display', '');\r\n\t\t\tcloneHidden = false;\r\n\t\t}\r\n\t}\r\n};\r\n\r\nfunction _globalDragOver(/**Event*/evt) {\r\n\tif (evt.dataTransfer) {\r\n\t\tevt.dataTransfer.dropEffect = 'move';\r\n\t}\r\n\tevt.cancelable && evt.preventDefault();\r\n}\r\n\r\nfunction onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\r\n\tlet evt,\r\n\t\tsortable = fromEl[expando],\r\n\t\tonMoveFn = sortable.options.onMove,\r\n\t\tretVal;\r\n\t// Support for new CustomEvent feature\r\n\tif (window.CustomEvent && !IE11OrLess && !Edge) {\r\n\t\tevt = new CustomEvent('move', {\r\n\t\t\tbubbles: true,\r\n\t\t\tcancelable: true\r\n\t\t});\r\n\t} else {\r\n\t\tevt = document.createEvent('Event');\r\n\t\tevt.initEvent('move', true, true);\r\n\t}\r\n\r\n\tevt.to = toEl;\r\n\tevt.from = fromEl;\r\n\tevt.dragged = dragEl;\r\n\tevt.draggedRect = dragRect;\r\n\tevt.related = targetEl || toEl;\r\n\tevt.relatedRect = targetRect || getRect(toEl);\r\n\tevt.willInsertAfter = willInsertAfter;\r\n\r\n\tevt.originalEvent = originalEvent;\r\n\r\n\tfromEl.dispatchEvent(evt);\r\n\r\n\tif (onMoveFn) {\r\n\t\tretVal = onMoveFn.call(sortable, evt, originalEvent);\r\n\t}\r\n\r\n\treturn retVal;\r\n}\r\n\r\nfunction _disableDraggable(el) {\r\n\tel.draggable = false;\r\n}\r\n\r\nfunction _unsilent() {\r\n\t_silent = false;\r\n}\r\n\r\nfunction _ghostIsFirst(evt, vertical, sortable) {\r\n\tlet rect = getRect(getChild(sortable.el, 0, sortable.options, true));\r\n\tconst spacer = 10;\r\n\r\n\treturn vertical ?\r\n\t\t((evt.clientX < rect.left - spacer) || (evt.clientY < rect.top && evt.clientX < rect.right)) :\r\n\t\t((evt.clientY < rect.top - spacer) || (evt.clientY < rect.bottom && evt.clientX < rect.left))\r\n}\r\n\r\nfunction _ghostIsLast(evt, vertical, sortable) {\r\n\tlet rect = getRect(lastChild(sortable.el, sortable.options.draggable));\r\n\tconst spacer = 10;\r\n\r\n\treturn vertical ?\r\n\t\t(evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left) :\r\n\t\t(evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer);\r\n}\r\n\r\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\r\n\tlet mouseOnAxis = vertical ? evt.clientY : evt.clientX,\r\n\t\ttargetLength = vertical ? targetRect.height : targetRect.width,\r\n\t\ttargetS1 = vertical ? targetRect.top : targetRect.left,\r\n\t\ttargetS2 = vertical ? targetRect.bottom : targetRect.right,\r\n\t\tinvert = false;\r\n\r\n\r\n\tif (!invertSwap) {\r\n\t\t// Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\r\n\t\tif (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\r\n\t\t\t// check if past first invert threshold on side opposite of lastDirection\r\n\t\t\tif (!pastFirstInvertThresh &&\r\n\t\t\t\t(lastDirection === 1 ?\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\tmouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2\r\n\t\t\t\t\t) :\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\tmouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t\t{\r\n\t\t\t\t// past first invert threshold, do not restrict inverted threshold to dragEl shadow\r\n\t\t\t\tpastFirstInvertThresh = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (!pastFirstInvertThresh) {\r\n\t\t\t\t// dragEl shadow (target move distance shadow)\r\n\t\t\t\tif (\r\n\t\t\t\t\tlastDirection === 1 ?\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\tmouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\r\n\t\t\t\t\t) :\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\tmouseOnAxis > targetS2 - targetMoveDistance\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\t{\r\n\t\t\t\t\treturn -lastDirection;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tinvert = true;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// Regular\r\n\t\t\tif (\r\n\t\t\t\tmouseOnAxis > targetS1 + (targetLength * (1 - swapThreshold) / 2) &&\r\n\t\t\t\tmouseOnAxis < targetS2 - (targetLength * (1 - swapThreshold) / 2)\r\n\t\t\t) {\r\n\t\t\t\treturn _getInsertDirection(target);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tinvert = invert || invertSwap;\r\n\r\n\tif (invert) {\r\n\t\t// Invert of regular\r\n\t\tif (\r\n\t\t\tmouseOnAxis < targetS1 + (targetLength * invertedSwapThreshold / 2) ||\r\n\t\t\tmouseOnAxis > targetS2 - (targetLength * invertedSwapThreshold / 2)\r\n\t\t)\r\n\t\t{\r\n\t\t\treturn ((mouseOnAxis > targetS1 + targetLength / 2) ? 1 : -1);\r\n\t\t}\r\n\t}\r\n\r\n\treturn 0;\r\n}\r\n\r\n/**\r\n * Gets the direction dragEl must be swapped relative to target in order to make it\r\n * seem that dragEl has been \"inserted\" into that element's position\r\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\r\n * @return {Number} Direction dragEl must be swapped\r\n */\r\nfunction _getInsertDirection(target) {\r\n\tif (index(dragEl) < index(target)) {\r\n\t\treturn 1;\r\n\t} else {\r\n\t\treturn -1;\r\n\t}\r\n}\r\n\r\n\r\n/**\r\n * Generate id\r\n * @param {HTMLElement} el\r\n * @returns {String}\r\n * @private\r\n */\r\nfunction _generateId(el) {\r\n\tlet str = el.tagName + el.className + el.src + el.href + el.textContent,\r\n\t\ti = str.length,\r\n\t\tsum = 0;\r\n\r\n\twhile (i--) {\r\n\t\tsum += str.charCodeAt(i);\r\n\t}\r\n\r\n\treturn sum.toString(36);\r\n}\r\n\r\nfunction _saveInputCheckedState(root) {\r\n\tsavedInputChecked.length = 0;\r\n\r\n\tlet inputs = root.getElementsByTagName('input');\r\n\tlet idx = inputs.length;\r\n\r\n\twhile (idx--) {\r\n\t\tlet el = inputs[idx];\r\n\t\tel.checked && savedInputChecked.push(el);\r\n\t}\r\n}\r\n\r\nfunction _nextTick(fn) {\r\n\treturn setTimeout(fn, 0);\r\n}\r\n\r\nfunction _cancelNextTick(id) {\r\n\treturn clearTimeout(id);\r\n}\r\n\r\n// Fixed #973:\r\nif (documentExists) {\r\n\ton(document, 'touchmove', function(evt) {\r\n\t\tif ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\r\n\t\t\tevt.preventDefault();\r\n\t\t}\r\n\t});\r\n}\r\n\r\n\r\n// Export utils\r\nSortable.utils = {\r\n\ton: on,\r\n\toff: off,\r\n\tcss: css,\r\n\tfind: find,\r\n\tis: function (el, selector) {\r\n\t\treturn !!closest(el, selector, el, false);\r\n\t},\r\n\textend: extend,\r\n\tthrottle: throttle,\r\n\tclosest: closest,\r\n\ttoggleClass: toggleClass,\r\n\tclone: clone,\r\n\tindex: index,\r\n\tnextTick: _nextTick,\r\n\tcancelNextTick: _cancelNextTick,\r\n\tdetectDirection: _detectDirection,\r\n\tgetChild: getChild\r\n};\r\n\r\n\r\n/**\r\n * Get the Sortable instance of an element\r\n * @param {HTMLElement} element The element\r\n * @return {Sortable|undefined} The instance of Sortable\r\n */\r\nSortable.get = function(element) {\r\n\treturn element[expando];\r\n};\r\n\r\n/**\r\n * Mount a plugin to Sortable\r\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\r\n */\r\nSortable.mount = function(...plugins) {\r\n\tif (plugins[0].constructor === Array) plugins = plugins[0];\r\n\r\n\tplugins.forEach((plugin) => {\r\n\t\tif (!plugin.prototype || !plugin.prototype.constructor) {\r\n\t\t\tthrow `Sortable: Mounted plugin must be a constructor function, not ${ {}.toString.call(plugin) }`;\r\n\t\t}\r\n\t\tif (plugin.utils) Sortable.utils = { ...Sortable.utils, ...plugin.utils };\r\n\r\n\t\tPluginManager.mount(plugin);\r\n\t}); \r\n};\r\n\r\n\r\n\r\n/**\r\n * Create sortable instance\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\r\nSortable.create = function (el, options) {\r\n\treturn new Sortable(el, options);\r\n};\r\n\r\n\r\n// Export\r\n// Sortable.version = version;\r\n\r\n\r\nexport default Sortable;\r\n","import Sortable from \"../SortableJs/Sortable\";\r\nimport { insertNodeAt, camelize, console, removeNode } from \"./util/helper\";\r\n\r\nfunction buildAttribute(object, propName, value) {\r\n if (value === undefined) {\r\n return object;\r\n }\r\n object = object || {};\r\n object[propName] = value;\r\n return object;\r\n}\r\n\r\nfunction computeVmIndex(vnodes, element) {\r\n return vnodes.map(elt => elt.elm).indexOf(element);\r\n}\r\n\r\nfunction computeIndexes(slots, children, isTransition, footerOffset) {\r\n if (!slots) {\r\n return [];\r\n }\r\n\r\n const elmFromNodes = slots.map(elt => elt.elm);\r\n const footerIndex = children.length - footerOffset;\r\n const rawIndexes = [...children].map((elt, idx) =>\r\n idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt)\r\n );\r\n return isTransition ? rawIndexes.filter(ind => ind !== -1) : rawIndexes;\r\n}\r\n\r\nfunction emit(evtName, evtData) {\r\n this.$nextTick(() => this.$emit(evtName.toLowerCase(), evtData));\r\n}\r\n\r\nfunction delegateAndEmit(evtName) {\r\n return evtData => {\r\n if (this.realList !== null) {\r\n this[\"onDrag\" + evtName](evtData);\r\n }\r\n emit.call(this, evtName, evtData);\r\n };\r\n}\r\n\r\nfunction isTransitionName(name) {\r\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\r\n}\r\n\r\nfunction isTransition(slots) {\r\n if (!slots || slots.length !== 1) {\r\n return false;\r\n }\r\n const [{ componentOptions }] = slots;\r\n if (!componentOptions) {\r\n return false;\r\n }\r\n return isTransitionName(componentOptions.tag);\r\n}\r\n\r\nfunction getSlot(slot, scopedSlot, key) {\r\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\r\n}\r\n\r\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\r\n let headerOffset = 0;\r\n let footerOffset = 0;\r\n const header = getSlot(slot, scopedSlot, \"header\");\r\n if (header) {\r\n headerOffset = header.length;\r\n children = children ? [...header, ...children] : [...header];\r\n }\r\n const footer = getSlot(slot, scopedSlot, \"footer\");\r\n if (footer) {\r\n footerOffset = footer.length;\r\n children = children ? [...children, ...footer] : [...footer];\r\n }\r\n return { children, headerOffset, footerOffset };\r\n}\r\n\r\nfunction getComponentAttributes($attrs, componentData) {\r\n let attributes = null;\r\n const update = (name, value) => {\r\n attributes = buildAttribute(attributes, name, value);\r\n };\r\n const attrs = Object.keys($attrs)\r\n .filter(key => key === \"id\" || key.startsWith(\"data-\"))\r\n .reduce((res, key) => {\r\n res[key] = $attrs[key];\r\n return res;\r\n }, {});\r\n update(\"attrs\", attrs);\r\n\r\n if (!componentData) {\r\n return attributes;\r\n }\r\n const { on, props, attrs: componentDataAttrs } = componentData;\r\n update(\"on\", on);\r\n update(\"props\", props);\r\n Object.assign(attributes.attrs, componentDataAttrs);\r\n return attributes;\r\n}\r\n\r\nconst eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\r\nconst eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\r\nconst readonlyProperties = [\"Move\", ...eventsListened, ...eventsToEmit].map(\r\n evt => \"on\" + evt\r\n);\r\nvar draggingElement = null;\r\n\r\nconst props = {\r\n options: Object,\r\n list: {\r\n type: Array,\r\n required: false,\r\n default: null\r\n },\r\n value: {\r\n type: Array,\r\n required: false,\r\n default: null\r\n },\r\n noTransitionOnDrag: {\r\n type: Boolean,\r\n default: false\r\n },\r\n clone: {\r\n type: Function,\r\n default: original => {\r\n return original;\r\n }\r\n },\r\n element: {\r\n type: String,\r\n default: \"div\"\r\n },\r\n tag: {\r\n type: String,\r\n default: null\r\n },\r\n move: {\r\n type: Function,\r\n default: null\r\n },\r\n componentData: {\r\n type: Object,\r\n required: false,\r\n default: null\r\n }\r\n};\r\n\r\nconst draggableComponent = {\r\n name: \"draggable\",\r\n\r\n inheritAttrs: false,\r\n\r\n props,\r\n\r\n data() {\r\n return {\r\n transitionMode: false,\r\n noneFunctionalComponentMode: false\r\n };\r\n },\r\n\r\n render(h) {\r\n const slots = this.$slots.default;\r\n this.transitionMode = isTransition(slots);\r\n const { children, headerOffset, footerOffset } = computeChildrenAndOffsets(\r\n slots,\r\n this.$slots,\r\n this.$scopedSlots\r\n );\r\n this.headerOffset = headerOffset;\r\n this.footerOffset = footerOffset;\r\n const attributes = getComponentAttributes(this.$attrs, this.componentData);\r\n return h(this.getTag(), attributes, children);\r\n },\r\n\r\n created() {\r\n if (this.list !== null && this.value !== null) {\r\n console.error(\r\n \"Value and list props are mutually exclusive! Please set one or another.\"\r\n );\r\n }\r\n\r\n if (this.element !== \"div\") {\r\n console.warn(\r\n \"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\"\r\n );\r\n }\r\n\r\n if (this.options !== undefined) {\r\n console.warn(\r\n \"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\"\r\n );\r\n }\r\n },\r\n\r\n mounted() {\r\n this.noneFunctionalComponentMode =\r\n this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() &&\r\n !this.getIsFunctional();\r\n if (this.noneFunctionalComponentMode && this.transitionMode) {\r\n throw new Error(\r\n `Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: ${this.getTag()}`\r\n );\r\n }\r\n const optionsAdded = {};\r\n eventsListened.forEach(elt => {\r\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(this, elt);\r\n });\r\n\r\n eventsToEmit.forEach(elt => {\r\n optionsAdded[\"on\" + elt] = emit.bind(this, elt);\r\n });\r\n\r\n const attributes = Object.keys(this.$attrs).reduce((res, key) => {\r\n res[camelize(key)] = this.$attrs[key];\r\n return res;\r\n }, {});\r\n\r\n const options = Object.assign({}, this.options, attributes, optionsAdded, {\r\n onMove: (evt, originalEvent) => {\r\n return this.onDragMove(evt, originalEvent);\r\n }\r\n });\r\n !(\"draggable\" in options) && (options.draggable = \">*\");\r\n this._sortable = new Sortable(this.rootContainer, options);\r\n this.computeIndexes();\r\n },\r\n\r\n beforeDestroy() {\r\n if (this._sortable !== undefined) this._sortable.destroy();\r\n },\r\n\r\n computed: {\r\n rootContainer() {\r\n return this.transitionMode ? this.$el.children[0] : this.$el;\r\n },\r\n\r\n realList() {\r\n return this.list ? this.list : this.value;\r\n }\r\n },\r\n\r\n watch: {\r\n options: {\r\n handler(newOptionValue) {\r\n this.updateOptions(newOptionValue);\r\n },\r\n deep: true\r\n },\r\n\r\n $attrs: {\r\n handler(newOptionValue) {\r\n this.updateOptions(newOptionValue);\r\n },\r\n deep: true\r\n },\r\n\r\n realList() {\r\n this.computeIndexes();\r\n }\r\n },\r\n\r\n methods: {\r\n getIsFunctional() {\r\n const { fnOptions } = this._vnode;\r\n return fnOptions && fnOptions.functional;\r\n },\r\n\r\n getTag() {\r\n return this.tag || this.element;\r\n },\r\n\r\n updateOptions(newOptionValue) {\r\n for (var property in newOptionValue) {\r\n const value = camelize(property);\r\n if (readonlyProperties.indexOf(value) === -1) {\r\n this._sortable.option(value, newOptionValue[property]);\r\n }\r\n }\r\n },\r\n\r\n getChildrenNodes() {\r\n if (this.noneFunctionalComponentMode) {\r\n return this.$children[0].$slots.default;\r\n }\r\n const rawNodes = this.$slots.default;\r\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\r\n },\r\n\r\n computeIndexes() {\r\n this.$nextTick(() => {\r\n this.visibleIndexes = computeIndexes(\r\n this.getChildrenNodes(),\r\n this.rootContainer.children,\r\n this.transitionMode,\r\n this.footerOffset\r\n );\r\n });\r\n },\r\n\r\n getUnderlyingVm(htmlElt) {\r\n const index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\r\n if (index === -1) {\r\n //Edge case during move callback: related element might be\r\n //an element different from collection\r\n return null;\r\n }\r\n const element = this.realList[index];\r\n return { index, element };\r\n },\r\n\r\n getUnderlyingPotencialDraggableComponent({ __vue__: vue }) {\r\n if (\r\n !vue ||\r\n !vue.$options ||\r\n !isTransitionName(vue.$options._componentTag)\r\n ) {\r\n if (\r\n !(\"realList\" in vue) &&\r\n vue.$children.length === 1 &&\r\n \"realList\" in vue.$children[0]\r\n )\r\n return vue.$children[0];\r\n\r\n return vue;\r\n }\r\n return vue.$parent;\r\n },\r\n\r\n emitChanges(evt) {\r\n this.$nextTick(() => {\r\n this.$emit(\"change\", evt);\r\n });\r\n },\r\n\r\n alterList(onList) {\r\n if (this.list) {\r\n onList(this.list);\r\n return;\r\n }\r\n const newList = [...this.value];\r\n onList(newList);\r\n this.$emit(\"input\", newList);\r\n },\r\n\r\n spliceList() {\r\n const spliceList = list => list.splice(...arguments);\r\n this.alterList(spliceList);\r\n },\r\n\r\n updatePosition(oldIndex, newIndex) {\r\n const updatePosition = list =>\r\n list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\r\n this.alterList(updatePosition);\r\n },\r\n\r\n getRelatedContextFromMoveEvent({ to, related }) {\r\n const component = this.getUnderlyingPotencialDraggableComponent(to);\r\n if (!component) {\r\n return { component };\r\n }\r\n const list = component.realList;\r\n const context = { list, component };\r\n if (to !== related && list && component.getUnderlyingVm) {\r\n const destination = component.getUnderlyingVm(related);\r\n if (destination) {\r\n return Object.assign(destination, context);\r\n }\r\n }\r\n return context;\r\n },\r\n\r\n getVmIndex(domIndex) {\r\n const indexes = this.visibleIndexes;\r\n const numberIndexes = indexes.length;\r\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\r\n },\r\n\r\n getComponent() {\r\n return this.$slots.default[0].componentInstance;\r\n },\r\n\r\n resetTransitionData(index) {\r\n if (!this.noTransitionOnDrag || !this.transitionMode) {\r\n return;\r\n }\r\n var nodes = this.getChildrenNodes();\r\n nodes[index].data = null;\r\n const transitionContainer = this.getComponent();\r\n transitionContainer.children = [];\r\n transitionContainer.kept = undefined;\r\n },\r\n\r\n onDragStart(evt) {\r\n this.context = this.getUnderlyingVm(evt.item);\r\n evt.item._underlying_vm_ = this.clone(this.context.element);\r\n draggingElement = evt.item;\r\n },\r\n\r\n onDragAdd(evt) {\r\n const element = evt.item._underlying_vm_;\r\n if (element === undefined) {\r\n return;\r\n }\r\n removeNode(evt.item);\r\n const newIndex = this.getVmIndex(evt.newIndex);\r\n this.spliceList(newIndex, 0, element);\r\n this.computeIndexes();\r\n const added = { element, newIndex };\r\n this.emitChanges({ added }); \r\n },\r\n\r\n onDragRemove(evt) {\r\n insertNodeAt(this.rootContainer, evt.item, evt.oldIndex);\r\n if (evt.pullMode === \"clone\") {\r\n removeNode(evt.clone);\r\n return;\r\n }\r\n const oldIndex = this.context.index;\r\n this.spliceList(oldIndex, 1);\r\n const removed = { element: this.context.element, oldIndex };\r\n this.resetTransitionData(oldIndex);\r\n this.emitChanges({ removed });\r\n },\r\n\r\n onDragUpdate(evt) {\r\n removeNode(evt.item);\r\n insertNodeAt(evt.from, evt.item, evt.oldIndex);\r\n const oldIndex = this.context.index;\r\n const newIndex = this.getVmIndex(evt.newIndex);\r\n this.updatePosition(oldIndex, newIndex);\r\n const moved = { element: this.context.element, oldIndex, newIndex };\r\n this.emitChanges({ moved });\r\n },\r\n\r\n updateProperty(evt, propertyName) {\r\n evt.hasOwnProperty(propertyName) &&\r\n (evt[propertyName] += this.headerOffset);\r\n },\r\n\r\n computeFutureIndex(relatedContext, evt) {\r\n if (!relatedContext.element) {\r\n return 0;\r\n }\r\n const domChildren = [...evt.to.children].filter(\r\n el => el.style[\"display\"] !== \"none\"\r\n );\r\n const currentDOMIndex = domChildren.indexOf(evt.related);\r\n const currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\r\n const draggedInList = domChildren.indexOf(draggingElement) !== -1;\r\n return draggedInList || !evt.willInsertAfter\r\n ? currentIndex\r\n : currentIndex + 1;\r\n },\r\n\r\n onDragMove(evt, originalEvent) {\r\n const onMove = this.move;\r\n if (!onMove || !this.realList) {\r\n return true;\r\n }\r\n\r\n const relatedContext = this.getRelatedContextFromMoveEvent(evt);\r\n const draggedContext = this.context;\r\n const futureIndex = this.computeFutureIndex(relatedContext, evt);\r\n Object.assign(draggedContext, { futureIndex });\r\n const sendEvt = Object.assign({}, evt, {\r\n relatedContext,\r\n draggedContext\r\n });\r\n return onMove(sendEvt, originalEvent);\r\n },\r\n\r\n onDragEnd() {\r\n this.computeIndexes();\r\n draggingElement = null;\r\n }\r\n }\r\n};\r\n\r\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\r\n window.Vue.component(\"draggable\", draggableComponent);\r\n}\r\n\r\nexport default draggableComponent;\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue'\r\nimport Component from 'vue-class-component'\r\nimport api from '../../api'\r\nimport { RoleGroup } from '../../api/role'\r\nimport { ModalLayout } from '../../templates'\r\n//@ts-ignore\r\nimport VueDraggable from '../common/VueDraggable/VueDraggable'\r\nimport { TextBoxField } from '../forms'\r\nimport { Prop, Watch } from 'vue-property-decorator'\r\nimport { ROLE_GROUP_MODAL } from './modal-names'\r\n\r\n@Component({\r\n name: ROLE_GROUP_MODAL,\r\n components: { ModalLayout, draggable: VueDraggable, TextBoxField },\r\n})\r\nexport default class RoleGroupModal extends Vue {\r\n @Prop({ type: Array, default: () => [] }) initialRoles!: RoleGroup[]\r\n\r\n loading: boolean = false\r\n modalSize: string = 'width: 800px; height: 600px;'\r\n /** 사용 가능한 권한그룹 목록 */\r\n availableRoles: RoleGroup[] = []\r\n /** 선택된 권한목록에 추가된 권한그룹 목록 */\r\n selectedRoles: RoleGroup[] = []\r\n keyword: string = ''\r\n\r\n get dragOptions() {\r\n return {\r\n animation: 0,\r\n group: 'roles',\r\n // disabled: !this.editable,\r\n 'ghost-class': 'ghost',\r\n }\r\n }\r\n\r\n get roles() {\r\n return this.availableRoles.filter((x) =>\r\n x.roleName.includes(this.keyword)\r\n )\r\n }\r\n\r\n async created() {\r\n const selectedIds = this.initialRoles.map((x) => x.roleId)\r\n const roles = await api.role.getRoleGroups()\r\n this.availableRoles = roles.filter(\r\n (x) => !selectedIds.includes(x.roleId)\r\n )\r\n this.selectedRoles = roles.filter((x) => selectedIds.includes(x.roleId))\r\n }\r\n\r\n clear() {\r\n this.availableRoles.push(...this.selectedRoles)\r\n this.selectedRoles = []\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleGroupModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleGroupModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RoleGroupModal.vue?vue&type=template&id=c39e0902&\"\nimport script from \"./RoleGroupModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./RoleGroupModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RoleGroupModal.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"dvlayerPopup\"}},[_c('div',{staticClass:\"modal-flex\"},[_c('div',{staticClass:\"modal-flex-inner\"},[_c('div',{staticClass:\"modal-header\"},[_c('div',{staticClass:\"dp-flex\"},[_c('div',{staticClass:\"mr-auto\"},[_c('h6',{staticClass:\"title\",attrs:{\"id\":\"dvlayerTitle\"}})]),_c('div',{staticClass:\"ml-auto\"},[_c('a',{staticClass:\"btn ico-btn ico-m\",attrs:{\"id\":\"btnModalClose\",\"onclick\":\"closeFrame();\"}},[_c('i',{staticClass:\"icon-fux-close\"})])])])]),_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-size optional-modal-winpopup optional-modal-w-full optional-modal-h-full\"},[_c('iframe',{attrs:{\"id\":\"frmLayer\"}})])]),_c('div',{staticClass:\"modal-footer\"})])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue'\r\nimport $ from 'jquery'\r\nimport { Component, Prop } from 'vue-property-decorator'\r\nimport { IFRAME_MODAL } from './modal-names'\r\n\r\n@Component({\r\n name: IFRAME_MODAL,\r\n})\r\nexport default class IframeModalV3 extends Vue {\r\n created() {\r\n //@ts-ignore\r\n window.isTeams = this.isTeams\r\n //@ts-ignore\r\n window['showiFrameWindow'] = (\r\n newUrl: string,\r\n title?: string,\r\n style?: any\r\n ) => {\r\n if (style.width) {\r\n $('#dvlayerPopup .modal-size').css('width', style.width)\r\n $('#dvlayerPopup .optional-modal-w-full').removeClass(\r\n 'optional-modal-w-full'\r\n )\r\n }\r\n\r\n var $layerInner = $('#dvlayerPopup .modal-flex-inner')\r\n if ($layerInner) {\r\n if (style.top) {\r\n $layerInner.css('margin-top', style.top)\r\n }\r\n\r\n if (style.left) {\r\n $layerInner.css('margin-left', style.left)\r\n }\r\n }\r\n\r\n //@ts-ignore\r\n window.iframeClosed = false\r\n $('#dvlayerPopup iframe').attr('src', newUrl)\r\n if (title !== undefined && title !== '') {\r\n //$('#dvlayerTitle').html(title);\r\n }\r\n\r\n var $layer = $('#dvlayerPopup')\r\n if ($layer.length) {\r\n var $ifrm = $layer.find('iframe')\r\n if ($ifrm.length) {\r\n // $ifrm.get(0)?.style.setProperty('width', ((style?.width || 600) + 200) + 'px', 'important');\r\n // $ifrm.get(0)?.style.setProperty('height', ((style?.height || 400) + 200) + 'px', 'important');\r\n $ifrm.on('load', (e) => {\r\n var iframe = e.target\r\n var $html = $((iframe as any).contentDocument).find(\r\n 'html'\r\n )\r\n if ($html.length) {\r\n var intervalCount = 10000\r\n var flag = false\r\n var trigger = setInterval(() => {\r\n var $common = $(\r\n (iframe as any).contentDocument\r\n ).find('#common-wrapper')\r\n\r\n if ($common.length && !flag) {\r\n flag = true\r\n $common.addClass('inner-frame')\r\n\r\n var $headerTitle = $html.find(\r\n '.pop-header > .dp-flex .title'\r\n )\r\n\r\n var $footer = $html.find(\r\n '.pop-footer > .dp-flex'\r\n )\r\n\r\n var $mheader = $layer.find('.modal-header')\r\n var $mfooter = $layer.find('.modal-footer')\r\n\r\n //$mfooter.empty();\r\n\r\n if ($headerTitle.length) {\r\n var text = $headerTitle.text()\r\n //$header.appendTo($mheader);\r\n $mheader.find('.title').text(text)\r\n //$html.find('.pop-header').hide();\r\n }\r\n\r\n if ($footer.length) {\r\n $footer.appendTo($mfooter)\r\n //$html.find('.pop-footer').hide();\r\n }\r\n\r\n clearInterval(trigger)\r\n }\r\n intervalCount--\r\n\r\n if (intervalCount < 0 && !flag) {\r\n clearInterval(trigger)\r\n }\r\n }, 11)\r\n\r\n //$html.get(0)?.style.setProperty('overflow', 'hidden', 'important');\r\n }\r\n })\r\n }\r\n\r\n $layer.css({\r\n opacity: 0,\r\n filter: 'Alpha(Opacity=0)',\r\n })\r\n\r\n $layer.show()\r\n $layer.animate(\r\n {\r\n opacity: 1,\r\n filter: 'Alpha(Opacity=100)',\r\n },\r\n {\r\n duration: 500,\r\n complete: () => {\r\n $layer.removeAttr('style')\r\n $layer.show()\r\n },\r\n }\r\n )\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IframeModalV3.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IframeModalV3.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IframeModalV3.vue?vue&type=template&id=66ece500&\"\nimport script from \"./IframeModalV3.vue?vue&type=script&lang=ts&\"\nexport * from \"./IframeModalV3.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\r\nimport store from '@/store'\r\nimport * as types from './store/types'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n//모달추가\r\nimport { IFRAME_MODAL, ROLE_GROUP_MODAL } from \"./components/modal/modal-names\";\r\n\r\nimport modalHelper from \"./util/modal-helper\";\r\nimport EumModal from \"./components/modal/EumModal.vue\";\r\nimport RoleGroupModal from \"./components/modal/RoleGroupModal.vue\";\r\nimport IframeModalV3 from \"./components/modal/IframeModalV3.vue\";\r\n\r\n//2024-01-25 추가\r\nimport { i18n } from '@appbase/util'\r\nimport axios from \"axios\";\r\n\r\nexport const initializeAsync = () => {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n //모달추가\r\n Vue.component(\"eum-modal\", EumModal);\r\n Vue.component(ROLE_GROUP_MODAL, RoleGroupModal);\r\n Vue.component(IFRAME_MODAL, IframeModalV3);\r\n\r\n // [2024-01-25 이준형] alertAsync, confirmAsync\r\n (function (window, document) {\r\n var _alertBase = window.alert;\r\n var _confirmBase = window.confirm;\r\n\r\n var _CONST_MODAL_CLASS = \"_eum_runtime_modal_\";\r\n var _CONST_MODAL_MSG_CLASS = \"_eum_runtime_msg_\";\r\n var _CONST_BUTTON_OK_CLASS = \"_eum_runtime_btn_ok_\";\r\n var _CONST_BUTTON_CANCEL_CLASS = \"_eum_runtime_btn_cancel_\";\r\n var _CONST_CONFIRM_AREA_CLASS = \"_eum_runtime_confirm_area_\";\r\n\r\n // Enterkey 이벤트 감지를 위한 로직 추가\r\n (window as any)._CONST_MODAL_EVENT = function () {\r\n var elemOk = (document as any).querySelector(\r\n `.${_CONST_BUTTON_OK_CLASS}`\r\n );\r\n if (elemOk) {\r\n elemOk.click();\r\n }\r\n };\r\n\r\n (window as any).addEventListener(\"keydown\", (event: any) => {\r\n if (event.keyCode == 13) {\r\n (window as any)._CONST_MODAL_EVENT();\r\n }\r\n });\r\n\r\n var modalHtml = '';\r\n var axiosClient = axios.create();\r\n axiosClient.request({\r\n url: '/cm/template/common/AlertConfirm.html?v=' + Date.now(),\r\n method: 'get',\r\n responseType: 'text',\r\n }).then((res: any) => {\r\n modalHtml = res?.data;\r\n\r\n var _baseFunc = (type: 'alert' | 'confirm', msg: string, callback: any) => {\r\n // var elems = document.querySelectorAll('._eum_runtime_modal_');\r\n // if (elems) {\r\n // elems.forEach(function (elem, idx) {\r\n // elem.remove();\r\n // });\r\n // }\r\n \r\n var parser = new DOMParser();\r\n var parsedHtml = parser.parseFromString(modalHtml, 'text/html');\r\n var elem = parsedHtml.body.firstChild;\r\n \r\n if (elem) {\r\n\r\n if (type == 'confirm') {\r\n (elem as any).querySelectorAll(`.${_CONST_CONFIRM_AREA_CLASS}`).forEach((el: any) => {\r\n el.style.display = 'inline-block';\r\n });\r\n }\r\n\r\n var elemMsg = (elem as any).querySelector(`.${_CONST_MODAL_MSG_CLASS}`);\r\n if (elemMsg) {\r\n elemMsg.style.whiteSpace = 'pre-line';\r\n elemMsg.textContent = msg;\r\n }\r\n \r\n var elemOk = (elem as any).querySelector(`.${_CONST_BUTTON_OK_CLASS}`);\r\n if (elemOk) {\r\n elemOk.textContent = i18n.t(\"확인\").toString();\r\n elemOk.onclick = function (e: any) {\r\n var elem = e.target || e.srcElement;\r\n var parent = elem.closest(`.${_CONST_MODAL_CLASS}`);\r\n if (parent) {\r\n parent.remove();\r\n }\r\n \r\n if (callback) {\r\n callback(true);\r\n }\r\n }\r\n }\r\n \r\n var elemClose = (elem as any).querySelector(`.${_CONST_BUTTON_CANCEL_CLASS}`);\r\n if (elemClose) {\r\n elemClose.textContent = i18n.t(\"취소\").toString();\r\n elemClose.onclick = function (e: any) {\r\n var elem = e.target || e.srcElement;\r\n var parent = elem.closest(`.${_CONST_MODAL_CLASS}`);\r\n if (parent) {\r\n parent.remove();\r\n }\r\n \r\n if (callback) {\r\n callback(false);\r\n }\r\n }\r\n }\r\n \r\n document.body.append(elem);\r\n \r\n if (elemOk) {\r\n elemOk.focus();\r\n }\r\n }\r\n \r\n return false;\r\n }\r\n\r\n (window as any).alertAsync = (msg: string) => {\r\n return new Promise(resolve => {\r\n _baseFunc('alert', msg, resolve);\r\n })\r\n }\r\n\r\n (window as any).confirmAsync = (msg: string) => {\r\n return new Promise(resolve => {\r\n _baseFunc('confirm', msg, resolve);\r\n })\r\n }\r\n }); \r\n })(window, document);\r\n\r\n resolve();\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n};\r\n\r\nVue.prototype.setPage = (page: appbase.TPageInfo) => {\r\n store.commit(types.PAGE_CURRENT, page)\r\n}\r\n\r\n//모달추가\r\nVue.prototype.closeCurrentModal = function () {\r\n this.$emit(\"close-current-eum-modal\", this);\r\n};\r\n\r\n\r\nVue.prototype.getAppConfig = (key: string): string | undefined | null => {\r\n const current = store.getters[accountTypes.CURRENT] as account.TCurrent\r\n const config = current.appConfig.find((x) => x.key === key)?.value as string | undefined | null\r\n return config\r\n}\r\nObject.defineProperty(Vue.prototype, 'isTeams', {\r\n get: function isTeams() {\r\n return store.getters[types.TEAMS] as boolean\r\n },\r\n set: function isTeams(value: boolean) {\r\n store.dispatch(types.TEAMS, value)\r\n },\r\n})\r\n\r\nexport {default as store} from './store' //2022-10-27 누락 사항으로 추가\r\n\r\n","import Vue from 'vue'\r\nimport { Watch } from 'vue-property-decorator'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport * as types from './store/types'\r\nimport Vue2TouchEvents from 'vue2-touch-events'\r\nimport { i18n } from '@appbase/util/i18n-setup'\r\nimport { initializeAsync as initAppBaseAsync } from '@appbase/module'\r\n\r\nVue.config.productionTip = false;\r\n\r\n// infinite scroll\r\nconst infiniteScroll = require('vue-infinite-scroll')\r\nVue.use(infiniteScroll)\r\n\r\nVue.use(Vue2TouchEvents, {\r\n disableClick: false,\r\n touchHoldToTolerance: 300,\r\n swipeTolerance: 60,\r\n longTapTimeInterval: 400,\r\n})\r\n\r\n// //\r\n// ────────────────────────────────────────────────────────────────── I ──────────\r\n// :::::: I N I T V U E R O O T : : : : : : : :\r\n// ────────────────────────────────────────────────────────────────────────────\r\n//\r\n\r\nVue.prototype.setMenu = (name: string) => {\r\n store.commit(types.CURRENT_MENU, name)\r\n}\r\n\r\nVue.prototype.isloading = (load: boolean) => {\r\n store.commit(types.GLOBAL_BUSY, load)\r\n}\r\n\r\n// new Vue({\r\n// router,\r\n// store,\r\n// i18n,\r\n// render: (h) => h(App),\r\n// }).$mount('#app')\r\n//\r\n\r\nconst bootstrap = async () => {\r\n await initAppBaseAsync()\r\n\r\n new Vue({\r\n router,\r\n store,\r\n i18n,\r\n render: (h) => h(App),\r\n }).$mount('#app')\r\n}\r\n\r\nbootstrap();\r\n","export enum FilterConditions {\r\n /**\r\n * 포함하는\r\n */\r\n ContainsSubstring,\r\n ExcludesBitmask,\r\n /**\r\n * 속성 존재하는\r\n */\r\n Exists,\r\n /**\r\n * 일치하는\r\n */\r\n IsEqualTo,\r\n /**\r\n * 보다 큰\r\n */\r\n IsGreaterThan,\r\n /**\r\n * 보다 크거나 같은\r\n */\r\n IsGreaterThanOrEqualTo,\r\n /**\r\n * 보다 작은\r\n */\r\n IsLessThan,\r\n /**\r\n * 보다 작거나 같은\r\n */\r\n IsLessThanOrEqualTo,\r\n /**\r\n * 같지 않은\r\n */\r\n IsNotEqualTo,\r\n /**\r\n * 부정\r\n */\r\n Not,\r\n}\r\nexport enum FilterContainmentModes {\r\n /**\r\n * 전체 문자열과 상수와 정확히 일치\r\n */\r\n FullString,\r\n /**\r\n * 상수의 시작이 문자열로 시작\r\n */\r\n Prefixed,\r\n /**\r\n * 지정된 문자열 포함, 상수의 개별 단어 중간에서 시작 가능\r\n */\r\n Substring,\r\n /**\r\n * 문자열에서 모든 개별 단어를 접두사로 하는 단어 포함 (개별 단어는 AND 조건)\r\n */\r\n PrefixOnWords,\r\n /**\r\n * 문자열의 단어가 상수 안에서 정확히 일치(중간 단어 시작 불가)\r\n */\r\n ExactPhrase,\r\n}\r\nexport enum FilterComparisonModes {\r\n /**\r\n * 정확히 일치\r\n */\r\n Exact,\r\n /**\r\n * 대/소문자 무시\r\n */\r\n IgnoreCase,\r\n /**\r\n * 공백 문자 무시\r\n */\r\n IgnoreNonSpacingCharacters,\r\n /**\r\n * 대/소문자, 공백 문자\r\n */\r\n IgnoreCaseAndNonSpacingCharacters,\r\n}\r\nexport enum WellKnownFolderName {\r\n /// \r\n /// The Calendar folder.\r\n /// \r\n Calendar,\r\n\r\n /// \r\n /// The Contacts folder.\r\n /// \r\n Contacts,\r\n\r\n /// \r\n /// The Deleted Items folder\r\n /// \r\n DeletedItems,\r\n\r\n /// \r\n /// The Drafts folder.\r\n /// \r\n Drafts,\r\n\r\n /// \r\n /// The Inbox folder.\r\n /// \r\n Inbox,\r\n\r\n /// \r\n /// The Journal folder.\r\n /// \r\n Journal,\r\n\r\n /// \r\n /// The Notes folder.\r\n /// \r\n Notes,\r\n\r\n /// \r\n /// The Outbox folder.\r\n /// \r\n Outbox,\r\n\r\n /// \r\n /// The Sent Items folder.\r\n /// \r\n SentItems,\r\n\r\n /// \r\n /// The Tasks folder.\r\n /// \r\n Tasks,\r\n\r\n /// \r\n /// The message folder root.\r\n /// \r\n MsgFolderRoot,\r\n\r\n /// \r\n /// The root of the Public Folders hierarchy.\r\n /// \r\n PublicFoldersRoot,\r\n\r\n /// \r\n /// The root of the mailbox.\r\n /// \r\n Root,\r\n\r\n /// \r\n /// The Junk E-mail folder.\r\n /// \r\n JunkEmail,\r\n\r\n /// \r\n /// The Search Folders folder, also known as the Finder folder.\r\n /// \r\n SearchFolders,\r\n\r\n /// \r\n /// The Voicemail folder.\r\n /// \r\n VoiceMail,\r\n\r\n /// \r\n /// The Dumpster 2.0 root folder.\r\n /// \r\n RecoverableItemsRoot,\r\n\r\n /// \r\n /// The Dumpster 2.0 soft deletions folder.\r\n /// \r\n RecoverableItemsDeletions,\r\n\r\n /// \r\n /// The Dumpster 2.0 versions folder.\r\n /// \r\n RecoverableItemsVersions,\r\n\r\n /// \r\n /// The Dumpster 2.0 hard deletions folder.\r\n /// \r\n RecoverableItemsPurges,\r\n\r\n /// \r\n /// The Dumpster 2.0 discovery hold folder\r\n /// \r\n RecoverableItemsDiscoveryHolds,\r\n\r\n /// \r\n /// The root of the archive mailbox.\r\n /// \r\n ArchiveRoot,\r\n\r\n /// \r\n /// The root of the archive mailbox.\r\n /// \r\n ArchiveInbox,\r\n\r\n /// \r\n /// The message folder root in the archive mailbox.\r\n /// \r\n ArchiveMsgFolderRoot,\r\n\r\n /// \r\n /// The Deleted Items folder in the archive mailbox\r\n /// \r\n ArchiveDeletedItems,\r\n\r\n /// \r\n /// The Dumpster 2.0 root folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsRoot,\r\n\r\n /// \r\n /// The Dumpster 2.0 soft deletions folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsDeletions,\r\n\r\n /// \r\n /// The Dumpster 2.0 versions folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsVersions,\r\n\r\n /// \r\n /// The Dumpster 2.0 hard deletions folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsPurges,\r\n\r\n /// \r\n /// The Dumpster 2.0 discovery hold folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsDiscoveryHolds,\r\n\r\n /// \r\n /// The Sync Issues folder.\r\n /// \r\n SyncIssues,\r\n\r\n /// \r\n /// The Conflicts folder\r\n /// \r\n Conflicts,\r\n\r\n /// \r\n /// The Local failures folder\r\n /// \r\n LocalFailures,\r\n\r\n /// \r\n /// The Server failures folder\r\n /// \r\n ServerFailures,\r\n\r\n /// \r\n /// The Recipient Cache folder\r\n /// \r\n RecipientCache,\r\n\r\n /// \r\n /// The Quick Contacts folder\r\n /// \r\n QuickContacts,\r\n\r\n /// \r\n /// Conversation history folder\r\n /// \r\n ConversationHistory,\r\n\r\n /// \r\n /// AdminAuditLogs folder\r\n /// \r\n AdminAuditLogs,\r\n\r\n /// \r\n /// search folder\r\n /// \r\n ToDoSearch,\r\n\r\n /// \r\n /// MyContacts folder\r\n /// \r\n MyContacts,\r\n\r\n /// \r\n /// Directory (GAL)\r\n /// It is not a mailbox folder. It only indicates any GAL operation.\r\n /// \r\n Directory,\r\n\r\n /// \r\n /// IMContactList folder\r\n /// \r\n IMContactList,\r\n\r\n /// \r\n /// PeopleConnect folder\r\n /// \r\n PeopleConnect,\r\n\r\n /// \r\n /// Favorites folder\r\n /// \r\n Favorites,\r\n}\r\n\r\nexport enum DeleteMode {\r\n /// \r\n /// The item or folder will be permanently deleted.\r\n /// \r\n HardDelete,\r\n\r\n /// \r\n /// The item or folder will be moved to the dumpster. Items and folders in the dumpster can be recovered.\r\n /// \r\n SoftDelete,\r\n\r\n /// \r\n /// The item or folder will be moved to the mailbox' Deleted Items folder.\r\n /// \r\n MoveToDeletedItems,\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WriteBody.vue?vue&type=style&index=0&id=34a0bfda&lang=scss&scoped=true&\"","//i18n-setup.js\r\nimport Vue from 'vue';\r\nimport VueI18n from 'vue-i18n';\r\n//import messages from '@/lang/en';\r\nimport axios, { AxiosRequestConfig } from 'axios';\r\n\r\nVue.use(VueI18n);\r\n\r\nexport const i18n = new VueI18n({\r\n // locale: 'en', // set locale\r\n // fallbackLocale: 'en',\r\n});\r\n\r\nconst loadedLanguages = ['en']; // our default language that is preloaded\r\n\r\nfunction setI18nLanguage(lang: string) {\r\n i18n.locale = lang;\r\n axios.defaults.headers.common['Accept-Language'] = lang;\r\n document.querySelector('html')?.setAttribute('lang', lang);\r\n return lang;\r\n}\r\n\r\nexport function loadLanguageAsync(lang: string) {\r\n // If the same language\r\n if (i18n.locale === lang) {\r\n return Promise.resolve(setI18nLanguage(lang));\r\n } else {\r\n /* webpackChunkName: \"lang-[request]\" */ //`@/lang/${lang}`\r\n return axios\r\n .get(`/cm/gres/lang/${lang}.json`)\r\n .then((result) => {\r\n let data = result.data;\r\n let decodeMessage = Object.create({});\r\n for (let key in data) {\r\n if (typeof key == typeof '') {\r\n var value = data[key];\r\n if (value) {\r\n value = decodeURI(value);\r\n }\r\n decodeMessage[key] = value;\r\n }\r\n }\r\n i18n.setLocaleMessage(lang, { message: decodeMessage });\r\n console.log('i18nMessage', i18n.messages);\r\n loadedLanguages.push(lang);\r\n return setI18nLanguage(lang);\r\n })\r\n .catch((err) => {\r\n debugger;\r\n });\r\n }\r\n\r\n // // If the language was already loaded\r\n // if (loadedLanguages.includes(lang)) {\r\n // return Promise.resolve(setI18nLanguage(lang));\r\n // }\r\n\r\n // // // If the language hasn't been loaded yet\r\n // return import(\r\n // /* webpackChunkName: \"lang-[request]\" */ `@/i18n/messages/${lang}.js`\r\n // ).then((messages) => {\r\n // i18n.setLocaleMessage(lang, messages.default);\r\n // loadedLanguages.push(lang);\r\n // return setI18nLanguage(lang);\r\n // });\r\n}\r\n\r\nexport function createLanguageFiles() {\r\n return axios.get('/cm/api/system/String/create').then((res) => {\r\n return res;\r\n });\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./PageLayout.scss?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressRing.vue?vue&type=style&index=0&id=5ac4af60&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th',{staticClass:\"vertical-top\"},[_vm._v(_vm._s(_vm.name)),(_vm.required)?_c('span',{staticClass:\"required\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormGroup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FormGroup.vue?vue&type=template&id=b750ceba&\"\nimport script from \"./FormGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./FormGroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('textarea',{class:['fm-def', _vm.w100 ? 'w-100' : '', _vm.resize === false ? 'no-resize' : ''],attrs:{\"type\":_vm.type,\"name\":_vm.name,\"rows\":\"2\",\"required\":_vm.required,\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultilineTextBoxField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultilineTextBoxField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultilineTextBoxField.vue?vue&type=template&id=0fe4f1f8&\"\nimport script from \"./MultilineTextBoxField.vue?vue&type=script&lang=js&\"\nexport * from \"./MultilineTextBoxField.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{class:['fm-def', _vm.w100 ? 'w-100' : ''],attrs:{\"type\":_vm.type,\"name\":_vm.name,\"required\":_vm.required,\"placeholder\":_vm.placeholder,\"readonly\":_vm.readonly},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextBoxField.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextBoxField.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextBoxField.vue?vue&type=template&id=20a53c78&\"\nimport script from \"./TextBoxField.vue?vue&type=script&lang=js&\"\nexport * from \"./TextBoxField.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"layer-popup-wrap\",style:({ display: _vm.show ? 'block' : 'none' }),attrs:{\"id\":\"openMoveModal\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component({})\r\nexport default class ModalMask extends Vue {\r\n //\r\n // ────────────────────────────────────────────────── I ──────────\r\n // :::::: P R O P S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────\r\n //\r\n\r\n @Prop({ type: Boolean, default: false }) show!: boolean;\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalMask.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./ModalMask.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalMask.vue?vue&type=template&id=2f6afa10&\"\nimport script from \"./ModalMask.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalMask.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailAttachmentModal.vue?vue&type=style&index=0&id=8e5526be&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Paginate.vue?vue&type=style&index=0&id=4c8f510d&lang=css&scoped=true&\"","export default (function () {\r\n return {\r\n set(key: string, value: any) {\r\n if (!this.isSupported) {\r\n return\r\n }\r\n\r\n localStorage.setItem(key, JSON.stringify(value))\r\n },\r\n\r\n get(key: string) {\r\n if (!this.isSupported) {\r\n return\r\n }\r\n\r\n const value = localStorage.getItem(key)\r\n return value ? JSON.parse(value) : null\r\n },\r\n\r\n isSupported() {\r\n return typeof (Storage) !== 'undefined'\r\n }\r\n }\r\n})()\r\n","export enum FilterConditions {\r\n /**\r\n * 포함하는\r\n */\r\n ContainsSubstring,\r\n ExcludesBitmask,\r\n /**\r\n * 속성 존재하는\r\n */\r\n Exists,\r\n /**\r\n * 일치하는\r\n */\r\n IsEqualTo,\r\n /**\r\n * 보다 큰\r\n */\r\n IsGreaterThan,\r\n /**\r\n * 보다 크거나 같은\r\n */\r\n IsGreaterThanOrEqualTo,\r\n /**\r\n * 보다 작은\r\n */\r\n IsLessThan,\r\n /**\r\n * 보다 작거나 같은\r\n */\r\n IsLessThanOrEqualTo,\r\n /**\r\n * 같지 않은\r\n */\r\n IsNotEqualTo,\r\n /**\r\n * 부정\r\n */\r\n Not,\r\n}\r\nexport enum FilterContainmentModes {\r\n /**\r\n * 전체 문자열과 상수와 정확히 일치\r\n */\r\n FullString,\r\n /**\r\n * 상수의 시작이 문자열로 시작\r\n */\r\n Prefixed,\r\n /**\r\n * 지정된 문자열 포함, 상수의 개별 단어 중간에서 시작 가능\r\n */\r\n Substring,\r\n /**\r\n * 문자열에서 모든 개별 단어를 접두사로 하는 단어 포함 (개별 단어는 AND 조건)\r\n */\r\n PrefixOnWords,\r\n /**\r\n * 문자열의 단어가 상수 안에서 정확히 일치(중간 단어 시작 불가)\r\n */\r\n ExactPhrase,\r\n}\r\nexport enum FilterComparisonModes {\r\n /**\r\n * 정확히 일치\r\n */\r\n Exact,\r\n /**\r\n * 대/소문자 무시\r\n */\r\n IgnoreCase,\r\n /**\r\n * 공백 문자 무시\r\n */\r\n IgnoreNonSpacingCharacters,\r\n /**\r\n * 대/소문자, 공백 문자\r\n */\r\n IgnoreCaseAndNonSpacingCharacters,\r\n}\r\nexport enum WellKnownFolderName {\r\n /// \r\n /// The Calendar folder.\r\n /// \r\n Calendar,\r\n\r\n /// \r\n /// The Contacts folder.\r\n /// \r\n Contacts,\r\n\r\n /// \r\n /// The Deleted Items folder\r\n /// \r\n DeletedItems,\r\n\r\n /// \r\n /// The Drafts folder.\r\n /// \r\n Drafts,\r\n\r\n /// \r\n /// The Inbox folder.\r\n /// \r\n Inbox,\r\n\r\n /// \r\n /// The Journal folder.\r\n /// \r\n Journal,\r\n\r\n /// \r\n /// The Notes folder.\r\n /// \r\n Notes,\r\n\r\n /// \r\n /// The Outbox folder.\r\n /// \r\n Outbox,\r\n\r\n /// \r\n /// The Sent Items folder.\r\n /// \r\n SentItems,\r\n\r\n /// \r\n /// The Tasks folder.\r\n /// \r\n Tasks,\r\n\r\n /// \r\n /// The message folder root.\r\n /// \r\n MsgFolderRoot,\r\n\r\n /// \r\n /// The root of the Public Folders hierarchy.\r\n /// \r\n PublicFoldersRoot,\r\n\r\n /// \r\n /// The root of the mailbox.\r\n /// \r\n Root,\r\n\r\n /// \r\n /// The Junk E-mail folder.\r\n /// \r\n JunkEmail,\r\n\r\n /// \r\n /// The Search Folders folder, also known as the Finder folder.\r\n /// \r\n SearchFolders,\r\n\r\n /// \r\n /// The Voicemail folder.\r\n /// \r\n VoiceMail,\r\n\r\n /// \r\n /// The Dumpster 2.0 root folder.\r\n /// \r\n RecoverableItemsRoot,\r\n\r\n /// \r\n /// The Dumpster 2.0 soft deletions folder.\r\n /// \r\n RecoverableItemsDeletions,\r\n\r\n /// \r\n /// The Dumpster 2.0 versions folder.\r\n /// \r\n RecoverableItemsVersions,\r\n\r\n /// \r\n /// The Dumpster 2.0 hard deletions folder.\r\n /// \r\n RecoverableItemsPurges,\r\n\r\n /// \r\n /// The Dumpster 2.0 discovery hold folder\r\n /// \r\n RecoverableItemsDiscoveryHolds,\r\n\r\n /// \r\n /// The root of the archive mailbox.\r\n /// \r\n ArchiveRoot,\r\n\r\n /// \r\n /// The root of the archive mailbox.\r\n /// \r\n ArchiveInbox,\r\n\r\n /// \r\n /// The message folder root in the archive mailbox.\r\n /// \r\n ArchiveMsgFolderRoot,\r\n\r\n /// \r\n /// The Deleted Items folder in the archive mailbox\r\n /// \r\n ArchiveDeletedItems,\r\n\r\n /// \r\n /// The Dumpster 2.0 root folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsRoot,\r\n\r\n /// \r\n /// The Dumpster 2.0 soft deletions folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsDeletions,\r\n\r\n /// \r\n /// The Dumpster 2.0 versions folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsVersions,\r\n\r\n /// \r\n /// The Dumpster 2.0 hard deletions folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsPurges,\r\n\r\n /// \r\n /// The Dumpster 2.0 discovery hold folder in the archive mailbox.\r\n /// \r\n ArchiveRecoverableItemsDiscoveryHolds,\r\n\r\n /// \r\n /// The Sync Issues folder.\r\n /// \r\n SyncIssues,\r\n\r\n /// \r\n /// The Conflicts folder\r\n /// \r\n Conflicts,\r\n\r\n /// \r\n /// The Local failures folder\r\n /// \r\n LocalFailures,\r\n\r\n /// \r\n /// The Server failures folder\r\n /// \r\n ServerFailures,\r\n\r\n /// \r\n /// The Recipient Cache folder\r\n /// \r\n RecipientCache,\r\n\r\n /// \r\n /// The Quick Contacts folder\r\n /// \r\n QuickContacts,\r\n\r\n /// \r\n /// Conversation history folder\r\n /// \r\n ConversationHistory,\r\n\r\n /// \r\n /// AdminAuditLogs folder\r\n /// \r\n AdminAuditLogs,\r\n\r\n /// \r\n /// search folder\r\n /// \r\n ToDoSearch,\r\n\r\n /// \r\n /// MyContacts folder\r\n /// \r\n MyContacts,\r\n\r\n /// \r\n /// Directory (GAL)\r\n /// It is not a mailbox folder. It only indicates any GAL operation.\r\n /// \r\n Directory,\r\n\r\n /// \r\n /// IMContactList folder\r\n /// \r\n IMContactList,\r\n\r\n /// \r\n /// PeopleConnect folder\r\n /// \r\n PeopleConnect,\r\n\r\n /// \r\n /// Favorites folder\r\n /// \r\n Favorites,\r\n}\r\nexport enum ContactsStoredType{\r\n /**\r\n * database 버전\r\n */\r\n DB,\r\n /**\r\n * exchage 버전\r\n */\r\n EWS\r\n}\r\nexport enum PublicSearchConditions{\r\n UserName,\r\n UserId\r\n}\r\n\r\n\r\n \r\nexport enum TWishContainerValueType{\r\n personCode = 1,\r\n email = 0,\r\n deptCode = 2\r\n }\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"datepicker-wrap\"},[_c('div',{staticClass:\"datepicker-haeder\"},[_c('a',{staticClass:\"prev\",on:{\"click\":function($event){$event.stopPropagation();return _vm.monthPrev()}}}),_c('span',[_vm._v(_vm._s(_vm.DateFormat))]),_c('a',{staticClass:\"next\",on:{\"click\":function($event){$event.stopPropagation();return _vm.monthNext()}}})]),_c('div',{staticClass:\"datepicker-body\"},[_c('table',{attrs:{\"width\":\"100%;\"}},[_c('thead',[_c('tr',{staticClass:\"week-header\"},_vm._l((_vm.WeekList),function(wItem,index){return _c('th',{key:index},[_vm._v(\" \"+_vm._s(wItem)+\" \")])}),0)]),_c('tbody',_vm._l((_vm.MonthMatrix),function(Rows,index){return _c('tr',{key:index,staticClass:\"week\"},_vm._l((Rows),function(item,index2){return _c('td',{key:index2,class:{\n date: true,\n selected: item.selected,\n today: item.isToday,\n sun: item.isSun,\n sat: item.isSat,\n }},[_c('a',{staticClass:\"day-number\",on:{\"click\":function($event){return _vm.selectDate(item.date)}}},[_vm._v(\" \"+_vm._s(item.date.getDate())+\" \")])])}),0)}),0)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport * as dateutil from '@/util/date-helper';\r\n\r\n@Component({\r\n name: 'DatePicker'\r\n})\r\nexport default class DatePicker extends Vue {\r\n\r\n currentDate!: calendar.DateItem;\r\n\r\n //\r\n    // ──────────────────────────────────────────────────────── I ──────────\r\n    //   :::::: A C T I O N S : :  :   :    :     :        :          :\r\n    // ──────────────────────────────────────────────────────────────────\r\n    //\r\n\r\n @Prop({ type: Number, default: 20 }) YearMinMax!: Number;\r\n @Prop({ type: String, default: dateutil.uGetDateFormat('yyyy-MM-DD', new Date()) }) value !: string;\r\n @Prop({ type: String }) placeholder !: string;\r\n @Prop({ type: Boolean, default: false }) disabled!: boolean;\r\n @Prop({ type: Boolean }) showModal!: boolean;\r\n @Prop({ type: Boolean }) showEndModal!: boolean;\r\n\r\n MonthMatrix: Array> = [];\r\n YearArray: Array = [];\r\n MonthArray: Array = [];\r\n\r\n SelectItems: Array = [];\r\n\r\n baseValue: string | null = dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(this.value));\r\n\r\n isShowPicker: boolean = false;\r\n isInMouse: boolean = false;\r\n\r\n posX: number = 0;\r\n posY: number = 0;\r\n\r\n changedShowModal!:boolean;\r\n changedShowEndModal!:boolean;\r\n\r\n //\r\n // ──────────────────────────────────────────────────── I ──────────\r\n // :::::: M T H O D S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────\r\n //\r\n\r\n // 월 날짜 출력\r\n setMonthMatrix() {\r\n let datePickerMatrix = [];\r\n let Rows = [];\r\n let today = new Date();\r\n let daysList = dateutil.uGetDaysInMonth(this.dateValue);\r\n\r\n for (let i = 0; i < daysList.length; i++) {\r\n let date = daysList[i];\r\n\r\n let isToday =\r\n date.getFullYear() == today.getFullYear() &&\r\n date.getMonth() == today.getMonth() &&\r\n date.getDate() == today.getDate();\r\n\r\n\r\n let sDate = dateutil.uGetDateFormat('yyyy-MM-DD', date);\r\n let cDate = dateutil.uGetDateFormat('yyyy-MM-DD', dateutil.IEDate(this.baseValue));\r\n\r\n let dateItem = {\r\n date: date,\r\n selected: sDate == cDate,\r\n isToday: isToday,\r\n isSun: date.getDay() == 0,\r\n isSat: date.getDay() == 6\r\n }\r\n\r\n Rows.push(dateItem);\r\n\r\n if ((i + 1) % 7 == 0) {\r\n let NewRows = new Array;\r\n NewRows = Object.assign(NewRows, Rows);\r\n datePickerMatrix.push(NewRows);\r\n Rows = [];\r\n }\r\n }\r\n\r\n this.MonthMatrix = datePickerMatrix;\r\n }\r\n\r\n // 날짜 선택\r\n selectDate(date: Date) {\r\n this.baseValue = dateutil.uGetDateFormat('yyyy-MM-DD', date);\r\n if(!isNaN(Number(this.baseValue)))\r\n {\r\n this.value = dateutil.DateAndTimeSplitor(this.baseValue)[0];\r\n }\r\n this.$emit('input', this.baseValue);\r\n this.$emit('close');\r\n }\r\n\r\n // 이전 달 선택\r\n monthPrev() {\r\n this.baseValue = dateutil.uGetMonthStartPrev(dateutil.IEDate(this.dateValue)).toString();\r\n this.setMonthMatrix();\r\n }\r\n\r\n // 다음 달 선택\r\n monthNext() {\r\n this.baseValue = dateutil.uGetDate(1, dateutil.uGetMonthStartDate(this.dateValue), 'month').toString();\r\n this.setMonthMatrix();\r\n }\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: C O M P U T E D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n get DateFormat() {\r\n return dateutil.uGetDateFormat(this.$t('M_Schedule_Dateformat2').toString(), this.dateValue)\r\n }\r\n\r\n get WeekList() {\r\n let weekarray = [\r\n this.$t('일').toString(),\r\n this.$t('월').toString(),\r\n this.$t('화').toString(),\r\n this.$t('수').toString(),\r\n this.$t('목').toString(),\r\n this.$t('금').toString(),\r\n this.$t('토').toString(),\r\n ];\r\n return weekarray;\r\n }\r\n\r\n get dateValue(): Date {\r\n return dateutil.IEDate(this.baseValue);\r\n }\r\n\r\n @Watch('MonthMatrix')\r\n monthMatrixChanged(newVal: Array>) {\r\n console.log('monthMatrix', newVal);\r\n }\r\n\r\n @Watch(\"value\")\r\n onValueChanged(value: string | null) {\r\n let newvalue = dateutil.IEDate(value);\r\n if(!isNaN(Number(newvalue)))\r\n {\r\n this.baseValue = value;\r\n }\r\n }\r\n\r\n @Watch(\"baseValue\")\r\n onBaseValueChanged(value: string) {\r\n this.setMonthMatrix();\r\n // if(!isNaN(Number(value)))\r\n // {\r\n // this.value = dateutil.DateAndTimeSplitor(value)[0];\r\n // }\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n created() {\r\n this.setMonthMatrix();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./DatePicker.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!./DatePicker.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DatePicker.vue?vue&type=template&id=5fcfdab6&\"\nimport script from \"./DatePicker.ts?vue&type=script&lang=ts&\"\nexport * from \"./DatePicker.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const path='$board'\r\n\r\nexport const BOARD_ARTICLE_CURRENT = `${path}/article/current`","/**\r\n * A function that emits a side effect and does not return anything.\r\n */\r\nexport type DebounceProcedure = (...args: any[]) => void;\r\n\r\nexport type DebounceOptions = {\r\n isImmediate: boolean;\r\n};\r\n\r\nexport function debounce(\r\n func: F,\r\n waitMilliseconds = 50,\r\n options: DebounceOptions = {\r\n isImmediate: false,\r\n }\r\n): (this: ThisParameterType, ...args: Parameters) => void {\r\n let timeoutId: ReturnType | undefined;\r\n\r\n return function(this: ThisParameterType, ...args: Parameters) {\r\n const context = this;\r\n\r\n const doLater = function() {\r\n timeoutId = undefined;\r\n if (!options.isImmediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n\r\n const shouldCallNow = options.isImmediate && timeoutId === undefined;\r\n\r\n if (timeoutId !== undefined) {\r\n clearTimeout(timeoutId);\r\n }\r\n\r\n timeoutId = setTimeout(doLater, waitMilliseconds);\r\n\r\n if (shouldCallNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n}\r\n","import accountApi from '@account/api'\r\nimport { debounce } from './debounce'\r\nimport { invalidateUrl } from '@appbase/util'\r\ninterface CacheData {\r\n [key: string]: TValue\r\n}\r\n\r\ninterface ICacheManager {\r\n data: CacheData\r\n get: (key: string) => Promise\r\n set: (key: string, value: TValue) => void\r\n}\r\n\r\nabstract class CacheManagerBase implements ICacheManager {\r\n constructor() {\r\n this.debounceFunction = debounce(this.set)\r\n }\r\n\r\n data: CacheData = Object.create(null)\r\n\r\n abstract get(key: string): Promise\r\n\r\n set(key: string, value: TValue) {\r\n this.data[key] = value\r\n }\r\n\r\n debounceFunction!: (key: string, value: TValue) => void\r\n}\r\n\r\nclass AvatarCacheManager extends CacheManagerBase {\r\n [x: string]: any\r\n constructor() {\r\n super()\r\n }\r\n\r\n get(email: string) {\r\n var avatar = this.data[email]\r\n if (avatar) {\r\n return Promise.resolve(avatar)\r\n } else {\r\n if (process.env.NODE_ENV === 'development') {\r\n return Promise.resolve('')\r\n } else {\r\n if (email && email?.indexOf('=') == -1) {\r\n return accountApi.account.getPhotoUrl(email).then((url) => {\r\n if (!url) {\r\n url = '/cm/gres/faux/images/ghost.png'\r\n } else {\r\n url = invalidateUrl(url)\r\n }\r\n this.set(email, url)\r\n return url\r\n })\r\n } else {\r\n let url = '/cm/gres/faux/images/ghost.png'\r\n this.set(email, url)\r\n return Promise.resolve(url)\r\n }\r\n }\r\n }\r\n }\r\n\r\n // getByCodes(codes: string[]): Promise {\r\n // return accountApi.account.getPhotoUrlByCodes(codes).then((res) => {\r\n // res.forEach((p) => this.set(p.personCode, p.photoPath))\r\n // return res\r\n // })\r\n // }\r\n}\r\n\r\n// class HrCacheManager extends CacheManagerBase {\r\n// constructor() {\r\n// super()\r\n// }\r\n\r\n// get(email: string) {\r\n// var user = this.data[email]\r\n// if (user) {\r\n// return Promise.resolve(user)\r\n// } else {\r\n// return accountApi.account.getUser(email).then((user) => {\r\n// console.log('user', user)\r\n// this.set(email, user)\r\n// return user\r\n// })\r\n// }\r\n// }\r\n// }\r\n\r\nexport type Cache = {\r\n avatar: AvatarCacheManager\r\n //hr: HrCacheManager\r\n}\r\n\r\nexport const cache: Cache = {\r\n avatar: new AvatarCacheManager(),\r\n //hr: new HrCacheManager(),\r\n}\r\n","import { FlowChunk, FlowFile } from '.'\r\nimport { IFlow } from './interface'\r\n\r\nexport const FlowEventNames: string[] = [\r\n 'fileSuccess',\r\n 'fileProgress',\r\n 'fileAdded',\r\n 'filesAdded',\r\n 'filesAdding',\r\n 'filesSubmitted',\r\n 'fileRemoved',\r\n 'fileRetry',\r\n 'fileError',\r\n 'uploadStart',\r\n 'complete',\r\n 'progress',\r\n 'error',\r\n 'catchAll',\r\n]\r\n\r\nexport interface IFlowFileHandler {\r\n /**\r\n * A specific file was completed. First argument file is instance of FlowFile,\r\n * second argument message contains server response. Response is always a string.\r\n * Third argument chunk is instance of FlowChunk.\r\n * You can get response status by accessing xhr object chunk.xhr.status.\r\n */\r\n fileSuccess?: (file: FlowFile, message: string, chunk: FlowChunk) => void\r\n\r\n /**\r\n * Uploading progressed for a specific file.\r\n */\r\n fileProgress?: (file: FlowFile, chunk: FlowChunk) => void\r\n\r\n /**\r\n * This event is used for file validation. To reject this file return false.\r\n * This event is also called before file is added to upload queue,\r\n * this means that calling flow.upload() function will not start current file upload.\r\n * Optionally, you can use the browser event object from when the file was added.\r\n */\r\n fileAdded?: (file: FlowFile, event: Event) => boolean\r\n\r\n /**\r\n * @returns false: cancel adding\r\n */\r\n filesAdding?: (fileList: FlowFile[], event: Event) => boolean\r\n\r\n /**\r\n * Same as fileAdded, but used for multiple file validation.\r\n */\r\n filesAdded?: (array: FlowFile[], event: Event) => boolean\r\n\r\n /**\r\n * Same as filesAdded, but happens after the file is added to upload queue. Can be used to start upload of currently added files.\r\n */\r\n filesSubmitted?: (array: FlowFile[], event: Event) => void\r\n\r\n /**\r\n * The specific file was removed from the upload queue. Combined with filesSubmitted, can be used to notify UI to update its state to match the upload queue.\r\n */\r\n fileRemoved?: (file: FlowFile) => void\r\n\r\n /**\r\n * Something went wrong during upload of a specific file, uploading is being retried.\r\n */\r\n fileRetry?: (file: FlowFile, chunk: FlowChunk) => void\r\n\r\n /**\r\n * An error occurred during upload of a specific file.\r\n */\r\n fileError?: (file: FlowFile, message: string, chunk: FlowChunk) => void\r\n\r\n /**\r\n * Upload has been started on the Flow object.\r\n */\r\n uploadStart?: () => void\r\n\r\n /**\r\n * Uploading completed.\r\n */\r\n complete?: () => void\r\n\r\n /**\r\n * Uploading progress.\r\n */\r\n progress?: () => void\r\n\r\n /**\r\n * An error, including fileError, occurred.\r\n */\r\n error?: (message: string, file: FlowFile, chunk: FlowChunk) => void\r\n\r\n /**\r\n * Listen to all the events listed above with the same callback function.\r\n */\r\n catchAll?: (event: Event, ...args: any[]) => void\r\n}\r\n\r\nexport interface IFlowContextFileHandler extends IFlowFileHandler {\r\n context: TContext\r\n}\r\n","import api from '@/api';\r\nimport { ContactFolderType } from '../types/enums';\r\n\r\nexport default {\r\n /**\r\n * 주소록 폴더를 추가합니다.\r\n * @param {string} parentId\r\n * @param {string} name\r\n */\r\n addFolder(parentId: string, name: string): Promise {\r\n return api\r\n .post({\r\n url: '/api/contact/folder/create?type=EWS',\r\n data: {\r\n id: parentId,\r\n name: name,\r\n },\r\n })\r\n .then((result: any) => result.item.id);\r\n },\r\n /**\r\n * 주소록 폴더를 삭제합니다.\r\n * @param {object} id 선택한 주소록 폴더 ID [ id ]\r\n */\r\n deleteFolder(id: Array) {\r\n return api.delete({\r\n url: '/api/contact/folder?type=EWS',\r\n data: id,\r\n });\r\n },\r\n /**\r\n * 주소록 폴더명을 수정합니다.\r\n * @param {string} id 주소록 폴더 ID\r\n * @param {string} name 변경할 폴더명\r\n */\r\n editFolderName(id: string, name: string) {\r\n return api.post({\r\n url: '/api/contact/folder/set?type=EWS',\r\n data: {\r\n fields: [{ key: 'DisplayName', value: name }],\r\n id: id,\r\n type: 'Folder',\r\n },\r\n });\r\n },\r\n /**\r\n * 주소록 목록 데이터를 조회합니다.\r\n * @param {string} parentId 폴더 root ID\r\n */\r\n getContactTree(parentId?: string) {\r\n return api\r\n .post({\r\n url: '/api/contact/folder/list?type=EWS',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: 'Contacts',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) =>\r\n res.items.map((item: contacts.FolderItem) => {\r\n var rlt = {\r\n ...item,\r\n isFavorite: item.isFavorite === 'True',\r\n items: null,\r\n selected: false,\r\n nodeStatus: null,\r\n oldStatus: null,\r\n folderType: ContactFolderType.Personal\r\n };\r\n return rlt;\r\n })\r\n );\r\n },\r\n /**\r\n * 기본 주소록 폴더를 조회합니다.\r\n */\r\n getBasicContactFolder() {\r\n return api\r\n .post({\r\n url: '/api/contact/folder/list?type=EWS',\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n {\r\n key: 'PR_ATTR_HIDDEN',\r\n value: 'false',\r\n condition: 'isEqualTo',\r\n },\r\n ],\r\n parentId: null,\r\n wellKnownParentName: 'MsgFolderRoot',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) =>\r\n res.items\r\n .filter((folder: contacts.FolderItem) => {\r\n return folder.wellKnownFolderName === 'contacts'\r\n })\r\n .map((item: contacts.FolderItem) => {\r\n var rlt = {\r\n ...item,\r\n isFavorite: item.isFavorite === 'True',\r\n selected: false,\r\n nodeStatus: null,\r\n oldStatus: null,\r\n folderType: ContactFolderType.Personal\r\n };\r\n return rlt;\r\n })\r\n );\r\n },\r\n};\r\n","import api from '@/api'\r\nimport { DeleteMode } from '@/modules/mail/types';\r\nimport { ContactsStoredType } from '../types/enums'\r\n\r\nexport default{\r\n /**\r\n * 새로운 연락처를 생성합니다\r\n * @param data 전달되는 데이터\r\n * @param type DB,exchange 버전 구분\r\n */\r\n createContact(data: mail.api.DynamicApiOptions, type: ContactsStoredType): Promise{\r\n return api.post({\r\n url: '/api/ews/Contact/create?type='+type,\r\n data: data\r\n });\r\n },\r\n /**\r\n * 연락처를 수정합니다.\r\n * @param data 전달되는 데이터\r\n * @param type DB,exchange 버전 구분\r\n */\r\n editContact(data: mail.api.DynamicApiOptions, type: ContactsStoredType): Promise{\r\n return api.post({\r\n url: '/api/ews/Contact/set?type='+type,\r\n data: data\r\n });\r\n },\r\n /**\r\n * 선택한 연락처를 해당 주소록 폴더로 복사합니다.\r\n * @param {object} ids 연락처 ID\r\n * @param {string} folderId 폴더 ID\r\n * @param {enum} type DB,exchange 버전 구분\r\n */\r\n copyContact: function(ids: Array, folderId: string, type: ContactsStoredType): Promise{\r\n var id = encodeURIComponent(folderId);\r\n return api.post({\r\n url: `/api/ews/Contact/copy?type=${type}&folderId=${id}`,\r\n data: ids\r\n });\r\n },\r\n /**\r\n * 연락처를 삭제합니다.\r\n * @param {object} ids \r\n * @param {string} mode 삭제 방법 구분\r\n * @param {enum} type DB,exchange 버전 구분\r\n */\r\n deleteContacts (ids: Array, mode: DeleteMode, type: ContactsStoredType): Promise {\r\n return api.delete({\r\n url: `/api/ews/Contact/?type=${type}&deleteMode=${mode}`,\r\n data: ids\r\n });\r\n },\r\n /**\r\n * 선택한 연락처를 해당 주소록 폴더로 이동시킵니다.\r\n * @param {object} ids 연락처 ID\r\n * @param {string} folderId 폴더 ID\r\n * @param {enum} type DB,exchange 버전 구분\r\n */\r\n moveContact: function(ids: Array, folderId: string, type: ContactsStoredType): Promise{\r\n var id = encodeURIComponent(folderId);\r\n return api.post({\r\n url: `/api/ews/Contact/move?type=${type}&folderId=${id}`,\r\n data: ids\r\n });\r\n },\r\n\r\n getContactPhoto(id: string){\r\n return api.post({\r\n url: '/api/ews/Dynamic/get',\r\n data: {\r\n fields: [\r\n { \r\n key: 'Attachments',\r\n serialize: true,\r\n filters: [\r\n { key: 'isContactPhoto' , value: true, operator: 'eq' }\r\n ]\r\n }\r\n ],\r\n itemId: id,\r\n type: 'Contact'\r\n }\r\n })\r\n },\r\n\r\n /**\r\n * 연락처 목록을 조회합니다.\r\n * @param {object} data\r\n * @param {enum} type DB,exchange 버전 구분 \r\n */\r\n getContactsList(data: mail.api.DynamicApiOptions, type: ContactsStoredType): Promise> {\r\n return api.post>({\r\n url: '/api/ews/contact/list?type='+type,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName'},\r\n { key: 'Surname' },\r\n { key: 'GivenName' },\r\n { key: 'CompanyName' },\r\n { key: 'Department' },\r\n { key: 'JobTitle' },\r\n { key: 'OfficeLocation' },\r\n { key: 'ItemClass' },\r\n { key: 'HasPicture' },\r\n { key: 'PhoneNumbers', indexedKey: 'MobilePhone', as: 'mobile'},\r\n { key: 'PhoneNumbers', indexedKey: 'BusinessPhone', as: 'businessPhone'},\r\n { key: 'PhoneNumbers', indexedKey: 'BusinessFax', as: 'businessFax'},\r\n // { key: 'EmailAddresses', indexedKey: 'EmailAddress1', format: '{address}', as: 'email'},\r\n { key: 'PidLidEmail1OriginalDisplayName', as: 'email'},\r\n { key: 'PhysicalAddresses', indexedKey: 'Business', serialize: true, as: 'businessAddress'},\r\n { key: 'PhysicalAddresses', indexedKey: 'Home', serialize: true, as: 'homeAddress'},\r\n { key: 'BusinessHomePage', indexedKey: 'BusinessHomePage' },\r\n {\r\n key: 'Attachments',\r\n indexedKey: 'Attachments',\r\n serialize: true,\r\n filters: [\r\n { key: 'isContactPhoto', value: true, operator: 'eq' }\r\n ]\r\n },\r\n { key: 'USER_IS_FAVORITE'},\r\n ...data.fields\r\n ],\r\n filters: data.filters,\r\n parentId: data.parentId,\r\n pageSize: data.pageSize,\r\n offset: data.offset,\r\n sorts: data.sorts,\r\n wellKnownParentName: data.wellKnownParentName,\r\n type: data.type\r\n\r\n } as mail.api.DynamicApiOptions\r\n }).then((res: PagedItemList) => {\r\n let list = res.items.map((item: contacts.ContactItem) => {\r\n var item = {\r\n ...item,\r\n id: item.id.toString(),\r\n selected: false,\r\n storedType: type,\r\n isFavorite: type === ContactsStoredType.EWS ? item.isFavorite === 'True' : item.isFavorite,\r\n type: type === ContactsStoredType.EWS ? ( item.itemClass === 'IPM.Contact' ? 'C' : 'G') : item.type\r\n } as contacts.ContactItem;\r\n return item;\r\n });\r\n res.items = list;\r\n \r\n return res;\r\n });\r\n },\r\n}","import api from '@/api';\r\nimport { ContactFolderType, ShareType } from '../types/enums';\r\nexport default{\r\n /**\r\n * 주소록 목록 데이터를 조회합니다.\r\n * @param {string} parentId 폴더 root ID\r\n */\r\n getContactTree(folderType: ContactFolderType, shareType: ShareType, parentId?: string) {\r\n return api\r\n .post({\r\n url: `/api/contact/folder/list?type=DB&folderType=${folderType}&shareType=${shareType}`,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo'\r\n }\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: 'Contacts',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n })\r\n .then((res: any) =>\r\n res.items.map((item: contacts.FolderItem) => {\r\n var rlt = {\r\n ...item,\r\n items: null,\r\n selected: false,\r\n nodeStatus: null,\r\n oldStatus: null,\r\n folderType: folderType,\r\n type: 'Folder'\r\n };\r\n return rlt;\r\n })\r\n );\r\n },\r\n\r\n /**\r\n * 주소록 폴더를 추가합니다.\r\n * @param {string} parentId\r\n * @param {string} name\r\n * @param {enum} folderType\r\n */\r\n addFolder(parentId: string, name: string, folderType: ContactFolderType): Promise {\r\n const id = parentId === undefined ? null : parentId;\r\n return api\r\n .post({\r\n url: '/api/contact/folder/create?type=DB&folderType='+folderType,\r\n data: {\r\n id: id,\r\n name: name,\r\n },\r\n })\r\n .then((result: any) => result.item.id);\r\n },\r\n\r\n /**\r\n * 주소록 폴더를 삭제합니다.\r\n * @param {object} id 선택한 주소록 폴더 ID [ id ]\r\n */\r\n deleteFolder(id: Array) {\r\n return api.delete({\r\n url: '/api/contact/folder?type=DB',\r\n data: id,\r\n });\r\n },\r\n\r\n /**\r\n * 주소록 폴더명을 수정합니다.\r\n * @param {string} id 주소록 폴더 ID\r\n * @param {string} name 변경할 폴더명\r\n */\r\n editFolderName(id: string, name: string) {\r\n return api.post({\r\n url: '/api/contact/folder/set?type=DB',\r\n data: {\r\n fields: [{ key: 'DisplayName', value: name }],\r\n id: id,\r\n type: 'Folder',\r\n },\r\n });\r\n },\r\n \r\n getUserInfoByPersonCode(personCode: string){\r\n return api.get({\r\n url: '/api/hr/department/info/personCode?personCode='+personCode\r\n });\r\n }\r\n}","import api from '@/api'\r\nimport { ContactsStoredType } from '../types/enums'\r\n\r\nexport default {\r\n \r\n /**\r\n * 그룹연락처 구성원을 조회합니다.\r\n * @param item 그룹연락처\r\n * @param type database/exchange 구분\r\n */\r\n getGroupMembers(item: contacts.ContactItem, type: ContactsStoredType): Promise>{\r\n var id = `${item.id}`;\r\n return api.post({\r\n url: '/api/contact/groupcontact/list?type=' + type,\r\n data:{\r\n parentId: id\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * 그룹연락처를 생성합니다.\r\n * @param item 그룹연락처\r\n * @param type database/exchange 구분\r\n */\r\n createGroupContact(item: contacts.ContactItem, type: ContactsStoredType): Promise{\r\n return api.post({\r\n url: '/api/contact/groupcontact/create?type=' + type,\r\n data: {\r\n fields: [\r\n { key: 'DisplayName', 'value': item.displayName }\r\n ],\r\n parentId: item.parentFolderId,\r\n type: 'ContactGroup'\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * 그룹연락처 구성원을 추가합니다.\r\n * @param ids 연락처 ID 배열\r\n * @param groupId 그룹연락처 ID\r\n * @param type database/exchange 구분\r\n */\r\n setGroupMember(ids: Array, groupId: string, type: ContactsStoredType): Promise{\r\n return api.post({\r\n url: `/api/contact/groupcontact/set?type=${type}&groupId=${groupId}`,\r\n data: ids\r\n });\r\n },\r\n\r\n /**\r\n * 그룹연락처 구성원을 삭제합니다.\r\n * @param ids 연락처 ID 배열\r\n * @param groupId 그룹연락처 ID\r\n * @param type database/exchange 구분\r\n */\r\n deleteGroupMember(ids: Array, groupId: string, type: ContactsStoredType): Promise{\r\n return api.delete({\r\n url: `/api/contact/groupcontact?type=${type}&groupId=${groupId}`,\r\n data: ids\r\n });\r\n } \r\n}","import api from '@/api';\r\n\r\nexport default{\r\n getPublicContactsList(data: mail.api.DynamicApiOptions): Promise>{\r\n return api.post({\r\n url: '/api/contact/public/list',\r\n data: {\r\n fields: [\r\n { key: 'Id'},\r\n { key: 'Name'}\r\n ],\r\n filters: data.filters,\r\n pageSize: data.pageSize,\r\n offset: data.offset,\r\n sorts: data.sorts,\r\n type: data.type\r\n }\r\n }).then((res) => {\r\n let rlt = res as PagedItemList;\r\n let list = rlt.items;\r\n rlt.items = list.map((item) => {\r\n return {\r\n ...item,\r\n selected: false,\r\n type: 'P'\r\n }\r\n });\r\n return rlt;\r\n });\r\n },\r\n\r\n /**\r\n * 공용연락처 구성원 조회\r\n * @param item 공용연락처\r\n */\r\n getPublicContactsMembersList(item: contacts.ContactItem): Promise>{\r\n return api.get({\r\n url: '/api/contact/public/member?id='+ item.id\r\n }).then((res) => {\r\n let rlt = res as PagedItemList;\r\n let list = rlt.items;\r\n rlt.items = list.map((item) => {\r\n return {\r\n ...item,\r\n selected: false,\r\n photoPath: undefined\r\n }\r\n });\r\n rlt.items = list;\r\n \r\n return rlt;\r\n });\r\n },\r\n\r\n /**\r\n * 직원코드로 정보 조회\r\n * @param personCode 직원코드\r\n */\r\n getPersonInfo(personCode: string){\r\n return api.get({\r\n url: '/api/hr/department/info/personCode?personCode=' + personCode\r\n });\r\n }\r\n\r\n}","import api from '@/api'\r\nimport { ContactsStoredType } from '@contact/types/enums';\r\n\r\nexport default {\r\n getSharedContactsList(data: mail.api.DynamicApiOptions, personCode?: string): Promise> {\r\n var url = '/api/contact/share/list';\r\n if(personCode){\r\n url += '?personCode=' + personCode;\r\n data.type = 'Folder';\r\n }\r\n \r\n return api.post({ \r\n url: url,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'Surname' },\r\n { key: 'GivenName' },\r\n { key: 'CompanyName' },\r\n { key: 'Department' },\r\n { key: 'JobTitle' },\r\n { key: 'OfficeLocation' },\r\n { key: 'ItemClass' },\r\n { key: 'HasPicture' },\r\n { key: 'PhoneNumbers', indexedKey: 'MobilePhone', as: 'mobile'},\r\n { key: 'PhoneNumbers', indexedKey: 'BusinessPhone', as: 'businessPhone'},\r\n { key: 'PhoneNumbers', indexedKey: 'BusinessFax', as: 'businessFax'},\r\n { key: 'EmailAddresses', indexedKey: 'EmailAddress1', format: '{address}', as: 'email'},\r\n { key: 'PhysicalAddresses', indexedKey: 'BusinessAddressStreet', serialize: true, as: 'businessAddress'},\r\n { key: 'PhysicalAddresses', indexedKey: 'HomeAddressStreet', serialize: true, as: 'homeAddress'},\r\n { key: 'BusinessHomePage', indexedKey: 'BusinessHomePage' },\r\n {\r\n key: 'Attachments',\r\n indexedKey: 'Attachments',\r\n serialize: true,\r\n filters: [\r\n { key: 'isContactPhoto', value: true, operator: 'eq' }\r\n ]\r\n },\r\n { key: 'USER_IS_FAVORITE'},\r\n ...data.fields\r\n ],\r\n filters: data.filters,\r\n parentId: data.parentId,\r\n pageSize: data.pageSize,\r\n offset: data.offset,\r\n sorts: data.sorts,\r\n wellKnownParentName: data.wellKnownParentName,\r\n type: data.type\r\n\r\n } as mail.api.DynamicApiOptions\r\n }).then((res) => {\r\n let rlt = res as PagedItemList;\r\n let list = rlt.items;\r\n for(var item of list){\r\n item = {\r\n ...item,\r\n selected: false,\r\n type: item.type\r\n }\r\n }\r\n rlt.items = list;\r\n \r\n return rlt;\r\n });\r\n\r\n },\r\n \r\n getSharingTargetList(data: mail.api.DynamicApiOptions): Promise>{\r\n return api.post({\r\n url: '/api/contact/share/target',\r\n data:{\r\n id: data.id,\r\n type: data.type === 'Contact' ? 'C' : 'F'\r\n }\r\n })\r\n },\r\n\r\n addShare(data: mail.api.DynamicApiOptions, storedType: ContactsStoredType){\r\n return api.post({\r\n url: '/api/contact/share/set?type='+ storedType,\r\n data: {\r\n fields: data.fields,\r\n id: data.id,\r\n type: data.type === 'Contact' ? 'C' : 'F'\r\n }\r\n })\r\n },\r\n\r\n removeShare(data: mail.api.DynamicApiOptions, storedType: ContactsStoredType): Promise{\r\n return api.delete({\r\n url: '/api/contact/share?type=' + storedType,\r\n data: {\r\n fields: data.fields,\r\n id: data.id,\r\n type: data.type === 'Contact' ? 'C' : 'F'\r\n }\r\n })\r\n }\r\n}","import api from '@/api'\r\nimport { ContactsStoredType, ContactFolderType } from '../types/enums'\r\nimport contact from './contact';\r\nimport Contacts from '../Index';\r\n\r\nexport default{\r\n /**\r\n * 폴더를 즐겨찾기 설정합니다.\r\n * @param item 주소록 폴더\r\n */\r\n setFavoriteFolder(item: contacts.FolderItem, type: ContactsStoredType): Promise {\r\n const { id: id, isFavorite: isFavorite} = item;\r\n return api.post({\r\n url: '/api/contact/folder/set?type=' + type,\r\n data: {\r\n fields: [{ key: 'USER_IS_FAVORITE', value: `${isFavorite}` }],\r\n id: id.toString(),\r\n type: 'Folder',\r\n },\r\n });\r\n },\r\n\r\n /**\r\n * \r\n * @param item 연락처\r\n * @param type \r\n */\r\n setFavoriteContact(item: contacts.ContactItem, type: ContactsStoredType): Promise{\r\n const { id: id, isFavorite: isFavorite } = item;\r\n return api.post({\r\n url: '/api/ews/contact/set?type=' + type,\r\n data:{\r\n fields: [\r\n { key: 'USER_IS_FAVORITE', value: `${isFavorite}` }\r\n ],\r\n id: id.toString(),\r\n type: item.type === 'G' && item.storedType === ContactsStoredType.EWS ? 'ContactGroup' : 'Contact'\r\n }\r\n });\r\n },\r\n\r\n getFavoriteFolderList(parentId?: string){\r\n return api.post({\r\n url: '/api/contact/folder/list?type=' + ContactsStoredType.DB,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n {\r\n key: 'USER_IS_FAVORITE',\r\n value: 'true',\r\n condition: 'isEqualTo'\r\n }\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: 'Contacts',\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n }).then((res: any) => {\r\n const lists = res.items.map((item: any) => {\r\n return {\r\n ...item,\r\n isFavorite: true,\r\n nodeStatus: null,\r\n oldStatus: null,\r\n type: 'Favorite',\r\n folderType: item.type === 'PC' ? ContactFolderType.PC : ContactFolderType.DC\r\n };\r\n })\r\n return lists;\r\n });\r\n },\r\n\r\n getPersonalFavoriteFolderList(wellKnownParentName: string, parentId?: string){\r\n return api.post({\r\n url: '/api/contact/folder/list?type=' + ContactsStoredType.EWS,\r\n data: {\r\n fields: [\r\n { key: 'Id' },\r\n { key: 'DisplayName' },\r\n { key: 'TotalCount' },\r\n { key: 'ChildFolderCount' },\r\n { key: 'WellKnownFolderName' },\r\n { key: 'USER_IS_FAVORITE' },\r\n { key: 'USER_RENDER_ORDER' },\r\n ],\r\n filters: [\r\n {\r\n key: 'FolderClass',\r\n value: 'IPF.Contact',\r\n condition: 'isEqualTo',\r\n },\r\n {\r\n key: 'USER_IS_FAVORITE',\r\n value: 'true',\r\n condition: 'isEqualTo'\r\n }\r\n ],\r\n parentId: parentId,\r\n wellKnownParentName: wellKnownParentName,\r\n type: 'Folder',\r\n traversal: 'Shallow',\r\n },\r\n }).then((res: any) => {\r\n const lists = res.items.map((item: any) => {\r\n return {\r\n ...item,\r\n isFavorite: true,\r\n nodeStatus: null,\r\n oldStatus: null,\r\n type: 'Favorite',\r\n folderType: ContactFolderType.Personal\r\n };\r\n })\r\n return lists;\r\n });\r\n }\r\n}","import personal from './personal'\r\nimport contact from './contact'\r\nimport local from './local'\r\nimport group from './group'\r\nimport publicContact from './public'\r\nimport share from './share'\r\nimport favorite from './favorite'\r\n\r\nexport default {\r\n personal,\r\n contact,\r\n local,\r\n group,\r\n publicContact,\r\n share,\r\n favorite\r\n}","import Vue from 'vue'\r\nimport { Component, Prop, Watch } from 'vue-property-decorator'\r\nimport WriteForm from '@calendar/components/Edit/WriteForm.vue'\r\nimport { AlarmModal, StartDateModal, EndDateModal, FolderModal, MeetingRoomModal, StartTimeModal, EndTimeModal } from '../components/Modals'\r\nimport * as dateutil from '@/util/date-helper'\r\nimport api from '@calendar/api'\r\nimport { mapActions, mapGetters, mapMutations } from 'vuex'\r\nimport * as types from '@calendar/store/types'\r\nimport * as accountTypes from '@account/store/types'\r\n\r\n@Component({\r\n components: { \r\n WriteForm,\r\n AlarmModal,\r\n StartDateModal,\r\n EndDateModal, \r\n FolderModal, \r\n MeetingRoomModal, \r\n StartTimeModal,\r\n EndTimeModal\r\n },\r\n computed: {\r\n ...mapGetters({\r\n User: accountTypes.USER,\r\n item: types.CURRENT_CALENDAR_ITEM,\r\n currentRecurring: types.CALENDAR_CURRENT_RECURRING,\r\n folderListTree: types.FOLDER_LIST_TREE\r\n })\r\n },\r\n methods: {\r\n ...mapActions({\r\n editCalendar: types.CALENDAR_EVENT_EDIT,\r\n }),\r\n ...mapMutations({\r\n setCalendarItem: types.CURRENT_CALENDAR_ITEM\r\n }),\r\n },\r\n})\r\nexport default class EditContainer extends Vue {\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: G E T T E R S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n User!: account.User\r\n item!: calendar.CalendarItem\r\n currentRecurring!: calendar.CalendarItemRecurrence\r\n folderListTree!: any\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: A C T I O N S : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n editCalendar!: (item: calendar.CalendarItem) => Promise\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: M U T A T I O N S : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n\r\n setCalendarItem!: (item: calendar.CalendarItem) => void\r\n\r\n //\r\n // ──────────────────────────────────────────────── I ──────────\r\n // :::::: D A T A : : : : : : : :\r\n // ──────────────────────────────────────────────────────────\r\n //\r\n\r\n // 이수 - 회의실 목록에 db 자원관리 회의실 목록과 연동\r\n conferenceList: calendar.ConferenceResourceItem[] = [];\r\n conferenceId: number | string = ''\r\n reserveRequestId: number | null = null\r\n selectConference: calendar.ConferenceResourceItem | null = null\r\n \r\n reserveRequestItem: calendar.RequestCalendarMapItem | null = null\r\n conference: any | null = null\r\n\r\n isConferenceReserveCreate: boolean = false\r\n\r\n email: mail.WriteEmailData = ({\r\n subject: '',\r\n to: [],\r\n cc: [],\r\n bcc: [],\r\n body: '',\r\n attachments: '',\r\n isBigfile: false,\r\n code: '',\r\n codeValues: [],\r\n importance: 'Normal',\r\n security: 'Normal',\r\n whenToSend: '',\r\n } as unknown) as mail.WriteEmailData\r\n editItem: calendar.CalendarItem = {\r\n parentId: '',\r\n //attachments: [] as any,\r\n hasAttachments: false,\r\n body: '',\r\n location: '',\r\n subject: '',\r\n status: 'S0',\r\n appointmentType: 'Single',\r\n pidLidRecurrenceType: 1,\r\n ui_resourceArray: [] as Array,\r\n resourceId: null,\r\n resources: [] as Array,\r\n recurrence: {\r\n // startDate: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n // endDate: dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.uGetDate(90)),\r\n // ui_useRecurringButton: true,\r\n // ui_useDefaultDate: true,\r\n // ui_useRecurringDisplay: false,\r\n // ui_useRecurring: false,\r\n // ui_recurringType: 1,\r\n // monthValue: new Date().getMonth() + 1,\r\n // firstDayOfWeekValue: 1,\r\n // daysOfTheWeekArray: [] as number[],\r\n // ui_endType: '1',\r\n // interval: 1,\r\n // numberOfOccurrences: 0,\r\n } as calendar.CalendarItemRecurrence,\r\n code: '',\r\n codeValues: [] as string[],\r\n importance: 'Normal',\r\n isCancelled: false,\r\n isRecurring: false,\r\n isAllDayEvent: false,\r\n isAllowUpdate: true,\r\n start: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n end: dateutil.uGetDateFormat('yyyy-MM-DDTH:i:00', new Date()),\r\n starttime: '',\r\n endtime: '',\r\n requiredAttendees: [] as any,\r\n optionalAttendees: [] as any,\r\n isReadyData: false,\r\n reminderMinutesBeforeStart: 15,\r\n } as calendar.CalendarItem\r\n\r\n folderName: string = ''\r\n\r\n receiver: string = ''\r\n\r\n showRecurrChange: boolean = false\r\n\r\n startTimeArray: Array = []\r\n endTimeArray: Array = []\r\n\r\n durationText: string = ''\r\n\r\n showRecurringOption!: boolean\r\n savedEndDate: string | null = null\r\n savedNumberOfOccurrences: number = 0\r\n\r\n treeItems!: any\r\n RoomList!: any\r\n parentIdFlag: boolean = false\r\n\r\n selectedFolderID: string = ''\r\n useSendMail: boolean = false\r\n FdisplayName: string = ''\r\n\r\n isImportanceModalShow: boolean = false\r\n isStatusModalShow: boolean = false\r\n isRepeatModalShow: boolean = false\r\n localRecurrence: calendar.CalendarItemRecurrence = {\r\n // startDate: dateutil.uGetDateFormat('yyyy-MM-dd', new Date()),\r\n // endDate: dateutil.uGetDateFormat('yyyy-MM-dd', dateutil.uGetDate(90)),\r\n // ui_useRecurringButton: true,\r\n // ui_useDefaultDate: true,\r\n // ui_useRecurringDisplay: false,\r\n // ui_useRecurring: false,\r\n // ui_recurringType: 1,\r\n // monthValue: new Date().getMonth() + 1,\r\n // firstDayOfWeekValue: 1,\r\n // daysOfTheWeekArray: [] as number[],\r\n // ui_endType: '1',\r\n // dayOfMonth: 1,\r\n // interval: 1,\r\n } as calendar.CalendarItemRecurrence\r\n RecurringType: '1' | '2' | '3' | '4' = '1'\r\n EndType: '1' | '2' | '3' = '1'\r\n WeekCheckboxArray: Array = [{ flag: false, value: 0, text: '' }]\r\n showDelay: boolean = false\r\n\r\n //FolderName: string = ''\r\n CantClick: boolean = false\r\n\r\n backup_starttime: string = ''\r\n backup_endtime: string = ''\r\n saveItem: calendar.CalendarItem | null = null\r\n\r\n showStartDateModal: boolean = false\r\n showEndDateModal: boolean = false\r\n showStartTimeModal: boolean = false\r\n showEndTimeModal: boolean = false\r\n showMeetingRoomModal: boolean = false\r\n showFolderModal: boolean = false\r\n showAlarmModal: boolean = false\r\n\r\n //\r\n // ──────────────────────────────────────────────────────── I ──────────\r\n // :::::: M E T H O D : : : : : : : :\r\n // ──────────────────────────────────────────────────────────────────\r\n //\r\n\r\n isWeekChecked(index: number) {\r\n if (!this.localRecurrence.daysOfTheWeekArray) {\r\n return false\r\n }\r\n\r\n return this.localRecurrence.daysOfTheWeekArray?.indexOf(index) != -1\r\n }\r\n\r\n selectFolder(id: string, displayName: string) {\r\n this.selectedFolderID = id\r\n this.editItem.parentId = this.selectedFolderID\r\n this.FdisplayName = displayName\r\n this.setCalendarItem(this.editItem)\r\n }\r\n\r\n /**\r\n * 참석자 태그\r\n * @param list\r\n */\r\n convertRecToTag(list?: mail.EwsRecipient[]) {\r\n return (\r\n list?.map((r) => ({\r\n text: r.name,\r\n value: r.address,\r\n })) || []\r\n )\r\n }\r\n\r\n /**\r\n * 참석자 태그\r\n * @param list\r\n */\r\n convertTagToRec(list?: any[]) {\r\n return (\r\n list?.map((r) => ({\r\n name: r.text,\r\n address: r.value,\r\n deptName: r.displayDeptName,\r\n personCode: r.personCode,\r\n })) || []\r\n )\r\n }\r\n\r\n async edit() {\r\n const editItem = {\r\n ...this.editItem,\r\n } as calendar.CalendarItem\r\n if (editItem) {\r\n if (\r\n !editItem.isEWS &&\r\n editItem.appointmentType != 'Occurrence' &&\r\n editItem.appointmentType != 'Exception' &&\r\n editItem.recurrence.ui_useRecurring\r\n ) {\r\n editItem.appointmentType = 'RecurringMaster'\r\n editItem.isRecurring = true\r\n } else if (!editItem.isEWS && !editItem.recurrence.ui_useRecurring) {\r\n editItem.appointmentType = 'Single'\r\n editItem.isRecurring = false\r\n }\r\n\r\n if (editItem.isAllDayEvent) {\r\n editItem.starttime = '00:00:00'\r\n editItem.endtime = '00:00:00'\r\n\r\n // 하루종일 체크했을 때 만약 start와 end날짜가 같다면 end날짜를 +1시켜주기\r\n let eDate = dateutil.IEDate(editItem.end)\r\n eDate.setDate(eDate.getDate() + 1)\r\n editItem.end = dateutil.uGetDateFormat('yyyy-MM-DD', eDate)\r\n }\r\n //20201207\r\n //Object.assign(editItem.recurrence, this.localRecurrence)\r\n\r\n editItem.requiredAttendees = this.convertTagToRec(this.email.to)\r\n editItem.optionalAttendees = this.convertTagToRec(this.email.cc)\r\n\r\n if (!editItem.isEWS && editItem.appointmentType == 'Occurrence') {\r\n editItem.appointmentType = 'Exception'\r\n }\r\n\r\n if ((window as any).currentEditor) {\r\n editItem.body = (window as any).currentEditor.getContent()\r\n }\r\n\r\n // 자원예약 승인 되지 않은것은 수정/삭제 불가 (부킹 테이블에 없는경우...)\r\n if (this.reserveRequestItem && !this.reserveRequestItem.approvalStatus) {\r\n await(window as any).alertAsync(this.$t('승인_대기_중입니다').toString())\r\n return false;\r\n }\r\n\r\n // 회의실 예약하는 경우 유효성 체크 -> 일정 등록 -> 자원예약 등록\r\n if (this.selectConference) {\r\n\r\n if (editItem.recurrence.ui_useRecurring) {\r\n await(window as any).alertAsync( this.$t(\"회의실_예약시에는_반복일정을_사용할_수_없습니다.\").toString())\r\n\r\n return false\r\n }\r\n\r\n if (editItem.requiredAttendees.length == 0) {\r\n await(window as any).alertAsync( this.$t(\"필수_참석자는_1명이상_지정되어야_합니다\").toString())\r\n \r\n return false\r\n }\r\n\r\n // 다른 회의실 예약하려는건지 확인\r\n if (this.reserveRequestItem && (this.selectConference.resourceId != this.reserveRequestItem.reserveResourceId)) {\r\n await(window as any).alertAsync('회의실 변경이 불가합니다.')\r\n return false\r\n }\r\n\r\n let startDate = this.item.start\r\n let startTime = this.item.starttime\r\n let endDate = this.item.end\r\n let endTime = this.item.endtime\r\n\r\n //종일인경우 체크해야됨\r\n if (this.item.isAllDayEvent == true) {\r\n //종일 옵션이 체크된 경우 값 변경 해야됨\r\n //시작시작은 00:00:00 으로 \r\n //종료시간은 23:59:59 로\r\n startTime = \"00:00:00\"\r\n endDate = startDate\r\n endTime = \"23:59:59\"\r\n }\r\n\r\n api.db_resourceReserve.validationReserveRequestIncludeWait({\r\n reserveRequestId: this.reserveRequestId,//this.requestInfo?.reserveRequestId,\r\n reserveResourceId: this.selectConference?.resourceId,\r\n startDatetime: new Date(`${startDate}T${startTime}`),\r\n endDatetime: new Date(`${endDate}T${endTime}`),\r\n recurringOption: null//recurringOption ? recurringOption : null\r\n }).then(async result => {\r\n if (result == false) {\r\n await(window as any).alertAsync('선택하신 시간에는 이미 예약되어 있습니다.')\r\n return false\r\n } else {\r\n this.setCalendarItem(editItem)\r\n this.editCalendar(editItem).then((res) => {\r\n if (res) {\r\n // 회의실 예약하는 경우 ( 자원예약 연동건이든 아니든 자원예약 저장으로 보냄 create 또는 update 하도록)\r\n this.conferenceReserveSave()\r\n }\r\n })\r\n }\r\n })\r\n } else {\r\n this.setCalendarItem(editItem)\r\n this.editCalendar(editItem).then((res) => {\r\n if (res) {\r\n // 회의실 예약이였는데 삭제한 경우\r\n if (this.reserveRequestItem && !this.selectConference) {\r\n this.conferenceReserveDelete()\r\n } else {\r\n this.$router.push('/calendar/main')\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n conferenceReserveSave() {\r\n // //에디터 content 입력\r\n // this.reserveContent = this.item.body\r\n // let options = this.currentReccuringOption\r\n // debugger\r\n // return\r\n // //예약 시작 유효청 체크\r\n // //시작일시는 종료일시보다 크거나 같을 수 없음\r\n // if (this.valueValidation() == false) {\r\n // this.contentLoaded = true\r\n // return\r\n // }\r\n\r\n let startDate = this.item.start\r\n let startTime = this.item.starttime\r\n let endDate = this.item.end\r\n let endTime = this.item.endtime\r\n\r\n // let isRecursive = false\r\n // let recurringOption: reservedb.RequestRequestOption | null = null\r\n // //반복설정 \r\n // //반복설정이 된 경우\r\n // if (this.currentReccuringOption != null) {\r\n\r\n // isRecursive = true\r\n\r\n // //weekArray 가 타입이 다름 \r\n // //database 에 row 로 입력되기 때문에 sperator(\",\") 추가해서 입력해야됨\r\n // //string[] 로 변경해서 전달\r\n // let weekArray = \"\"\r\n // if (this.currentReccuringOption.daysOfTheWeekArray &&\r\n // this.currentReccuringOption.daysOfTheWeekArray.length > 0) {\r\n // const lastItem = this.currentReccuringOption.daysOfTheWeekArray[this.currentReccuringOption.daysOfTheWeekArray.length - 1]\r\n // this.currentReccuringOption.daysOfTheWeekArray.forEach(week => {\r\n\r\n // //마지막 아이템인 경우 , sperator 생략\r\n // weekArray += week.toString() + (week == lastItem ? \"\" : \",\")\r\n // })\r\n // }\r\n\r\n // recurringOption = {\r\n // recuringType: this.currentReccuringOption.ui_recurringType,\r\n // recuringEndType: parseInt(this.currentReccuringOption.ui_endType),\r\n // recuringStartDate: this.currentReccuringOption.startDate,\r\n // recuringEndDate: this.currentReccuringOption.endDate,\r\n // recuringInterval: this.currentReccuringOption.interval,\r\n // recuringCount: this.currentReccuringOption.numberOfOccurrences,\r\n // recuringDayOfMonth: this.currentReccuringOption.dayOfMonth,\r\n // recuringDayOfWeekArray: weekArray,\r\n // recuringMonth: this.currentReccuringOption.monthValue\r\n // }\r\n\r\n // }\r\n\r\n //종일인경우 체크해야됨\r\n if (this.item.isAllDayEvent == true) {\r\n //종일 옵션이 체크된 경우 값 변경 해야됨\r\n //시작시작은 00:00:00 으로 \r\n //종료시간은 23:59:59 로\r\n startTime = \"00:00:00\"\r\n endDate = startDate\r\n endTime = \"23:59:59\"\r\n }\r\n\r\n let requestTargets = this.item.requiredAttendees.map((item: any) => {\r\n let isDepartment = false\r\n if (item.displayName == item.deptName) isDepartment = true\r\n\r\n return {\r\n personCode: item.personCode,\r\n isOptional: false,\r\n isDepartment: isDepartment\r\n }\r\n })\r\n\r\n let requestOptionalTargets = this.item.optionalAttendees.map((item: any) => {\r\n let isDepartment = false\r\n if (item.displayName == item.deptName) isDepartment = true\r\n\r\n return {\r\n personCode: item.personCode,\r\n isOptional: true,\r\n isDepartment: isDepartment\r\n }\r\n })\r\n\r\n const resName = this.selectConference?.displayName\r\n\r\n let inputData = {\r\n recursiveDescription: null,//this.recurrenceDesc + \"\\n\" + this.recurrenceIntervalDesc,\r\n reserveResourceId: this.selectConference?.resourceId,\r\n title: this.item.subject,\r\n body: this.item.body,\r\n fileCode: this.item.hasAttachments ? this.item.code : '', //this.files.length > 0 ? this.uploaderConfig.code : \"\",\r\n isRecursive: false,//this.item.isRecurring,\r\n startDate: startDate,\r\n startTime: startTime,\r\n endDate: endDate,\r\n endTime: endTime,\r\n requestPersonCode: this.User.personCode,\r\n isCancel: false,\r\n approvalStatus: 0,\r\n option: null, //recurringOption,\r\n targets: [...requestTargets, ...requestOptionalTargets],\r\n resourceName : resName\r\n } as any\r\n\r\n // //업데이트의 경우 requestId, bookingId 추가\r\n // if (this.requestInfo != null) {\r\n if (this.reserveRequestItem) {\r\n inputData.reserveRequestId = this.reserveRequestId\r\n //inputData.bookingId = this.reserveRequestItem.resourceBookingId //booking id는 삭제할때만 필요\r\n }\r\n\r\n // //반복일정 중 단건 처리 시 필요 param\r\n // var openQueryVal = this.$route.query.open\r\n // if (this.requestInfo.isRecursive == true && this.isOccurrence == true) {\r\n // inputData.bookingId = parseInt(this.$route.query.bookingId)\r\n // inputData.isOccurrence = true\r\n // }\r\n\r\n // }\r\n\r\n let action: Promise = Promise.resolve()\r\n\r\n // 자원예약 연동건인 경우\r\n if (this.reserveRequestItem) {\r\n action = api.db_resourceReserve.updateReserveRequest(inputData)\r\n // 자원예약 연동건 아닌데 회의실 지정한 경우 자원예약 신규\r\n } else {\r\n this.isConferenceReserveCreate = true\r\n action = api.db_resourceReserve.createReserveRequest(inputData)\r\n }\r\n\r\n action.then(result => {\r\n console.log('result', result)\r\n // create면 result가 reserveRequestId 값\r\n // update면 result가 boolean 값\r\n \r\n var actionResult = false\r\n if (this.reserveRequestId) { //create\r\n actionResult = result\r\n } else { //update\r\n if (result > 0) {\r\n this.reserveRequestId = result // 생성된 reserveRequestId 값 할당\r\n actionResult = true\r\n }\r\n }\r\n\r\n if (result) {\r\n\r\n var data: any = {\r\n reserveRequestId: this.reserveRequestId,\r\n reserveResourceId: this.selectConference?.resourceId,\r\n calendarItemId: this.item.id\r\n }\r\n\r\n let mapAction: Promise = Promise.resolve()\r\n\r\n // 자원예약 연동건인 경우\r\n if (!this.isConferenceReserveCreate) {\r\n mapAction = api.db_resourceReserve.updateReserveRequestCalendarMap(data)\r\n // 자원예약 연동건 아닌데 회의실 지정한 경우 자원예약 신규\r\n } else {\r\n mapAction = api.db_resourceReserve.createReserveRequestCalendarMap(data)\r\n }\r\n mapAction.then(async result => {\r\n if (result) {\r\n let msg = this.$t(\"자원예약이_등록되었습니다\").toString()\r\n \r\n if (this.selectConference?.useApproval) {\r\n //결재 사용 자원인경우 등록 할 때 메세지 추가 처리\r\n \r\n msg += `\\n${this.$t(\"자원예약_승인_이후에_자원이_예약됩니다\").toString()}`\r\n }\r\n await(window as any).alertAsync(msg)\r\n\r\n this.$router.push('/calendar/main')\r\n } else {\r\n await(window as any).alertAsync( this.$t(\"자원예약_등록이_실패하였습니다\").toString())\r\n }\r\n })\r\n }\r\n\r\n\r\n }).finally(() => {\r\n \r\n })\r\n\r\n\r\n\r\n }\r\n\r\n // 부킹테이블에서 삭제\r\n conferenceReserveDelete() {\r\n\r\n // if (!await(window as any).confirmAsync(this.$t(\"정말_취소하시겠습니까\").toString())) return\r\n\r\n //this.contentLoaded = false\r\n //취소인데 선택일정일 때만 bookingItem 만 삭제 한다.\r\n\r\n //const { bookingId, open } = this.$route.query\r\n\r\n let reqParam: any = {\r\n bookingId: this.reserveRequestItem?.resourceBookingId,\r\n target: 1 //booking:1, request:0\r\n }\r\n\r\n\r\n api.db_resourceReserve.cancelReserveRequest(reqParam).then(async result => {\r\n\r\n if (result == true) {\r\n var reserveRequestId = 0\r\n if (this.reserveRequestItem) {\r\n reserveRequestId = this.reserveRequestItem.reserveRequestId\r\n }\r\n api.db_resourceReserve.deleteReserveRequestCalendarMap(reserveRequestId).then(async res => {\r\n if (res) {\r\n // await(window as any).alertAsync(this.$t(\"예약이_취소되었습니다\").toString())\r\n this.$router.push('/calendar/main')\r\n } else {\r\n await(window as any).alertAsync(this.$t(\"예약이_취소가_실패하였습니다\").toString())\r\n }\r\n \r\n })\r\n \r\n \r\n } else {\r\n await(window as any).alertAsync(this.$t(\"예약이_취소가_실패하였습니다\").toString())\r\n \r\n }\r\n }).finally(() => {\r\n // this.contentLoaded = true\r\n // this.onCancelClick()\r\n })\r\n }\r\n\r\n async load() {\r\n let _target = this.$route.query.target || this.item.target\r\n let _id = (this.$route.query.itemid as string) || this.item.id\r\n let _occitem = (window as any).opener?.occitem || (this.$route.query.occitem as string)\r\n let sitem: calendar.CalendarItem | null = null\r\n\r\n if (_occitem) {\r\n sitem = JSON.parse(decodeURIComponent(_occitem)) as calendar.CalendarItem\r\n }\r\n\r\n let action: Promise =\r\n _target != 'MY' && _target != 'SHARE'\r\n ? sitem != null && sitem.appointmentType == 'Exception'\r\n ? api.db_calendar.getRCalendarEvent({\r\n ID: Number(sitem.id),\r\n PersonCode: (this.User as any).personCode,\r\n })\r\n : api.db_calendar.getCalendarEvent({\r\n ID: Number(_id),\r\n PersonCode: (this.User as any).personCode,\r\n })\r\n : api.ews_calendar.getDetail(_id)\r\n\r\n action\r\n .then(async (citem) => {\r\n if (sitem != null && sitem.db_masterID && sitem.appointmentType != 'Exception') {\r\n citem = {\r\n ...citem,\r\n ...sitem,\r\n }\r\n }\r\n\r\n if (citem.code) {\r\n const uid = 'uid-' + citem.code.split('uid-')[1]\r\n citem.codeValues = [this.User.comCode, 'Calendar', this.User.email, uid]\r\n }\r\n\r\n citem.isAllowAccept = false\r\n citem.isAllowCancel = false\r\n citem.isAllowDecline = false\r\n citem.isAllowDelete = false\r\n citem.isAllowUpdate = false\r\n if (_target == 'MY') {\r\n if (citem.allowedResponseActions) {\r\n citem.isAllowAccept = citem.allowedResponseActions.indexOf('Accept') != -1\r\n citem.isAllowDecline = citem.allowedResponseActions.indexOf('Decline') != -1\r\n citem.isAllowCancel = citem.allowedResponseActions.indexOf('Cancel') != -1\r\n }\r\n\r\n citem.isAllowUpdate = citem.organizer?.address == this.User.email\r\n citem.isAllowDelete = true || citem.organizer?.address == this.User.email\r\n\r\n if (citem.isAllowCancel) {\r\n let repCount =\r\n (citem.requiredAttendees || []).filter((x: any) => x.address != this.User.email)\r\n .length +\r\n (citem.optionalAttendees || []).filter((x: any) => x.address != this.User.email)\r\n .length\r\n if (!repCount) {\r\n citem.isAllowCancel = false\r\n } else {\r\n if (\r\n [...citem.requiredAttendees, ...citem.optionalAttendees].filter(\r\n (x) => !x.address || x.address.indexOf('@') == -1\r\n ).length\r\n ) {\r\n citem.isAllowCancel = false\r\n }\r\n }\r\n }\r\n } else {\r\n if (_target == 'CM') {\r\n if (citem.update) {\r\n citem.isAllowUpdate = citem.organizer?.address == this.User.email\r\n }\r\n\r\n if (citem.delete) {\r\n citem.isAllowDelete = citem.organizer?.address == this.User.email\r\n }\r\n } else if (_target == 'DC') {\r\n citem.isAllowUpdate = citem.organizer?.address == this.User.email\r\n citem.isAllowDelete = citem.organizer?.address == this.User.email\r\n }\r\n }\r\n\r\n citem.parentId = (citem as any).parentFolderId\r\n\r\n if (citem.start && (citem.start.indexOf(' ') != -1 || citem.start.indexOf('T') != -1)) {\r\n citem.starttime = dateutil.DateAndTimeSplitor(citem.start)[1]\r\n citem.start = dateutil.DateAndTimeSplitor(citem.start)[0]\r\n }\r\n\r\n if (citem.end && (citem.end.indexOf(' ') != -1 || citem.end.indexOf('T') != -1)) {\r\n citem.endtime = dateutil.DateAndTimeSplitor(citem.end)[1]\r\n citem.end = dateutil.DateAndTimeSplitor(citem.end)[0]\r\n }\r\n\r\n if (typeof citem.isAllDayEvent === 'string') {\r\n citem.isAllDayEvent = (citem.isAllDayEvent as any) === 'True' ? true : false\r\n // 하루종일 일정일 경우 end에서 하루를 빼줘야 함\r\n if (citem.isAllDayEvent) {\r\n let eDate = dateutil.IEDate(citem.end)\r\n eDate.setDate(eDate.getDate() - 1)\r\n citem.end = dateutil.uGetDateFormat('yyyy-MM-DD', eDate)\r\n }\r\n }\r\n // if (typeof citem.isAllDayEvent == typeof '') {\r\n // citem.isAllDayEvent = citem.isAllDayEvent as any === 'True' ? true : false;\r\n // }\r\n\r\n citem.requiredAttendees = this.convertRecToTag(citem.requiredAttendees) as any\r\n citem.optionalAttendees = this.convertRecToTag(citem.optionalAttendees) as any\r\n\r\n console.log('citem.requiredAttendees', citem.requiredAttendees)\r\n this.email.to = citem.requiredAttendees\r\n this.email.cc = citem.optionalAttendees\r\n\r\n if (!citem.recurrence) {\r\n citem.recurrence = Object.create(null)\r\n Object.assign(citem.recurrence, this.item.recurrence)\r\n citem.pidLidRecurrenceType = 1\r\n }\r\n\r\n if (citem.pidLidRecurrenceType) {\r\n citem.recurrence.ui_recurringType = citem.pidLidRecurrenceType\r\n }\r\n\r\n switch (citem.appointmentType) {\r\n case 'Single':\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = false\r\n citem.recurrence.ui_useRecurring = false\r\n break\r\n case 'RecurringMaster':\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = false\r\n citem.recurrence.ui_useRecurringDisplay = true\r\n citem.recurrence.ui_useRecurring = true\r\n break\r\n case 'Occurrence':\r\n case 'Exception':\r\n citem.recurrence.ui_useRecurringButton = false\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = true\r\n citem.recurrence.ui_useRecurring = true\r\n break\r\n default:\r\n citem.recurrence.ui_useRecurringButton = true\r\n citem.recurrence.ui_useDefaultDate = true\r\n citem.recurrence.ui_useRecurringDisplay = false\r\n citem.recurrence.ui_useRecurring = false\r\n break\r\n }\r\n this.editItem = {\r\n ...this.item,\r\n ...citem,\r\n }\r\n\r\n if (this.editItem.isEWS) {\r\n var ewsPromise: Promise[] = [\r\n api.ews_resource.getRooms(),\r\n api.ews_calendar.getBody(citem.id),\r\n ]\r\n\r\n await Promise.all(ewsPromise).then((res) => {\r\n this.editItem.ui_resourceArray = [\r\n { text: 'None', value: null },\r\n ...res[0]\r\n .filter((x: any) => x.depth == 1)\r\n .map((x: any) => {\r\n return { text: x.name, value: x.address }\r\n }),\r\n ]\r\n this.editItem.isReadyData = true\r\n this.editItem.body = res[1]\r\n })\r\n } else {\r\n await api.db_resource.getFindCalendarResource({ Type: 'RM' }).then((res) => {\r\n this.editItem.ui_resourceArray = [\r\n { text: 'None', value: null },\r\n ...res.map((x) => {\r\n return { text: x.displayName, value: x.id }\r\n }),\r\n ]\r\n this.editItem.isReadyData = true\r\n })\r\n }\r\n\r\n //Object.assign(this.localRecurrence, this.currentRecurring)\r\n })\r\n .catch((err) => {\r\n console.log('editMountError', err)\r\n })\r\n .finally(() => {\r\n //this.setCalendarItem(this.editItem)\r\n })\r\n }\r\n\r\n /**\r\n * '하루종일' 체크 여부에 따라 동작하는 함수입니다\r\n * @param value\r\n */\r\n @Watch('item.isAllDayEvent')\r\n onAllDayEventChanged(value: boolean) {\r\n if (value) {\r\n this.backup_starttime = this.item.starttime\r\n this.backup_endtime = this.item.endtime\r\n this.item.starttime = '00:00:00'\r\n this.item.endtime = '00:00:00'\r\n this.item.isAllDayEvent = true\r\n this.CantClick = true\r\n } else if (this.backup_starttime && this.backup_endtime) {\r\n this.item.starttime = this.backup_starttime\r\n this.item.endtime = this.backup_endtime\r\n this.CantClick = false\r\n }\r\n }\r\n @Watch('item.starttime')\r\n onStartTimeChanged() {\r\n if (this.saveItem?.starttime) {\r\n this.item.starttime = this.saveItem.starttime\r\n }\r\n }\r\n\r\n @Watch('item.endtime')\r\n onEndTimeChanged() {\r\n if (this.saveItem?.endtime) {\r\n this.item.endtime = this.saveItem.endtime\r\n console.log('시간2', this.item.endtime)\r\n }\r\n }\r\n\r\n @Watch('item.start')\r\n onStartChanged() {\r\n if (this.saveItem?.start) {\r\n this.item.start = this.saveItem.start\r\n }\r\n }\r\n\r\n @Watch('item.end')\r\n onEndChanged() {\r\n if (this.saveItem?.end) {\r\n this.item.end = this.saveItem.end\r\n }\r\n }\r\n\r\n @Watch('item.subject')\r\n onSubjectChanged() {\r\n if (this.saveItem?.subject) {\r\n this.item.subject = this.saveItem.subject\r\n }\r\n }\r\n\r\n @Watch('item.location')\r\n onLocatinChanged() {\r\n if (this.saveItem?.location) {\r\n this.item.location = this.saveItem.location\r\n }\r\n }\r\n\r\n setStartTime(time: string) {\r\n this.item.starttime = time\r\n this.showStartTimeModal = false\r\n }\r\n\r\n setEndTime(time: string) {\r\n this.item.endtime = time\r\n this.showEndTimeModal = false\r\n }\r\n\r\n setFolder(folder: any) {\r\n this.item.parentId = folder.id\r\n this.folderName = folder.displayName\r\n this.showFolderModal = false\r\n }\r\n\r\n setMeetingRoom(room: any) {\r\n //this.item.resources = [{name: room.text, address: room.value}];\r\n //this.item.location = room.text\r\n this.selectConference = room\r\n }\r\n\r\n setReminder(number: number) {\r\n this.item.reminderMinutesBeforeStart = number;\r\n this.showAlarmModal = false;\r\n }\r\n\r\n showModal(value: string) {\r\n eval('this.$data.' + value + ' = true')\r\n }\r\n\r\n //\r\n // ────────────────────────────────────────────────────────── I ──────────\r\n // :::::: L I F E C Y C L E : : : : : : : :\r\n // ────────────────────────────────────────────────────────────────────\r\n //\r\n \r\n mounted() {\r\n Object.assign(this.localRecurrence, this.item.recurrence)\r\n\r\n this.load()\r\n\r\n if (\r\n this.item.start &&\r\n (this.item.start.indexOf(' ') != -1 || this.item.start.indexOf('T') != -1)\r\n ) {\r\n this.item.starttime = dateutil.DateAndTimeSplitor(this.item.start)[1]\r\n this.item.start = dateutil.DateAndTimeSplitor(this.item.start)[0]\r\n }\r\n\r\n if (this.item.end && (this.item.end.indexOf(' ') != -1 || this.item.end.indexOf('T') != -1)) {\r\n this.item.endtime = dateutil.DateAndTimeSplitor(this.item.end)[1]\r\n this.item.end = dateutil.DateAndTimeSplitor(this.item.end)[0]\r\n }\r\n\r\n if (typeof this.item.isAllDayEvent == typeof '') {\r\n this.item.isAllDayEvent = (this.item.isAllDayEvent as any) === 'True' ? true : false\r\n }\r\n\r\n //Object.assign(this.localRecurrence, this.currentRecurring)\r\n\r\n if (this.$route.query.pvalue) {\r\n let _occitem = this.$route.query.pvalue as string\r\n if (_occitem) {\r\n this.saveItem = JSON.parse(decodeURIComponent(_occitem)) as calendar.CalendarItem\r\n }\r\n Object.assign(this.item, this.saveItem)\r\n }\r\n\r\n if (!this.item) {\r\n this.setCalendarItem(this.editItem)\r\n }\r\n\r\n if (this.item.parentId) {\r\n var folder = this.folderListTree.mylist.items.filter((x: any) => x.id == this.item.parentId)[0]\r\n this.setFolder(folder)\r\n }\r\n\r\n api.db_resourceReserve.getConferenceResource(this.User.comCode).then((res: any[]) => {\r\n this.conferenceList = res\r\n this.conferenceReserveCheck();\r\n })\r\n }\r\n\r\n conferenceReserveCheck() {\r\n api.db_resourceReserve.getMapByCalendarItemId(encodeURIComponent(this.item.id)).then((res: any) => {\r\n if (res) {\r\n this.reserveRequestItem = res\r\n this.conferenceId = res.reserveResourceId\r\n this.reserveRequestId = res.reserveRequestId\r\n this.conference = this.conferenceList.find((x: any) => x.resourceId == this.reserveRequestItem?.reserveResourceId)\r\n //this.$emit('setReserveRequestItem', this.reserveRequestItem)\r\n\r\n this.setMeetingRoom(this.conference)\r\n }\r\n })\r\n }\r\n}\r\n","declare global {\r\n namespace datehelper {\r\n export interface Duration {\r\n Seconds: number\r\n Minutes: number\r\n Hours: number\r\n Days: number\r\n totalSeconds: number\r\n totalMinutes: number\r\n totalHours: number\r\n totalDays: number\r\n totalWeeks: number\r\n durationText: string // 1 일, 1.5 시간\r\n durationValue: string // 1.12:30:00\r\n error: string\r\n }\r\n }\r\n}\r\nimport { i18n } from './i18n-setup'\r\nexport const uGetZero = (value: number | string) =>\r\n value.toString().length === 1 ? `0${value}` : value\r\n/**\r\n * IE에서 문자열로 날짜 생성 시 ISOString 포멧으로 강제변환 함수\r\n * @param value 문자열 yyyy-MM-dd HH:mm:ss 형식의 경우 변환\r\n */\r\nexport const IEDate = function(value: any): Date {\r\n if (typeof value == typeof '') {\r\n if (\r\n value.indexOf('-') != -1 &&\r\n value.indexOf(':') != -1 &&\r\n value.indexOf(' ') != -1 &&\r\n value.indexOf('T') == -1 &&\r\n value.indexOf('Z') == -1\r\n ) {\r\n return new Date(value.replace(' ', 'T'))\r\n }\r\n }\r\n return new Date(value)\r\n}\r\n\r\nexport const getDaysArray = (start: Date, end: Date) => {\r\n for (var arr = [], dt = new Date(start); dt <= end; dt.setDate(dt.getDate() + 1)) {\r\n arr.push(new Date(dt))\r\n }\r\n return arr\r\n}\r\n\r\n/**\r\n * 시작과 끝의 일수를 계산하여 날자 목록을 가져옵니다.\r\n * @param start start date\r\n * @param end stop date\r\n * @returns ex) 2021-10-28\r\n */\r\nexport const getDates = (start: Date, end: Date): string[] => {\r\n var daylist = getDaysArray(start, end)\r\n if (daylist.length > 0) {\r\n return daylist.map((v) => v.toISOString().slice(0, 10))\r\n } else {\r\n return [new Date(start).toISOString().slice(0, 10)]\r\n }\r\n}\r\n\r\n/**\r\n * 날짜를 형식 문자열로 변환합니다\r\n * @param format\r\n * @param date\r\n */\r\nexport const uGetDateFormat = function(format: string, date: Date = new Date()): string {\r\n const _date = IEDate(date.getTime())\r\n\r\n return format.replace(/(yyyy|mm|dd|MM|DD|H|i|s)/g, (t: string): any => {\r\n switch (t) {\r\n case 'yyyy':\r\n return _date.getFullYear()\r\n case 'mm':\r\n return _date.getMonth() + 1\r\n case 'dd':\r\n return uGetZero(_date.getDate())\r\n case 'MM':\r\n return uGetZero(_date.getMonth() + 1)\r\n case 'DD':\r\n return uGetZero(_date.getDate())\r\n case 'H':\r\n return uGetZero(_date.getHours())\r\n case 'i':\r\n return uGetZero(_date.getMinutes())\r\n case 's':\r\n return uGetZero(_date.getSeconds())\r\n default:\r\n return ''\r\n }\r\n })\r\n}\r\n/**\r\n * 요일 배열을 반환합니다 text / value\r\n */\r\nexport const uGetWeekArray = function(\r\n WeekArray: string[] = ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일']\r\n) {\r\n let list = []\r\n\r\n for (let i = 0; i < WeekArray.length; i++) {\r\n const week = WeekArray[i]\r\n list.push({ text: week, value: i })\r\n }\r\n\r\n return list\r\n}\r\n\r\n/**\r\n * 날짜의 시,분,초,밀리초를 0으로 초기화하여 날짜비교만 가능하도록 변경합니다\r\n * @param date\r\n */\r\nexport const uGetDateOnly = function(date: Date = new Date()): Date {\r\n let rDate = IEDate(date)\r\n return IEDate(\r\n '' +\r\n rDate.getFullYear() +\r\n '-' +\r\n uGetZero(rDate.getMonth() + 1) +\r\n '-' +\r\n uGetZero(rDate.getDate()) +\r\n 'T00:00:00'\r\n )\r\n}\r\n\r\n/**\r\n * 날짜의 해당주 첫일로 세팅하여 반환합니다\r\n * @param date\r\n */\r\nexport const uGetWeekStartDate = function(date: Date = new Date(), firstDay: number = 0): Date {\r\n let mDate = IEDate(date)\r\n while (mDate.getDay() != firstDay) {\r\n mDate.setDate(mDate.getDate() - 1)\r\n }\r\n return mDate\r\n}\r\n\r\n/**\r\n * 날짜의 해당주 마지막일로 세팅하여 반환합니다\r\n * @param date\r\n */\r\nexport const uGetWeekEndDate = function(date: Date = new Date(), firstDay: number = 0): Date {\r\n let mDate = IEDate(date)\r\n while (mDate.getDay() != firstDay) {\r\n mDate.setDate(mDate.getDate() - 1)\r\n }\r\n mDate.setDate(mDate.getDate() + 6)\r\n return mDate\r\n}\r\n\r\n/**\r\n * 날짜의 해당월 첫일로 세팅하여 반환합니다\r\n * @param date\r\n */\r\nexport const uGetMonthStartDate = function(\r\n date: Date = new Date(),\r\n isForDisplay: boolean = true,\r\n firstDay: number = 0\r\n): Date {\r\n let mDate = IEDate(date)\r\n mDate.setDate(1)\r\n return mDate\r\n}\r\n\r\n/**\r\n * 날짜의 해당월 마지막일로 세팅하여 반환합니다\r\n * @param date\r\n */\r\nexport const uGetMonthEndDate = function(\r\n date: Date = new Date(),\r\n isForDisplay: boolean = true,\r\n firstDay: number = 0\r\n): Date {\r\n let mDate = IEDate(date)\r\n mDate.setDate(1)\r\n mDate.setMonth(mDate.getMonth() + 1)\r\n mDate.setDate(0)\r\n return mDate\r\n}\r\n\r\n/**\r\n *\r\n * @param date 선택날짜\r\n * @param bdate 현재날짜\r\n */\r\nexport const uGetDateForDisplayMonth = function(\r\n date: Date,\r\n mdate: Date,\r\n firstDay: number = 0\r\n): Date {\r\n let monthDates = uGetDaysInMonth(mdate)\r\n let strDate = uGetDateFormat('yyyy-MM-DD', date)\r\n let strMonthDates = monthDates.map((x) => uGetDateFormat('yyyy-MM-DD', x))\r\n\r\n if (strMonthDates.indexOf(strDate) != -1) {\r\n return uGetMonthStartDate(mdate, true, firstDay)\r\n } else {\r\n return date\r\n }\r\n}\r\n\r\n/**\r\n * 현재월의 날짜 집합을 리턴합니다\r\n * @param date\r\n * @param isForDisplay 표시용도의 경우 전월 날짜와 다음월 날짜로 남은 공간을 채워줍니다 (기본 true)\r\n */\r\nexport const uGetDaysInMonth = function(\r\n date: Date = new Date(),\r\n isForDisplay: boolean = true,\r\n firstDay: number = 0,\r\n isSixWeek: boolean = false\r\n): Date[] {\r\n //debugger;\r\n let DateArray: Date[] = []\r\n let behindArray: Date[] = []\r\n\r\n let StartDate = uGetMonthStartDate(date, isForDisplay, firstDay)\r\n let PrevShiftDays = StartDate.getDay()\r\n\r\n let EndDate = uGetMonthEndDate(date, isForDisplay, firstDay)\r\n let EndDateNum = EndDate.getDate()\r\n let NextShiftDays = 7 - EndDate.getDay() - 1\r\n\r\n // UI 그리는 용도의 경우 전월 날짜를 채워줌\r\n if (isForDisplay) {\r\n for (let i = 0; i < PrevShiftDays; i++) {\r\n let prvDate = IEDate(StartDate)\r\n prvDate.setDate(prvDate.getDate() - PrevShiftDays + i)\r\n DateArray.push(prvDate)\r\n }\r\n }\r\n\r\n for (let i = 0; i < EndDateNum; i++) {\r\n let curDate = IEDate(StartDate)\r\n curDate.setDate(curDate.getDate() + i)\r\n DateArray.push(curDate)\r\n }\r\n\r\n // UI 그리는 용도의 경우 다음월 날짜를 채워줌\r\n\r\n if (isForDisplay) {\r\n for (let i = 0; i < NextShiftDays; i++) {\r\n let nxtDate = IEDate(EndDate)\r\n nxtDate.setDate(nxtDate.getDate() + i + 1)\r\n DateArray.push(nxtDate)\r\n }\r\n\r\n if (isSixWeek && DateArray.length / 7 == 5) {\r\n for (let i = 1; i <= 7; i++) {\r\n let nxtDate = IEDate(DateArray[DateArray.length - 1])\r\n nxtDate.setDate(nxtDate.getDate() + 1)\r\n DateArray.push(nxtDate)\r\n }\r\n }\r\n }\r\n\r\n if (firstDay > 0) {\r\n let newNextShiftDays = 7 - ((EndDate.getDay() + firstDay) % 7) - 1\r\n let isAddedFront = false\r\n let isAddedNext = false\r\n\r\n let backDate = IEDate(DateArray[0])\r\n backDate.setDate(backDate.getDate() - 1)\r\n let backMonthArray = uGetDaysInMonth(backDate, true, 0)\r\n let newArray = backMonthArray.slice(backMonthArray.length - 7)\r\n\r\n if (\r\n newArray.filter((x) => x.getDate() == (DateArray[DateArray.length - 1] as Date).getDate())\r\n ) {\r\n if (StartDate.toString() == DateArray[0].toString()) {\r\n newArray = backMonthArray.slice(backMonthArray.length - 7)\r\n } else {\r\n newArray = backMonthArray.slice(backMonthArray.length - 14, backMonthArray.length - 7)\r\n }\r\n }\r\n\r\n DateArray = [...newArray, ...DateArray]\r\n isAddedFront = true\r\n\r\n DateArray.splice(0, firstDay)\r\n let isRemoveFirstLine = !DateArray.filter((x, index) => {\r\n return index < 7 && x.getDate() == 1\r\n }).length\r\n\r\n if (isRemoveFirstLine) {\r\n DateArray = DateArray.slice(7)\r\n }\r\n\r\n //꼬리\r\n while (Number(DateArray[DateArray.length - 1]) < Number(EndDate) || DateArray.length % 7 != 0) {\r\n let newDate = IEDate(DateArray[DateArray.length - 1])\r\n newDate.setDate(newDate.getDate() + 1)\r\n DateArray.push(newDate)\r\n }\r\n\r\n if (Number(DateArray[DateArray.length - 7]) > Number(EndDate)) {\r\n DateArray.splice(DateArray.length - 7)\r\n }\r\n }\r\n return DateArray\r\n}\r\n\r\n/**\r\n * 현재주의 날짜 집합을 리턴합니다\r\n * @param date\r\n * @param isForDisplay 표시용도의 경우 전월 날짜와 다음월 날짜로 남은 공간을 채워줍니다 (기본 true)\r\n */\r\nexport const uGetDaysInWeek = function(date: Date = new Date(), firstDay: number = 0): Date[] {\r\n let DateArray = []\r\n\r\n let StartDate = uGetWeekStartDate(date, firstDay)\r\n let EndDate = uGetWeekEndDate(date, firstDay)\r\n\r\n for (let i = 0; uGetDateOnly(StartDate) <= uGetDateOnly(EndDate); i++) {\r\n DateArray.push(uGetDateOnly(StartDate))\r\n StartDate.setDate(StartDate.getDate() + 1)\r\n }\r\n\r\n return DateArray\r\n}\r\n\r\n/**\r\n * 날짜가 시작일 종료일 범위에 포함하는지 여부를 리턴\r\n * @param date 날짜\r\n * @param start 시작일\r\n * @param end 종료일\r\n */\r\nexport const uGetIsInDate = function(date: Date, start: Date, end: Date): boolean {\r\n date.setHours(0)\r\n date.setMinutes(0)\r\n date.setSeconds(0)\r\n\r\n let sDate = IEDate(start)\r\n let eDate = IEDate(end)\r\n\r\n sDate.setHours(0)\r\n sDate.setMinutes(0)\r\n sDate.setSeconds(0)\r\n\r\n eDate.setHours(23)\r\n eDate.setMinutes(59)\r\n eDate.setSeconds(59)\r\n\r\n return Number(date) >= Number(sDate) && Number(date) <= Number(eDate)\r\n}\r\n\r\n/**\r\n * 날짜가 시작일 종료일 범위에 포함하는지 여부를 리턴 (시간, 분, 초 포함)\r\n * @param date 날짜\r\n * @param start 시작일\r\n * @param end 종료일\r\n * @param isInitDateTime 기준날짜를 00:00:00 으로 초기화 여부 (기본 false)\r\n */\r\nexport const uGetIsInDateTime = function(\r\n date: Date,\r\n start: Date,\r\n end: Date,\r\n isInitDateTime = false\r\n): boolean {\r\n if (isInitDateTime) {\r\n date.setHours(0)\r\n date.setMinutes(0)\r\n date.setSeconds(0)\r\n }\r\n\r\n return Number(date) >= Number(start) && Number(date) <= Number(end)\r\n}\r\n\r\n/**\r\n * 날짜가 시작일 종료일 범위에 포함하는지 여부를 리턴 (시간, 분, 초 포함), 초과 미만\r\n * @param date 날짜\r\n * @param start 시작일\r\n * @param end 종료일\r\n * @param isInitDateTime 기준날짜를 00:00:00 으로 초기화 여부 (기본 false)\r\n */\r\nexport const uGetIsInDateTime2 = function(\r\n date: Date,\r\n start: Date,\r\n end: Date,\r\n isInitDateTime = false\r\n): boolean {\r\n let oDate = new Date(date)\r\n if (isInitDateTime) {\r\n oDate.setHours(0)\r\n oDate.setMinutes(0)\r\n oDate.setSeconds(0)\r\n }\r\n\r\n return Number(oDate) > Number(start) && Number(oDate) < Number(end)\r\n}\r\n\r\n/**\r\n * 시간 배열을 가져옵니다 ({text, value} 배열)\r\n * @param resFunc $t 다국어 함수\r\n */\r\nexport const uGetTimeArray = function(displayArr: string[] = ['오전', '오후']): Array {\r\n let list: Array = []\r\n for (let i = 0; i < 24; i += 0.5) {\r\n const left: string = uGetZero(Math.floor(i)).toString()\r\n const right: string = i - Math.floor(i) == 0.5 ? '30' : '00'\r\n var ampm = ''\r\n if (i < 12) {\r\n ampm = displayArr[0]\r\n } else {\r\n ampm = displayArr[1]\r\n }\r\n const result = ampm + ' ' + left + ':' + right\r\n list.push({ text: result, value: left + ':' + right + ':00', num: i })\r\n }\r\n\r\n return list\r\n}\r\n/**\r\n * 월 배열을 가져옵니다 ({text, value} 배열)\r\n */\r\nexport const uGetMonthArray = function(displayArr: string[] = []): Array {\r\n let list: Array = []\r\n\r\n for (let i = 1; i <= 12; i++) {\r\n let text = i + '월'\r\n if (displayArr.length > i) {\r\n text = displayArr[i - 1]\r\n }\r\n list.push({ text: text, value: i })\r\n }\r\n return list\r\n}\r\n\r\n/**\r\n * 두 날짜차이의 총 시간을 분으로 반환합니다\r\n * @param start 시작날짜\r\n * @param end 종료날짜\r\n */\r\nexport const uGetTotalDiffMinutes = function(start: Date, end: Date): number {\r\n let diffMs = Number(end) - Number(start) // milliseconds between now & Christmas\r\n // let diffDays = Math.floor(diffMs / 86400000); // days\r\n // let diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours\r\n // let diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes\r\n let totalMins = Math.floor(diffMs / 1000 / 60)\r\n return totalMins\r\n}\r\n\r\n/**\r\n * 소스 날짜의 시작/종료 시간이 타겟 날짜의 시작/종료시과 서로 포함된 관계인지 여부를 리턴\r\n * @param sourceStart 소스날짜 시작시간\r\n * @param sourceEnd 소스날짜 종료시간\r\n * @param targetStart 타겟날짜 시작시간\r\n * @param targetEnd 타겟날짜 종료시간\r\n */\r\nexport const uGetInDateBoundary = function(\r\n sourceStart: Date,\r\n sourceEnd: Date,\r\n targetStart: Date,\r\n targetEnd: Date\r\n): boolean {\r\n let ss = Number(sourceStart)\r\n let se = Number(sourceEnd)\r\n let ts = Number(targetStart)\r\n let te = Number(targetEnd)\r\n\r\n let isTargetContain = (ss < ts && se > ts) || (ss < te && se > te)\r\n let isSourceContain = (ts < ss && te > ss) || (ts < se && te > se)\r\n let isSame = ss == ts && se == te\r\n\r\n return isTargetContain || isSourceContain || isSame\r\n}\r\n\r\n/**\r\n * 소스 날짜의 시작/종료 시간이 타겟 날짜의 시작/종료시과 서로 포함된 관계인지 여부를 리턴\r\n * @param sourceStart 소스날짜 시작시간\r\n * @param sourceEnd 소스날짜 종료시간\r\n * @param targetStart 타겟날짜 시작시간\r\n * @param targetEnd 타겟날짜 종료시간\r\n */\r\n export const uGetInDateBoundaryEqual = function (sourceStart: Date, sourceEnd: Date, targetStart: Date, targetEnd: Date): boolean {\r\n let ss = Number(sourceStart);\r\n let se = Number(sourceEnd);\r\n let ts = Number(targetStart);\r\n let te = Number(targetEnd);\r\n\r\n let isTargetContain = (ss <= ts && se >= ts) || (ss <= te && se >= te);\r\n let isSourceContain = (ts <= ss && te >= ss) || (ts <= se && te >= se);\r\n let isSame = ss == ts && se == te;\r\n\r\n\r\n return isTargetContain || isSourceContain || isSame ;\r\n}\r\n\r\n\r\n/**\r\n * 특정 날짜를 특정 수치만큼 변경하여 반환합니다\r\n * @param difValue 날짜 변경 수치\r\n * @param difDate 날짜 지정 (기본 new Date())\r\n * @param difType 단위 타입 time / sec / min / hour / date / month / year (기본 date)\r\n */\r\nexport const uGetDate = function(\r\n difValue: number,\r\n difDate: Date = new Date(),\r\n difType: 'time' | 'sec' | 'min' | 'hour' | 'date' | 'month' | 'year' = 'date'\r\n): Date {\r\n switch (difType) {\r\n case 'time':\r\n difDate.setTime(difDate.getTime() + difValue)\r\n break\r\n case 'sec':\r\n difDate.setSeconds(difDate.getSeconds() + difValue)\r\n break\r\n case 'min':\r\n difDate.setMinutes(difDate.getMinutes() + difValue)\r\n break\r\n case 'hour':\r\n difDate.setHours(difDate.getHours() + difValue)\r\n break\r\n case 'date':\r\n difDate.setDate(difDate.getDate() + difValue)\r\n break\r\n case 'month':\r\n difDate.setMonth(difDate.getMonth() + difValue)\r\n break\r\n case 'year':\r\n difDate.setFullYear(difDate.getFullYear() + difValue)\r\n break\r\n default:\r\n break\r\n }\r\n return difDate\r\n}\r\n\r\n/**\r\n * 문자열을 Duration 객체로 반환합니다\r\n * @param str ex) 1.5 시간\r\n */\r\nexport const getDurationFromText = function(str: string) {\r\n let text = (getStringWithoutNumber(str) + '').toLowerCase().trim()\r\n let numstr = str.replace(text, '')\r\n let num = Number(getOnlyNumber(str))\r\n let error = ''\r\n let sumSec = 0\r\n\r\n if (!isNaN(num)) {\r\n switch (text) {\r\n case 's':\r\n case 'sec':\r\n case 'secs':\r\n case 'second':\r\n case 'seconds':\r\n case '초':\r\n sumSec = num\r\n break\r\n case 'm':\r\n case 'min':\r\n case 'mins':\r\n case 'minute':\r\n case 'minutes':\r\n case '분':\r\n sumSec = num * 60\r\n break\r\n case 'h':\r\n case 'hour':\r\n case 'hours':\r\n case '시':\r\n case '시간':\r\n sumSec = num * 60 * 60\r\n break\r\n case 'd':\r\n case 'day':\r\n case 'days':\r\n case 'date':\r\n case '일':\r\n sumSec = num * 60 * 60 * 24\r\n break\r\n case 'w':\r\n case 'week':\r\n case 'weeks':\r\n case '주':\r\n sumSec = num * 60 * 60 * 24 * 7\r\n break\r\n default:\r\n error = `${i18n.t('message.M_Common_DateMsg2', { text: text })} `\r\n break\r\n }\r\n } else {\r\n error = `${i18n.t('message.M_Common_DateMsg1')}`\r\n }\r\n\r\n let Seconds = 0\r\n let Minutes = 0\r\n let Hours = 0\r\n let Days = 0\r\n let Weeks = 0\r\n\r\n let fixedDigit = 10\r\n let totalSeconds = sumSec + 0\r\n let totalWeeks = Number((sumSec / (86400 * 7)).toFixed(fixedDigit))\r\n let totalDays = Number((sumSec / 86400).toFixed(fixedDigit))\r\n let totalHours = Number((sumSec / 3600).toFixed(fixedDigit))\r\n let totalMins = Number((sumSec / 60).toFixed(fixedDigit))\r\n\r\n Weeks = Math.floor(sumSec / (86400 * 7))\r\n sumSec -= Weeks * (86400 * 7)\r\n\r\n Days = Math.floor(sumSec / 86400) % 7\r\n sumSec -= Days * 86400\r\n\r\n Hours = Math.floor(sumSec / 3600) % 24\r\n sumSec -= Hours * 3600\r\n\r\n Minutes = Math.floor(sumSec / 60) % 60\r\n sumSec -= Minutes * 60\r\n\r\n Seconds = sumSec % 60\r\n\r\n let time = uGetZero(Hours) + ':' + uGetZero(Minutes) + ':' + uGetZero(Seconds)\r\n\r\n let result = {\r\n totalSeconds: totalSeconds,\r\n totalMinutes: totalMins,\r\n totalHours: totalHours,\r\n totalDays: totalDays,\r\n totalWeeks: totalWeeks,\r\n Seconds: Seconds,\r\n Minutes: Minutes,\r\n Hours: Hours,\r\n Days: Days,\r\n durationText: str,\r\n durationValue: '',\r\n error: error,\r\n } as datehelper.Duration\r\n\r\n if (Days + Weeks * 7 > 0) {\r\n result.durationValue = Days + Weeks * 7 + '.' + time\r\n } else {\r\n result.durationValue = time\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * 종료일과 시작일의 차를 Duration 객체로 반환합니다\r\n * @param end\r\n * @param start\r\n */\r\nexport const getDurationFromDate = function(\r\n end: string | Date,\r\n start: string | Date,\r\n isAbs: boolean = true,\r\n displayArr: string[] = []\r\n) {\r\n if (typeof end === typeof '') {\r\n end = (end as string).split('+')[0]\r\n end = IEDate(end as string)\r\n }\r\n\r\n if (typeof start === typeof '') {\r\n start = (start as string).split('+')[0]\r\n start = IEDate(start as string)\r\n }\r\n\r\n let diff = isAbs ? Math.abs(Number(end) - Number(start)) : Number(end) - Number(start)\r\n let sumSec = diff / 1000\r\n let input = getTextFromDuration(sumSec, displayArr)\r\n let Seconds = 0\r\n let Minutes = 0\r\n let Hours = 0\r\n let Days = 0\r\n let Weeks = 0\r\n\r\n let fixedDigit = 10\r\n let totalSeconds = sumSec + 0\r\n let totalWeeks = Number((sumSec / (86400 * 7)).toFixed(fixedDigit))\r\n let totalDays = Number((sumSec / 86400).toFixed(fixedDigit))\r\n let totalHours = Number((sumSec / 3600).toFixed(fixedDigit))\r\n let totalMins = Number((sumSec / 60).toFixed(fixedDigit))\r\n\r\n Weeks = Math.floor(sumSec / (86400 * 7))\r\n sumSec -= Weeks * (86400 * 7)\r\n\r\n Days = Math.floor(sumSec / 86400)\r\n sumSec -= Days * 86400\r\n\r\n Hours = Math.floor(sumSec / 3600) % 24\r\n sumSec -= Hours * 3600\r\n\r\n Minutes = Math.floor(sumSec / 60) % 60\r\n sumSec -= Minutes * 60\r\n\r\n Seconds = sumSec % 60\r\n\r\n let time = uGetZero(Hours) + ':' + uGetZero(Minutes) + ':' + uGetZero(Seconds)\r\n\r\n let result = {\r\n totalSeconds: totalSeconds,\r\n totalMinutes: totalMins,\r\n totalHours: totalHours,\r\n totalDays: totalDays,\r\n totalWeeks: totalWeeks,\r\n Seconds: Seconds,\r\n Minutes: Minutes,\r\n Hours: Hours,\r\n Days: Days,\r\n durationText: input,\r\n durationValue: '',\r\n error: '',\r\n } as datehelper.Duration\r\n\r\n if (Days > 0) {\r\n result.durationValue = Days + '.' + time\r\n } else {\r\n result.durationValue = time\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * Duration 문자열을 일반 시간 문자열로 반환합니다\r\n * @param duration 1.00:30:00 형식 문자열\r\n * @param displayArr 반환 시간 단위 문자배열 (기본값 : ['초','분','시간','일','주'])\r\n */\r\nexport const getTextFromDate = function(duration: string, displayArr: string[] = []) {\r\n let days = 0\r\n\r\n let daysStr = duration.split('.')[0]\r\n let timeStr = duration + ''\r\n if (daysStr != duration) {\r\n days = Number(daysStr)\r\n timeStr = duration.split('.')[1]\r\n }\r\n\r\n let tarr = timeStr.split(':')\r\n\r\n let hours = Number(tarr[0])\r\n let mins = Number(tarr[1])\r\n let secs = Number(tarr[2])\r\n\r\n let sumSec = days * 86400 + hours * 3600 + mins * 60 + secs\r\n return getTextFromDuration(sumSec, displayArr)\r\n}\r\n\r\n/**\r\n * 초(Second)의 합으로 일반 시간 문자열로 반환합니다\r\n * @param sumSec 초(Seconds)\r\n * @param displayArr 반환 시간 단위 문자배열 (기본값 : ['초','분','시간','일','주'])\r\n */\r\nexport const getTextFromDuration = function(sumSec: number, displayArr: string[] = []) {\r\n let _displayArr = ['초', '분', '시간', '일', '주']\r\n\r\n if (displayArr.length) {\r\n _displayArr = displayArr\r\n }\r\n\r\n let fixedDigit = 10\r\n\r\n let totalWeeks = Number((sumSec / (86400 * 7)).toFixed(fixedDigit))\r\n let totalDays = Number((sumSec / 86400).toFixed(fixedDigit))\r\n let totalHours = Number((sumSec / 3600).toFixed(fixedDigit))\r\n let totalMins = Number((sumSec / 60).toFixed(fixedDigit))\r\n\r\n let array = [sumSec, totalMins, totalHours, totalDays, totalWeeks].map((x, idx) => {\r\n return { value: x + '', text: _displayArr[idx], idx: idx }\r\n })\r\n\r\n array.sort(\r\n (a, b) =>\r\n a.value.replace('.', '').length - b.value.replace('.', '').length ||\r\n Number(a.value) - Number(b.value) ||\r\n a.idx - b.idx\r\n )\r\n\r\n let result = array[0]\r\n\r\n return result.value + ' ' + result.text\r\n}\r\n\r\n/**\r\n * 문자열만 반환합니다\r\n * @param str\r\n */\r\nexport const getStringWithoutNumber = function(str: string) {\r\n return str.replace(/[-]{0,1}[\\d]*[.]{0,1}[\\d]+/g, '')\r\n}\r\n\r\n/**\r\n * 숫자만 반환합니다\r\n * @param str\r\n */\r\nexport const getOnlyNumber = function(str: string) {\r\n let array: RegExpMatchArray | null = str.match(/[-]{0,1}[\\d]*[.]{0,1}[\\d]+/g)\r\n return array?.join('')\r\n}\r\n\r\n/**\r\n * 날짜 기간선택 Duration 배열\r\n */\r\nexport const getDateTimeRangeTextArray = function() {\r\n let array = [\r\n '0 분',\r\n '5 분',\r\n '10 분',\r\n '15 분',\r\n '30 분',\r\n '1 시간',\r\n '2 시간',\r\n '3 시간',\r\n '4 시간',\r\n '5 시간',\r\n '6 시간',\r\n '7 시간',\r\n '8 시간',\r\n '9 시간',\r\n '10 시간',\r\n '11 시간',\r\n '0.5 일',\r\n '18 시간',\r\n '1 일',\r\n '2 일',\r\n '3 일',\r\n '4 일',\r\n '1 주',\r\n '2 주',\r\n ]\r\n let result = array.map((x) => getDurationFromText(x))\r\n return result\r\n}\r\n\r\nexport const uGetTimeTextFromDurationValue = function(\r\n dvalue: string,\r\n displayArr: string[] = ['오전', '오후']\r\n) {\r\n let tarr = dvalue.indexOf('.') == -1 ? dvalue.split(':') : dvalue.split('.')[1].split(':')\r\n\r\n let hours = Number(tarr[0])\r\n let mins = Number(tarr[1])\r\n let secs = Number(tarr[2])\r\n\r\n let ampmStr = ''\r\n\r\n if (hours < 12) {\r\n ampmStr = displayArr[0]\r\n } else {\r\n ampmStr = displayArr[1]\r\n }\r\n\r\n let text = `${ampmStr} ${uGetZero(hours)}:${uGetZero(mins)}`\r\n\r\n return { text: text, value: dvalue, num: hours + Number((mins / 60).toFixed(2)) }\r\n}\r\n\r\nexport const DateAndTimeSplitor = function(dateString: string) {\r\n let arr: string[] = []\r\n if (dateString && typeof dateString == typeof '') {\r\n if (dateString.indexOf(' ') != -1) {\r\n arr = dateString.split(' ')\r\n } else if (dateString.indexOf('T') != -1) {\r\n arr = dateString.split('T')\r\n }\r\n\r\n if (arr.length > 1) {\r\n if (arr[1].indexOf('+') != -1) {\r\n arr = [arr[0], arr[1].split('+')[0]]\r\n }\r\n }\r\n }\r\n if (arr.length) {\r\n return arr\r\n } else {\r\n return [dateString]\r\n }\r\n}\r\n\r\n/**\r\n * 날짜를 형식 문자열로 변환합니다. (Board 에서 사용)\r\n * @param format\r\n * @param date\r\n */\r\nexport const uGetDateFormat_UTC = function(format: string, date: Date = new Date()): string {\r\n const _date = IEDate(date.getTime())\r\n\r\n return format.replace(/(yyyy|mm|dd|MM|DD|H|i|s)/g, (t: string): any => {\r\n switch (t) {\r\n case 'yyyy':\r\n return _date.getFullYear()\r\n case 'mm':\r\n return _date.getMonth() + 1\r\n case 'dd':\r\n return _date.getDate()\r\n case 'MM':\r\n return uGetZero(_date.getMonth() + 1)\r\n case 'DD':\r\n return uGetZero(_date.getDate())\r\n case 'H':\r\n return uGetZero(_date.getHours() + 9)\r\n case 'i':\r\n return uGetZero(_date.getMinutes())\r\n case 's':\r\n return uGetZero(_date.getSeconds())\r\n default:\r\n return ''\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 일주일 전을 계산합니다. (Board 에서 사용)\r\n * @param format\r\n * @param date\r\n */\r\nexport const getbeforeWeek = function(format: string, date: Date = new Date()): string {\r\n const _date = new Date(date.getTime())\r\n\r\n return format.replace(/(yyyy|mm|dd|MM|DD|H|i|s)/g, (t: string): any => {\r\n switch (t) {\r\n case 'yyyy':\r\n return _date.getFullYear()\r\n case 'mm':\r\n return _date.getMonth() + 1\r\n case 'dd':\r\n return _date.getDate()\r\n case 'MM':\r\n return uGetZero(_date.getMonth() + 1)\r\n case 'DD':\r\n return uGetZero(_date.getDate() - 7)\r\n case 'H':\r\n return uGetZero(_date.getHours() + 9)\r\n case 'i':\r\n return uGetZero(_date.getMinutes())\r\n case 's':\r\n return uGetZero(_date.getSeconds())\r\n default:\r\n return ''\r\n }\r\n })\r\n}\r\n","import api from '@/api';\r\n\r\nexport default {\r\n getUserByPersonCode(personCode: string): Promise {\r\n return api.get({\r\n url: `/api/hr/department/person`,\r\n params: {\r\n personCode,\r\n }\r\n })\r\n },\r\n\r\n /**\r\n * 양식 및 시스템 옵션을 조회합니다.\r\n * @param typeId 양식/시스템 구분값\r\n * @returns \r\n */\r\n getApplicationOptionList(payload: workflow.RequestWorkflowOption): Promise {\r\n return api.post({\r\n url: '/workflow/application/api/getapplicationoption',\r\n data: payload\r\n })\r\n },\r\n\r\n // 문서함 페이지\r\n getDocumentPages(): Promise {\r\n return api.post({\r\n url: `/workflow/Common/api/getDocumentPages`\r\n });\r\n },\r\n}","import api from '@/api';\r\n\r\nexport default {\r\n /**\r\n * 문서 리스트를 가져옵니다\t \r\n */\r\n getDocumentList(req: workflow.RequestDocument): Promise {\r\n return api.post({\r\n url: '/workflow/mobile/api/document/list',\r\n data: req,\r\n }).then((res) => {\r\n var obj = Object.create(null);\r\n if (res) {\r\n obj = res;\r\n }\r\n return obj;\r\n });\r\n },\r\n}","import api from '@/api';\r\n\r\nexport default {\r\n /**\r\n * 문서 리스트를 가져옵니다\t \r\n */\r\n getForm(req: workflow.RequestForm): Promise {\r\n return api.post({\r\n url: '/workflow/form/api/get',\r\n data: req,\r\n }).then((res) => {\r\n return res;\r\n });\r\n },\r\n\r\n /**\r\n * 폼 액션을 수행합니다\r\n * @param req \r\n * @returns \r\n */\r\n actionForm(req: workflow.RequestActionForm): Promise {\r\n return api.post({\r\n url: '/workflow/form/api/action',\r\n data: req,\r\n }).then((res) => {\r\n return res;\r\n })\r\n },\r\n\r\n /**\r\n * 해당 문서의 회람자 목록을 조회합니다.\r\n * @param req \r\n * @returns \r\n */\r\n getLineHistory(req: workflow.TA_APPROVALLINE): Promise>{\r\n return api.post>({\r\n url: '/workflow/form/api/getHistory',\r\n data: req,\r\n }).then((res) => res);\r\n },\r\n}","import common from './common'\r\nimport document from './document'\r\nimport form from './form'\r\n\r\nexport default {\r\n common,\r\n document,\r\n form,\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecipientField.vue?vue&type=style&index=0&id=a1c5c4b2&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadContainer.vue?vue&type=style&index=0&id=4d1eae74&scoped=true&lang=css&\"","export const invalidateUrl = function(path: string): string {\r\n var url = ''\r\n if (path.toLowerCase().startsWith('/cm')) {\r\n url = path\r\n } else if (path.startsWith('/')) {\r\n url = process.env.BASE_URL + path.substring(1)\r\n } else if (path.startsWith('http://') || path.startsWith('https://')) {\r\n url = path\r\n } else {\r\n url = path\r\n }\r\n return url\r\n}\r\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Paginate.vue?vue&type=style&index=0&id=7b4d40ef&lang=css&scoped=true&\""],"sourceRoot":""}