{"version":3,"file":"js/12703-c535c952184a4a549dba.js","mappings":"0SAuBAA,EAAA,WAoCI,SAAAA,EACWC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAIAC,EACAC,EAEAC,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAGAC,GAEAC,GACAC,GACAC,GAEAC,GAEAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAlHA,KAAAlG,MAAAA,EACA,KAAAC,GAAAA,EACA,KAAAC,UAAAA,EACA,KAAAC,QAAAA,EACA,KAAAC,aAAAA,EACA,KAAAC,oBAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,eAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,YAAAA,EACA,KAAAC,WAAAA,EAEA,KAAAC,SAAAA,EACA,KAAAC,KAAAA,EACA,KAAAC,mBAAAA,EACA,KAAAC,KAAAA,EACA,KAAAC,UAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,cAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,cAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,cAAAA,EACA,KAAAC,gBAAAA,EACA,KAAAC,6BAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,iBAAAA,EACA,KAAAC,mBAAAA,EACA,KAAAC,gCAAAA,EACA,KAAAC,SAAAA,EACA,KAAAC,QAAAA,EAEA,KAAAC,UAAAA,EACA,KAAAC,MAAAA,EACA,KAAAC,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","sources":["webpack://assistant/./frontend/packs/models/Room.ts"],"sourcesContent":["import { DateTime, Interval } from \"luxon\"\nimport { zeroPadding, Logger } from \"../common\"\nimport RoomMember from \"packs/models/RoomMember\"\nimport Appointment from \"packs/models/Appointment\"\nimport DateTag from \"packs/models/DateTag\"\nimport axios from \"axios\"\nimport Util from \"packs/utils/Util\"\nimport Notice from \"packs/models/Notice\"\nimport AvailableScheduleTag from \"packs/models/AvailableScheduleTag\"\nimport RoomStorage from \"packs/models/RoomStorage\"\nimport RoomHistoryLargeWrapper from \"packs/models/RoomHistoryLargeWrapper\"\nimport RoomManager from \"packs/models/RoomManager\"\nimport NotificationControl from \"packs/utils/NotificationControl\"\nimport AppealContent from \"packs/models/AppealContent\"\nimport FormField from \"packs/models/FormField\"\nimport RoomSetting from \"packs/models/RoomSetting\"\nimport RoomTab from \"packs/models/RoomTab\"\nimport CalendarTag from \"packs/models/CalendarTag\"\nimport GroupTag from \"packs/models/GroupTag\"\nimport AvailableScheduleRule from \"packs/models/AvailableScheduleRule\"\nimport FormFieldConverter from \"./FormFieldConverter\"\nimport ParentRoomGroup from \"packs/models/ParentRoomGroup\"\n\nexport default class Room {\n static readonly STATUS_DRAFT = -10\n static readonly STATUS_ACTIVE_IN_PROGRESS = 101\n static readonly STATUS_ACTIVE_UPCOMING_FIXED = 111\n static readonly STATUS_ACTIVE_PAST_FIXED = 112\n static readonly STATUS_ACTIVE_CANCELED = 121\n static readonly STATUS_ACTIVE_OTHER = 199\n\n static readonly STATUS_CLOSED_NOT_FIX = 201\n static readonly STATUS_CLOSED_UPCOMING_FIXED = 211\n static readonly STATUS_CLOSED_PAST_FIXED = 212\n static readonly STATUS_CLOSED_CANCELED = 221\n static readonly STATUS_CLOSED_OTHER = 299\n\n // 全ステータス一覧 (DRAFT除く)\n static readonly ALL_STATUSES = [\n Room.STATUS_ACTIVE_IN_PROGRESS,\n Room.STATUS_ACTIVE_UPCOMING_FIXED,\n Room.STATUS_ACTIVE_PAST_FIXED,\n Room.STATUS_ACTIVE_CANCELED,\n Room.STATUS_ACTIVE_OTHER,\n Room.STATUS_CLOSED_NOT_FIX,\n Room.STATUS_CLOSED_UPCOMING_FIXED,\n Room.STATUS_CLOSED_PAST_FIXED,\n Room.STATUS_CLOSED_CANCELED,\n Room.STATUS_CLOSED_OTHER,\n ]\n\n // 確定ステータス一覧\n static readonly FIXED_STATUSES = [\n Room.STATUS_ACTIVE_UPCOMING_FIXED,\n Room.STATUS_ACTIVE_PAST_FIXED,\n Room.STATUS_CLOSED_UPCOMING_FIXED,\n Room.STATUS_CLOSED_PAST_FIXED,\n ]\n\n constructor(\n public title: string,\n public id: string,\n public public_id: string,\n public room_id: string,\n public appointments: Appointment[],\n public current_appointment: Appointment,\n public is_owner: boolean,\n public is_owner_group: boolean,\n public status: number,\n public status_name: string,\n public is_expired: boolean,\n\n public duration: number, // 所要時間.\n public memo: string, // 応募職種\n public open_schedule_memo: string, // 調整ページ一覧に表示するメモ\n public role: number,\n public role_name: string,\n public location: string,\n public created_at: number,\n public createdAtText: string,\n public updated_at: number,\n public updatedAtText: string,\n public expired_at: number,\n public expiredAtText: string,\n public expiredLastText: string, // 残り○日\n public current_appointment_end_time: number,\n public is_valid: boolean, // 下書きの場合の作成できるかどうか\n public invalid_messages: string[], //下書きで作成不可の場合の不可メッセージ.\n public template_public_id: string,\n public owner_avaialble_schedule_tag_id: string,\n public children: any[],\n public members: RoomMember[],\n // public otherMembers: RoomMember[],\n public attendees: RoomMember[],\n public owner: RoomMember,\n public pics: RoomMember[], // 同じugの担当者\n public shared_schedule_member_ids: string[],\n // public invitations: any[],\n public progress_member_dic: { [key: string]: RoomHistoryLargeWrapper },\n public isParent: boolean,\n public isParentOwner: boolean,\n public parentRoomId: string,\n public keyId: string,\n public unread_num: number,\n public starred: boolean,\n public appeal_content: AppealContent,\n\n // PublicRoom\n //\n public public_status: string,\n public public_status_name: string,\n // url_name\n public page_key: string,\n //\n public password: string,\n public is_required_password: boolean,\n public use_noindex: boolean,\n // v8 rsに移行\n public use_chat: boolean,\n public display_form_timing_type: string, // open_page, with_fix, after_fix\n public display_schedule_type: string, // anytime, never, rules\n public public_memo: string,\n public private_memo: string,\n public form_fields: FormField[],\n public rule: FormField[],\n public room_type: string,\n public page_url: string,\n public answer_status: string,\n public answer_results: any,\n public form_id: string,\n public progress_status: string, // go, stay\n\n public room_setting: RoomSetting,\n public rooms_fixed: Room[],\n public rooms_not_voted: Room[],\n public rooms_voted: Room[],\n public rooms_closed: Room[],\n public rooms_voted_num: number,\n public public_room_id: string,\n public is_voted: boolean,\n public access_stats: any, // page_view_total: 0, page_view_weekly: 0, daily_dic: {page_view: 0, start: 0, fixed: 0}\n public max_bookings_num: number,\n\n public rooms_voted_summary: any,\n public owner_avaialble_schedule_tag_color: string,\n public owner_avaialble_schedule_tag_name: string,\n public owner_avaialble_schedule_tag_is_open_schedule: boolean,\n public owner_avaialble_schedule_tag_open_schedule_url: string,\n public current_tab_info: RoomTab,\n public priority_type: string,\n\n // スグINボタンに紐づくユーザー.\n public instant_room_assigned_users: any[],\n // 共有を受けた公開ページか.\n public is_shared: boolean,\n public group_tags: GroupTag[],\n public available_schedule_rules: AvailableScheduleRule[],\n // AIが利用する質問のpublic_id.\n public available_field_public_ids: string[],\n // ページ作成時に公開ページに紐付けるメッセージテンプレート.\n public default_message_template_id: string,\n public is_shared_chukai: boolean,\n public assign_form_id: string,\n public form_field_converters: FormFieldConverter[],\n public has_detail_converters: boolean,\n public has_detail: boolean,\n public form_submit_button_name: string,\n public form_submit_button_bg_color: string,\n public form_submit_button_text_color: string,\n public form_style_setting: { [key: string]: string },\n public terms_of_service_name: string,\n public privacy_policy_name: string,\n public show_waaq_tos: boolean,\n public show_waaq_pp: boolean,\n public open_schedule_title: string\n ) {}\n\n static isParentDraft(status: number): boolean {\n return status == Room.STATUS_DRAFT\n }\n\n static isParentActiveInProgress(status: number): boolean {\n return status == Room.STATUS_ACTIVE_IN_PROGRESS\n }\n\n static isParentCanceled(status: number): boolean {\n return [Room.STATUS_ACTIVE_CANCELED, Room.STATUS_CLOSED_CANCELED].includes(status)\n }\n\n static isParentActive(status: number): boolean {\n return [\n Room.STATUS_ACTIVE_IN_PROGRESS,\n Room.STATUS_ACTIVE_UPCOMING_FIXED,\n Room.STATUS_ACTIVE_PAST_FIXED,\n Room.STATUS_ACTIVE_CANCELED,\n ].includes(status)\n }\n\n static isParentActiveWithoutCanceled(status: number): boolean {\n return [Room.STATUS_ACTIVE_IN_PROGRESS, Room.STATUS_ACTIVE_UPCOMING_FIXED, Room.STATUS_ACTIVE_PAST_FIXED].includes(status)\n }\n\n static isParentFixed(status: number): boolean {\n return Room.FIXED_STATUSES.includes(status)\n }\n\n static fetchFromJson(groupsJson: any, my_user_id: string): Room[] {\n if (!groupsJson) return []\n let rooms = []\n const now = DateTime.local()\n\n Logger(`Room.fetchFromJson arrOfGroups: ${Util.output(groupsJson.length)}`)\n for (const room of groupsJson) {\n // let _r = plainToClass(Room, room)\n let _room: Room = room\n // let _room: Room = room\n // let _room: Room = Object.assign(new Room(), _r)\n _room.isParent = _room.room_type == `parent_room`\n _room.isParentOwner = _room.is_owner\n _room.parentRoomId = _room.id\n _room.keyId = this.createKeyId(_room, true)\n _room.is_voted = _room.is_voted\n\n // ルームの日付関係を入れます。\n if (_room.created_at) {\n let createdAtText = DateTag.getTimeStringSlashFromSeconds(_room.created_at)\n _room.createdAtText = createdAtText\n }\n if (_room.updated_at) {\n let updatedAtText = DateTag.getTimeStringSlashFromSeconds(_room.updated_at)\n _room.updatedAtText = updatedAtText\n }\n if (_room.expired_at) {\n let expiredAtText = DateTag.getTimeStringSlashFromSeconds(_room.expired_at)\n _room.expiredAtText = expiredAtText\n const expiredTime = DateTime.fromSeconds(_room.expired_at)\n let interval = Interval.fromDateTimes(now, expiredTime)\n const days = interval.length(\"days\")\n\n // Logger(`days: ${days}日, expiredtime: ${expiredAtText}`)\n if (days > 0) {\n _room.expiredLastText = `残り${Math.floor(days)}日`\n } else if (days < 0) {\n const hours = interval.length(\"hours\")\n _room.expiredLastText = `残り${Math.floor(hours)}時間`\n } else {\n _room.expiredLastText = `終了しました`\n }\n }\n\n let appo = Appointment.fetchFromJson([room.current_appointment])[0]\n _room.current_appointment = appo\n _room.appointments = Appointment.fetchFromJson(room.appointments)\n\n // Logger(`current appoを取得してはめます: ${Util.output(_room.current_appointment)}`)\n\n // 親ルームのメンバーを設定\n let members: RoomMember[] = RoomMember.fetchFromJson(room.members)\n // 同一ugの担当者.\n let pics: RoomMember[] = []\n _room.members = members\n let attendees = []\n for (let _member of members) {\n const mem: RoomMember = _member\n // Logger(`room appo in jSON: ${Util.output(_room)}`)\n if (appo.required_owner_participation) {\n let magDic = appo.selected_mag_dic\n if (appo.status == 10 && appo.can_display_mag_in_room) {\n if (mem.role == RoomMember.MEMBER) {\n } else {\n let mag = magDic[mem.user_id]\n if (mag?.team_name) mem.name = mag.team_name\n if (Util.isPresent(mag.profile_image_urls)) {\n let image = mag.profile_image_urls[0]\n mem.image_url = image\n } else {\n mem.image_url = null\n }\n }\n }\n // 仲介参加の場合、全員が参加\n attendees.push(mem)\n } else {\n // オーナー不参加.\n if (mem.role != 100) {\n attendees.push(mem)\n }\n }\n\n if (_member.user_id == my_user_id) {\n pics.push(mem)\n }\n\n // if (_member.role == 100) {\n // _room.owner = _member\n // }\n }\n _room.title = this.getTitle(members, my_user_id)\n _room.attendees = attendees\n _room.pics = pics\n\n // _room.room_setting = RoomSetting.findOrCreateSetting(_room, rm.user_setting)\n\n // Logger(`自分のrole: ${_room.role} ${_room.role_name}`)\n\n // 子ルームのメンバーを親同様に設定.\n let children = []\n let childrooms = room.children\n if (childrooms && childrooms.length > 0) {\n for (let childroom of childrooms) {\n let _childroom: Room = childroom\n let childmembers: RoomMember[] = RoomMember.fetchFromJson(childroom.members)\n // let childmembers = childroom.members\n let _atts = childmembers\n // let _atts = []\n // for (let _childmember of childmembers) {\n // // let childmember: RoomMember = _childmember\n // _atts.push(childmember)\n // // if (_room.current_appointment.required_owner_participation) {\n // // _atts.push(childmember)\n // // } else {\n // // // オーナー不参加.\n // // if (childmember.role != 100) {\n // // _atts.push(childmember)\n // // }\n // // }\n // }\n // _childroom.title = this.getTitle(_atts)\n _childroom.title = this.getTitle(_atts, my_user_id)\n _childroom.attendees = _atts\n _childroom.isParent = false\n _childroom.isParentOwner = _room.isParentOwner\n _childroom.parentRoomId = _room.id\n _childroom.keyId = this.createKeyId(_childroom, false)\n // _childroom.keyId = `room${_childroom.id}${_childroom.room_id}${_childroom.parentRoomId}`\n children.push(_childroom)\n }\n }\n\n _room.children = children\n\n if (Util.isPresent(_room.form_fields)) {\n let _fs = FormField.fetchFromJson(_room.form_fields)\n _room.form_fields = _fs\n }\n if (Util.isPresent(_room.group_tags)) {\n _room.group_tags = GroupTag.fetchFromJson(_room.group_tags)\n }\n if (Util.isPresent(_room.rule)) {\n let _fs = FormField.fetchFromJson(_room.rule)\n _room.rule = _fs\n }\n if (Util.isPresent(_room.rooms_fixed)) {\n const _crooms = Room.fetchFromJson(_room.rooms_fixed, my_user_id)\n _room.rooms_fixed = _crooms\n }\n if (Util.isPresent(_room.rooms_voted)) {\n const _crooms = Room.fetchFromJson(_room.rooms_voted, my_user_id)\n _room.rooms_voted = _crooms\n }\n if (Util.isPresent(_room.rooms_not_voted)) {\n const _crooms = Room.fetchFromJson(_room.rooms_not_voted, my_user_id)\n _room.rooms_not_voted = _crooms\n }\n rooms.push(_room)\n }\n\n return rooms\n }\n\n static createKeyId(room, isParent: boolean): string {\n if (isParent) {\n return `room${room.id}${room.room_id}${room.parentRoomId}`\n } else {\n return `room${room.id}${room.room_id}${room.parentRoomId}`\n }\n }\n\n /**\n * リモートに送るときに不要なキーを削除して軽くします。\n */\n static deleteUnusedKeys(room: Room): Room {\n delete room.appointments\n delete room.current_appointment\n delete room.attendees\n delete room.owner\n delete room.pics\n delete room.shared_schedule_member_ids\n // delete room.invitations\n delete room.isParent\n delete room.isParentOwner\n delete room.parentRoomId\n delete room.keyId\n delete room.unread_num\n delete room.created_at, room.createdAtText, room.updated_at, room.updatedAtText\n delete room.expired_at, room.expiredAtText, room.expiredLastText\n delete room.role, room.role_name\n delete room.invalid_messages, room.is_valid, room.starred\n if (room.room_type == `public_room`) {\n delete room.members\n delete room.access_stats\n }\n return room\n }\n\n /**\n * ルームタイトルを作成します。\n */\n static getTitle(members: RoomMember[], my_user_id): string {\n if (!members || members.length == 0) return ``\n\n let titleMems = []\n for (let mem of members) {\n let titleMem = ``\n if (mem.user_id != my_user_id) {\n titleMem += `${mem.name}`\n titleMem += mem.short_name ? `(${mem.short_name})` : ``\n titleMems.push(titleMem)\n }\n }\n return titleMems.join(`,`)\n }\n\n static copy(o: Room): Room {\n let clone = Object.assign(Object.create(Object.getPrototypeOf(o)), o)\n return clone\n }\n\n // 部屋に、メンバーの役割に応じて紐付けます。\n // static setMemberRole(_room: Room, member: RoomMember): Room {\n // if (member.role == 1) {\n // // chukai\n // _room.chukai = member\n // } else if (member.role == 2) {\n // // candidate\n // _room.candidate = member\n // } else if (member.role == 3) {\n // // client\n // _room.client = member\n // }\n // return _room\n // }\n\n static createDefaultRoom() {\n const time = DateTime.local()\n const appo = Appointment.createDefault()\n return new Room(\n ``,\n ``,\n ``,\n ``,\n [appo],\n appo,\n true,\n true,\n Room.STATUS_ACTIVE_IN_PROGRESS,\n \"公開中\",\n false,\n 60,\n ``,\n ``,\n 1,\n \"chukai\",\n \"\",\n time.toSeconds(),\n time.toISODate(),\n time.toSeconds(),\n time.toISODate(),\n time.toSeconds(),\n time.toISODate(),\n \"残り○日\",\n time.toSeconds(),\n true,\n [],\n null,\n null,\n [],\n null,\n [],\n RoomMember.createDefaultClient(),\n [],\n null,\n null,\n true,\n true,\n null,\n \"\",\n 0,\n false,\n // PublicRoom\n AppealContent.createDefault(),\n `draft`,\n `下書き`,\n Math.random().toString(32).substring(2),\n null,\n false,\n true,\n true,\n `with_fix`,\n `anytime`,\n null,\n null,\n FormField.createDefaultFields(),\n null,\n `public_room`,\n null,\n null,\n null,\n null,\n `go`,\n RoomSetting.createDefault(),\n null,\n null,\n null,\n null,\n 0,\n null,\n false,\n null,\n 1,\n null,\n null,\n null,\n\n false,\n null,\n null,\n null,\n null,\n false,\n [],\n [],\n null,\n null,\n false,\n null,\n null,\n false,\n false,\n null,\n null,\n null,\n null,\n null,\n null,\n true,\n true,\n null\n )\n }\n\n /**\n * 自分の参加するルーム一覧のみを絞り込みます。\n * @param rooms [Room[]] 全体のルーム\n * @param type [string]\n * @param userInfo [RoomMember] 自分のユーザー情報\n */\n static filterRooms(rooms: Room[], type: string, userInfo: RoomMember) {\n if (type == \"self\") {\n return rooms.filter(room => {\n let mems = room.members\n let _mem = mems.find(mem => mem.email == userInfo.email)\n if (_mem) {\n return room\n }\n })\n }\n }\n\n /**\n * 自分を参加者から抜きます。\n * @param room\n * @param my_user_id\n */\n static deleteMeFromRoomMembers(room: Room, my_user_id: string): RoomMember[] {\n let mems = []\n const currentMems: RoomMember[] = room.attendees || []\n for (let _mem of currentMems) {\n if (_mem && my_user_id && _mem.user_id == my_user_id) continue\n if (_mem.role_name == `owner`) continue\n mems.push(_mem)\n }\n return mems\n }\n\n /**\n * 部屋の終了リクエストを行います。\n */\n static close(room: Room) {\n const room_id: string = room.id\n return axios\n .put(`${Util.prefixUrl}/rooms/close`, {\n id: room_id,\n })\n .then(res => {\n return res.data.updated\n })\n }\n\n /**\n * このルームでメンバーが調整カレンダーを共有しているかを返します。\n * @param room\n * @param mem\n */\n static sharedCalendar(room: Room, mem: RoomMember): boolean {\n if (!room || !mem) return false\n return room.shared_schedule_member_ids.includes(mem.id)\n }\n\n static needOwner(room: Room): boolean {\n return room.current_appointment.required_owner_participation\n }\n\n /**\n * 自分がメンバーに入っている場合はtrueを返します。\n * @param room\n * @param myUserInfo\n */\n static attend(room: Room, myUserInfo: RoomMember): boolean {\n let mems = room.members\n return mems.some(m => m.user_id == myUserInfo.user_id)\n }\n\n /**\n * roomsの中からparentIdが一致するもの、roomIdが子ルームから一致するものを取得してきます。\n * @param rooms\n * @param parentId\n * @param roomId\n */\n static find(rooms: Room[], parentId: string, roomId: string): Room {\n if (Util.isBlank(rooms)) return null\n for (let _room of rooms) {\n if (!_room) continue\n if (_room.id == parentId) {\n return _room\n }\n if (_room.room_id == roomId) {\n return _room\n }\n if (Util.isBlank(_room.children)) continue\n for (let _child of _room.children) {\n if (_child.room_id == roomId) {\n return _child\n }\n }\n }\n }\n\n /**\n * 未読があるルームを取得します。\n * @param rooms\n */\n static getUnreadRooms(rooms: Room[]): Room[] {\n return (\n rooms.filter(room => {\n if (room.unread_num > 0) {\n return room\n }\n if (room.children.find(c => c.unread_num > 0)) {\n return room\n }\n }) || []\n )\n }\n\n /**\n * 未読があるルームを取得します。\n * @param rooms\n */\n static getStarredRooms(rooms: Room[]): Room[] {\n return (\n rooms.filter(room => {\n if (room.starred) {\n return room\n }\n }) || []\n )\n }\n\n /**\n * 調整ページにスターします。\n * @param parentId\n * @param action\n * @param room_type\n */\n static saveFav(parentId: string, action = `add`, room_type: string): Promise {\n const params = { id: parentId, action_type: action, room_type: room_type }\n\n return axios({\n method: \"post\",\n url: `${Util.prefixUrl}/favorites/room`,\n data: params,\n })\n .then(res => {\n Logger(`res: ${res.data.message} ${Util.output(res.data)}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n\n return res.data.did_success\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 false\n })\n }\n\n /**\n * 調整ページを取得した際に、新しいものは追加、以前から取得しているものは新しいものに変更します。\n * @param beforeRooms\n * @param newRooms\n * @param sortFunc Array.sort()関数で指定する比較関数\n */\n static mergeRooms(beforeRooms: Room[], newRooms: Room[], sortFunc: any = null) {\n if (Util.isBlank(beforeRooms)) return newRooms\n const beforeRoomsLength = beforeRooms ? beforeRooms.length : null\n const newRoomsLength = newRooms ? newRooms.length : null\n // Logger(\n // `Room.mergeRooms beforeRooms.length:${beforeRoomsLength} - newRooms.length:${newRoomsLength} sortFunc:${!!sortFunc}`\n // )\n const beforeRoomIds = beforeRooms.map(r => r.id)\n\n for (let room of newRooms) {\n if (beforeRoomIds.includes(room.id)) {\n let brooms = beforeRooms.filter(r => r.id != room.id)\n brooms.unshift(room)\n beforeRooms = brooms\n } else {\n beforeRooms.unshift(room)\n }\n }\n beforeRooms.sort(sortFunc || RoomTab.defaultSortFunc())\n return beforeRooms\n }\n\n static getPublicRoom(roomId: string, rm: any): Promise {\n return axios\n .get(`${Util.prefixUrl}/public_rooms/${roomId}`)\n .then(res => {\n const roomsData = [res.data.room]\n const _rooms = Room.fetchFromJson(roomsData, rm.userInfo.user_id)\n const room = _rooms[0]\n\n return room\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * 下書きにある調整ページを削除します。\n * @param _room\n */\n static delete(_room: Room) {\n // let room: Room = { ..._room }\n let endpoint = `rooms/delete_draft`\n if (_room.room_type == `public_room`) {\n endpoint = `public_rooms`\n }\n let params = { id: _room.id }\n\n return axios\n .delete(`${Util.prefixUrl}/${endpoint}`, { data: params })\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n\n return true\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return false\n })\n }\n\n /**\n * 下書きにある調整ページを削除します。\n * @param _room\n * @param status\n */\n static changeStatus(_room: Room, status: string) {\n // let room: Room = { ..._room }\n let endpoint = `public_rooms/change_status`\n if (_room.room_type == `parent_room`) {\n endpoint = `rooms/${status}`\n }\n let params = { id: _room.id, public_status: status }\n\n return axios\n .put(`${Util.prefixUrl}/${endpoint}`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n\n return true\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return false\n })\n }\n\n /**\n * 下書きにある調整ページを削除します。\n * @param _room\n */\n static deleteAll(userFilter: string) {\n let params = { user_filter: userFilter }\n return axios\n .delete(`${Util.prefixUrl}/rooms/delete_all_drafts`, { data: params })\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n return true\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return false\n })\n }\n\n /**\n * 下書きにある調整ページを削除します。\n * @param _room\n */\n static createAll(userFilter: string) {\n return axios\n .put(`${Util.prefixUrl}/rooms/publish_all_drafts?user_filter=${userFilter}`)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n return true\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return false\n })\n }\n\n /**\n * 検索して、ルームを取得してきます。\n * @param publicIds\n */\n static search(\n publicIds: string[],\n my_user_id: string,\n memberUserIds: string[],\n memberEmail: string,\n magId: string,\n pubRoomName: string,\n searchCategory: string,\n isParg: boolean = false\n ) {\n const params = {\n public_ids: publicIds,\n user_ids: memberUserIds,\n email: memberEmail,\n mag_id: magId,\n public_room_name: pubRoomName,\n search_category: searchCategory,\n }\n let endpoint = `rooms/search`\n if (isParg) {\n endpoint = `parent_room_groups/search`\n }\n // const paramsSerializer = qs.stringify(params)\n\n return axios\n .get(`${Util.prefixUrl}/${endpoint}?`, { params: params })\n .then(res => {\n let rooms = []\n if (isParg) {\n rooms = ParentRoomGroup.fetchFromJson(res.data.parent_room_groups)\n } else {\n rooms = Room.fetchFromJson(res.data.rooms, my_user_id)\n }\n\n return rooms\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * 直近作成したルームを取得します。\n * @param publicIds\n */\n static getRecentRooms(my_user_id: string) {\n // const params = { public_ids: publicIds }\n // const paramsSerializer = qs.stringify(params)\n\n return axios\n .get(`${Util.prefixUrl}/recent_rooms`)\n .then(res => {\n let rooms = Room.fetchFromJson(res.data.rooms, my_user_id)\n return rooms\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * 調整ページで最初に表示するデータを取得します。\n * @param isGuest\n * @param parentId\n * @param currentRoom [Room]\n */\n static getRoomData(isGuest: boolean, parentId: string, currentRoom: Room) {\n //const {parentId, roomKey, appo, type } = Room.\n let roomStorage = new RoomStorage()\n let roomKeyId\n let appo: Appointment\n let type\n let room: Room\n let openHeader: boolean\n let nextAction = ``\n let start_time: number\n\n const isPreview = Util.isPreview()\n\n if (isPreview) {\n roomKeyId = `preview`\n room = roomStorage.fetchRoomPreview()\n appo = roomStorage.fetchAppointmentPreview()\n parentId = `preview`\n type = `confirm`\n nextAction = \"confirm\"\n Logger(`プレビューモードです: ${Util.output(room.attendees)}`)\n return { parentId, roomKeyId, room, appo, type, openHeader, nextAction, start_time }\n }\n\n // この部屋にいる間変更されることはないので、コピーして保持します。\n\n Logger(`this room: ${Util.output(currentRoom)}`)\n\n if (currentRoom) {\n room = currentRoom\n roomKeyId = currentRoom.keyId\n appo = currentRoom.current_appointment\n }\n\n parentId = roomStorage.fetchSelectedParentRoomId()\n openHeader = roomStorage.fetchOpenMessageWindow(roomKeyId)\n Logger(`開閉処理確認: openHeader: ${openHeader} key_id: ${roomKeyId} room: ${Util.output(room)} parentId: ${parentId}`)\n if (Util.isPresent(room)) {\n if (room.unread_num > 0) {\n openHeader = true\n roomStorage.saveOpenMessageWindow(roomKeyId, true)\n }\n roomStorage.saveSelectedRoomKey(roomKeyId)\n roomStorage.saveSelectedParentRoomId(parentId)\n roomStorage.saveAppointment(appo)\n }\n\n type = `confirm`\n\n // ログイン済みの場合、roomsからリダイレクトされてくるので、保管していたlocalIdに`fix`が入っている場合は、\n // 確定予定の日程です。\n if (appo) {\n if (appo.status == 10) {\n // すでに確定済みの場合は、alreadyに変更.\n type = \"already\"\n start_time = appo.start_time\n nextAction = \"confirm\"\n } else if (appo.localId && appo.localId == `fix`) {\n type = `fix`\n nextAction = `fix`\n start_time = appo.start_time as number\n } else if (appo.localId && appo.localId != `refresh`) {\n nextAction = \"confirm\"\n }\n } else {\n nextAction = \"confirm\"\n }\n Logger(`Room#getRoomData type: ${type} appo: ${Util.output(appo)} start_time ${start_time}`)\n return { parentId, roomKeyId, room, appo, type, openHeader, nextAction, start_time }\n }\n\n static getRoomDataFromRails(data: any) {\n Logger(`Railsからデータを受け取りました。${Util.output(data)}`)\n let roomStorage = new RoomStorage()\n // let appo = data.current_appointment as Appointment\n let appo = null\n if (data.current_appointment) {\n appo = Appointment.fetchFromJson([data.current_appointment])[0]\n }\n\n let userType = data.user_type\n let parentId = data.parent_id\n let nextAction = ``\n let start_time: number\n let userInfo = data.user_info\n let astags: AvailableScheduleTag[] = data.astags || []\n let ctags: CalendarTag[] = data.ctags || []\n let hff: boolean = data.hide_filled_fields\n\n // 現在の調整ページを保存.\n roomStorage.saveSelectedParentRoomId(data.parent_id)\n const keyId = `room${data.parent_id}${data.rid}null`\n roomStorage.saveSelectedRoomKey(keyId)\n roomStorage.saveAppointment(appo)\n\n // fixの場合、チェックして確定\n if (data.type == `fix`) {\n nextAction = \"fix\"\n start_time = appo.start_time\n }\n // すでに確定済みの場合、ただ表示.\n else if (data.type == `already` || data.type == `confirm`) {\n nextAction = \"confirm\"\n start_time = appo.start_time\n if (!start_time) {\n start_time = Util.getSec()\n }\n }\n // それ以外の場合、日程候補を取得.\n else {\n nextAction = \"showPd\"\n }\n return { appo, userType, parentId, nextAction, start_time, keyId, userInfo, astags, ctags, hff }\n }\n\n /**\n * 調整ページで最初に表示するデータを取得します。\n * @param isGuest\n * @param parentId\n * @param currentRoom [Room]\n */\n static getEditableRoomData(isGuest: boolean, parentId: string, currentRoom: Room) {\n //const {parentId, roomKey, appo, type } = Room.\n let roomStorage = new RoomStorage()\n let roomKeyId\n let appo: Appointment\n let type\n let room: Room\n let openHeader: boolean\n let nextAction = ``\n let start_time: number\n let rm = RoomManager\n\n roomKeyId = `preview`\n room = roomStorage.fetchRoomPreview()\n appo = roomStorage.fetchAppointmentPreview()\n parentId = `preview`\n type = `confirm`\n nextAction = \"confirm\"\n Logger(`プレビューモードです: ${Util.output(room.attendees)}`)\n return { parentId, roomKeyId, room, appo, type, openHeader, nextAction, start_time }\n }\n\n /**\n * チャット表示切り替え/日程提案表示切り替え\n * @param room\n * @param type\n */\n static changeDetailStatus(room: Room, type: string, user_id: string, message: string = null): Promise {\n let params = { id: room.id, type: type, message: message }\n return axios\n .put(`${Util.prefixUrl}/rooms/change_detail_status`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n let _room = Room.fetchFromJson([res.data.room], user_id)[0]\n return _room\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static generateShortUrl(room: Room, data: string): Promise {\n let params = { id: room.id, data: data }\n return axios\n .post(`${Util.prefixUrl}/public_rooms/short_url`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n // let _room = Room.fetchFromJson([res.data.room], user_id)[0]\n return res.data.generated_url\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static getOwnerUgId(room: Room): string {\n return room.owner.user_group_id\n }\n\n /**\n * can_copy_if_voted_fixのステータスを変更します.\n * @param room\n * @returns\n */\n static changeCopyStatus(room) {\n let params = { id: room.id }\n return axios\n .put(`${Util.prefixUrl}/rooms/change_copy_status`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n // let _room = Room.fetchFromJson([res.data.room], user_id)[0]\n return res.data.room\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static updateOpenScheduleMemo(room: Room, memo: string) {\n let params = { id: room.id, open_schedule_memo: memo }\n return axios\n .post(`${Util.prefixUrl}/public_rooms/open_schedule_memo`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n\n return { success: true, memo: res.data.open_schedule_memo || `` }\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static updateRoomGroupSetting(room: Room, memo: string, groupTags: GroupTag[]) {\n let params = { id: room.id, private_memo: memo, group_tags: groupTags }\n return axios\n .post(`${Util.prefixUrl}/public_rooms/private_memo`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n // let _room = Room.fetchFromJson([res.data.room], user_id)[0]\n return { success: true, memo: res.data.private_memo || \"\", group_tags: res.data.group_tags }\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static getPossibleInstantRoom(pubId: string) {\n let params = { id: pubId }\n return axios\n .post(`${Util.prefixUrl}/instant_rooms/possible_instant_room`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n // Notice.message = `${res.data.message}`\n\n return { success: true, res: res }\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return { success: false, res: null }\n })\n }\n\n static getPublicRoomWithVotedRooms(pubId: string, parentId: string, userInfo: RoomMember): Promise {\n return axios\n .get(`${Util.prefixUrl}/public_rooms/${pubId}?parent_room_id=${parentId}`)\n .then(res => {\n if (res.data.room) {\n const roomsData = [res.data.room]\n const _rooms = Room.fetchFromJson(roomsData, userInfo.user_id)\n const room = _rooms[0]\n return room\n }\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 getPublicRoomWithVotedRoomsForDisplayAll(pubId: string, userInfo: RoomMember): Promise {\n return axios\n .get(`${Util.prefixUrl}/public_rooms/${pubId}/voted_rooms`)\n .then(res => {\n if (res.data.room) {\n const roomsData = [res.data.room]\n const _rooms = Room.fetchFromJson(roomsData, userInfo.user_id)\n const room = _rooms[0]\n return room\n }\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 addDefaultTemplate(room: Room, templateId: string) {\n let params = { template_id: templateId }\n return axios\n .post(`${Util.prefixUrl}/public_rooms/${room.id}/default_template`, params)\n .then(res => {\n Logger(`res: ${res.data.message}`)\n if (res.data.message) {\n Notice.message = `${res.data.message}`\n }\n\n return { success: true, default_message_template_id: res.data.default_message_template_id }\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return { success: false, res: null }\n })\n }\n\n static conflictCheck(publicRoom: Room, params): Promise {\n // let params = { ok_schedules: suggestedDates, id: publicRoom.id }\n return axios\n .post(`${Util.prefixUrl}/public_rooms/conflict_check`, params)\n .then(res => {\n Logger(`Room.conflictCheck res:${Util.output(res.data)}`)\n return res.data\n })\n .catch(err => {\n Logger(`err: ${Util.output(err)}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n}\n"],"names":["Room","title","id","public_id","room_id","appointments","current_appointment","is_owner","is_owner_group","status","status_name","is_expired","duration","memo","open_schedule_memo","role","role_name","location","created_at","createdAtText","updated_at","updatedAtText","expired_at","expiredAtText","expiredLastText","current_appointment_end_time","is_valid","invalid_messages","template_public_id","owner_avaialble_schedule_tag_id","children","members","attendees","owner","pics","shared_schedule_member_ids","progress_member_dic","isParent","isParentOwner","parentRoomId","keyId","unread_num","starred","appeal_content","public_status","public_status_name","page_key","password","is_required_password","use_noindex","use_chat","display_form_timing_type","display_schedule_type","public_memo","private_memo","form_fields","rule","room_type","page_url","answer_status","answer_results","form_id","progress_status","room_setting","rooms_fixed","rooms_not_voted","rooms_voted","rooms_closed","rooms_voted_num","public_room_id","is_voted","access_stats","max_bookings_num","rooms_voted_summary","owner_avaialble_schedule_tag_color","owner_avaialble_schedule_tag_name","owner_avaialble_schedule_tag_is_open_schedule","owner_avaialble_schedule_tag_open_schedule_url","current_tab_info","priority_type","instant_room_assigned_users","is_shared","group_tags","available_schedule_rules","available_field_public_ids","default_message_template_id","is_shared_chukai","assign_form_id","form_field_converters","has_detail_converters","has_detail","form_submit_button_name","form_submit_button_bg_color","form_submit_button_text_color","form_style_setting","terms_of_service_name","privacy_policy_name","show_waaq_tos","show_waaq_pp","open_schedule_title","isParentDraft","STATUS_DRAFT","isParentActiveInProgress","STATUS_ACTIVE_IN_PROGRESS","isParentCanceled","STATUS_ACTIVE_CANCELED","STATUS_CLOSED_CANCELED","includes","isParentActive","STATUS_ACTIVE_UPCOMING_FIXED","STATUS_ACTIVE_PAST_FIXED","isParentActiveWithoutCanceled","isParentFixed","FIXED_STATUSES","fetchFromJson","groupsJson","my_user_id","rooms","now","DateTime","local","Logger","concat","Util","output","length","_i","groupsJson_1","room","_room","this","createKeyId","DateTag","getTimeStringSlashFromSeconds","expiredTime","fromSeconds","interval","Interval","fromDateTimes","days","Math","floor","hours","appo","Appointment","RoomMember","_a","members_1","_member","mem","required_owner_participation","magDic","selected_mag_dic","can_display_mag_in_room","MEMBER","mag","user_id","team_name","name","isPresent","profile_image_urls","image","image_url","push","getTitle","childrooms","_b","childrooms_1","childroom","_childroom","_atts","_fs","FormField","GroupTag","_crooms","deleteUnusedKeys","titleMems","members_2","titleMem","short_name","join","copy","o","Object","assign","create","getPrototypeOf","createDefaultRoom","time","createDefault","toSeconds","toISODate","createDefaultClient","AppealContent","random","toString","substring","createDefaultFields","RoomSetting","filterRooms","type","userInfo","filter","find","email","deleteMeFromRoomMembers","mems","currentMems_1","_mem","close","axios","put","prefixUrl","then","res","data","updated","sharedCalendar","needOwner","attend","myUserInfo","some","m","parentId","roomId","isBlank","rooms_1","_child","getUnreadRooms","c","getStarredRooms","saveFav","action","params","action_type","method","url","message","Notice","did_success","err","response","NotificationControl","showErrorMessage","mergeRooms","beforeRooms","newRooms","sortFunc","beforeRoomIds","map","r","brooms","unshift","newRooms_1","sort","RoomTab","defaultSortFunc","getPublicRoom","rm","get","roomsData","endpoint","changeStatus","deleteAll","userFilter","user_filter","createAll","search","publicIds","memberUserIds","memberEmail","magId","pubRoomName","searchCategory","isParg","public_ids","user_ids","mag_id","public_room_name","search_category","ParentRoomGroup","parent_room_groups","getRecentRooms","getRoomData","isGuest","currentRoom","roomKeyId","openHeader","start_time","roomStorage","RoomStorage","nextAction","isPreview","fetchRoomPreview","fetchAppointmentPreview","fetchSelectedParentRoomId","fetchOpenMessageWindow","saveOpenMessageWindow","saveSelectedRoomKey","saveSelectedParentRoomId","saveAppointment","localId","getRoomDataFromRails","userType","user_type","parent_id","user_info","astags","ctags","hff","hide_filled_fields","rid","getSec","getEditableRoomData","RoomManager","changeDetailStatus","generateShortUrl","post","generated_url","getOwnerUgId","user_group_id","changeCopyStatus","updateOpenScheduleMemo","success","updateRoomGroupSetting","groupTags","getPossibleInstantRoom","pubId","getPublicRoomWithVotedRooms","getPublicRoomWithVotedRoomsForDisplayAll","addDefaultTemplate","templateId","template_id","conflictCheck","publicRoom","STATUS_ACTIVE_OTHER","STATUS_CLOSED_NOT_FIX","STATUS_CLOSED_UPCOMING_FIXED","STATUS_CLOSED_PAST_FIXED","STATUS_CLOSED_OTHER","ALL_STATUSES"],"sourceRoot":""}