{"version":3,"file":"js/64310-df28529d40267797bd88.js","mappings":"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","sources":["webpack://assistant/./frontend/packs/models/AvailableScheduleTag.ts"],"sourcesContent":["import { DateTime } from \"luxon\"\nimport { zeroPadding, Logger } from \"packs/common\"\nimport DateTag from \"packs/models/DateTag\"\nimport Event from \"packs/models/Event\"\nimport Util from \"packs/utils/Util\"\nimport axios from \"axios\"\nimport Notice from \"packs/models/Notice\"\nimport Room from \"packs/models/Room\"\nimport MeetingAttendeesGroup from \"packs/models/MeetingAttendeesGroup\"\nimport RoomStorage from \"packs/models/RoomStorage\"\nimport PossibleDate from \"packs/models/PossibleDate\"\nimport _PossibleDatesManager from \"packs/models/PossibleDatesManager\"\nimport RoomMember from \"packs/models/RoomMember\"\nimport _RoomManager from \"packs/models/RoomManager\"\nimport NotificationControl from \"packs/utils/NotificationControl\"\nimport RoomSetting from \"packs/models/RoomSetting\"\nimport FormField from \"packs/models/FormField\"\nimport lodash from \"lodash\"\nimport LocationTag from \"./LocationTag\"\nimport CalendarUtil from \"packs/utils/CalendarUtil\"\n\nexport default class AvailableScheduleTag {\n constructor(\n // v8移行\n public available_days_of_weeks: DateTag[], //[1,2,3]で曜日の繰り返しは持っておく.\n public id: string,\n public name: string,\n public updated_at: number,\n // v8移行\n public location_name: string,\n\n // none,guess_or_none,guess_or_fixed,guess_or_minimum\n // v8移行\n public travel_time_mode: string,\n // v8移行\n public additional_fixed_travel_min: number,\n\n // v8移行\n // 調整可能期間(相対)\n public available_period_start_days: number,\n // v8移行\n public available_period_end_days: number,\n // v8移行\n // 調整可能期間(絶対)\n public available_start_date: number,\n // v8移行\n public available_end_date: number,\n\n // v8移行\n public fixed_travel_before_min: number,\n // v8移行\n public fixed_travel_after_min: number,\n // public optional_add_schedules: any,\n // public optional_remove_schedules: any,\n public optional_schedules: any,\n\n // 調整ページで利用しているparent_room_idがArrayで入っています。\n public rooms: string[],\n\n // NORMAL=1,DEFAULT=2,NOT_ATTEND=10,TEMPORARY=50(メールで相手が提案してきた内容が入ります)\n public type: number,\n\n // Array<{ ctag_id: string, ignore_allday: boolean }>\n // public calendar_tags: [],\n public meeting_attendees_groups: MeetingAttendeesGroup[],\n public can_connect_calendar: boolean,\n // v8移行\n public assign_mag_rule: string, // order, random, equal, priority\n public period_days_for_assign: number,\n // v8移行\n public is_private: boolean,\n public can_select_mag: boolean,\n // v8移行\n public mag_type: string, // display_none, display_and_selectable, display_after_fix\n\n public selected: boolean,\n public color: string,\n public optional_calendar_tag_search_key: string,\n\n // v8移行\n public available_period_skip_type: string, // none,weekend,weekend_and_holiday,custom,holiday\n // v8移行\n public available_period_skip_custom: number[], // [0,1,2,3,4,5,6,10] 10=holiday\n public meeting_room_resources: any[],\n public online_meeting_resources: any[],\n\n // v8移行\n public can_sync_travel_time_to_calendar_event: boolean,\n // v8移行\n public sync_travel_time_event_name: string,\n // 最終更新日時(アップデートした際にセルを動的に更新するために利用)\n public systemUpdatedAt: number,\n\n // v8追加\n // required_attendeesのctagの予定を確認せず、optional_schedulesの予定のみを確認します.\n public is_only_use_optional_schedules: boolean,\n // オプション設定が有効かどうか\n public is_active_meeting_attendee_option: boolean,\n public ignore_allday: boolean,\n // イベント名での対応可能時間判定の設定有無\n public can_use_available_event_keyword: boolean,\n public available_event_keyword: string,\n public available_event_allday_start_hour: number,\n public available_event_allday_start_min: number,\n public available_event_allday_end_hour: number,\n public available_event_allday_end_min: number,\n public can_use_ignore_event_keyword: boolean,\n public ignore_event_keyword: string,\n public emails: string,\n public is_active_meeting_attendees_group_option: boolean,\n public daily_meeting_max_num: number,\n public daily_countable_event_keyword: string,\n public is_shared: boolean,\n public user_id: string,\n public owner: RoomMember,\n public has_detail: boolean\n ) {}\n\n static copy(o: AvailableScheduleTag): AvailableScheduleTag {\n // let clone = Object.assign(Object.create(Object.getPrototypeOf(o)), o)\n let newO = lodash.cloneDeep(o)\n return newO\n }\n\n static fetchFromJson(astagsJson: any): AvailableScheduleTag[] {\n let astags = []\n // const arrOfDateTag = JSON.parse(astagsJson)\n // Logger(`arrOfDateTag: ${arrOfDateTag.length}`)\n for (let _ast of astagsJson) {\n const _astag: AvailableScheduleTag = _ast\n _astag.is_active_meeting_attendee_option = true\n let addSchedules = {}\n Object.entries(_astag.optional_schedules).forEach(([date, events]) => {\n let _events: Event[] = events as any\n let evs = []\n for (let ev of _events) {\n ev.systemUpdatedAt = Util.getSec() + ev.start_time\n evs.push(ev)\n }\n addSchedules[date] = evs\n })\n _astag.optional_schedules = addSchedules\n\n // let removeSchedules = {}\n // Object.entries(_astag.optional_remove_schedules).forEach(([date, events]) => {\n // let _events: Event[] = events as any\n // let evs = []\n // for (let ev of _events) {\n // ev.systemUpdatedAt = Util.getSec() + ev.start_time\n // evs.push(ev)\n // }\n // removeSchedules[date] = evs\n // })\n // _astag.optional_remove_schedules = removeSchedules\n\n // Logger(`_astag.meeting_attendees_groups: ${Util.output(_astag.meeting_attendees_groups)}`)\n\n const _mags = MeetingAttendeesGroup.fetchFromJson(_astag.meeting_attendees_groups)\n _astag.meeting_attendees_groups = _mags\n if (!_astag.color) {\n _astag.color = Util.getRandomColor()\n }\n\n // let events = DateTag.toWeeklyEvents(_dateTag)\n // Logger(`events: ${events}`)\n astags.push(_astag)\n }\n return astags\n }\n\n /**\n * SelectTagに並べるための時間[Array]を返します。[0..24]\n */\n static getSelectHours(): number[] {\n // return Array(24)\n // .fill(0)\n // .map((_, i) => i)\n return Array(16)\n .fill(0)\n .map((_, i) => i + 8)\n }\n\n /**\n * SelectTagに並べるための分(5分刻み)を返します。[0,5,・・]\n */\n static getSelectMins(): any[] {\n return Array(12)\n .fill(0)\n .map((_, i) => zeroPadding(`${i * 5}`))\n }\n\n /**\n * 年月日 時間のフォーマットのstringを返します。\n * @param sec unixTime\n */\n static getTimeStringFromSeconds(sec: number): string {\n let format = DateTime.fromSeconds(sec).toFormat(\"yyyy年MM月dd日 HH:mm\")\n return format\n }\n\n /**\n * なにもないときのデフォルトのastagを作成します。\n */\n static createDefaultAstag(): AvailableScheduleTag {\n let color = Util.getRandomColor()\n // [DateTag.createWeekDayMorning(), DateTag.createWeekDayAfternoon()]\n return new AvailableScheduleTag(\n [],\n \"newId\",\n \"無名\",\n Util.getSec(),\n \"\",\n \"none\",\n 0,\n null,\n null,\n null,\n null,\n null,\n null,\n {},\n [],\n 1,\n [MeetingAttendeesGroup.createDefault()],\n false,\n \"order\",\n 30,\n false,\n false,\n `display_none`,\n true,\n color,\n null,\n `none`,\n null,\n null,\n null,\n false,\n null,\n Util.getSec(),\n false,\n true,\n null,\n false,\n null,\n null,\n null,\n null,\n null,\n false,\n null,\n null,\n false,\n -1,\n null,\n false,\n null,\n null,\n true\n )\n }\n\n /**\n * イベントを追加するctags & {email:, name:}を入れたastagを作成します.\n * @param registrable_attendees [CalendarTag[] or Hash]\n * @param fields FormField[]\n * @param uf RoomMember 本人の\n * @returns\n */\n static createGuestRegistrableAstag(registrable_attendees: any[], astag: AvailableScheduleTag = null): AvailableScheduleTag {\n // fields = fields ? fields : []\n\n // 出席者に自分を追加します. その1\n // if (uf.email && uf.name) {\n // let att = registrable_attendees.find(att => att.email == uf.email)\n // if (!att) {\n // registrable_attendees.push({ name: uf.name, email: uf.email })\n // }\n // }\n\n // 出席者に自分を追加します. その2\n // let ffName = fields.find(f => f.field_name == `attendee1_name`)\n // let ffEmail = fields.find(f => f.field_name == `attendee1_email`)\n\n // if (ffName && ffEmail) {\n // let att = registrable_attendees.find(att => att.email == ffEmail)\n // if (!att) {\n // registrable_attendees.push({ name: ffName, email: ffEmail })\n // }\n // }\n\n if (!astag) {\n astag = this.createDefaultAstag()\n astag.id = null\n }\n\n let mag = astag.meeting_attendees_groups[0]\n mag.registrable_attendees = registrable_attendees\n\n return astag\n }\n\n /**\n * 仲介不参加時のastagを作成します。\n */\n static createChukaiAstag(): AvailableScheduleTag {\n let astag = this.createDefaultAstag()\n astag.type = 10\n astag.available_days_of_weeks = []\n return astag\n }\n\n static getAstagDetail(astagId) {\n let url = `${Util.prefixUrl}/available_schedule_tags/${astagId}`\n\n return axios({\n method: `get`,\n url: url,\n })\n .then(res => {\n Logger(`AvailableScheduleTag#getAstagDetail: message:${res.data.message}`)\n\n const _astag: AvailableScheduleTag = AvailableScheduleTag.fetchFromJson([res.data.astag])[0]\n Logger(`RETURN astag:${Util.output(_astag)}`)\n let _shared_loctags = null\n if (_astag.is_shared) {\n _shared_loctags = LocationTag.fetchFromJson(res.data.shared_locations)\n }\n\n return { astag: _astag, shared_loctags: _shared_loctags }\n })\n .catch(err => {\n Logger(`err: ${err.message}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * 新規のカレンダーグループを作成・更新します。\n * @param title タイトル\n * @param datetag AvailableScheduleTag\n * @param optionalAddDate astag以外で個別に追加した日時\n * @param optionalRemoveDate astagの中から別途削除した日時\n * @param sendType [string] post(作成) or put(更新) or createAndShare(作成して共有 ワンタイム)\n * @param parentId [string] 作成して共有する場合のみ、parentIdが必要.\n */\n static saveAvailableSchedule(astag: AvailableScheduleTag, sendType, parentId?): Promise {\n // 新規のカレンダーグループを作成します。うまく作成できたら、カレンダーグループ一覧トップページに戻ります。\n // const ctagIds = getCtagIds(ctags)\n // 新規の場合はIDをnilにする.\n let url = `${Util.prefixUrl}/available_schedule_tags`\n if (sendType == \"post\") {\n delete astag.id\n }\n\n // 不参加カレンダーの場合calendar_tagsは不要です.\n // if (astag.type == 10) {\n // delete astag.calendar_tags\n // }\n\n // パラメータの内容から調整を加えます。\n astag = AvailableScheduleTag.adjustForSendAstag(astag)\n\n // if (astag.meeting_attendees_groups && astag.meeting_attendees_groups.length > 0) {\n // let mags = [...astag.meeting_attendees_groups]\n // // MeetingAttendeesGroup.deleteKeys(mags)\n // }\n\n Logger(`send data: available_time: ${Util.output(astag)}`)\n let dic = {\n available_time: astag,\n }\n\n if (sendType == `createAndShare`) {\n if (astag.id == \"newId\") delete astag.id\n url += `/create_and_share`\n dic[\"parent_room_id\"] = parentId\n sendType = `post`\n }\n\n return axios({\n method: sendType,\n url: url,\n data: dic,\n })\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n const _astag: AvailableScheduleTag = AvailableScheduleTag.fetchFromJson([res.data.astag])[0]\n Logger(`RETURN astag: ${Util.output(_astag)}`)\n // if (astags.length > 0) {\n // astag = astags[0]\n // return astag\n // }\n\n // カレンダーグループ一覧トップページに遷移.\n // $router.push(\"/\")\n return _astag\n })\n .catch(err => {\n Logger(`err: ${err.message}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * 調整カレンダーを削除します。\n * @param astag [AvailableScheduleTag]\n */\n static delete(astag: AvailableScheduleTag): Promise {\n let url = `${Util.prefixUrl}/available_schedule_tags`\n return axios({\n method: `delete`,\n url: url,\n data: { id: astag.id },\n })\n .then(res => {\n Logger(`res: ${res.data.message}`)\n Notice.message = `${res.data.message}`\n const _astag: AvailableScheduleTag = res.data.astag\n Logger(`削除したastag: ${Util.output(_astag)}`)\n return _astag\n })\n .catch(err => {\n Logger(`err: ${err.message}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n /**\n * パラメータの内容から送信前に調整を入れます。\n * @param astag\n */\n static adjustForSendAstag(astag: AvailableScheduleTag): AvailableScheduleTag {\n if (astag.travel_time_mode) {\n // let options = this.travelTimeModeOptions().map(e => e.mode)\n if ([`none`, `guess_or_none`].includes(astag.travel_time_mode)) {\n astag.fixed_travel_before_min = 0\n astag.fixed_travel_after_min = 0\n }\n if ([`none`, `fixed`].includes(astag.travel_time_mode)) {\n astag.location_name = null\n }\n } else {\n astag.travel_time_mode = `none`\n astag.fixed_travel_before_min = 0\n astag.fixed_travel_after_min = 0\n astag.location_name = null\n }\n\n let mags = astag.meeting_attendees_groups\n if (Util.isPresent(mags)) {\n mags = mags.filter(m => Util.isPresent(m))\n }\n // if (Util.isPresent(astag.meeting_attendees_groups)) {\n // astag.can_connect_calendar = true\n // }\n // magsがあっても、空だったらcan_connect_calendarをオフにします。\n if (Util.isPresent(astag.meeting_attendees_groups)) {\n astag.can_connect_calendar = true\n let normalMags = astag.meeting_attendees_groups.filter(m => MeetingAttendeesGroup.isPresent(m))\n let instantMags = astag.meeting_attendees_groups.filter(m => MeetingAttendeesGroup.isInstant(m))\n Logger(`AvailableScheduleTag.adjustForSendAstag _mags:${Util.output(normalMags)}`)\n if (Util.isBlank(normalMags) && Util.isBlank(instantMags)) {\n astag.meeting_attendees_groups = []\n astag.can_connect_calendar = false\n }\n if (Util.isBlank(normalMags)) {\n astag.can_connect_calendar = false\n }\n } else {\n astag.can_connect_calendar = false\n }\n\n delete astag.rooms\n return astag\n }\n\n /**\n * 調整カレンダーページでのプレビューで表示する情報を叩きます。\n * @param astag [AvailableScheduleTag]\n * @param userInfo [RoomMember]\n * @param is_owner [boolean] オーナーでないユーザーとしてこのデータを取得する場合 falseにします。(通常はtrue)\n */\n static getPossibleDatesPreview(\n astag: AvailableScheduleTag,\n userInfo: RoomMember,\n duration = 60,\n is_owner: boolean = true,\n location_name = null,\n rs: RoomSetting = null,\n months: string[] = null,\n needRefresh: boolean = false,\n max_bookings_num = 1,\n room = null,\n weeks: string[] = null,\n calendar_show_type = null\n ) {\n // パラメータの内容から調整を加えます。\n astag = AvailableScheduleTag.adjustForSendAstag(astag)\n\n if (astag.id == `newId`) {\n astag.id = null\n }\n\n let params = {\n available_time: astag,\n is_owner,\n duration,\n location_name,\n room_setting: rs,\n months: months,\n max_bookings_num,\n public_room_id: room ? room.id : null,\n weeks: weeks,\n calendar_show_type: calendar_show_type,\n }\n\n return axios\n .post(`${Util.prefixUrl}/available_schedule_tags/possible_dates_preview`, params)\n .then(result => {\n Logger(`AvailableScheduleTag.getPossibleDatesPreview data:${Util.output(result.data)}`)\n // let possible_dates = result.data.possible_dates\n let _dic = result.data\n let searched_months = _dic.months\n\n if (Util.isPresent(months)) {\n let searched_months_nums = searched_months.map(m => parseInt(m))\n for (let _num of searched_months_nums) {\n if (_num < parseInt(months[0])) {\n Logger(`AvailableScheduleTag.getPossibleDatesPreview 取得月が異なるため、早期リターンします.`)\n return null\n }\n }\n // Logger(`取得月が異なるため、早期リターンします.`)\n // return null\n }\n const { possible_dates, jp_formats } = PossibleDate.fetchFromJson(_dic.possible_dates)\n let mag_dic = _dic.mag_dic\n let daily_possible_dates = _dic.daily_possible_dates\n let owner_request_num = _dic.owner_request_num\n let pdm = _PossibleDatesManager\n let possible_dates_selectable_mag_dic = _dic.possible_dates_selectable_mag_dic\n let selectable_mag_dic = _dic.selectable_mag_dic\n let selectable_mode = _dic.selectable_mode\n let available_months = _dic.available_months\n let available_weeks = _dic.available_weeks\n let weeks = _dic.weeks\n\n let dic = {\n possible_dates,\n mag_dic,\n daily_possible_dates,\n owner_request_num,\n jp_formats,\n possible_dates_selectable_mag_dic,\n selectable_mag_dic,\n selectable_mode,\n astag_id: _dic.available_time_id || astag?.id,\n available_months,\n months: searched_months,\n available_weeks,\n weeks: weeks,\n calendar_show_type: _dic.calendar_show_type,\n }\n pdm.setFromAstagPreview(dic, userInfo, needRefresh)\n /**\n * 返却値\n * possible_dates: possible_dates_with_unixtime,\n mag_dic: meeting_groups_name_dic(user: user),\n daily_possible_dates: possible_events_member_dic,\n owner_request_num:\n */\n // const form: AppointmentForm = result.data.appointment_form\n return pdm\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 * 自分のastagを特定のuserGroupに共有します。\n * @param group_id [string] 相手のuser_group_id\n */\n static share(room: Room, astag: AvailableScheduleTag) {\n let group_id = this.getOtherUserGroupId(room)\n return axios\n .post(`${Util.prefixUrl}/available_schedule_tags/share`, {\n other_user_group_id: group_id,\n id: astag.id,\n parent_room_id: room.id,\n })\n .then(res => {\n Logger(`res: ${Util.output(res.data)}`)\n Notice.message = `${res.data.message}`\n\n return []\n })\n .catch(err => {\n Logger(`err: ${err.message}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static unshare(room: Room, astag: AvailableScheduleTag) {\n let group_id = this.getOtherUserGroupId(room)\n return axios\n .delete(`${Util.prefixUrl}/available_schedule_tags/unshare`, {\n params: {\n other_user_group_id: group_id,\n id: astag ? astag.id : null,\n },\n })\n .then(res => {\n Logger(`res: ${Util.output(res.data)}`)\n Notice.message = `${res.data.message}`\n\n return []\n })\n .catch(err => {\n Logger(`err: ${err.message}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static request(room: Room, message: string, lp_id: string = null) {\n const params = { parent_room_id: room.id, message: message, lp_id: lp_id }\n\n // appointment[\"parent_room_id\"] = \"\"\n Logger(`request pds: ${Util.output(params)}`)\n\n return axios({\n method: \"post\",\n url: `${Util.prefixUrl}/available_schedule_tags/request_other_dates`,\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 return null\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 changeDefault(astag: AvailableScheduleTag) {\n const params = { id: astag.id }\n\n // appointment[\"parent_room_id\"] = \"\"\n Logger(`request pds: ${Util.output(params)}`)\n\n return axios({\n method: \"put\",\n url: `${Util.prefixUrl}/available_schedule_tags/change_default`,\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 return res.data.updated\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 rename(astag: AvailableScheduleTag) {\n const params = { id: astag.id, name: astag.name }\n\n // appointment[\"parent_room_id\"] = \"\"\n Logger(`request pds: ${Util.output(params)}`)\n\n return axios({\n method: \"put\",\n url: `${Util.prefixUrl}/available_schedule_tags/rename`,\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 return res.data.name\n })\n .catch(err => {\n Logger(`err: ${err.message} ${Util.output(err.response)}`)\n NotificationControl.showErrorMessage(err)\n return false\n })\n }\n\n /**\n * オーナーに対してのみ現在のところ共有します。\n */\n static getOtherUserGroupId(_room: Room) {\n let ugId = \"\"\n // 3者間(親ルーム)の場合、chukaiのug_idを取得して、公開します。\n ugId = _room.owner.user_group_id\n // const my_ud_id = userInfo.user_group_id\n\n // if (_room.isParent) {\n // // 3者間(親ルーム)の場合、chukaiのug_idを取得して、公開します。\n // ugId = _room.owner.user_group_id\n // } else {\n // // 2者間(子ルーム)の場合、自分以外のmemberのug_idを取得して公開します。\n // const members = currentRoom.attendees\n // for (let _mem of members) {\n // if (my_ud_id !== _mem.user_group_id) {\n // ugId = _mem.user_group_id\n // break\n // }\n // }\n // }\n return ugId\n }\n\n /**\n * NONE = :none\n GUESS_OR_NONE = :guess_or_none\n GUESS_OR_FIXED = :guess_or_fixed\n guess_or_minimum\n FIXED = :fixed\n */\n static travelTimeModeOptions() {\n return [\n { mode: `none`, text: `移動考慮不要` },\n { mode: `fixed`, text: `固定時間幅を入れる` },\n { mode: `guess_or_none`, text: `移動考慮し、場所が特定できない場合は入れない` },\n { mode: `guess_or_fixed`, text: `移動考慮し、場所が特定できない場合は固定時間を入れる` },\n { mode: `guess_or_minimum`, text: `移動考慮し、最低固定時間幅と比較` },\n ]\n }\n\n static changeModeToText(astag: AvailableScheduleTag): string {\n let mode = this.travelTimeModeOptions().find(e => e.mode == astag.travel_time_mode)\n if (mode) return mode.text\n return `移動考慮不要`\n }\n\n /**\n * リモートから取得してきたastags(JSONパースした後)をそれぞれにセットできるように返却します。\n * @param astags\n */\n static setAstags(astagsData: AvailableScheduleTag[]): any {\n let astag: AvailableScheduleTag, chukaiAstag: AvailableScheduleTag, defaultAstag: AvailableScheduleTag\n let astags = AvailableScheduleTag.fetchFromJson(astagsData) || []\n let roomStorage = new RoomStorage()\n\n if (astagsData) {\n const astagData = astagsData[0]\n if (astagData) {\n Logger(`astagData 1:: ${Util.output(astagsData)}`)\n // let astags = AvailableScheduleTag.fetchFromJson(astagsData) || []\n // astags = astags\n defaultAstag = astags.find(a => a.type == 2)\n if (!defaultAstag) defaultAstag = astags.find(a => a.type == 1)\n if (!defaultAstag) defaultAstag = astags.find(a => a.type == 50)\n defaultAstag ? (defaultAstag.systemUpdatedAt = Util.getSec()) : null\n // Logger(`取得してきました。 1:: ${Util.output(astag)}`)\n chukaiAstag = astags.find(a => a.type == 10)\n chukaiAstag ? (chukaiAstag.systemUpdatedAt = Util.getSec()) : null\n }\n }\n\n if (defaultAstag?.id != \"newId\") {\n astag = defaultAstag\n }\n\n Logger(`astagを確認します: ${Util.output(astag ? astag.name : `名無し`)}`)\n return { astag, chukaiAstag, defaultAstag, astags }\n }\n\n /**\n * OptionalSchedulesを追加/変更します。newSchedulesに入っていてもすでに追加されている場合は、追加しません。\n * deleteSchedulesに入っているものはそのタイプのものから削除します。\n * @param ops [any] optional_add_schedules, optional_remove_schedulesの内容\n * @param newSchedules そのschedulesに追加する\n * @param deleteSchedules そのschedulesから削除する\n * @return newOps 反映されたoptional_schedulesを返します。\n */\n static mergeSchedules(ops: any, newSchedules: any[], deleteSchedules: any[]): any {\n let newOps = ops ? { ...ops } : {}\n newSchedules = newSchedules || []\n for (let _sche of newSchedules) {\n let sche = _sche as Event\n let time = DateTime.fromSeconds(sche.start_time)\n let date = time.toFormat(`MMdd`)\n\n let arr = newOps[date] || ([] as Event[])\n if (arr.some(op => Event.isSame(op, sche))) {\n } else {\n arr.push(sche)\n }\n newOps[date] = arr\n }\n\n deleteSchedules = deleteSchedules || []\n for (let _sche of deleteSchedules) {\n let sche = _sche as Event\n let time = DateTime.fromSeconds(sche.start_time)\n let date = time.toFormat(`MMdd`)\n let arr = newOps[date] || ([] as Event[])\n arr = arr.filter(op => !Event.isSame(op, sche))\n newOps[date] = arr\n }\n\n return newOps\n }\n\n static search(params: any): Promise {\n return axios({\n method: \"get\",\n url: `${Util.prefixUrl}/available_schedule_tags/search`,\n params: params,\n })\n .then(res => {\n const _astags: AvailableScheduleTag[] = AvailableScheduleTag.fetchFromJson(res.data.astags)\n return _astags\n })\n .catch(err => {\n Logger(`err: ${err.message}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n\n static getOpenSchedules(astag: AvailableScheduleTag, userInfo: any, tabName: string): Promise {\n let params = {}\n if (tabName) {\n params[\"tab\"] = tabName\n }\n\n return axios({\n method: \"post\",\n url: `${Util.prefixUrl}/available_schedule_tags/open_schedules/${astag.id}`,\n params,\n })\n .then(res => {\n if (res) {\n let rooms = Room.fetchFromJson(res.data.rooms, userInfo)\n // this.suggestedRoomUrl = res.data.suggested_room_url\n // this.generateFixTabRooms()\n return { rooms, suggested_room_url: res.data.suggested_room_url, tabName: res.data.tab_name }\n }\n return {}\n })\n .catch(err => {\n Logger(`err: ${err.message}`)\n NotificationControl.showErrorMessage(err)\n return null\n })\n }\n}\n"],"names":["AvailableScheduleTag","available_days_of_weeks","id","name","updated_at","location_name","travel_time_mode","additional_fixed_travel_min","available_period_start_days","available_period_end_days","available_start_date","available_end_date","fixed_travel_before_min","fixed_travel_after_min","optional_schedules","rooms","type","meeting_attendees_groups","can_connect_calendar","assign_mag_rule","period_days_for_assign","is_private","can_select_mag","mag_type","selected","color","optional_calendar_tag_search_key","available_period_skip_type","available_period_skip_custom","meeting_room_resources","online_meeting_resources","can_sync_travel_time_to_calendar_event","sync_travel_time_event_name","systemUpdatedAt","is_only_use_optional_schedules","is_active_meeting_attendee_option","ignore_allday","can_use_available_event_keyword","available_event_keyword","available_event_allday_start_hour","available_event_allday_start_min","available_event_allday_end_hour","available_event_allday_end_min","can_use_ignore_event_keyword","ignore_event_keyword","emails","is_active_meeting_attendees_group_option","daily_meeting_max_num","daily_countable_event_keyword","is_shared","user_id","owner","has_detail","copy","o","lodash","fetchFromJson","astagsJson","astags","_ast","_astag","addSchedules","Object","entries","forEach","_a","date","evs","_i","_events_1","length","ev","Util","getSec","start_time","push","_mags","MeetingAttendeesGroup","getRandomColor","astagsJson_1","getSelectHours","Array","fill","map","_","i","getSelectMins","zeroPadding","concat","getTimeStringFromSeconds","sec","DateTime","fromSeconds","toFormat","createDefaultAstag","createDefault","createGuestRegistrableAstag","registrable_attendees","astag","this","createChukaiAstag","getAstagDetail","astagId","url","prefixUrl","axios","method","then","res","Logger","data","message","output","_shared_loctags","LocationTag","shared_locations","shared_loctags","err","NotificationControl","showErrorMessage","saveAvailableSchedule","sendType","parentId","adjustForSendAstag","dic","available_time","Notice","includes","mags","isPresent","filter","m","normalMags","instantMags","isInstant","isBlank","getPossibleDatesPreview","userInfo","duration","is_owner","rs","months","needRefresh","max_bookings_num","room","weeks","calendar_show_type","params","room_setting","public_room_id","post","result","_dic","searched_months","searched_months_nums_1","parseInt","PossibleDate","possible_dates","jp_formats","mag_dic","daily_possible_dates","owner_request_num","pdm","_PossibleDatesManager","possible_dates_selectable_mag_dic","selectable_mag_dic","selectable_mode","available_months","available_weeks","astag_id","available_time_id","setFromAstagPreview","response","share","group_id","getOtherUserGroupId","other_user_group_id","parent_room_id","unshare","request","lp_id","changeDefault","updated","rename","_room","user_group_id","travelTimeModeOptions","mode","text","changeModeToText","find","e","setAstags","astagsData","chukaiAstag","defaultAstag","RoomStorage","a","mergeSchedules","ops","newSchedules","deleteSchedules","newOps","__assign","_sche","sche","arr","some","op","Event","isSame","newSchedules_1","deleteSchedules_1","search","getOpenSchedules","tabName","Room","suggested_room_url","tab_name"],"sourceRoot":""}