{"version":3,"file":"js/56566-b87b487e4c3898549808.js","mappings":"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","sources":["webpack://assistant/./frontend/packs/utils/Util.ts"],"sourcesContent":["import axios from \"axios\"\nimport { DateTime } from \"luxon\"\nimport { Logger } from \"packs/common\"\nimport * as qs from \"qs\"\nimport isMobile from \"ismobilejs\"\nimport RoomSetting from \"packs/models/RoomSetting\"\nimport Room from \"packs/models/Room\"\n\n// 便利系を記載.\nexport default class Util {\n static readonly prefixUrl = \"/api/front\"\n\n // 0 ~ 30\n static readonly selectDays: number[] = Array(31)\n .fill(0)\n .map((_, i) => i)\n\n static readonly selectDays100: number[] = Array(101)\n .fill(0)\n .map((_, i) => i)\n static readonly selectDaysStartOne: number[] = Array(31)\n .fill(0)\n .map((_, i) => i + 1)\n // 0 ~ 120 (15min刻み)\n static readonly selectBufferMinutes: number[] = Array(9)\n .fill(0)\n .map((_, i) => i * 15)\n static readonly selectHours: number[] = Array(24)\n .fill(0)\n .map((_, i) => i)\n static weekDics = [\n { windex: 0, name: `日`, selected: false },\n { windex: 1, name: `月`, selected: false },\n { windex: 2, name: `火`, selected: false },\n { windex: 3, name: `水`, selected: false },\n { windex: 4, name: `木`, selected: false },\n { windex: 5, name: `金`, selected: false },\n { windex: 6, name: `土`, selected: false },\n ]\n static readonly thisMonthArray: number[] = Array(DateTime.local().endOf(\"month\").day)\n .fill(0)\n .map((_, i) => i + 1)\n\n static generateMonthArray(plus: number): number[] {\n return Array(DateTime.local().plus({ month: plus }).endOf(\"month\").day)\n .fill(0)\n .map((_, i) => i + 1)\n }\n\n static readonly alphabets = [...Array(26)].map((a, b) => (10 + b).toString(36).toUpperCase())\n\n static checkLoggedInStatus(): string {\n return [`/link#/`, `/link/#/`].some(h => location.href.includes(h)) ? `user` : `guest`\n }\n\n static isGuest(): boolean {\n if (location.href.includes(`link#/room_settings`)) return true\n return this.checkLoggedInStatus() == `guest` ? true : false\n }\n\n static isPreview(): boolean {\n if (location.href.includes(`link#/room_settings`)) return true\n return location.href.includes(`schedule_preview`) ? true : false\n }\n\n static isRoomSettingsPreview() {\n if (location.href.includes(`link#/room_settings`)) return true\n return false\n }\n\n static isPublic(): boolean {\n if (location.href.includes(`/p/`)) return true\n return false\n }\n\n static isEmbeds(): boolean {\n if (location.href.includes(`/p/embeds/`)) return true\n if (location.href.includes(`/p/instant_button/`)) return true\n return false\n }\n\n static isPubSummary(): boolean {\n if (location.href.includes(`/pub_summary`)) return true\n return false\n }\n\n static isInstantRoom(room: Room): boolean {\n if (!room) return false\n let rs = room.room_setting as RoomSetting\n if (!rs) return false\n\n if (rs.is_instant_room) return true\n return false\n }\n\n static isEmbedsInstantButton(): boolean {\n if (location.href.includes(`/p/instant_button/`)) return true\n return false\n }\n\n static isBoard(): boolean {\n if (location.href.includes(`/p/board/`)) return true\n return false\n }\n\n static gmapUrl(name, size): string {\n return `https://maps.googleapis.com/maps/api/staticmap?markers=${encodeURIComponent(\n name\n )}&&size=${size}&sensor=false&zoom=15&key=AIzaSyDMG5IzSsuqljchSCDEzW8fZ_wLAFapg6U`\n }\n\n static gmapLinkUrl(address: string): string {\n return `http://maps.google.com/?q=${encodeURIComponent(address)}`\n }\n\n /**\n * お問い合わせを送信.\n * CATEGORY_BUG = 11\n CATEGORY_OPI = 12\n CATEGORY_INQ = 13\n CATEGORY_ETC = 14\n CATEGORY_REQUEST_DOCUMENT = 15\n CATEGORY_REQUEST_PRO_PLAN = 16\n * @param content [string]\n * @param rating [number]\n * @param category [number]\n */\n static sendInquiry(content, rating = -1, category = 13): Promise {\n return axios\n .post(`${Util.prefixUrl}/inquiries`, {\n content: content,\n rating: rating,\n category: category,\n })\n .then(res => {\n return res\n })\n }\n\n /**\n * {parent_room_id: `hoge`}の通信用パラメータを作成します。\n * @param parentId [String]\n */\n // static getParentIdStringParams(parentId?: string): string {\n // let params = {}\n // Logger(`parent id get rooms: ${parentId}`)\n // if (parentId && parentId.length > 0) {\n // params = { parent_room_id: parentId }\n // }\n\n // // Getリクエストのパラムをオブジェクト化するオプション\n // const paramsSerializer = qs.stringify(params)\n // return paramsSerializer\n // }\n\n /**\n * パラメータをURLにつけても化けないようにシリアライズ化します。\n * @param params\n */\n static serialize(params: any) {\n return qs.stringify(params)\n }\n\n /**\n * objの中身を見たいときに利用します。[object object]のJSONをstringで返します。\n * @param obj\n */\n static output(obj: any): string {\n return `${JSON.stringify(obj)}`\n }\n\n static getTimeHourMinFormatFromSeconds(sec: number) {\n return DateTime.fromSeconds(sec)\n }\n\n static getTimeFullFormatFromSeconds(sec: number, format: string = \"MM/dd HH:mm\") {\n return DateTime.fromSeconds(sec).toFormat(format)\n }\n\n static isSP() {\n return isMobile(window.navigator).phone\n }\n\n static getTimeDateFormatFromSeconds(sec: number, format: string = \"yyyy年MM月dd日\") {\n let _f = format ? format : \"yyyy年MM月dd日\"\n return DateTime.fromSeconds(sec).toFormat(_f)\n }\n\n /**\n * オンラインかどうかを判定し、オンラインの場合はツール名を返します.\n * @param address\n */\n static isOnline(address: string) {\n if (Util.isBlank(address)) return null\n\n // 部分一致でも確定\n const onlines = Util.getOnlines()\n let online = onlines.find(e => address.toLocaleLowerCase().includes(e))\n if (!online) {\n // 完全一致で確定\n const onlinesExactMatch = Util.getOnlinesExactMatch()\n online = onlinesExactMatch.find(e => address.toLocaleLowerCase() == e)\n }\n return online || null\n }\n\n /**\n * Googleから取得してくるか、電話会議の場合画像を はめます。\n * @param address [string]\n * @param size [string] 320x320\n * @param useLocationIcon [boolean] グーグルマップを叩かずにアイコン画像を利用するか.\n */\n static getURLFromAddress(address, size: string, useLocationIcon = false): string {\n Logger(`Util.getURLFromAddress: ${address}, useLocationIcon: ${useLocationIcon}`)\n // const onlines = Util.getOnlines()\n\n if (this.isBlank(address)) return \"\"\n if (address == `自由に場所を入力できます`) return ``\n\n // Skypeやslackなど\n const online = this.isOnline(address)\n Logger(`Util.getURLFromAddress online:${online}`)\n // const online = onlines.find(e => address.toLocaleLowerCase().includes(e))\n if (online) return this.getOnlineImages(online)\n\n if (Util.isSP()) {\n // const width = window.outerWidth;\n size = `320x160`\n }\n\n if (useLocationIcon) return `/assets/call/call_mappin_red.png`\n\n // GoogleMapに問い合わせるURLに変換.\n return Util.gmapUrl(address, size)\n }\n\n /**\n * ディクショナリー または tsのカスタムクラス でtrueを返します.\n * @param val [Any]\n */\n static isDictionary(val: any) {\n if (val !== null && typeof val === \"object\" && val.constructor === Object) {\n return true\n }\n return false\n }\n\n static isBlank(str: any): boolean {\n if (!str) return true\n if (typeof str == `string` && (!str || str === `` || str === undefined)) return true\n if (Array.isArray(str) && (!str || str.length == 0)) return true\n if (this.isDictionary(str)) {\n const keys = (Object.keys(str) || []).filter(st => Util.isPresent(st))\n if (keys.length == 0) return true\n }\n return false\n }\n\n static isPresent(str: any): boolean {\n return !this.isBlank(str)\n }\n\n static isNumeric(str: string): boolean {\n if (!str) return false\n return /^[0-9]+$/.test(str)\n }\n\n static isUrl(str: string): boolean {\n if (!str) return false\n const expression = /[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)?/gi\n const regex = new RegExp(expression)\n\n return str.match(regex) ? true : false\n }\n\n static getUrl(url: string) {\n if (!this.isUrl(url)) return null\n\n let redirect_url = `${url}` + location.search\n\n if (url.indexOf(`http`) != 0) {\n return `http://${redirect_url}`\n } else {\n return `${redirect_url}`\n }\n }\n\n static isMac(): boolean {\n return navigator.platform.indexOf(\"Mac\") > -1\n }\n\n static isWin(): boolean {\n return navigator.platform.indexOf(\"Win\") > -1\n }\n\n /**\n * オンラインミーティングで利用する配列を返します。\n * 以下に追加する場合、英語では全て小文字に設定してください。( toLocaleLowerCase() で小文字同士を比較するため. )\n *\n */\n static getOnlines(): string[] {\n return [\n \"skype\",\n \"zoom\",\n \"line\",\n \"slack\",\n \"hangout\",\n \"meet.google\",\n \"googlemeet\",\n \"google meet\",\n \"messenger\",\n \"bellface\",\n \"teams\",\n \"youtube\",\n \"meet in\",\n \"meet.in\",\n \"harutaka\",\n \"wearby\",\n \"webex\",\n \"vimeo\",\n \"ビメオ\",\n \"チームス\",\n \"チームズ\",\n \"ユーチューブ\",\n \"ハルタカ\",\n \"ライン\",\n \"スカイプ\",\n \"ズーム\",\n \"スラック\",\n \"ハングアウト\",\n \"メッセンジャー\",\n \"テレビ電話\",\n \"ベルフェイス\",\n \"ウェベックス\",\n \"電話会議\",\n ]\n }\n\n static getOnlinesExactMatch() {\n return [\"remo\", \"電話\", \"お電話\", \"コール\", \"phone\", \"telephone\", \"call\"]\n }\n\n /**\n * 上記のオンラインにあったイメージを返却します。(ない場合は今までどおり、スマホマーク)\n * @param online\n */\n static getOnlineImages(online: string): string {\n if ([`skype`, `スカイプ`].includes(online)) {\n return \"/assets/call/call_skype.png\"\n }\n if ([`zoom`, `ズーム`].includes(online)) {\n return \"/assets/call/call_zoom.png\"\n }\n if ([`teams`, `チームス`, `チームズ`].includes(online)) {\n return \"/assets/call/call_teams.png\"\n }\n if ([`youtube`, `ユーチューブ`].includes(online)) {\n return \"/assets/call/call_youtube.png\"\n }\n if ([`line`, `ライン`].includes(online)) {\n return \"/assets/call/call_line.png\"\n }\n if ([`messenger`, `メッセンジャー`].includes(online)) {\n return \"/assets/call/call_messenger.png\"\n }\n if ([`hangout`, `ハングアウト`, \"meet.google\", \"googlemeet\", \"google meet\"].includes(online)) {\n return \"/assets/call/call_google_meet.png\"\n }\n if ([`slack`, `スラック`].includes(online)) {\n return \"/assets/call/call_slack.png\"\n }\n if ([`bellface`, `ベルフェイス`].includes(online)) {\n return \"/assets/call/call_bellface.png\"\n }\n if ([`webex`, `ウェベックス`].includes(online)) {\n return \"/assets/call/call_webex.png\"\n }\n if ([`vimeo`, `ビメオ`].includes(online)) {\n return \"/assets/call/call_vimeo.png\"\n }\n if ([`remo`].includes(online)) {\n return \"/assets/call/call_remo.png\"\n }\n return \"/assets/icons/call_square_grey.png\"\n }\n\n static validateEmail(email): boolean {\n var re =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return re.test(String(email).toLowerCase())\n }\n\n static validateEmails(emails: string[]): string[] {\n return emails.filter(email => this.validateEmail(email))\n }\n\n // 文字列をNumber型に変換した後、自然数のみ評価します。\n static parseNaturalNumber(val: string): number {\n const num = Number(val)\n if (!isNaN(num) && num > 0) {\n return num\n }\n return null\n }\n\n // 通知タイミング\n static timings(onlyNotify: boolean = false): any {\n let timings = {\n create_room: `調整ページ作成時`,\n notify_message: `チャット通知`,\n shared_calendar: `調整カレンダー共有時`,\n inquire_on_public_room: `申し込み完了時`,\n fixed_appointment: `日程確定時`,\n // the_day_before: `調整ページ有効期限切れ前日`,\n start_appointment: `日程調整開始時`,\n cancel_appointment: `日程確定後キャンセル時`,\n reschedule_appointment: `日程確定後リスケジュール時`,\n one_day_before_deadline: `調整ページ有効期限切れ前日`,\n request_other_possible_dates: `別日程のリクエスト時`,\n // remind_to_share_schedule: `調整カレンダーリクエスト依頼`,\n auto_remind: `自動リマインド`,\n the_day_before: `確定した日程調整の開催日前日`,\n feedback: `イベント後`,\n }\n if (onlyNotify) {\n delete timings.feedback\n delete timings.inquire_on_public_room\n }\n return timings\n }\n\n // @param roomType [string] parent_room,public_room\n static timingsDicArray(roomType: string = null): any[] {\n let parentTimingNames = [\n `create_room`,\n `shared_calendar`,\n `fixed_appointment`,\n `the_day_before`,\n `feedback`,\n `one_day_before_deadline`,\n `remind_to_share_schedule`,\n `auto_remind`,\n ]\n let publicTimingNames = [\n `inquire_on_public_room`,\n `fixed_appointment`,\n `the_day_before`,\n `feedback`,\n `one_day_before_deadline`,\n `auto_remind`,\n ]\n let parents = []\n let publics = []\n for (let [k, v] of Object.entries(this.timings())) {\n let _v = v as string\n const dic = { type: k, name: _v, is_active: true }\n\n if (parentTimingNames.includes(k)) {\n //\n dic[`room_type`] = `parent_room`\n parents.push({ ...dic })\n }\n\n if (publicTimingNames.includes(k)) {\n dic[`room_type`] = `parent_room`\n publics.push({ ...dic })\n }\n }\n return roomType == `parent_room` ? parents : publics\n }\n\n // 通知タイミング\n static additionalTimings(): any {\n let timings = {\n confirming_open_mail: `メール開封時`,\n confirming_loggin_room: `調整ページ入室時`,\n }\n return timings\n }\n\n /**\n * 現在時刻を取得します。(秒)\n */\n static getSec(): number {\n return DateTime.local().toSeconds()\n }\n\n static getRandomColor(): string {\n let color = ((Math.random() * 0xffffff) | 0).toString(16)\n return `000000${color}`.slice(-6)\n }\n\n static getRandomPublicId(prefix: string = ``, size: number = 6): string {\n return `${prefix}${Math.random()\n .toString(36)\n .toUpperCase()\n .slice(-1 * size)}`\n }\n\n static toString(str: any) {\n if (!str || str === `` || str === undefined) return ``\n\n if (typeof str == `string`) return str\n\n if (Array.isArray(str)) return str.join(`,`)\n if (this.isDictionary(str)) return JSON.stringify(str)\n }\n\n /**\n * 文字列を16進数に変換する\n * 16進数ひとけたの場合は01 02 03と表記する\n *\n * @method hex\n * @param {String} s 文字列\n * @return {String} result 16進数に変換した文字列\n */\n static hex(s) {\n var result = \"\"\n for (var i = 0; i < s.length; ++i) {\n var h = (\"0\" + s.charCodeAt(i).toString(16)).substr(-2)\n result += h\n }\n return result\n }\n\n static readonly thanksPageDefaultTitle = `お申し込みを受け付けました`\n\n static readonly thanksPageDefaultContent = `お申し込みいただきありがとうございます。担当が確認いたします。`\n\n static truncate(str: string, length: number = 20, omission = `...`) {\n if (!str) return\n\n if (str.length <= length) {\n return str\n }\n\n return str.substring(0, length) + omission\n }\n\n /**\n * Railsでいう Set[Array] - Set[Array]で差分のarrayを取得します.\n * @param arr1 [any[]] 長い方 [\"a\", \"b\", \"c\", \"d\"]\n * @param arr2 [any[]] 短い方 [\"a\", \"c\"]\n *\n * @return any[] 期待値: [\"b\", \"d\"]\n */\n static arraySabun(arr1: any[], arr2: any[]): any[] {\n Logger(`Util.arraySabun ${Util.output(arr1)}, ${Util.output(arr2)}`)\n arr1 = arr1 || []\n arr2 = arr2 || []\n let result = arr1.filter(\n itemA =>\n // arr2に存在しない要素が返る\n arr2.indexOf(itemA) == -1\n )\n return result || []\n }\n\n /**\n * 2次元配列に変更します.\n * @param array [any[]] ex.) [1,2,3,4,5,6,7]\n * @param part [number] ex.) 2\n * @returns any[][] ex.)[[1,2],[3,4],[5,6],[7]]\n */\n static splitArray(array: any[], part: number): any[][] {\n if (!array) return null\n\n let tmp = []\n for (let i = 0; i < array.length; i += part) {\n tmp.push(array.slice(i, i + part))\n }\n return tmp\n }\n\n /**\n * arrayをkeyに対してソートします.\n * @param array any[]\n * @param key string dic.keyの比較する値\n * @param asc boolean 降順・照準\n * @returns any[]\n */\n static sortBy(array: any[], key: string, asc = true): any[] {\n if (!array) return null\n let arr = [...array]\n\n arr.sort(function (a, b) {\n if (a[key] < b[key]) return -1\n if (a[key] > b[key]) return 1\n return 0\n })\n return arr\n }\n\n /**\n * sortByから、文字数が優先でソートします.\n * @param array\n * @param key\n * @param asc\n * @returns\n */\n static sortByWords(array: any[], key: string, asc = true): any[] {\n if (!array) return null\n let arr = [...array]\n\n arr.sort(function (a, b) {\n if (a[key].length < b[key].length) return -1\n if (a[key].length > b[key].length) return 1\n if (a[key] < b[key]) return -1\n if (a[key] > b[key]) return 1\n return 0\n })\n return arr\n }\n\n static isSMSEmail(email: string): boolean {\n if (this.isBlank(email)) return false\n\n return email.endsWith(\"@sms.waaq.jp\")\n }\n\n /**\n * 開催期間かどうかを判定します.\n * @param room Room\n * @param skipStatus boolean 確定済みの場合のステータスを考慮しないか.\n * @returns [boolean, string] 開催期間外の場合はfalseとメッセージが返ります.\n */\n static isOpenTime(room: Room, skipFixStatus: boolean = false) {\n if (!room) return [true, null]\n let appo = room.current_appointment\n if (!skipFixStatus) {\n if (appo && appo.status == 10) return [true, null]\n }\n\n let rs = room.room_setting\n if (!rs) return [true, null]\n if (rs.open_period_type == `none`) return [true, null]\n\n let now = DateTime.local()\n let openTime = rs.open_period_start_at ? DateTime.fromSeconds(rs.open_period_start_at) : null\n let closeTime = rs.open_period_end_at ? DateTime.fromSeconds(rs.open_period_end_at) : null\n\n if (rs.open_period_type == `start_time_only`) {\n if (now < openTime) return [false, `out_of_start_time`]\n }\n\n if (rs.open_period_type == `end_time_only`) {\n if (now > closeTime) return [false, `out_of_end_time`]\n }\n\n if (rs.open_period_type == `start_and_end_time`) {\n if (now < openTime) return [false, `out_of_start_time`]\n if (now > closeTime) return [false, `out_of_end_time`]\n }\n\n return [true, null]\n }\n\n static findKeyByValue(obj: any, value: any) {\n return Object.keys(obj).find(key => obj[key] === value)\n }\n}\n"],"names":["Util","generateMonthArray","plus","Array","DateTime","local","month","endOf","day","fill","map","_","i","checkLoggedInStatus","some","h","location","href","includes","isGuest","this","isPreview","isRoomSettingsPreview","isPublic","isEmbeds","isPubSummary","isInstantRoom","room","rs","room_setting","is_instant_room","isEmbedsInstantButton","isBoard","gmapUrl","name","size","concat","encodeURIComponent","gmapLinkUrl","address","sendInquiry","content","rating","category","axios","post","prefixUrl","then","res","serialize","params","qs","output","obj","JSON","stringify","getTimeHourMinFormatFromSeconds","sec","fromSeconds","getTimeFullFormatFromSeconds","format","toFormat","isSP","isMobile","window","navigator","phone","getTimeDateFormatFromSeconds","_f","isOnline","isBlank","online","getOnlines","find","e","toLocaleLowerCase","getOnlinesExactMatch","getURLFromAddress","useLocationIcon","Logger","getOnlineImages","isDictionary","val","constructor","Object","str","undefined","isArray","length","keys","filter","st","isPresent","isNumeric","test","isUrl","regex","RegExp","match","getUrl","url","redirect_url","search","indexOf","isMac","platform","isWin","validateEmail","email","String","toLowerCase","validateEmails","emails","_this","parseNaturalNumber","num","Number","isNaN","timings","onlyNotify","create_room","notify_message","shared_calendar","inquire_on_public_room","fixed_appointment","start_appointment","cancel_appointment","reschedule_appointment","one_day_before_deadline","request_other_possible_dates","auto_remind","the_day_before","feedback","timingsDicArray","roomType","parentTimingNames","publicTimingNames","parents","publics","_i","_a","entries","_b","k","dic","type","is_active","push","__assign","additionalTimings","confirming_open_mail","confirming_loggin_room","getSec","toSeconds","getRandomColor","color","Math","random","toString","slice","getRandomPublicId","prefix","toUpperCase","join","hex","s","result","charCodeAt","substr","truncate","omission","substring","arraySabun","arr1","arr2","itemA","splitArray","array","part","tmp","sortBy","key","asc","arr","__spreadArray","sort","a","b","sortByWords","isSMSEmail","endsWith","isOpenTime","skipFixStatus","appo","current_appointment","status","open_period_type","now","openTime","open_period_start_at","closeTime","open_period_end_at","findKeyByValue","value","selectDays","selectDays100","selectDaysStartOne","selectBufferMinutes","selectHours","weekDics","windex","selected","thisMonthArray","alphabets","thanksPageDefaultTitle","thanksPageDefaultContent"],"sourceRoot":""}