{"version":3,"file":"js/8583-0228a3e2924c84b3b3b5.js","mappings":"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","sources":["webpack://assistant/./frontend/packs/models/Appointment.ts"],"sourcesContent":["import { DateTime } from \"luxon\"\nimport axios from \"axios\"\nimport Util from \"packs/utils/Util\"\nimport { funcName, Logger } from \"packs/common\"\nimport Notice from \"./Notice\"\nimport Room from \"./Room\"\nimport PossibleDate from \"./PossibleDate\"\nimport RoomMember from \"./RoomMember\"\nimport MeetingAttendeesGroup from \"./MeetingAttendeesGroup\"\nimport LocationTag from \"./LocationTag\"\nimport NotificationControl from \"packs/utils/NotificationControl\"\nimport CalendarTag from \"./CalendarTag\"\nimport DateTag from \"./DateTag\"\nimport lodash from \"lodash\"\n\ninterface OnlineMeetingLocation {\n online_meeting_url: string\n online_meeting_id: string\n online_meeting_password: string\n is_owner_ug: boolean\n online_meeting_account_email: string\n online_meeting_zoom_host_key: string\n}\n\nexport default class Appointment {\n static readonly typeEdit: string = \"editAppo\"\n static readonly typeEditAfterFixed: string = \"editAppoAfterFixed\"\n static readonly typeEditAfterCanceled: string = \"editAppoAfterCanceled\"\n static readonly typeAddNew: string = \"addnewAppo\"\n static readonly typeNew: string = \"newAppo\"\n static readonly typeReschedule: string = \"reschedule\"\n static readonly typeCancel: string = \"cancel\"\n\n static readonly statusInProgress: number = 1\n static readonly statusFix: number = 10\n static readonly statusCancel: number = -1\n\n static readonly DEFAULT_DOWNLOAD_STATUSES = [\n { name: `in_progress`, title: `調整中`, num: 1, checked: true },\n { name: `fixed`, title: `調整済`, num: 10, checked: true },\n { name: `canceled`, title: `キャンセル`, num: -1, checked: true },\n ]\n\n constructor(\n public name: string,\n public status: number,\n public id: string,\n public duration: number, // min\n public location_name: string,\n public created_at: number,\n public updated_at: number,\n public expired_at: number,\n public memo: string,\n public required_owner_participation: boolean, // chukaiが参加するかどうか\n public start_time: number,\n public end_time: number,\n public jp_format: string,\n public fix_type: number, // 日程確定可能者 オーナーのみ=1, オーナーと調整カレンダー最後のユーザー=99, 誰でも=100\n public selected_mag_dic: { [key: string]: MeetingAttendeesGroup },\n public selectedMags: MeetingAttendeesGroup[],\n public location_select_type: string, //registrable, registrable_owner_only, selectable, selectable_or_registrable\n public location_tag_id: string, // optional\n public selectable_location_tag_ids: string[],\n public selected_location: LocationTag,\n public selectable_locations: LocationTag[],\n // public locations: LocationTag[],\n public is_selected_free_location: boolean,\n public localId: string,\n public is_online_meeting: boolean,\n public online_meeting: OnlineMeetingLocation,\n public can_cancel: boolean,\n public cancel_expires_at: number,\n public can_display_mag_in_room: boolean\n ) {}\n\n static copy(o: Appointment): Appointment {\n let newO = lodash.cloneDeep(o)\n return newO\n }\n\n static fetchFromJson(apposJson: any): Appointment[] {\n if (!apposJson) return []\n let appointments = []\n // const arrOfGroups = JSON.parse(groupsJson)\n for (let appo of apposJson) {\n if (Util.isBlank(appo)) continue\n const _appo: Appointment = appo\n if (appo.selected_mag_dic) {\n appo.selectedMags = [...Object.values(appo.selected_mag_dic)]\n }\n if (appo.status == 10) {\n } else {\n if (appo.selected_location) {\n let loctag = LocationTag.fetchFromJson([appo.selected_location])[0]\n if (loctag) _appo.location_name = loctag.keyword\n _appo.selected_location = loctag\n }\n if (appo.selectable_locations) {\n let loctags = LocationTag.fetchFromJson(appo.selectable_locations)\n if (_appo.selected_location) {\n let _loctag = loctags.find(l => l.public_id == _appo.selected_location.public_id)\n if (_loctag) _loctag.selected = true\n }\n\n _appo.selectable_locations = loctags\n }\n }\n\n appointments.push(_appo)\n }\n return appointments\n }\n\n /**\n * numberに変更します.\n * @param str owner/last/any\n */\n static fixTypeFromString(str: string) {\n let fix_type\n if (str == `owner`) {\n fix_type = 1\n } else if (str == `last`) {\n fix_type = 99\n } else if (str == `any`) {\n fix_type = 100\n }\n return fix_type\n }\n\n static isFix(room: Room = null, appo: Appointment = null) {\n if (!room && !appo) return false\n if (!appo) {\n appo = room.current_appointment\n }\n\n if (!appo) return false\n if (appo.status == Appointment.statusFix) return true\n return false\n }\n\n static isCanceled(room: Room = null, appo: Appointment = null) {\n if (!room && !appo) return false\n if (!appo) {\n appo = room.current_appointment\n }\n\n if (!appo) return false\n if (appo.status == Appointment.statusCancel) return true\n return false\n }\n\n static createDefault(): Appointment {\n return new Appointment(\n `打ち合わせ`,\n 1,\n ``,\n 60,\n ``,\n 0,\n 0,\n 0,\n ``,\n true,\n -1,\n -1,\n null,\n null,\n null,\n null,\n `registrable`,\n null,\n null,\n null,\n null,\n false,\n null,\n false,\n null,\n true,\n null,\n false\n )\n }\n\n /**\n * アポを作成/更新します。\n * @param appointment [Appointment]\n * @param sendType [string] \"put\", \"post\", \"fix\"\n * @param room [Room] 調整ページのIDを利用するため.\n * @param magId [string] MeetingAttendeesGroupのidをセットすると、そのmagチームで確定します。\n */\n static update(\n appointment: Appointment,\n sendType,\n room: Room,\n start_time = null,\n magId = null,\n guestKey = null,\n onlineUrl = null,\n memo = null,\n lp_id = null\n ): Promise {\n let endpoint = \"\"\n if (sendType === \"fix\") {\n endpoint = \"/fix\"\n sendType = \"put\"\n appointment[\"start_time\"] = start_time\n if (magId) appointment[\"group_id\"] = magId\n if (guestKey) {\n appointment[`guest_key`] = guestKey\n appointment[`embeds`] = true\n }\n if (onlineUrl) appointment[`location_name`] = onlineUrl\n if (memo) appointment[`memo`] = memo\n if (lp_id) appointment[`lp_id`] = lp_id\n } else if (sendType === \"post\") {\n appointment[\"room_id\"] = room.room_id\n delete appointment[\"id\"]\n } else if (sendType === `put`) {\n // 編集の場合、room_appeal_contentの変更も許可\n appointment[`appeal_content`] = room.appeal_content\n }\n if (room.isParent) {\n appointment[\"parent_room_id\"] = room.id\n } else {\n appointment[\"parent_room_id\"] = room.parentRoomId\n }\n if (!appointment.name || appointment.name == ``) {\n appointment.name = \"打ち合わせ\"\n }\n // appointment[\"parent_room_id\"] = \"\"\n Logger(`Appointment.update sendType: ${sendType} appo: ${Util.output(appointment)}`)\n\n return axios({\n method: sendType,\n url: `${Util.prefixUrl}/room_appointments${endpoint}`,\n data: appointment,\n })\n .then(res => {\n Logger(`Appointment.update res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const res_appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n let next_action = res.data.next_action\n let type = res.data.type\n\n return { appo: res_appo, show_attendees_modal: res.data.show_attendees_modal, next_action, type }\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n // if (res.code === \"ng_052\") {\n\n // } else {\n // Notice.message = `日程調整情報をうまく更新できませんでした。後ほどお試しください。`\n // }\n return null\n })\n }\n\n /**\n * アポを作成/更新します。\n * @param appointment [Appointment]\n * @param sendType [string] \"cancel\", \"reschedule\"\n * @param message [string] ユーザーがコメントした内容.\n */\n static cancel(appointment: Appointment, sendType, message = ``): Promise {\n let endpoint = \"\"\n if (sendType === \"cancel\") {\n endpoint = \"/cancel\"\n } else if (sendType === \"reschedule\") {\n endpoint = \"/reschedule\"\n } else {\n Notice.message = \"URLが不正です。\"\n return\n }\n const params = { id: appointment.id, message: message }\n\n // appointment[\"parent_room_id\"] = \"\"\n Logger(`Appointment.cancel sendType: ${sendType} appo: ${Util.output(appointment)}`)\n\n sendType = \"put\"\n\n return axios({\n method: sendType,\n url: `${Util.prefixUrl}/room_appointments${endpoint}`,\n data: params,\n })\n .then(res => {\n Logger(`Appointment.cancel res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n // const appo: Appointment = res.data.appointment\n\n return appo\n })\n .catch(err => {\n Logger(`Appointment.cancel err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n // if (res.code === \"ng_052\") {\n\n // } else {\n // Notice.message = `日程調整情報をうまく更新できませんでした。後ほどお試しください。`\n // }\n return null\n })\n }\n\n // deprecated v14.3.0-\n // static getLocationNames(): Promise {\n // return axios\n // .get(`${Util.prefixUrl}/room_appointments/locations`)\n // .then(result => {\n // Logger(`Appointment.${funcName()} result: ${Util.output(result.data)}`)\n // const locations: string[] = result.data.locations\n // return locations\n // })\n // .catch(err => {\n // Logger(`Appointment.${funcName()} err: ${err.message} ${Util.output(err.response)}`)\n // NotificationControl.showErrorMessage(err)\n // return null\n // })\n // }\n\n static getTitles(): Promise {\n return axios\n .get(`${Util.prefixUrl}/room_appointments/titles`)\n .then(result => {\n Logger(`Appointment.${funcName()} result: ${Util.output(result.data)}`)\n const titles: string[] = result.data.titles\n return titles\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * appo内のlocation_select_type(registrable/selectable/selectable_or_registrable)の判定を行います。\n * 最後にappo.selectable_locationsにloctagsをセットします。\n *\n * @param appo [Appointment] 新しいloctagとタイプをセットするappo(途中で更新が走らないようにコピーして利用、返却)\n * @param loctags [LocationTag[]] 判定に利用するlocationTags\n * @param deleteFree [boolean] フリーフォームを削除するか(ルーム作成直前に通すときは削除します)\n */\n static setLocationSelectType(appo: Appointment, loctags: LocationTag[], deleteFree = false) {\n Logger(`Appointment.setLocationSelectType loctags[${(loctags || []).length}]:${Util.output(loctags)}`)\n\n let _appo = Appointment.copy(appo)\n let _freeLoctag = null\n if (Util.isPresent(loctags)) {\n if (loctags.length == 1) {\n _appo.location_select_type = `registrable`\n } else {\n _freeLoctag = loctags.find(l => l.public_id == `free`)\n if (_freeLoctag) {\n _appo.location_select_type = `selectable_or_registrable`\n } else {\n _appo.location_select_type = `selectable`\n }\n }\n Logger(`Appointment.setLocationSelectType location_select_type:${_appo.location_select_type}`)\n\n let loctagsExceptFree = loctags.filter(l => l.public_id != `free`)\n let defaultLoctag = loctags[0]\n if (Util.isPresent(defaultLoctag) && Util.isPresent(defaultLoctag.id)) {\n _appo.location_tag_id = defaultLoctag.id\n _appo.selected_location = defaultLoctag\n }\n\n if (deleteFree) {\n loctags = loctagsExceptFree\n }\n\n _appo.selectable_locations = loctags\n _appo.location_name = (loctags[0] || {})[`keyword`]\n if (_appo.location_name == `自由に場所を入力できます`) {\n _appo.location_name = null\n _appo.location_tag_id = null\n }\n _appo.selectable_location_tag_ids = loctagsExceptFree.map(l => l.id)\n } else {\n _appo.location_select_type = `registrable`\n _appo.selectable_locations = null\n _appo.selectable_location_tag_ids = null\n _appo.location_tag_id = null\n _appo.selected_location = null\n _appo.location_name = appo.location_name\n }\n // if (_appo.location_select_type == `registrable` && Util.isPresent(_appo.selected_location)) {\n // _appo.location_tag_id = _appo.selected_location.id\n // }\n Logger(\n `Appointment. 判定後: ${_appo.location_select_type} _appo.location_tag_id: ${\n _appo.location_tag_id\n }, selected_location:${Util.output(_appo.selected_location)}`\n )\n return _appo\n }\n\n //\n static isSelectable(appo: Appointment) {\n if ([`selectable_or_registrable`, `selectable`].includes(appo.location_select_type)) return true\n return false\n }\n\n /**\n * location_select_typeと整合性をあわせます。\n * @param _appo\n *\n */\n static adjustLocations(_appo: Appointment, _loctags: LocationTag[] = null) {\n Logger(`Appointment.adjustLocations location_select_type:${_appo.location_select_type}`)\n if (Util.isBlank(_loctags) && Util.isPresent(_appo.selectable_locations)) _loctags = [..._appo.selectable_locations]\n\n // 選択できるのは1つだけなので、選択したらtrueにします.\n let isSelected = false\n Logger(`Appointment.adjustLocations isSelectable: ${Appointment.isSelectable(_appo)}`)\n if (Appointment.isSelectable(_appo) && Util.isPresent(_appo.selected_location)) {\n let loc = LocationTag.fetchFromJson([_appo.selected_location])[0]\n Logger(\n `Appointment.adjustLocations 選択中のものを追加します. loc:${Util.output(loc)}, _loctags.ids:${_loctags.map(\n l => l.id\n )}`\n )\n\n let _loc = _loctags.find(l => l.id == loc.id)\n if (_loc) {\n Logger(`Appointment.adjustLocations _locありました`)\n _loc.selected = true\n } else {\n Logger(`Appointment.adjustLocations _locありませんでした`)\n loc.selected = true\n _loctags.push(loc)\n }\n isSelected = true\n }\n\n if (_appo.location_select_type == `selectable_or_registrable`) {\n let _lc = _loctags.find(l => l.public_id == `free`)\n if (_lc) {\n if (_appo.is_selected_free_location && !isSelected) {\n _lc.selected = true\n }\n } else {\n let freeFormLoctag = LocationTag.createRegistrable()\n if (_appo.is_selected_free_location && !isSelected) {\n freeFormLoctag.selected = true\n }\n _loctags.push(freeFormLoctag)\n }\n }\n Logger(`Appointment.adjustLocations _loctags:${Util.output(_loctags)}`)\n\n return _loctags\n }\n\n static fixVotedRoom(\n room: Room,\n pd: PossibleDate,\n voteType: string,\n parentRoomIds: string[],\n sampleId: string,\n text: string,\n force: boolean,\n textMemo: string,\n locationName: string,\n zoomAccs: CalendarTag[],\n newAttendees: RoomMember[],\n // オーナー以外の人が確定する場合、自分のparent_room_idを送信します.\n myParentRoom: Room = null,\n userInfo: RoomMember,\n // 担当者を指定する場合\n mag: MeetingAttendeesGroup = null,\n fAppoDic: any = null,\n endPoint: string = null\n ) {\n if (mag && mag.purpose_type == `temporary`) {\n mag.online_meeting_resources = zoomAccs\n }\n let dic = {\n id: room.id,\n start_time: pd.start_time,\n duration: pd.duration,\n vote_type: voteType,\n room_ids: parentRoomIds,\n sample_id: sampleId,\n text: text,\n is_force: force,\n memo: textMemo,\n location_name: locationName,\n online_meeting_resources: zoomAccs,\n new_attendees: newAttendees,\n group_id: mag ? mag.id : null,\n new_group: mag && mag.id ? null : mag,\n f_appo_dic: fAppoDic,\n }\n if (Util.isPresent(myParentRoom)) {\n dic[`parent_room_id`] = myParentRoom.id\n }\n\n if (Util.isPresent(endPoint)) {\n } else {\n endPoint = `fix_voted_rooms`\n }\n\n return axios({\n method: `post`,\n url: `${Util.prefixUrl}/public_rooms/${endPoint}`,\n data: dic,\n })\n .then(res => {\n Logger(`Appointment.fixVotedRoom res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const res_appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n const room_ids = res.data.fixed_room_ids || []\n const newParentRooms = Room.fetchFromJson(res.data.new_attendees_parent_rooms, userInfo.user_id)\n\n return {\n appo: res_appo,\n room_ids: room_ids,\n new_parent_rooms: newParentRooms,\n status: res.status,\n fixed_astags: res.data.fixed_astags,\n }\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n\n const res = err.response ? err.response : null\n // if (res && res.status == 400) {\n // if (window.confirm(`予定が埋まっていて確定できませんでした。強制的に確定しますか?`)) {\n // this.fixVotedRoom(\n // room,\n // pd,\n // voteType,\n // parentRoomIds,\n // sampleId,\n // text,\n // true,\n // textMemo,\n // locationName,\n // zoomAccs,\n // newAttendees,\n // myParentRoom,\n // userInfo\n // ).then(res => {\n // return res\n // })\n // }\n // } else {\n // NotificationControl.showErrorMessage(err)\n // }\n\n // if (res.code === \"ng_052\") {\n\n // } else {\n // Notice.message = `日程調整情報をうまく更新できませんでした。後ほどお試しください。`\n // }\n return { appo: null, room_ids: null, new_parent_rooms: null, status: 400, fixed_astags: null }\n })\n }\n\n static cancelVotedRoom(room: Room, type: string, text: string) {\n let dic = {\n id: room.public_room_id,\n appo_id: room.current_appointment.id,\n type: type,\n text: text,\n }\n\n return axios({\n method: `post`,\n url: `${Util.prefixUrl}/public_rooms/cancel_voted_rooms`,\n data: dic,\n })\n .then(res => {\n Logger(`Appointment.cancelVotedRoom res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n const res_appo: Appointment = Appointment.fetchFromJson([res.data.appointment])[0]\n const room_ids = res.data.canceled_room_ids || []\n\n return { appo: res_appo, room_ids: room_ids }\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static createJpFormat(dt: DateTime, duration: number) {\n let timeJpFormat = ``\n timeJpFormat += dt.toFormat(`M月d日`)\n let weekNum = dt.weekday\n if (weekNum > 6) weekNum -= 7\n timeJpFormat += `(${DateTag.weekNames()[weekNum]})`\n timeJpFormat += `${dt.toFormat(`HH:mm`)}`\n let endt = dt.plus({ minutes: duration })\n timeJpFormat += `~${endt.toFormat(`HH:mm`)}`\n return timeJpFormat\n }\n}\n"],"names":["Appointment","name","status","id","duration","location_name","created_at","updated_at","expired_at","memo","required_owner_participation","start_time","end_time","jp_format","fix_type","selected_mag_dic","selectedMags","location_select_type","location_tag_id","selectable_location_tag_ids","selected_location","selectable_locations","is_selected_free_location","localId","is_online_meeting","online_meeting","can_cancel","cancel_expires_at","can_display_mag_in_room","copy","o","lodash","fetchFromJson","apposJson","appointments","appo","Util","isBlank","_appo","__spreadArray","Object","values","loctag","LocationTag","keyword","loctags","_loctag","find","l","public_id","selected","push","_i","apposJson_1","length","fixTypeFromString","str","isFix","room","current_appointment","statusFix","isCanceled","statusCancel","createDefault","update","appointment","sendType","magId","guestKey","onlineUrl","lp_id","endpoint","room_id","appeal_content","isParent","parentRoomId","Logger","concat","output","axios","method","url","prefixUrl","data","then","res","message","Notice","res_appo","next_action","type","show_attendees_modal","err","response","NotificationControl","showErrorMessage","cancel","params","getTitles","get","result","funcName","titles","setLocationSelectType","deleteFree","_freeLoctag","isPresent","loctagsExceptFree","filter","defaultLoctag","map","isSelectable","includes","adjustLocations","_loctags","isSelected","loc_1","_loc","_lc","freeFormLoctag","createRegistrable","fixVotedRoom","pd","voteType","parentRoomIds","sampleId","text","force","textMemo","locationName","zoomAccs","newAttendees","myParentRoom","userInfo","mag","fAppoDic","endPoint","purpose_type","online_meeting_resources","dic","vote_type","room_ids","sample_id","is_force","new_attendees","group_id","new_group","f_appo_dic","fixed_room_ids","new_parent_rooms","Room","new_attendees_parent_rooms","user_id","fixed_astags","cancelVotedRoom","public_room_id","appo_id","canceled_room_ids","createJpFormat","dt","timeJpFormat","toFormat","weekNum","weekday","DateTag","weekNames","endt","plus","minutes","typeEdit","typeEditAfterFixed","typeEditAfterCanceled","typeAddNew","typeNew","typeReschedule","typeCancel","statusInProgress","DEFAULT_DOWNLOAD_STATUSES","title","num","checked"],"sourceRoot":""}