{"version":3,"file":"js/app.926133c1.js","mappings":"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","sources":["webpack://smooth-e.web.owner/./src/clients/api-client-base.ts","webpack://smooth-e.web.owner/./src/constants/constants.ts","webpack://smooth-e.web.owner/./src/dtos/auth/common.ts","webpack://smooth-e.web.owner/./src/dtos/auth/identification/additional/post.ts","webpack://smooth-e.web.owner/./src/dtos/auth/identification/post.ts","webpack://smooth-e.web.owner/./src/dtos/auth/login/post.ts","webpack://smooth-e.web.owner/./src/dtos/auth/simulate/post.ts","webpack://smooth-e.web.owner/./src/dtos/auth/sso-verify/post.ts","webpack://smooth-e.web.owner/./src/dtos/commons.ts","webpack://smooth-e.web.owner/./src/dtos/notifications/get-detail.ts","webpack://smooth-e.web.owner/./src/dtos/notifications/get.ts","webpack://smooth-e.web.owner/./src/dtos/notifications/post.ts","webpack://smooth-e.web.owner/./src/dtos/resolutions/questions/delete.ts","webpack://smooth-e.web.owner/./src/dtos/resolutions/questions/get.ts","webpack://smooth-e.web.owner/./src/dtos/resolutions/questions/post.ts","webpack://smooth-e.web.owner/./src/dtos/resolutions/questions/put.ts","webpack://smooth-e.web.owner/./src/dtos/resolutions/reads/post.ts","webpack://smooth-e.web.owner/./src/dtos/static-assets/user-icons/get.ts","webpack://smooth-e.web.owner/./src/libs/current-user-manager.ts","webpack://smooth-e.web.owner/./src/libs/analytics-adapter.ts","webpack://smooth-e.web.owner/./src/libs/native-bridge.ts","webpack://smooth-e.web.owner/./src/libs/path.ts","webpack://smooth-e.web.owner/./src/App.vue?362b","webpack://smooth-e.web.owner/./src/App.vue","webpack://smooth-e.web.owner/./src/App.vue?7ccd","webpack://smooth-e.web.owner/./src/components/atoms/icons/MaterialIcon.vue?b2b9","webpack://smooth-e.web.owner/./src/components/atoms/icons/MaterialIcon.vue","webpack://smooth-e.web.owner/./src/components/atoms/icons/MaterialIcon.vue?5daa","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmChatIcon.vue","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmChatIcon.vue?f0e4","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmQuestionnaireIcon.vue","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmQuestionnaireIcon.vue?f18a","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmWarningIcon.vue","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmWarningIcon.vue?6329","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmIdeaPlanIcon.vue","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmIdeaPlanIcon.vue?a825","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmPlanIcon.vue","webpack://smooth-e.web.owner/./src/components/atoms/icons/SmPlanIcon.vue?ebf6","webpack://smooth-e.web.owner/./src/plugins/vuetify.ts","webpack://smooth-e.web.owner/./src/clients/log-client.ts","webpack://smooth-e.web.owner/./src/dtos/log/post.ts","webpack://smooth-e.web.owner/./src/dtos/log/csp/post.ts","webpack://smooth-e.web.owner/./src/aws-exports.ts","webpack://smooth-e.web.owner/./src/main.ts","webpack://smooth-e.web.owner/./src/mixins/current-user-manager.ts","webpack://smooth-e.web.owner/./src/router.ts","webpack://smooth-e.web.owner/./src/routes.ts","webpack://smooth-e.web.owner/./src/stores/preserve-state/paths.ts","webpack://smooth-e.web.owner/./src/libs/badge-skip-update.ts","webpack://smooth-e.web.owner/./src/dtos/auth/admin/post.ts","webpack://smooth-e.web.owner/./src/dtos/auth/logout/post.ts","webpack://smooth-e.web.owner/./src/dtos/auth/sso-verify/get.ts","webpack://smooth-e.web.owner/./src/clients/auth-client.ts","webpack://smooth-e.web.owner/./src/dtos/my/building/current/get.ts","webpack://smooth-e.web.owner/./src/clients/my-current-building-client.ts","webpack://smooth-e.web.owner/./src/dtos/my/building/get.ts","webpack://smooth-e.web.owner/./src/clients/my-buildings-client.ts","webpack://smooth-e.web.owner/./src/dtos/resolutions/questions/get-detail.ts","webpack://smooth-e.web.owner/./src/dtos/resolutions/unprocessed/get.ts","webpack://smooth-e.web.owner/./src/clients/resolutions-client.ts","webpack://smooth-e.web.owner/./src/clients/notifications-client.ts","webpack://smooth-e.web.owner/./src/dtos/my/building/current/post.ts","webpack://smooth-e.web.owner/./src/stores/index.ts","webpack://smooth-e.web.owner/./src/stores/local-param-storage-store.ts","webpack://smooth-e.web.owner/./src/clients/my-device-client.ts","webpack://smooth-e.web.owner/./src/dtos/my/device/post.ts","webpack://smooth-e.web.owner/./src/stores/my-device-store.ts","webpack://smooth-e.web.owner/./src/dtos/static-assets/reactions/get.ts","webpack://smooth-e.web.owner/./src/dtos/static-assets/get.ts","webpack://smooth-e.web.owner/./src/clients/static-assets-client.ts","webpack://smooth-e.web.owner/./src/stores/static-assets-store.ts","webpack://smooth-e.web.owner/webpack/bootstrap","webpack://smooth-e.web.owner/webpack/runtime/chunk loaded","webpack://smooth-e.web.owner/webpack/runtime/compat get default export","webpack://smooth-e.web.owner/webpack/runtime/create fake namespace object","webpack://smooth-e.web.owner/webpack/runtime/define property getters","webpack://smooth-e.web.owner/webpack/runtime/ensure chunk","webpack://smooth-e.web.owner/webpack/runtime/get javascript chunk filename","webpack://smooth-e.web.owner/webpack/runtime/get mini-css chunk filename","webpack://smooth-e.web.owner/webpack/runtime/global","webpack://smooth-e.web.owner/webpack/runtime/hasOwnProperty shorthand","webpack://smooth-e.web.owner/webpack/runtime/load script","webpack://smooth-e.web.owner/webpack/runtime/make namespace object","webpack://smooth-e.web.owner/webpack/runtime/node module decorator","webpack://smooth-e.web.owner/webpack/runtime/publicPath","webpack://smooth-e.web.owner/webpack/runtime/css loading","webpack://smooth-e.web.owner/webpack/runtime/jsonp chunk loading","webpack://smooth-e.web.owner/webpack/startup"],"sourcesContent":["import axios, { AxiosInstance, ResponseType } from 'axios'\r\nimport { plainToClass, ClassConstructor } from 'class-transformer'\r\n\r\nimport router from '@/router'\r\nimport { staticRoutes } from '@/routes'\r\nimport { join } from '@/libs/path'\r\n\r\nimport { errorsModule, structureModule, authModule, cognitoModule } from '@/stores'\r\nimport { LOGIN_TYPE } from '@/constants/constants'\r\n\r\nconst INNER_ERROR_STATUS = {\r\n VALIDATION: 400,\r\n BAD_REQUEST: 401,\r\n OPTIMISTIC_LOCK: 402,\r\n PERMISSION_DENIED: 403,\r\n NOT_FOUND: 404,\r\n SESSION_NOT_FOUND: 405,\r\n APPLICATION: 500,\r\n SERVICE_UNAVAILABLE: 503,\r\n NOT_PROCESSED: 600,\r\n\r\n} as const\r\n\r\nconst ERROR_SHORT_MESSAGES = {\r\n VALIDATION: '入力エラーがあります',\r\n BAD_REQUEST: '操作や入力に誤りがあります',\r\n OPTIMISTIC_LOCK: '反映に失敗しました',\r\n PERMISSION_DENIED: 'その操作は受け付けられません',\r\n APPLICATION: 'システムエラーが発生しました',\r\n UNEXPECTED: 'システムエラーが発生しました',\r\n} as const\r\n\r\nconst ACCESS_TOKEN = 'X-SM-ACCESS-TOKEN'\r\n\r\nexport abstract class APIClientBase {\r\n private readonly _client: AxiosInstance\r\n\r\n constructor(additionalBaseUrl?: string) {\r\n let AxiosRequestConfig = {}\r\n if (additionalBaseUrl) {\r\n AxiosRequestConfig = {\r\n baseURL: join(process.env.VUE_APP_API_BASE_URL, additionalBaseUrl),\r\n timeout: 10000, // 10sec.\r\n headers: { 'content-type': 'application/json' },\r\n withCredentials: true\r\n }\r\n } else {\r\n AxiosRequestConfig = {\r\n timeout: 10000, // 10sec.\r\n }\r\n }\r\n\r\n this._client = axios.create(AxiosRequestConfig)\r\n\r\n this._client.interceptors.request.use(config => {\r\n // アクセストークンをヘッダに設定(画面リロード等で消えないよう、session storageに保持したものを毎回設定)\r\n config.headers[ACCESS_TOKEN] = authModule.accessToken\r\n\r\n if (errorsModule.hasErrors) errorsModule.clearErrors()\r\n return config\r\n })\r\n\r\n this._client.interceptors.response.use(response => {\r\n return response\r\n },\r\n async error => {\r\n structureModule.forceHideProgressOverlay()\r\n if (error.response && error.response.data) { // smooth-eサーバからのエラー\r\n const innerStatus = error.response.data.innerStatusCode\r\n errorsModule.setErrors(error.response.data)\r\n\r\n switch (innerStatus) {\r\n case INNER_ERROR_STATUS.VALIDATION: structureModule.updateSnackbarErrorMessage(ERROR_SHORT_MESSAGES.VALIDATION); break\r\n case INNER_ERROR_STATUS.BAD_REQUEST: structureModule.updateSnackbarErrorMessage(ERROR_SHORT_MESSAGES.BAD_REQUEST); break\r\n case INNER_ERROR_STATUS.OPTIMISTIC_LOCK: structureModule.updateSnackbarErrorMessage(ERROR_SHORT_MESSAGES.OPTIMISTIC_LOCK); break\r\n case INNER_ERROR_STATUS.SESSION_NOT_FOUND:\r\n switch (authModule.currentLoginType) {\r\n case LOGIN_TYPE.FROM_OWNER_APPS.NORMAL: structureModule.openReLoginDialog(); break\r\n case LOGIN_TYPE.FROM_ADMIN_APPS.SIMULATE: structureModule.openSimulateReLoginDialog(); break\r\n case LOGIN_TYPE.FROM_OWNER_APPS.DUMMY: {\r\n errorsModule.clearErrors()\r\n try {\r\n // セッションを再確立する\r\n await cognitoModule.createSession()\r\n // セッションキーを新たに確立したものに上書きした上で、再度同じリクエストを送る\r\n error.config.headers[ACCESS_TOKEN] = authModule.accessToken\r\n return await axios.request(error.config)\r\n } catch (error) {\r\n // エラーが発生した場合は手動での再ログインを促す\r\n structureModule.openReLoginDialog()\r\n throw error\r\n }\r\n }\r\n default: {\r\n const _exhaustiveCheck: never = authModule.currentLoginType\r\n return _exhaustiveCheck\r\n }\r\n }\r\n break\r\n case INNER_ERROR_STATUS.PERMISSION_DENIED: structureModule.updateSnackbarErrorMessage(ERROR_SHORT_MESSAGES.PERMISSION_DENIED); break\r\n case INNER_ERROR_STATUS.NOT_FOUND: router.replace({ name: staticRoutes.notFound.name }); break\r\n case INNER_ERROR_STATUS.APPLICATION: structureModule.updateSnackbarErrorMessage(ERROR_SHORT_MESSAGES.APPLICATION); break\r\n case INNER_ERROR_STATUS.SERVICE_UNAVAILABLE: router.push({ name: staticRoutes.maintenance.name }); break\r\n case INNER_ERROR_STATUS.NOT_PROCESSED:\r\n // 管理者操作の場合はエラーを握りつぶす\r\n errorsModule.clearErrors()\r\n return\r\n default: structureModule.updateSnackbarErrorMessage(ERROR_SHORT_MESSAGES.UNEXPECTED); break\r\n }\r\n } else {\r\n structureModule.updateSnackbarErrorMessage(ERROR_SHORT_MESSAGES.UNEXPECTED)\r\n errorsModule.setGlobalErrors(['予期せぬエラーが発生しました。時間を置いてから再度実行するか、改善しない場合は管理者業務執行者までお問い合わせください。'])\r\n }\r\n throw error\r\n })\r\n }\r\n\r\n protected async get(url: string, params: unknown, responseClass: ClassConstructor, showProgressOverlay = true): Promise {\r\n if (showProgressOverlay) structureModule.requestShowProgressOverlay()\r\n const fullResponse = await this._client.get(url, {\r\n params: this._formatQueryParams(params),\r\n })\r\n\r\n if (showProgressOverlay) structureModule.requestHideProgressOverlay()\r\n return plainToClass(responseClass, fullResponse.data)\r\n }\r\n\r\n protected async getPlain(url: string, responseType?: ResponseType): Promise {\r\n const fullResponse = await this._client.get(url, {\r\n responseType: responseType\r\n })\r\n\r\n return fullResponse.data\r\n }\r\n\r\n protected async post(url: string, body: unknown, responseClass?: ClassConstructor, showProgressOverlay = true): Promise {\r\n if (showProgressOverlay) structureModule.requestShowProgressOverlay()\r\n const fullResponse = await this._client.post(url, body)\r\n\r\n if (showProgressOverlay) structureModule.requestHideProgressOverlay()\r\n\r\n if (!responseClass) return undefined\r\n return plainToClass(responseClass, fullResponse.data)\r\n }\r\n\r\n protected async put(url: string, body: unknown, responseClass?: ClassConstructor, showProgressOverlay = true): Promise {\r\n if (showProgressOverlay) structureModule.requestShowProgressOverlay()\r\n const fullResponse = await this._client.put(url, body)\r\n\r\n if (showProgressOverlay) structureModule.requestHideProgressOverlay()\r\n\r\n if (!responseClass) return undefined\r\n return plainToClass(responseClass, fullResponse.data)\r\n }\r\n\r\n protected async delete(url: string, responseClass?: ClassConstructor, showProgressOverlay = true): Promise {\r\n if (showProgressOverlay) structureModule.requestShowProgressOverlay()\r\n const fullResponse = await this._client.delete(url)\r\n\r\n if (showProgressOverlay) structureModule.requestHideProgressOverlay()\r\n\r\n if (!responseClass) return undefined\r\n return plainToClass(responseClass, fullResponse.data)\r\n }\r\n\r\n /**\r\n * クエリパラメータの項目値として配列が設定されていた場合に、項目名に配列番号を添字としてその要素を展開します。\r\n * e.g. { types: [11, 12, 13] } => { 'types[0]': 11, 'types[1]': 12, 'types[2]': 13, }\r\n * @param params クエリパラメータとして指定する、キーと値の組み合わせのオブジェクト\r\n */\r\n private _formatQueryParams(params: unknown) {\r\n if (typeof params !== 'object' || params === null) return params\r\n\r\n return Object.entries(params).reduce((acc: Record, [key, value]) => {\r\n if (Array.isArray(value)) {\r\n value.forEach((v, idx) => { acc[`${key}[${idx}]`] = v })\r\n } else {\r\n acc[key] = value\r\n }\r\n return acc\r\n }, {})\r\n }\r\n}\r\n","/** 実行環境 ※モバイルも、ブラウザ利用なら WEB に該当 */\r\nexport const DEVICE_TYPE = {\r\n IOS: 1,\r\n ANDROID: 2,\r\n WEB: 3,\r\n} as const\r\nexport type DeviceType = typeof DEVICE_TYPE[keyof typeof DEVICE_TYPE]\r\n\r\n/** 実行環境 */\r\nexport const WEB_TYPE = {\r\n CRIOS: 1,\r\n GSA: 2,\r\n EDGIOS: 3,\r\n SAFARI: 4\r\n} as const\r\nexport type WebType = typeof WEB_TYPE[keyof typeof WEB_TYPE]\r\n\r\n/**\r\n * 認証状態\r\n * 画面導線の関係から、途中省略もありえつつ 1 -> 2 -> 3 -> 9 の順に進行する\r\n * LMログイン時は1 -> (11 -> 12 -> 4) -> 9 の順に進行する(※11, 12, 4は途中省略されるケースあり)\r\n * なりすましログイン時は 9 のまま\r\n * もしstateを追加した場合、下記ファイルへの追記が必要\r\n * 1): LoginPage.vue\r\n * 2): IdentificationPage.vue\r\n * 3): LoginCompletionPage.vue\r\n * 4): ExternalLoginCompletionPage.vue\r\n */\r\nexport const AUTH_STATE = {\r\n ANONYMOUS: 1,\r\n HAVE_TO_IDENTIFY: 2,\r\n HAVE_TO_INITIALIZE: 3,\r\n HAVE_TO_SELECT_BUILDING: 4, // LMログイン時、区分所有者の複数物件対応時に使用\r\n AUTHORIZED: 9,\r\n\r\n HAVE_TO_MFA: 11, // LMログイン用\r\n HAVE_TO_CAUTION: 12, // LMログイン用\r\n} as const\r\nexport type AuthState = typeof AUTH_STATE[keyof typeof AUTH_STATE];\r\n\r\n/**\r\n * ログイン種別\r\n */\r\nexport const LOGIN_TYPE = {\r\n FROM_OWNER_APPS: {\r\n NORMAL: 11, // 区分所有者のログイン\r\n DUMMY: 12, // LMログイン\r\n },\r\n FROM_ADMIN_APPS: {\r\n SIMULATE: 21, // なりすましログイン(管理者業務執行者/GCC/フロント)\r\n }\r\n} as const\r\nexport type LoginType =\r\n typeof LOGIN_TYPE.FROM_OWNER_APPS[keyof typeof LOGIN_TYPE.FROM_OWNER_APPS]\r\n | typeof LOGIN_TYPE.FROM_ADMIN_APPS[keyof typeof LOGIN_TYPE.FROM_ADMIN_APPS]\r\n\r\nexport const LM_DUMMY_ROOM_NUMBER = 'ライフマネージャー'\r\n\r\n/**\r\n * 機能種別\r\n */\r\nexport const FUNCTION_TYPE = {\r\n OWNER_IDEA_DETAIL: 110, // アイデア詳細\r\n ADMIN_IDEA_DETAIL: 120, // プラン詳細\r\n GM_RESOLUTION_DETAIL: 130, // 総会決議\r\n ONLINE_RESOLUTION_DETAIL: 140, // オンライン決議\r\n REPAIR_PLAN: 200, // 長期修繕計画トップ\r\n NOTIFICATIONS: 400, // お知らせ一覧\r\n NOTIFICATION_DETAIL: 410, // お知らせ詳細\r\n CONSULTATION_DETAIL: 510, // 相談詳細\r\n QUESTIONNAIRE_DETAIL: 901, // アンケート詳細\r\n QUESTIONNAIRE_REPORT_DETAIL: 902, // アンケート報告書詳細\r\n SIMPLE_REPAIR_PLAN: 1200, // 簡易版長期修繕計画トップ\r\n} as const\r\nexport type FunctionType = typeof FUNCTION_TYPE [keyof typeof FUNCTION_TYPE]\r\n\r\n/**\r\n * 意思決定プロセス種別\r\n */\r\nexport const DECISION_PROCESS_TYPE = {\r\n /** 凡例 */\r\n ALL: 0,\r\n /** 投稿 */\r\n IDEA: 10,\r\n /** 意見受付 */\r\n OPINION: 11,\r\n /** 賛同受付 */\r\n AGREEMENT: 12,\r\n /** 投票 */\r\n RESOLUTION: 13\r\n} as const\r\n\r\n/**\r\n * アイデア種別\r\n */\r\nexport const IDEA_TYPES = {\r\n /** アイデア */\r\n OWNER_IDEA: 1,\r\n /** プラン */\r\n ADMIN_IDEA: 2,\r\n} as const\r\nexport type IdeaType = typeof IDEA_TYPES[keyof typeof IDEA_TYPES]\r\n\r\n/**\r\n * アイデア状態\r\n */\r\nexport const IDEA_STATES = {\r\n /** アイデア */\r\n OWNER: {\r\n /** アイデア */\r\n POSTED: 11,\r\n /** 採用済み */\r\n ADOPTED: 12,\r\n /** アーカイブ */\r\n REJECTED: 13,\r\n /** キャンセル済み */\r\n CANCELED: 18,\r\n /** 削除済み */\r\n DELETED: 19,\r\n },\r\n /** プラン */\r\n ADMIN: {\r\n /** 賛同受付中 */\r\n ACCEPTING_AGREEMENT: 21,\r\n /** 賛同数集計中 */\r\n COUNTING: 22,\r\n /** 結果公開済み */\r\n RELEASED: 23,\r\n /** 意見受付中 */\r\n ACCEPTING_OPINION: 24,\r\n /** 削除済み */\r\n DELETED: 29,\r\n },\r\n} as const\r\n\r\nexport type IdeaState =\r\n typeof IDEA_STATES.ADMIN[keyof typeof IDEA_STATES.ADMIN]\r\n |typeof IDEA_STATES.OWNER[keyof typeof IDEA_STATES.OWNER]\r\n\r\n/**\r\n * 共通関数用のMap\r\n * ラベルやアーカイブを使いたい場合はこのMapを直接使わず、libs配下の共通関数を使うこと\r\n */\r\nexport const IDEA_STATE_MAP = new Map([\r\n [IDEA_STATES.OWNER.POSTED,\r\n { LABEL: 'アイデア', IS_ARCHIVED: false, IS_DELETED: false, PROCESS: DECISION_PROCESS_TYPE.IDEA }\r\n ],\r\n [IDEA_STATES.OWNER.ADOPTED,\r\n { LABEL: 'アーカイブ', IS_ARCHIVED: true, IS_DELETED: false, PROCESS: DECISION_PROCESS_TYPE.IDEA }\r\n ],\r\n [IDEA_STATES.OWNER.REJECTED,\r\n { LABEL: 'アーカイブ', IS_ARCHIVED: true, IS_DELETED: false, PROCESS: DECISION_PROCESS_TYPE.IDEA }\r\n ],\r\n [IDEA_STATES.OWNER.CANCELED,\r\n { LABEL: '削除済み', IS_ARCHIVED: false, IS_DELETED: true, PROCESS: DECISION_PROCESS_TYPE.IDEA }\r\n ],\r\n [IDEA_STATES.OWNER.DELETED,\r\n { LABEL: '削除済み', IS_ARCHIVED: false, IS_DELETED: true, PROCESS: DECISION_PROCESS_TYPE.IDEA }\r\n ],\r\n [IDEA_STATES.ADMIN.ACCEPTING_AGREEMENT,\r\n { LABEL: '賛同受付中', IS_ARCHIVED: false, IS_DELETED: false, PROCESS: DECISION_PROCESS_TYPE.AGREEMENT }\r\n ],\r\n [IDEA_STATES.ADMIN.ACCEPTING_OPINION,\r\n { LABEL: '意見受付中', IS_ARCHIVED: false, IS_DELETED: false, PROCESS: DECISION_PROCESS_TYPE.OPINION }\r\n ],\r\n [IDEA_STATES.ADMIN.COUNTING,\r\n { LABEL: '賛同数集計中', IS_ARCHIVED: true, IS_DELETED: false }\r\n ],\r\n [IDEA_STATES.ADMIN.RELEASED,\r\n { LABEL: 'アーカイブ', IS_ARCHIVED: true, IS_DELETED: false }\r\n ],\r\n [IDEA_STATES.ADMIN.DELETED,\r\n { LABEL: '削除済み', IS_ARCHIVED: false, IS_DELETED: true }\r\n ],\r\n])\r\n\r\n/**\r\n * 賛同・意見アイテム種別\r\n */\r\nexport const ADMIN_IDEA_ITEM_TYPES = {\r\n /** 案 */\r\n PLAN: 1,\r\n /** 賛同数集計結果 */\r\n COUNTING_RESULT: 2,\r\n /** 意見交換会のご案内 */\r\n MEETING: 3,\r\n /** 意見交換会の結果 */\r\n MEETING_SUMMARY: 4,\r\n} as const\r\n\r\nexport type AdminIdeaItemType = typeof ADMIN_IDEA_ITEM_TYPES[keyof typeof ADMIN_IDEA_ITEM_TYPES]\r\n\r\n/**\r\n * 決議種別\r\n */\r\nexport const RESOLUTION_TYPES = {\r\n /** 総会 */\r\n GENERAL_MEETING: 1,\r\n /** オンライン決議 */\r\n ONLINE: 2,\r\n} as const\r\n\r\nexport type ResolutionType = typeof RESOLUTION_TYPES[keyof typeof RESOLUTION_TYPES]\r\n\r\n/**\r\n * 決議状態\r\n*/\r\nexport const RESOLUTION_STATES = {\r\n /** 総会 */\r\n GENERAL_MEETING: {\r\n /** 意思表明・質問受付中 */\r\n ACCEPTING_ALL: 11,\r\n /** 意思表明受付中、質問締切 */\r\n ACCEPTING_STATEMENT: 12,\r\n /** 結果集計中 */\r\n COUNTING: 13,\r\n /** 結果公開済み */\r\n RELEASED: 14,\r\n /** 削除済み */\r\n DELETED: 19,\r\n },\r\n /** オンライン決議 */\r\n ONLINE: {\r\n /** 投票・質問受付中 */\r\n ACCEPTING_ALL: 21,\r\n /** 投票受付中、質問締切 */\r\n ACCEPTING_VOTE: 22,\r\n /** 結果集計中 */\r\n COUNTING: 23,\r\n /** 結果公開 */\r\n RELEASED: 24,\r\n /** 削除済み */\r\n DELETED: 29,\r\n },\r\n} as const\r\n\r\nexport type ResolutionState =\r\n typeof RESOLUTION_STATES.GENERAL_MEETING[keyof typeof RESOLUTION_STATES.GENERAL_MEETING]\r\n |typeof RESOLUTION_STATES.ONLINE[keyof typeof RESOLUTION_STATES.ONLINE]\r\n\r\n/**\r\n * 共通関数用のMap\r\n * ラベルやアーカイブを使いたい場合はこのMapを直接使わず、libs配下の共通関数を使うこと\r\n */\r\nexport const RESOLUTION_STATE_MAP = new Map([\r\n [RESOLUTION_STATES.GENERAL_MEETING.ACCEPTING_ALL,\r\n { LABEL: '意思表明受付中', IS_ARCHIVED: false, IS_ACTIONABLE: true, IS_QUESTIONABLE: true, IS_RELEASED: false, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.GENERAL_MEETING.ACCEPTING_STATEMENT,\r\n { LABEL: '意思表明受付中', IS_ARCHIVED: false, IS_ACTIONABLE: true, IS_QUESTIONABLE: false, IS_RELEASED: false, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.GENERAL_MEETING.COUNTING,\r\n { LABEL: '結果集計中', IS_ARCHIVED: false, IS_ACTIONABLE: false, IS_QUESTIONABLE: false, IS_RELEASED: false, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.GENERAL_MEETING.RELEASED,\r\n { LABEL: 'アーカイブ', IS_ARCHIVED: true, IS_ACTIONABLE: false, IS_QUESTIONABLE: false, IS_RELEASED: true, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.GENERAL_MEETING.DELETED,\r\n { LABEL: '削除済', IS_ARCHIVED: false, IS_ACTIONABLE: false, IS_QUESTIONABLE: false, IS_RELEASED: false, IS_DELETED: true }\r\n ],\r\n [RESOLUTION_STATES.ONLINE.ACCEPTING_ALL,\r\n { LABEL: '投票受付中', IS_ARCHIVED: false, IS_ACTIONABLE: true, IS_QUESTIONABLE: true, IS_RELEASED: false, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.ONLINE.ACCEPTING_VOTE,\r\n { LABEL: '投票受付中', IS_ARCHIVED: false, IS_ACTIONABLE: true, IS_QUESTIONABLE: false, IS_RELEASED: false, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.ONLINE.COUNTING,\r\n { LABEL: '結果集計中', IS_ARCHIVED: true, IS_ACTIONABLE: false, IS_QUESTIONABLE: false, IS_RELEASED: false, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.ONLINE.RELEASED,\r\n { LABEL: 'アーカイブ', IS_ARCHIVED: true, IS_ACTIONABLE: false, IS_QUESTIONABLE: false, IS_RELEASED: true, IS_DELETED: false }\r\n ],\r\n [RESOLUTION_STATES.ONLINE.DELETED,\r\n { LABEL: '削除済', IS_ARCHIVED: false, IS_ACTIONABLE: false, IS_QUESTIONABLE: false, IS_RELEASED: false, IS_DELETED: true }\r\n ],\r\n])\r\n\r\n/**\r\n * 意思表明種別\r\n*/\r\nexport const STATEMENT_TYPES = {\r\n /** 会場で出席する */\r\n PRESENT_LOCAL: 1,\r\n /** 委任する */\r\n DELEGATE: 2, // 機能改善⑧ 追加開発No.73の対応で委任は削除することになったが、データには残っているため画面表示に使用する\r\n /** 議決権行使する */\r\n VOTE: 3,\r\n /** リモートで出席する */\r\n PRESENT_REMOTE: 4,\r\n} as const\r\n\r\nexport type StatementType = typeof STATEMENT_TYPES[keyof typeof STATEMENT_TYPES]\r\n\r\n/**\r\n * 開催方法種別\r\n*/\r\nexport const HOLDING_METHOD_TYPE = {\r\n /** 会場のみ */\r\n LOCAL: 1,\r\n /** リモートのみ */\r\n REMOTE: 2,\r\n /** 会場+リモート両方 */\r\n BOTH: 3,\r\n} as const\r\nexport type HoldingMethodType = typeof HOLDING_METHOD_TYPE[keyof typeof HOLDING_METHOD_TYPE]\r\n\r\n/**\r\n * 投票種別\r\n*/\r\nexport const VOTE_TYPES = {\r\n /** 白票 */\r\n BLANK: 0,\r\n /** 賛成 */\r\n FOR: 1,\r\n /** 反対 */\r\n AGAINST: 2,\r\n} as const\r\n\r\nexport type VoteType = typeof VOTE_TYPES[keyof typeof VOTE_TYPES]\r\n\r\n/**\r\n * 共通関数用のMap\r\n * ラベルを使いたい場合はこのMapを直接使わず、libs配下の共通関数を使うこと\r\n */\r\nexport const VOTE_TYPE_MAP = new Map([\r\n [VOTE_TYPES.BLANK, { }],\r\n [VOTE_TYPES.FOR, { LABEL: '賛成' }],\r\n [VOTE_TYPES.AGAINST, { LABEL: '反対' }],\r\n])\r\n\r\n/**\r\n * 素材種別\r\n */\r\nexport const MATERIAL_TYPES = {\r\n /** 画像 */\r\n IMAGE: 1,\r\n /** 動画 */\r\n VIDEO: 2,\r\n /** PDF */\r\n PDF: 3,\r\n} as const\r\n\r\nexport type MaterialType = typeof MATERIAL_TYPES[keyof typeof MATERIAL_TYPES]\r\n\r\n/**\r\n * お知らせ構成要素種別\r\n */\r\nexport const NOTIFICATION_ELEMENT_TYPES = {\r\n /** 本文 */\r\n BODY: 10,\r\n /** 添付 */\r\n ATTACHMENT: 20,\r\n\r\n /** リンク */\r\n LINK: {\r\n /** smooth-e */\r\n SMOOTH_E: 31,\r\n /** 外部サイト */\r\n EXTERNAL: 32,\r\n /** メール */\r\n EMAIL: 33,\r\n /** 電話番号 */\r\n PHONE_NUMBER: 34,\r\n },\r\n\r\n /** 見出し */\r\n HEADING: {\r\n /** レベル2 */\r\n LEVEL2: 42,\r\n /** レベル3 */\r\n LEVEL3: 43,\r\n /** レベル4 */\r\n LEVEL4: 44,\r\n },\r\n\r\n /** 箇条書き */\r\n BULLET_POINT: {\r\n /** 黒ポチ(順序なし) */\r\n DOT: 51,\r\n /** 記号(順序あり) */\r\n INDEX: 52,\r\n },\r\n\r\n /** 横線 */\r\n HORIZON: 60,\r\n\r\n /** 角丸四角 */\r\n ROUNDED_SQUARE: {\r\n /** 薄い灰色 */\r\n LIGHT_GRAY: 71,\r\n },\r\n\r\n /** ボタン */\r\n BUTTON: {\r\n /** アイデア投稿 */\r\n POST_IDEA: 81,\r\n /** 相談・連絡 */\r\n CONSULTATION: 82,\r\n\r\n },\r\n} as const\r\nexport type NotificationElementType = typeof NOTIFICATION_ELEMENT_TYPES.BODY[keyof typeof NOTIFICATION_ELEMENT_TYPES.BODY]\r\n| typeof NOTIFICATION_ELEMENT_TYPES.ATTACHMENT[keyof typeof NOTIFICATION_ELEMENT_TYPES.ATTACHMENT]\r\n| typeof NOTIFICATION_ELEMENT_TYPES.LINK[keyof typeof NOTIFICATION_ELEMENT_TYPES.LINK]\r\n| typeof NOTIFICATION_ELEMENT_TYPES.HEADING[keyof typeof NOTIFICATION_ELEMENT_TYPES.HEADING]\r\n| typeof NOTIFICATION_ELEMENT_TYPES.BULLET_POINT[keyof typeof NOTIFICATION_ELEMENT_TYPES.BULLET_POINT]\r\n| typeof NOTIFICATION_ELEMENT_TYPES.HORIZON[keyof typeof NOTIFICATION_ELEMENT_TYPES.HORIZON]\r\n| typeof NOTIFICATION_ELEMENT_TYPES.ROUNDED_SQUARE[keyof typeof NOTIFICATION_ELEMENT_TYPES.ROUNDED_SQUARE]\r\n| typeof NOTIFICATION_ELEMENT_TYPES.BUTTON[keyof typeof NOTIFICATION_ELEMENT_TYPES.BUTTON]\r\n\r\n/**\r\n * お知らせ受信設定種別\r\n */\r\nexport const NOTIFICATION_SETTING_TYPES = {\r\n /** すべて */\r\n ALL: 1,\r\n /** 一部 */\r\n SOME: 2,\r\n /** 最小限 */\r\n MINIMUM: 3,\r\n} as const\r\n\r\nexport type NotificationSettingType = typeof NOTIFICATION_SETTING_TYPES[keyof typeof NOTIFICATION_SETTING_TYPES]\r\n\r\n/**\r\n * お知らせ本文(リスト)\r\n * 階層種別\r\n */\r\nexport const HIERARCHY_TYPES = {\r\n FIRST_HIERARCHY: 1,\r\n SECOND_HIERARCHY: 2,\r\n THIRD_HIERARCHY: 0\r\n} as const\r\nexport type HierarchyTypes = typeof HIERARCHY_TYPES[keyof typeof HIERARCHY_TYPES]\r\n\r\n/**\r\n * お知らせ本文(リスト)用MAP\r\n * 階層種別に紐づくli用の種類(記号)\r\n */\r\nexport const HIERARCHY_TYPE_DOT_MAP = new Map([\r\n [HIERARCHY_TYPES.FIRST_HIERARCHY, 'disc'],\r\n [HIERARCHY_TYPES.SECOND_HIERARCHY, 'circle'],\r\n [HIERARCHY_TYPES.THIRD_HIERARCHY, 'square']\r\n])\r\n\r\n/**\r\n * お知らせ本文(リスト)用MAP\r\n * 階層種別に紐づくli用の種類(順番)\r\n */\r\nexport const HIERARCHY_TYPE_INDEX_MAP = new Map([\r\n [HIERARCHY_TYPES.FIRST_HIERARCHY, 'decimal'],\r\n [HIERARCHY_TYPES.SECOND_HIERARCHY, 'lower-alpha'],\r\n [HIERARCHY_TYPES.THIRD_HIERARCHY, 'lower-roman']\r\n])\r\n\r\n/**\r\n * 長計タブ\r\n */\r\nexport const REPAIR_PLAN_TABS = {\r\n summary: {\r\n tab: 'tab1',\r\n name: '収支計画'\r\n },\r\n detail: {\r\n tab: 'tab2',\r\n name: '工事計画'\r\n }\r\n} as const\r\n\r\n/**\r\n * 長期修繕計画種別\r\n */\r\nexport const REPAIR_PLAN_TYPES = {\r\n /** リアルタイム長計 */\r\n REPAIR_PLAN: 1,\r\n /** 簡易版リアルタイム長計 */\r\n SIMPLE_REPAIR_PLAN: 2,\r\n} as const\r\nexport type RepairPlanType = typeof REPAIR_PLAN_TYPES[keyof typeof REPAIR_PLAN_TYPES]\r\n\r\n/**\r\n * GA 未ログイン者の情報\r\n */\r\nexport const GA_ANONYMOUS = 'anonymous'\r\n\r\n/**\r\n * GA専用のユーザカテゴリー\r\n * ログイン種別(LOGIN_TYPE)と同じ分け方だが、GAはログイン種別実装前に既に稼働していたため、\r\n * ログイン種別とは別になるが既に使用しているコード体系を引き続き利用する\r\n * (このコード値をGA以外で使用しないこと)\r\n */\r\nexport const GA_USER_CATEGORY = {\r\n OWNER: 1,\r\n ADMIN_DUMMY: 5, // LMログイン\r\n ADMIN_SIMULATE: 6, // GCC・FR・管理者業務執行者ログイン\r\n}\r\nexport type GaUserCategory = typeof GA_USER_CATEGORY[keyof typeof GA_USER_CATEGORY]\r\n\r\n/**\r\n * LM認証時エラーメッセージ\r\n */\r\nexport const DUMMY_AUTH_ERROR_MESSAGE = {\r\n USER_DISABLED: 'このアカウントはご利用になれません。',\r\n ACCOUNT_LOCKED: '複数回ログインに失敗したため、アカウントをロックしました。ロック中は新たなログインができません。しばらく時間をおいてから、再度お試しください。',\r\n INVALID_CREDENTIAL: 'IDまたはパスワードが正しくありません。',\r\n\r\n INVALID_PASSWORD: '入力された文字列はパスワードとして使用できません。',\r\n INVALID_CURRENT_PASSWORD: '現在のパスワードが正しくありません。',\r\n PASSWORD_CHANGE_LOCKED: 'アカウントをロックしました。ロック中はパスワード変更ができません。しばらく時間をおいてから、再度お試しください。',\r\n\r\n MFA_NOT_SET: '現在このアカウントではログインできません。管理者にお問い合わせください。',\r\n\r\n MFA_TIMEOUT: '認証キーの有効期限が切れています。SMSの再受信を行ってください。',\r\n INVALID_MFA: '認証キーが正しくありません。',\r\n\r\n NO_BUILDING_ASSIGNED: '閲覧可能な物件がありません。管理者にお問い合わせください。',\r\n\r\n UNEXPECTED_ERROR: '予期せぬエラーが発生しました。時間を置いてから再度お試しいただくか、お問い合わせください。',\r\n}\r\n\r\n/**\r\n * アンケートステータス\r\n */\r\nexport const QUESTIONNAIRE_STATE = {\r\n /**\r\n * 公開済\r\n */\r\n OPEN: 2,\r\n /**\r\n * 回答締切済\r\n */\r\n COUNTING: 3,\r\n /**\r\n * 報告書作成済\r\n */\r\n RELEASED: 4\r\n} as const\r\n\r\nexport type QuestionnaireState = typeof QUESTIONNAIRE_STATE[keyof typeof QUESTIONNAIRE_STATE]\r\n\r\n/**\r\n * アンケートセクション種別\r\n */\r\nexport const QUESTIONNAIRE_SECTION_TYPE = {\r\n /**\r\n * 回答\r\n */\r\n ANSWER: 1,\r\n /**\r\n * ご意見・ご要望\r\n */\r\n OPINIONS_AND_REQUESTS: 2\r\n} as const\r\nexport type QuestionnaireSectionType = typeof QUESTIONNAIRE_SECTION_TYPE[keyof typeof QUESTIONNAIRE_SECTION_TYPE]\r\n\r\n/**\r\n * アンケート設問種別\r\n */\r\nexport const QUESTIONNAIRE_QUESTION_TYPE = {\r\n /**\r\n * 自由入力\r\n */\r\n FREE_TEXT: 1,\r\n /**\r\n * 単一選択\r\n */\r\n SINGLE_SELECTION: 2,\r\n /**\r\n * 複数選択\r\n */\r\n MULTIPLE_SELECTIONS: 3\r\n} as const\r\nexport type QuestionnaireQuestionType = typeof QUESTIONNAIRE_QUESTION_TYPE[keyof typeof QUESTIONNAIRE_QUESTION_TYPE]\r\n\r\n/**\r\n * アンケート設問構成要素種別\r\n */\r\nexport const QUESTIONNAIRE_QUESTION_ELEMENT_TYPES = {\r\n /**\r\n * 自由入力(入力式)\r\n */\r\n FREE: 0,\r\n /**\r\n * 選択肢(選択式)\r\n */\r\n SELECTABLE_OPTION: 1,\r\n /**\r\n * その他(選択式)\r\n */\r\n OTHER_OPTION: 2,\r\n} as const\r\nexport type QuestionnaireQuestionElementType = typeof QUESTIONNAIRE_QUESTION_ELEMENT_TYPES[keyof typeof QUESTIONNAIRE_QUESTION_ELEMENT_TYPES]\r\n\r\n/**\r\n * アンケートステータス 共通関数用のMap\r\n * ラベルやアーカイブを使いたい場合はこのMapを直接使わず、libs配下の共通関数を使うこと\r\n */\r\nexport const QUESTIONNAIRE_STATE_MAP = new Map([\r\n [QUESTIONNAIRE_STATE.OPEN,\r\n { REQUIRE_ANSWER: true, UNREAD_VISIBLE: true }\r\n ],\r\n [QUESTIONNAIRE_STATE.COUNTING,\r\n { REQUIRE_ANSWER: false, UNREAD_VISIBLE: false }\r\n ],\r\n [QUESTIONNAIRE_STATE.RELEASED,\r\n { REQUIRE_ANSWER: false, UNREAD_VISIBLE: false }\r\n ],\r\n])\r\n\r\nexport const APP_VERSION_ERROR_MESSAGE = 'アプリのバージョンが古いため、操作を実行できませんでした。アップデートを行ってください。'\r\n\r\n/**\r\n * アンケートグラフ種別\r\n */\r\nexport const CHART_TYPES = {\r\n /**\r\n * 帯グラフ\r\n */\r\n HORIZONTAL: 1,\r\n\r\n /**\r\n * 円グラフ\r\n */\r\n PIE: 2,\r\n} as const\r\nexport type ChartType = typeof CHART_TYPES[keyof typeof CHART_TYPES]\r\n","import { Type } from 'class-transformer'\r\nimport { UserIcon } from '../static-assets/user-icons/get'\r\n\r\nexport const LOGIN_RESULT_CODE = {\r\n SUCCESS: 200,\r\n UNAUTHORIZED: 401,\r\n} as const\r\nexport type LoginResultCode = typeof LOGIN_RESULT_CODE[keyof typeof LOGIN_RESULT_CODE]\r\n\r\nexport class OwnerProfileDto {\r\n userId!:string\r\n @Type(() => UserIcon) icon?: UserIcon\r\n userName!:string\r\n roomNumber!:string\r\n emailAddress!:string\r\n adminId?: string\r\n alternativeLoginId?: string\r\n}\r\n","import { Type } from 'class-transformer'\r\nimport { OwnerProfileDto } from '../../common'\r\nimport { IdentificationPostRequest } from '../post'\r\nimport type { IdentifyResultCode } from '../post'\r\n\r\nexport class AdditionalIdentificationPostRequest extends IdentificationPostRequest {\r\n condominiumCd: string\r\n roomNumber: string\r\n\r\n constructor(email: string, pass: string, authCode: string, condominiumCd: string, roomNumber: string) {\r\n super(email, pass, authCode)\r\n this.condominiumCd = condominiumCd\r\n this.roomNumber = roomNumber\r\n }\r\n}\r\n\r\nexport class AdditionalIdentificationPostResponse {\r\n resultCode!:IdentifyResultCode\r\n @Type(() => OwnerProfileDto) profile?: OwnerProfileDto\r\n failedMessage?:string\r\n redirectTo?: string\r\n accessToken?: string\r\n}\r\n","import { Type } from 'class-transformer'\nimport { LoginPostRequest } from '@/dtos/auth/login/post'\nimport { OwnerProfileDto } from '../common'\n\nexport class IdentificationPostRequest extends LoginPostRequest {\n authCode: string\n\n constructor(email: string, pass: string, authCode: string) {\n super(email, pass)\n this.authCode = authCode\n }\n}\n\nexport const IDENTIFY_RESULT_CODE = {\n SUCCESS: 200,\n FORBIDDEN: 403,\n} as const\nexport type IdentifyResultCode = typeof IDENTIFY_RESULT_CODE[keyof typeof IDENTIFY_RESULT_CODE]\n\nexport class IdentificationPostResponse {\n resultCode!:IdentifyResultCode\n @Type(() => OwnerProfileDto) profile?: OwnerProfileDto\n failedMessage?:string\n\n redirectTo?: string\n accessToken?: string\n\n requiredAdditionalIdentification?: boolean\n}\n","import { Type } from 'class-transformer'\nimport { AuthState } from '@/constants/constants'\nimport { LoginResultCode, OwnerProfileDto } from '@/dtos/auth/common'\n\nexport class LoginPostRequest {\n emailAddress: string\n password: string\n\n constructor(email: string, pass: string) { this.emailAddress = email; this.password = pass }\n}\n\nexport class LoginPostResponse {\n resultCode!: LoginResultCode\n authState?: AuthState\n @Type(() => OwnerProfileDto) profile?: OwnerProfileDto\n failedMessage?: string\n\n redirectTo?: string\n accessToken?: string\n}\n","import { Type } from 'class-transformer'\r\nimport type { LoginResultCode } from '@/dtos/auth/common'\r\nimport { OwnerProfileDto } from '@/dtos/auth/common'\r\n\r\nexport class SimulateLoginPostRequest {\r\n adminId: string\r\n oneTimeToken: string\r\n\r\n constructor(adminId: string, oneTimeToken: string) {\r\n this.adminId = adminId\r\n this.oneTimeToken = oneTimeToken\r\n }\r\n}\r\n\r\nexport class SimulateLoginPostResponse {\r\n resultCode!: LoginResultCode\r\n accessToken?: string\r\n @Type(() => OwnerProfileDto) profile?: OwnerProfileDto\r\n}\r\n","import { AuthState } from '@/constants/constants'\nimport { Type } from 'class-transformer'\nimport { OwnerProfileDto } from '../common'\n\nexport class SsoVerifyPostRequest {\n refreshToken: string\n\n constructor(refreshToken: string) {\n this.refreshToken = refreshToken\n }\n}\n\nexport const SSO_VERIFY_RESULT_CODE = {\n SUCCESS: 200,\n UNAUTHENTICATED: 401,\n} as const\nexport type SsoVerifyResultCode = typeof SSO_VERIFY_RESULT_CODE[keyof typeof SSO_VERIFY_RESULT_CODE]\n\nexport class SsoVerifyPostResponse {\n resultCode!: SsoVerifyResultCode\n authState?: AuthState\n\n @Type(() => OwnerProfileDto) profile?: OwnerProfileDto\n accessToken?: string\n}\n","import { MaterialType, IdeaType } from '@/constants/constants'\r\n\r\n/** APIのI/Fで共通に登場する戻り値の構造を定義する */\r\n\r\nexport class User {\r\n userId!: string\r\n iconImagePath!: string\r\n userName!: string\r\n roomNumber?: string\r\n}\r\n\r\nexport class Material {\r\n materialId!: string\r\n materialUrl!: string\r\n materialDownloadUrl?: string\r\n materialType!: MaterialType\r\n originalFileName!: string\r\n caption?: string\r\n}\r\n\r\nexport class BaseIdea {\r\n ideaId!:string\r\n ideaType!: IdeaType\r\n}\r\n\r\nexport class Budget {\r\n budget!:number\r\n budgetLabel!:string\r\n expense!:number\r\n expenseLabel!:string\r\n spent?:number\r\n spentLabel?:string\r\n balanceLabel!:string\r\n}\r\n\r\nexport class MaterialInput {\r\n materialId?: string\r\n caption?: string\r\n}\r\n","import { Type } from 'class-transformer'\nimport type { NotificationElementType, FunctionType } from '@/constants/constants'\nimport { Material } from '@/dtos/commons'\n\nexport class NotificationDetailGetRequest {\n notificationId!: string\n constructor(notificationId: string) { this.notificationId = notificationId }\n}\n\nexport class FFNTransition {\n transitionTo!: FunctionType\n transitionParams!: Record\n}\n\nexport class BulletPoint {\n bulletPointId!: string\n bulletPointBody!: string\n hierarchyLevel!: number\n}\n\nexport class FFNElement {\n freeFormatNotificationElementId!: string\n notificationElementType!: NotificationElementType\n body?: string\n @Type(() => FFNTransition)transition?: FFNTransition\n externalSiteUrl?: string\n @Type(() => BulletPoint)bulletPoints?: BulletPoint[]\n emailAddress?: string\n phoneNumber?: string\n @Type(() => Material)material?: Material\n}\n\nexport class NotificationDetailGetResponse {\n notificationId!: string\n message!: string\n @Type(() => FFNElement)elements!: FFNElement[]\n @Type(() => Material)material?: Material\n}\n","import { Type } from 'class-transformer'\r\nimport type { FunctionType } from '@/constants/constants'\r\nimport { Material } from '@/dtos/commons'\r\n\r\nexport class NotificationsGetRequest {\r\n skip = 0\r\n take: number\r\n\r\n constructor(initialTake: number) { this.take = initialTake }\r\n}\r\n\r\nexport class Transition {\r\n title!: string\r\n transitionTo!: FunctionType\r\n transitionParams!: Record\r\n}\r\n\r\nexport class Notification {\r\n notificationId!: string\r\n isImportant!: boolean\r\n message!: string\r\n @Type(() => Transition) transition?: Transition\r\n @Type(() => Material) material?: Material\r\n notifiedAt!: string\r\n isUnread!: boolean\r\n needAnswerQuestionnaire?: boolean\r\n}\r\n\r\nexport class NotificationsGetResponse {\r\n @Type(() => Notification)\r\n notifications!: Notification[]\r\n\r\n unreadCount!: number\r\n}\r\n","export class NotificationsReadPostRequest {\n notificationId: string\n constructor(notificationId: string) {\n this.notificationId = notificationId\n }\n}\n","export class QuestionsDeleteRequest {\n resolutionId: string\n questionId: string\n\n constructor(resolutionId: string, questionId: string) {\n this.resolutionId = resolutionId\n this.questionId = questionId\n }\n}\n","import { Type } from 'class-transformer'\nimport { User } from '@/dtos/commons'\nimport type { ResolutionType, ResolutionState } from '@/constants/constants'\n\nexport const FILTER_TYPE = {\n MY_QUESTIONS: 1,\n OTHERS_QUESTIONS: 2,\n} as const\n\ntype FilterType = typeof FILTER_TYPE[keyof typeof FILTER_TYPE]\n\nexport class QuestionsGetRequest {\n resolutionId: string\n filterType: FilterType\n skip = 0\n take: number\n\n constructor(resolutionId: string, filterType: FilterType, initialTake: number) {\n this.resolutionId = resolutionId\n this.filterType = filterType\n this.take = initialTake\n }\n}\n\nexport class Answer {\n body!: string\n postedAt!: string\n @Type(() => User) user!: User\n}\n\nexport class Question {\n questionId!: string\n body!: string\n postedAt!: string\n @Type(() => User) user!: User\n @Type(() => Answer) answer?: Answer\n}\n\nexport class QuestionsGetResponse {\n resolutionId!: string\n resolutionType!: ResolutionType\n resolutionState!: ResolutionState\n @Type(() => Question)\n questions: Question[] = []\n}\n","export class QuestionsPostRequest {\r\n resolutionId!: string\r\n body!: string\r\n}\r\n","import { QuestionsPostRequest } from './post'\r\n\r\nexport class QuestionsPutRequest extends QuestionsPostRequest {\r\n questionId!: string\r\n version!: number\r\n}\r\n","export class ResolutionReadsPostRequest {\n resolutionId!: string\n}\n","import { Type } from 'class-transformer'\n\nexport class UserIcon {\n assetId!:string\n assetPath!:string\n}\n\nexport class GetUserIconsResponse {\n @Type(() => UserIcon)\n icons!:UserIcon[]\n}\n","import { LOGIN_TYPE } from '@/constants/constants'\nimport { authModule } from '@/stores'\n\n/**\n * *.tsファイル用で使うことを想定した機能群(Mixinsではない)\n * 画面(**Page.vue)で使いたい場合は当ファイルではなく @/mixins/current-user-manager.ts を使うこと\n */\nexport const isNormalLogin = () : boolean => { return authModule.currentLoginType === LOGIN_TYPE.FROM_OWNER_APPS.NORMAL }\nexport const isDummyLogin = () : boolean => { return authModule.currentLoginType === LOGIN_TYPE.FROM_OWNER_APPS.DUMMY }\nexport const isSimulateLogin = () : boolean => { return authModule.currentLoginType === LOGIN_TYPE.FROM_ADMIN_APPS.SIMULATE }\nexport const isAdmin = (): boolean => { return isDummyLogin() || isSimulateLogin() }\n","import { GA_ANONYMOUS, GA_USER_CATEGORY } from '@/constants/constants'\nimport type { GaUserCategory } from '@/constants/constants'\nimport { analyticsModule, authModule, myCurrentBuildingModule } from '@/stores'\nimport { GtmSupport as GtmPlugin } from '@gtm-support/vue-gtm'\nimport { isNormalLogin, isDummyLogin, isSimulateLogin, isAdmin } from '@/libs/current-user-manager'\n\nexport function sendPageViewGtm(gtm: GtmPlugin, path:string, pageName:string):void {\n gtm.trackEvent({\n event: 'page_view',\n user_id: getUserId(),\n page_path: path,\n dimension1: myCurrentBuildingModule.basics.buildingId ?? GA_ANONYMOUS,\n dimension2: getUserId(),\n dimension3: myCurrentBuildingModule.basics.buildingName ?? GA_ANONYMOUS,\n dimension4: authModule.profile.roomNumber ?? GA_ANONYMOUS,\n dimension5: authModule.profile.userName ?? GA_ANONYMOUS,\n dimension6: pageName,\n dimension7: getGAUserCategory(),\n dimension8: analyticsModule.notificationId ?? GA_ANONYMOUS,\n dimension9: analyticsModule.notificationType ?? GA_ANONYMOUS,\n })\n}\n\nconst getUserId = () : string => {\n if (isNormalLogin()) {\n return authModule.profile.userId ?? analyticsModule.notifiedUserId ?? GA_ANONYMOUS\n } else if (isAdmin()) {\n return authModule.profile.adminId ?? GA_ANONYMOUS\n }\n return GA_ANONYMOUS\n}\n\nconst getGAUserCategory = () : GaUserCategory|string => {\n if (isNormalLogin()) return GA_USER_CATEGORY.OWNER\n if (isDummyLogin()) return GA_USER_CATEGORY.ADMIN_DUMMY\n if (isSimulateLogin()) return GA_USER_CATEGORY.ADMIN_SIMULATE\n return GA_ANONYMOUS\n}\n","import { DEVICE_TYPE, WEB_TYPE } from '@/constants/constants'\r\nimport type { DeviceType, WebType } from '@/constants/constants'\r\n\r\ntype WindowEventReceiver = {\r\n eventReceiver: Record\r\n}\r\n\r\ntype WindowWebkit = {\r\n webkit: {\r\n messageHandlers: Record void }>\r\n }\r\n}\r\n\r\n// android webview利用時はグローバルな'android'オブジェクトが存在する\r\ndeclare const android: Record void>\r\n\r\nclass NativeBridge {\r\n private readonly _nativeEventReceiver: Record void> = {}\r\n private _deviceType: DeviceType = DEVICE_TYPE.WEB\r\n private _webType: WebType = WEB_TYPE.SAFARI\r\n private _isIos = false\r\n private _isAndroid = false\r\n\r\n constructor() {\r\n const userAgent = navigator.userAgent.toLowerCase()\r\n if (userAgent.endsWith('/ios')) {\r\n this._deviceType = DEVICE_TYPE.IOS\r\n } else if (userAgent.endsWith('/android')) {\r\n this._deviceType = DEVICE_TYPE.ANDROID\r\n }\r\n\r\n // iosのブラウザの場合、safariが含まれているため\r\n // ios chrome=crios、ios google search=esa、ios edge=edgiosを先に検出して\r\n // 純粋なsafariのみsafariの分岐に入れる\r\n if (userAgent.includes('crios')) {\r\n this._webType = WEB_TYPE.CRIOS\r\n } else if (userAgent.includes('esa')) {\r\n this._webType = WEB_TYPE.GSA\r\n } else if (userAgent.includes('edgios')) {\r\n this._webType = WEB_TYPE.EDGIOS\r\n } else if (userAgent.includes('safari')) {\r\n this._webType = WEB_TYPE.SAFARI\r\n }\r\n\r\n if (userAgent.includes('iphone') || userAgent.includes('ipad')) {\r\n this._isIos = true\r\n }\r\n\r\n if (userAgent.includes('android')) {\r\n this._isAndroid = true\r\n }\r\n\r\n (window as Window & typeof globalThis & WindowEventReceiver).eventReceiver = {\r\n call: this.call.bind(this)\r\n }\r\n }\r\n\r\n get deviceType(): DeviceType { return this._deviceType }\r\n get isWeb(): boolean { return this._deviceType === DEVICE_TYPE.WEB }\r\n get isAndroid(): boolean { return this._deviceType === DEVICE_TYPE.ANDROID }\r\n get isIos(): boolean { return this._deviceType === DEVICE_TYPE.IOS }\r\n get isGsa(): boolean { return this._webType === WEB_TYPE.GSA }\r\n get isCrios(): boolean { return this._webType === WEB_TYPE.CRIOS }\r\n get isEdgios(): boolean { return this._webType === WEB_TYPE.EDGIOS }\r\n get isSafari(): boolean { return this._webType === WEB_TYPE.SAFARI }\r\n get isNativeApp(): boolean { return this._deviceType === DEVICE_TYPE.ANDROID || this._deviceType === DEVICE_TYPE.IOS }\r\n get isPdfViewerRequired(): boolean { return this.isNativeApp || this._isIos || this._isAndroid }\r\n\r\n isNativeEvent(eventName: string): boolean {\r\n switch (this._deviceType) {\r\n case DEVICE_TYPE.IOS: {\r\n const webkit = (window as Window & typeof globalThis & WindowWebkit).webkit\r\n return !!webkit.messageHandlers[eventName]\r\n }\r\n case DEVICE_TYPE.ANDROID: {\r\n if (android) {\r\n return !!android[eventName]\r\n }\r\n break\r\n }\r\n }\r\n return false\r\n }\r\n\r\n callNative(eventName: string, arg?: string, onWeb?: (arg?: string) => void) {\r\n switch (this._deviceType) {\r\n case DEVICE_TYPE.IOS: {\r\n const webkit = (window as Window & typeof globalThis & WindowWebkit).webkit\r\n if (webkit) webkit.messageHandlers[eventName].postMessage(arg)\r\n break\r\n }\r\n case DEVICE_TYPE.ANDROID: {\r\n // Androidはプリミティブ型しか渡せないことに注意、オブジェクトを渡す場合はJSONstringを経由する\r\n if (android) {\r\n if (arg !== undefined) android[eventName](arg)\r\n else android[eventName]()\r\n }\r\n break\r\n }\r\n default:\r\n if (onWeb) onWeb(arg)\r\n }\r\n }\r\n\r\n register(eventName: string, callback: (arg: string) => void) {\r\n this._nativeEventReceiver[eventName] = callback\r\n }\r\n\r\n call(eventName: string, arg: string) {\r\n if (this._nativeEventReceiver[eventName]) {\r\n this._nativeEventReceiver[eventName](arg)\r\n delete this._nativeEventReceiver[eventName]\r\n }\r\n }\r\n}\r\n\r\nexport const nativeBridge = new NativeBridge()\r\n","export const join = (...paths: string[]): string => {\r\n let path = ''\r\n for (const p of paths) {\r\n if (!p) continue\r\n if (!p.startsWith('/') && path.length > 0) path += '/'\r\n\r\n path += p\r\n\r\n if (path.endsWith('/')) path = path.substr(0, path.length - 1)\r\n }\r\n return path\r\n}\r\n","import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, createVNode as _createVNode, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { id: \"app\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"pa-4 sm__background-white\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_sm_system_bar = _resolveComponent(\"sm-system-bar\")!\n const _component_sm_drawer = _resolveComponent(\"sm-drawer\")!\n const _component_sm_app_bar = _resolveComponent(\"sm-app-bar\")!\n const _component_sm_progress_overlay = _resolveComponent(\"sm-progress-overlay\")!\n const _component_sm_text = _resolveComponent(\"sm-text\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_v_main = _resolveComponent(\"v-main\")!\n const _component_sm_dialog = _resolveComponent(\"sm-dialog\")!\n const _component_sm_bottom_navigation = _resolveComponent(\"sm-bottom-navigation\")!\n const _component_sm_snackbar = _resolveComponent(\"sm-snackbar\")!\n const _component_v_app = _resolveComponent(\"v-app\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_v_app, {\n class: _normalizeClass(_ctx.specifiedVAppCss)\n }, {\n default: _withCtx(() => [\n (!this.$vuetify.display.mobile && _ctx.systemBarVisible)\n ? (_openBlock(), _createBlock(_component_sm_system_bar, {\n key: 0,\n \"first-btn\": _ctx.systemBarFirstBtn,\n \"second-btn\": _ctx.drawerVisible ? { icon: '$notifications_outlined', text: 'お知らせ' } : undefined,\n \"second-badge-visible\": _ctx.notificationBadgeVisible,\n onClickFirstBtn: _ctx.goToConsultations,\n onClickSecondBtn: _ctx.goToNotifications,\n class: _normalizeClass({'d-print-none' : _ctx.isPrintView})\n }, null, 8, [\"first-btn\", \"second-btn\", \"second-badge-visible\", \"onClickFirstBtn\", \"onClickSecondBtn\", \"class\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.drawerVisible)\n ? (_openBlock(), _createBlock(_component_sm_drawer, {\n key: 1,\n items: _ctx.navigations,\n current: _ctx.currentNavigation,\n onClickItem: _ctx.transTo,\n class: _normalizeClass({'d-print-none' : _ctx.isPrintView})\n }, null, 8, [\"items\", \"current\", \"onClickItem\", \"class\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.appBar.visible)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n class: _normalizeClass({'d-print-none' : _ctx.isPrintView})\n }, [\n (_ctx.drawerVisible)\n ? (_openBlock(), _createBlock(_component_sm_app_bar, {\n key: 0,\n app: \"\",\n modelValue: _ctx.selectedTab,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedTab) = $event)),\n label: _ctx.appBar.title,\n \"left-icon\": _ctx.appBar.leftIcon,\n onClickLeftIcon: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.back())),\n \"is-extension-visible\": _ctx.appBar.isExtensionVisible,\n onClickExtensionBtn: _ctx.onClickExtensionBtn,\n class: _normalizeClass({'d-print-none':_ctx.isPrintView})\n }, null, 8, [\"modelValue\", \"label\", \"left-icon\", \"is-extension-visible\", \"onClickExtensionBtn\", \"class\"]))\n : (_openBlock(), _createBlock(_component_sm_app_bar, {\n key: 1,\n app: \"\",\n modelValue: _ctx.selectedTab,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.selectedTab) = $event)),\n label: _ctx.appBar.title,\n \"left-icon\": _ctx.appBar.leftIcon,\n onClickLeftIcon: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$router.back())),\n \"icon-visible\": _ctx.appBar.rightIconVisible,\n \"right-first-icon\": !_ctx.isConsultation ? undefined : '$sm_chat',\n \"right-second-icon\": \"$notifications_outlined\",\n \"right-second-badge-visible\": _ctx.notificationBadgeVisible,\n onClickRightFirstIcon: _ctx.goToConsultations,\n onClickRightSecondIcon: _ctx.goToNotifications,\n \"is-extension-visible\": _ctx.appBar.isExtensionVisible,\n onClickExtensionBtn: _ctx.onClickExtensionBtn,\n class: _normalizeClass({'d-print-none':_ctx.isPrintView})\n }, null, 8, [\"modelValue\", \"label\", \"left-icon\", \"icon-visible\", \"right-first-icon\", \"right-second-badge-visible\", \"onClickRightFirstIcon\", \"onClickRightSecondIcon\", \"is-extension-visible\", \"onClickExtensionBtn\", \"class\"]))\n ], 2))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_v_main, {\n class: _normalizeClass([\n _ctx.smMainClassDecider,\n _ctx.applyBottomMargin ? 'sm__main-bottom-margin' : '',\n ])\n }, {\n default: _withCtx(() => [\n _createVNode(_component_sm_progress_overlay, { \"show-overlay\": _ctx.showOverlay }, null, 8, [\"show-overlay\"]),\n (_ctx.globalErrors.length > 0 && _ctx.globalErrorVisible)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_sm_text, {\n text: _ctx.globalErrors.join(''),\n color: \"caution\"\n }, null, 8, [\"text\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_router_view)\n ]),\n _: 1\n }, 8, [\"class\"]),\n _createVNode(_component_sm_dialog, {\n \"model-value\": _ctx.showReLoginDialog,\n \"title-text\": \"再ログインが必要です\",\n \"body-text\": \"一定時間が経過したため、自動でログアウトされました。\",\n \"first-btn-label\": \"ログイン画面へ\",\n onClickFirstBtn: _ctx.forceRelogin\n }, null, 8, [\"model-value\", \"onClickFirstBtn\"]),\n _createVNode(_component_sm_dialog, {\n \"model-value\": _ctx.showSimulateReLoginDialog,\n \"title-text\": \"再ログインが必要です\",\n \"body-text\": '一定時間が経過したため、自動でログアウトされました。\\n画面を閉じて、管理者アプリから再度「利用中画面を見る」操作を行ってください。'\n }, null, 8, [\"model-value\"]),\n (_ctx.bottomNavigationVisible)\n ? (_openBlock(), _createBlock(_component_sm_bottom_navigation, {\n key: 3,\n items: _ctx.navigations,\n current: _ctx.currentNavigation,\n onClickItem: _ctx.transTo,\n class: _normalizeClass({'d-print-none':_ctx.isPrintView})\n }, null, 8, [\"items\", \"current\", \"onClickItem\", \"class\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.displaySnackbar)\n ? (_openBlock(), _createBlock(_component_sm_snackbar, {\n key: 4,\n modelValue: _ctx.displaySnackbar,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.displaySnackbar) = $event)),\n message: _ctx.snackbar.message,\n caution: _ctx.snackbar.caution\n }, null, 8, [\"modelValue\", \"message\", \"caution\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"class\"])\n ]))\n}","\n\n\n","import { render } from \"./App.vue?vue&type=template&id=5fabd254&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"i\", {\n class: _normalizeClass(_ctx.standardClass)\n }, _toDisplayString(_ctx.parsed.id), 3))\n}","\n\n\n\n\n","import { render } from \"./MaterialIcon.vue?vue&type=template&id=a176c6a2&ts=true\"\nimport script from \"./MaterialIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./MaterialIcon.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SmChatIcon.vue?vue&type=template&id=5bed2b56&scoped=true\"\nconst script = {}\n\nimport \"./SmChatIcon.vue?vue&type=style&index=0&id=5bed2b56&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5bed2b56\"]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./SmQuestionnaireIcon.vue?vue&type=template&id=2d84d6b2&scoped=true\"\nconst script = {}\n\nimport \"./SmQuestionnaireIcon.vue?vue&type=style&index=0&id=2d84d6b2&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2d84d6b2\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SmWarningIcon.vue?vue&type=template&id=170b3a17&scoped=true\"\nconst script = {}\n\nimport \"./SmWarningIcon.vue?vue&type=style&index=0&id=170b3a17&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-170b3a17\"]])\n\nexport default __exports__","\n\n","import { render } from \"./SmIdeaPlanIcon.vue?vue&type=template&id=32024c98&scoped=true\"\nconst script = {}\n\nimport \"./SmIdeaPlanIcon.vue?vue&type=style&index=0&id=32024c98&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-32024c98\"]])\n\nexport default __exports__","\n\n","import { render } from \"./SmPlanIcon.vue?vue&type=template&id=36da0e92&scoped=true\"\nconst script = {}\n\nimport \"./SmPlanIcon.vue?vue&type=style&index=0&id=36da0e92&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-36da0e92\"]])\n\nexport default __exports__","import { h } from 'vue'\nimport { createVuetify } from 'vuetify'\nimport type { IconAliases, IconSet, ThemeDefinition } from 'vuetify'\nimport * as components from 'vuetify/components'\nimport * as directives from 'vuetify/directives'\n\nimport MaterialIcon from '@/components/atoms/icons/MaterialIcon.vue'\nimport SmChatIcon from '@/components/atoms/icons/SmChatIcon.vue'\nimport SmQuestionnaireIcon from '@/components/atoms/icons/SmQuestionnaireIcon.vue'\nimport SmWarningIcon from '@/components/atoms/icons/SmWarningIcon.vue'\nimport SmIdeaPlanIcon from '@/components/atoms/icons/SmIdeaPlanIcon.vue'\nimport SmPlanIcon from '@/components/atoms/icons/SmPlanIcon.vue'\n\nconst lightCustomTheme:ThemeDefinition = {\n dark: false,\n colors: {\n primary: '#00A2D5', // Surface/MainColor, Object/MainColor\n secondary: '#0073A3', // Surface/MainDarkColor, Text/MainDarkColor, Object/MainDarkColor, Focus/Stroke\n accent: '#FFEF51', // Surface/AccentColor\n info: '#000000', // figmaのカラー指定との対応が判明次第修正?\n warning: '#B22D12', // Surface/CautionColor, Object/Caution, Stroke/Caution\n success: '#0073A3',\n error: '#B22D12',\n // custom\n reflection: '#C55200', // Surface/Reflection, Object/Reflection, Expressive/OrangeDark\n caution: '#B22D12',\n background: '#F3F5ED'\n }\n}\n\nconst customIconSets: IconSet = {\n component: (iconProp) => {\n return h(MaterialIcon, { name: iconProp.icon })\n },\n}\n\nconst vuetify = createVuetify({\n components,\n directives,\n display: {\n thresholds: {\n md: 1024,\n },\n mobileBreakpoint: 'md'\n },\n icons: {\n defaultSet: 'customIconSets',\n aliases: {\n sm_chat: SmChatIcon,\n sm_questionnaire: SmQuestionnaireIcon,\n sm_warning: SmWarningIcon,\n sm_idea_plan: SmIdeaPlanIcon,\n sm_plan: SmPlanIcon,\n ...missingMaterialIcons([ // テーマを適用するアイコンはここに追加する(alphabet順)テーマを適用するアイコンはここに追加する(alphabet順)\n 'add_reaction',\n 'archive',\n 'arrow_back',\n 'arrow_circle_down',\n 'arrow_drop_down',\n 'arrow_forward_ios',\n 'check_box',\n 'check_box_outline_blank',\n 'check_circle_outline',\n 'chevron_right',\n 'close',\n 'content_paste',\n 'dehaze',\n 'delete_outline',\n 'description',\n 'east',\n 'edit',\n 'emoji_objects',\n 'error_outline',\n 'expand_less',\n 'expand_more',\n 'file_download',\n 'filter_list',\n 'flag',\n 'groups',\n 'how_to_vote',\n 'indeterminate_check_box',\n 'insert_chart',\n 'insert_invitation',\n 'notifications',\n 'open_in_new',\n 'photo',\n 'push_pin',\n 'question_answer',\n 'radio_button_checked',\n 'radio_button_unchecked',\n 'receipt_long',\n 'thumb_up',\n 'today',\n 'visibility',\n 'visibility_off',\n ])\n },\n sets: {\n customIconSets\n },\n },\n theme: {\n defaultTheme: 'lightCustomTheme',\n themes: {\n lightCustomTheme\n },\n cspNonce: 'dQw4w9WgXcQ'\n }\n})\n\n// https://vuetifyjs.com/en/features/icons/#missing-material-icons\nfunction missingMaterialIcons(ids:string[]) {\n const icons: Partial = {}\n for (const id of ids) {\n for (const suffix of ['round', 'outlined', 'filled']) { // 使用するテーマはここに追加する\n const name = `${id}_${suffix}`\n icons[name] = `${id}_${suffix}`\n }\n }\n return icons\n}\nexport default vuetify\n","import { APIClientBase } from './api-client-base'\nimport { LogPostRequest } from '@/dtos/log/post'\nimport { CSPReportPostRequest } from '@/dtos/log/csp/post'\n\nclass LogClient extends APIClientBase {\n private readonly _reportedStack: string[] = []\n\n constructor() {\n super('/log')\n }\n\n /**\n * クライアントエラーをサーバに報告する\n * 一定件数の過去の報告内容は履歴管理され、全く同一内容の場合は報告がスキップされる\n */\n async postLogReport(req: LogPostRequest): Promise {\n const report = JSON.stringify(req)\n if (this._reportedStack.includes(report)) return Promise.resolve()\n\n await this.post('', req)\n\n if (this._reportedStack.length >= 5) this._reportedStack.pop()\n this._reportedStack.unshift(report)\n }\n\n /**\n * CSP違反レポートをサーバに報告する\n * 一定件数の過去の報告内容は履歴管理され、全く同一内容の場合は報告がスキップされる\n */\n async postCSPReport(req: CSPReportPostRequest): Promise {\n const report = JSON.stringify(req)\n if (this._reportedStack.includes(report)) return Promise.resolve()\n\n await this.post('/csp', req)\n\n if (this._reportedStack.length >= 5) this._reportedStack.pop()\n this._reportedStack.unshift(report)\n }\n}\n\nexport const logClient = new LogClient()\n","export class LogPostRequest {\r\n currentPath: string\r\n additionalInfo: string\r\n stackTrace?: string\r\n\r\n constructor(path: string, info: string, stack?: string) {\r\n this.currentPath = path\r\n this.additionalInfo = info\r\n this.stackTrace = stack\r\n }\r\n}\r\n","export class CSPReportPostRequest {\r\n blockedURI?: string\r\n columnNumber?: number\r\n documentURI?: string\r\n\r\n effectiveDirective?: string\r\n lineNumber?: number\r\n originalPolicy?: string\r\n\r\n referrer?: string\r\n sourceFile?: string\r\n statusCode?: number\r\n violatedDirective?: string\r\n\r\n constructor(event: SecurityPolicyViolationEvent) {\r\n this.blockedURI = event.blockedURI\r\n this.columnNumber = event.columnNumber\r\n this.documentURI = event.documentURI\r\n\r\n this.effectiveDirective = event.effectiveDirective\r\n this.lineNumber = event.lineNumber\r\n this.originalPolicy = event.originalPolicy\r\n\r\n this.referrer = event.referrer\r\n this.sourceFile = event.sourceFile\r\n this.statusCode = event.statusCode\r\n this.violatedDirective = event.violatedDirective\r\n }\r\n}\r\n","export default {\n Auth: {\n // REQUIRED - Amazon Cognito Identity Pool ID\n // identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',\n // REQUIRED - Amazon Cognito Region\n region: 'ap-northeast-1',\n // OPTIONAL - Amazon Cognito User Pool ID\n userPoolId: process.env.VUE_APP_USER_POOL_ID,\n // OPTIONAL - Amazon Cognito Web Client ID\n userPoolWebClientId: process.env.VUE_APP_USER_POOL_WEB_CLIENT_ID,\n // OPTIONAL - Manually set the authentication flow type. Default is 'USER_SRP_AUTH'\n // authenticationFlowType: 'USER_SRP_AUTH',\n // ★TODO LM Cognito1段階目移行の期間終了後、「USER_PASSWORD_AUTH」⇒「USER_SRP_AUTH」似戻す\n authenticationFlowType: 'USER_PASSWORD_AUTH',\n // OPTIONAL - Hosted UI configuration\n oauth: {\n responseType: 'code' // or 'token', note that REFRESH token will only be generated when the responseType is code\n }\n }\n}\n","import 'reflect-metadata'\nimport './assets/style.css'\nimport 'vuetify/styles'\n\nimport { createApp, h } from 'vue'\nimport router from '@/router'\nimport { store, errorsModule, structureModule } from '@/stores'\nimport '@/stores/preserve-state'\nimport App from './App.vue'\n\nimport vuetify from './plugins/vuetify'\nimport { required, max, min, email, integer } from '@vee-validate/rules'\nimport { localize } from '@vee-validate/i18n'\nimport { defineRule, configure, Form as ValidationForm, Field as ValidationField } from 'vee-validate'\nimport ja from '@vee-validate/i18n/dist/locale/ja.json'\n\nimport { logClient } from './clients/log-client'\nimport { LogPostRequest } from './dtos/log/post'\nimport { CSPReportPostRequest } from './dtos/log/csp/post'\n\nimport VueGtm from '@gtm-support/vue-gtm'\n\nimport awsconfig from '@/aws-exports'\nimport Auth from '@aws-amplify/auth'\n\nconst app = createApp({\n vuetify,\n render: () => h(App)\n})\nAuth.configure(awsconfig.Auth)\n\n// Global-Component\napp.component('ValidationForm', ValidationForm)\napp.component('ValidationField', ValidationField)\n\nconst currencyFormatter = new Intl.NumberFormat('en', {\n style: 'currency',\n currency: 'JPY'\n})\n\nconst commaFormatter = new Intl.NumberFormat('en')\n/**\n * 渡された金額をそのまま通貨表記(カンマ区切り)にする\n * 例:123456789 → ¥123,456,789\n */\napp.config.globalProperties.$filters = {\n currency: (value: number) => {\n if (!value) {\n return '¥0'\n }\n return currencyFormatter.format(value)\n },\n\n /**\n * カンマ区切りにする\n * 例:123456789 → 123,456,789\n */\n comma: (value: number) => {\n if (value === undefined) { return '' }\n return commaFormatter.format(Math.round(value))\n },\n\n /**\n * 千円単位に変換(100円桁を四捨五入)した後にカンマ区切りにする\n * 例:123456789 → 123,457\n */\n commaByThousand: (value: number) => {\n if (value === undefined || value === null) { return '' }\n return commaFormatter.format(Math.round(value / 1000))\n }\n}\n\n// Vee-Validation settings\nconfigure({\n generateMessage: localize({\n ja,\n }),\n})\nlocalize('ja')\n\ndefineRule('required', required)\ndefineRule('max', max)\ndefineRule('min', min)\n// defineRule('alpha_num', alphaNum) ⇒ 「alpha_num」は日本語を許容するため英数字のみのバリデーションチェックは「alphanumeric」を使用すること\ndefineRule('email', email)\ndefineRule('integer', integer)\n\ndefineRule('admin_password', (inputValue:string) => {\n if (!inputValue || inputValue === '') return true\n const passwordPattern = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\\d)[!-~]{8,}$/\n if (passwordPattern.test(inputValue)) return true\n return '大文字・小文字いずれも含む英字と数字の8文字以上の組み合わせで入力してください。'\n})\n\ndefineRule('confirmation_password', (value:string, [targetPassword]:string) => {\n if (!value || value === '' || !targetPassword) return true\n if (value === targetPassword) return true\n return 'パスワードが一致しません'\n})\n\n/**\n * 英数字のみを許容する\n * vee-validateの標準ルール「alpha_num」では日本語を許容するため英数字のみのバリデーションチェックはこちらを使用すること\n */\ndefineRule('alphanumeric', (value: string, _params_, _field_) => {\n if (!value || value === '') return true\n const passwordPattern = /^[0-9a-zA-Z]*$/\n if (passwordPattern.test(value)) return true\n return `${_field_.name}は半角英数字のみで入力してください。`\n})\n\nconst reportError = async(info: string | Record, stackTrace?: string, err?: Error) => {\n // APIサーバからエラーが返却された場合なら何も処理しない\n if (errorsModule.hasErrors) return\n // navigation guard系のエラーも連携不要\n if (typeof info === 'object' && info._isRouter) return\n\n try {\n await logClient.postLogReport(new LogPostRequest(router.currentRoute.value.path, JSON.stringify(info), stackTrace))\n structureModule.updateSnackbarErrorMessage('システムエラーが発生しました')\n } catch (e) {\n console.error('failed to report error to server, cause: %o, original error: %o', e, err)\n }\n}\n\n// GA送信用\n// 送信処理は、router.tsでライブラリーの読み込みができないため、\n// App.vueでrouter.afterEachを使って実装している\n\napp.use(VueGtm, {\n id: process.env.VUE_APP_GTM_TRACKING_ID,\n vueRouter: router,\n})\n\n// 例外処理\napp.config.errorHandler = async function(err, vm, info) {\n if (err instanceof Error) await reportError(info, err.stack, err)\n throw err\n}\n\nconst IGNORABLE_ERRORS: string[] = [\n 'ResizeObserver loop limit exceeded',\n]\n\n// ↑の残りのエラーをキャッチ\nwindow.addEventListener('error', async event => {\n // 無視できるエラーの場合、スナックバー表示とサーバーへの報告は行わない\n if (IGNORABLE_ERRORS.includes(event.message)) return\n await reportError(event.error)\n})\nwindow.addEventListener('unhandledrejection', async event => {\n await reportError(event.reason)\n})\napp.config.warnHandler = async function(msg, vm, trace) {\n console.warn(`${msg}, trace:${trace} `)\n}\n\n// CSP違反イベントをキャッチ\nwindow.addEventListener('securitypolicyviolation', async event => {\n const req = new CSPReportPostRequest(event)\n await logClient.postCSPReport(req)\n})\n\napp.use(vuetify).use(router).use(store).mount('#app')\n","import { LOGIN_TYPE } from '@/constants/constants'\nimport type { LoginType } from '@/constants/constants'\nimport { authModule } from '@/stores'\nimport { Component, Vue } from 'vue-facing-decorator'\n\n/**\n * 画面表示や処理で共通的に必要となる、ログイン中のユーザにまつわる種々の判定を提供します。\n * 'Vue' の代わりに 'Mixins(CurrentUserManager)' を継承することで、templateやscriptタグ内で直接利用できます。\n * 画面以外で使いたい場合は /@/libs/current-user-manager を使用すること\n *\n * 区分所有者側で利用できる機能はログイン種別(ユーザがログインしてきた入口)によって決まる\n * (LMやGCCといったロールで決まるわけではない)\n * (例:LM)各種の登録・更新・削除が出来ない、プロフィール画像の変更は可能\n * (例:GCC/FR/管理者業務執行者)各種の登録・更新・削除が出来ない\n * もしログイン種別より更に細かい単位で機能利用を分けたい場合(例:管理者業務執行者だけはこれやらせたい等)、別途ロールの導入を検討\n *\n * 権限制御は原則として、「〇〇でない場合」を条件とするのではなく、「✕✕である場合」を条件として書くようにします。\n * これは権限の種別が追加された場合に、新規の権限が初期状態でアクションの対象になってしまうことを避けるためです。\n * 「使えるべきなのに使えない」はまだよいですが、「使えないべきなのに使える」は重大なインシデントに繋がる危険性があります。\n * e.g.\n * あるボタンを利用できない新しい権限Xが追加された時を考えます。\n * 特定権限以外が利用できるボタンを置く際、\n *\n * \n * ----> 権限Xはボタンを利用できてしまう。特にその機能が個人情報等を扱う場合に、改修が漏れるととても危険\n *\n * \n * ----> 権限Xはボタンを利用できない。最悪の場合改修が漏れても、権限X以外の他のユーザに悪影響がない\n */\n@Component({})\nexport class CurrentUserManager extends Vue {\n private get _userLoginType(): LoginType { return authModule.currentLoginType }\n\n get $isNormalLogin(): boolean { return this._userLoginType === LOGIN_TYPE.FROM_OWNER_APPS.NORMAL }\n get $isDummyLogin():boolean { return this._userLoginType === LOGIN_TYPE.FROM_OWNER_APPS.DUMMY }\n get $isSimulateLogin():boolean { return this._userLoginType === LOGIN_TYPE.FROM_ADMIN_APPS.SIMULATE }\n\n get $isAdmin(): boolean { return this.$isDummyLogin || this.$isSimulateLogin }\n}\n","import { Component } from 'vue'\nimport type { RouteLocationNormalized, RouteRecordRaw } from 'vue-router'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport { RouteMetaData, StaticRoute, staticRoutes, staticRoutesLocal } from '@/routes'\nimport { AUTH_STATE } from '@/constants/constants'\nimport { structureModule, errorsModule, authModule } from '@/stores'\n\ninterface IRouteRecordRawBase {\n name: string\n path: string\n meta?: RouteMetaData\n alias?: string\n component?: Component\n prop: boolean | Record | ((route: RouteLocationNormalized) => unknown)\n children: IRouteRecordRawBase[] // 未使用だがchildrenというkeyがないとvue-router側がtype違いでエラーと判断されてしまうため\n}\n\nclass RouteRecordRawBase {\n name!: string\n path!: string\n meta?: RouteMetaData\n alias?: string\n component?: Component\n props!: boolean | Record | ((route: RouteLocationNormalized) => unknown)\n children!: IRouteRecordRawBase[] // 未使用だがchildrenというkeyがないとvue-router側がtype違いでエラーと判断されてしまうため\n\n constructor(name?: string, path?: string, props?: boolean | Record | ((route: RouteLocationNormalized) => unknown), children?: IRouteRecordRawBase[]) {\n this.name = name ?? ''\n this.path = path ?? ''\n this.props = props ?? {}\n this.children = children ?? [] // 未使用\n }\n}\nconst configBase = (r: StaticRoute): RouteRecordRawBase => {\n if (!r.alias) return { name: r.name, path: r.path, meta: r.meta, props: r.props ?? true, children: [] } // aliasが無い場合、aliasというkey無しでオブジェクトを返さないとvue-router側でエラーとなる\n return { name: r.name, path: r.path, alias: r.alias, meta: r.meta, props: r.props ?? true, children: [] }\n}\n\nconst routeRecordRaws = formatRouteRecordRaws()\n\n// 環境変数でサンプル系ページへの遷移可否を制御する\n// 環境変数はstringのためboolで判定する\nif (process.env.VUE_APP_SHOW_SAMPLEPAGE === 'true') {\n const localRecordRaws = formatRouteRecordRawsLocal()\n routeRecordRaws.splice(routeRecordRaws.findIndex(c => c.path === '/.*'), 0, ...localRecordRaws)\n}\n\nconst router = createRouter({\n routes: routeRecordRaws,\n history: createWebHistory(),\n scrollBehavior(to) {\n // 相談連絡のみ画面下部に固定したい為、スクロールを発火させない\n if (to.name === staticRoutes.consultations.name) return\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve({ top: 0, left: 0 })\n }, 500)\n })\n },\n})\n\nrouter.beforeEach((to, from, next) => {\n const toMeta = new RouteMetaData()\n Object.assign(toMeta, to.meta)\n\n // 遷移先は、以下のいずれかでなければならず、でなければ遷移を停止or未ログインであればランディング画面へ遷移させる\n // - 未ログインでも閲覧できるページ\n // - 現在の認証状態と、要求する認証状態とが合致するページ\n if (toMeta.necessaryAuthState !== AUTH_STATE.ANONYMOUS && authModule.currentAuthState !== toMeta.necessaryAuthState) {\n if (authModule.currentAuthState === AUTH_STATE.ANONYMOUS) {\n // 未ログイン状態で遷移しようとした画面がLM用ログイン導線に含まれる場合はLM用ランディング画面へ遷移させる\n if (toMeta.necessaryAuthState === AUTH_STATE.HAVE_TO_MFA || toMeta.necessaryAuthState === AUTH_STATE.HAVE_TO_CAUTION || toMeta.necessaryAuthState === AUTH_STATE.HAVE_TO_SELECT_BUILDING) {\n next({ name: staticRoutes.lmLanding.name })\n } else {\n next({ name: staticRoutes.landing.name })\n }\n } else {\n structureModule.updateSnackbarErrorMessage('そのページへの遷移は認められません')\n next(false)\n }\n return\n }\n\n if (errorsModule.hasErrors && !toMeta.keepGlobalError) errorsModule.clearErrors()\n\n // 全ページの共通構造の制御\n structureModule.specifyVAppCss(toMeta.specifiedVAppCss)\n structureModule.changeCurrentNavigation(toMeta.navigationGroup)\n\n if (toMeta.hideAppBar) structureModule.deleteAppBar()\n else structureModule.updateAppBar({})\n\n if (toMeta.hideSystemBar) structureModule.hideSystemBar()\n else structureModule.showSystemBar()\n\n if (toMeta.hideNavigation) structureModule.hideNavigation()\n else structureModule.showNavigation()\n\n if (toMeta.removeBottomMargin) structureModule.hideMarginBottom()\n else structureModule.showMarginBottom()\n\n if (toMeta.showPrintView) structureModule.showPrintView()\n else structureModule.hidePrintView()\n\n if (toMeta.keepGlobalError) structureModule.hideGlobalErrorMessage()\n else structureModule.showGlobalError()\n\n next()\n})\n\nexport default router\n\n// ------------------------------------------------------------------------------------------------\n// initialization functions\n// ------------------------------------------------------------------------------------------------\nfunction formatRouteRecordRaws(): RouteRecordRaw[] {\n return Object.values(staticRoutes).map(_route => {\n const config = configBase(_route)\n\n switch (_route.name) {\n case staticRoutes.landing.name:\n config.component = () => import('@/pages/auth/LandingPage.vue'); break\n case staticRoutes.login.name:\n config.component = () => import('@/pages/auth/LoginPage.vue'); break\n case staticRoutes.loginCompletion.name:\n config.component = () => import('@/pages/auth/LoginCompletionPage.vue'); break\n case staticRoutes.externalLogin.name:\n config.component = () => import('@/pages/auth/ExternalLoginPage.vue'); break\n case staticRoutes.externalLoginCompletion.name:\n config.component = () => import('@/pages/auth/ExternalLoginCompletionPage.vue'); break\n case staticRoutes.logoutCompletion.name:\n config.component = () => import('@/pages/auth/LogoutCompletionPage.vue'); break\n\n case staticRoutes.lmLanding.name:\n config.component = () => import('@/pages/auth/LMLandingPage.vue'); break\n case staticRoutes.lmLogin.name:\n config.component = () => import('@/pages/auth/LMLoginPage.vue'); break\n case staticRoutes.lmPassword.name:\n config.component = () => import('@/pages/auth/LMPasswordPage.vue'); break\n case staticRoutes.lmAuthenticationKey.name:\n config.component = () => import('@/pages/auth/LMAuthenticationKeyInputPage.vue'); break\n case staticRoutes.lmCaution.name:\n config.component = () => import('@/pages/auth/LMCautionPage.vue'); break\n case staticRoutes.selectBuilding.name:\n config.component = () => import('@/pages/auth/SelectBuildingPage.vue'); break\n\n case staticRoutes.simulateLoginCompletion.name:\n config.component = () => import('@/pages/auth/SimulateLoginCompletionPage.vue'); break\n\n case staticRoutes.identification.name:\n config.component = () => import('@/pages/auth/IdentificationPage.vue'); break\n case staticRoutes.additionalIdentification.name:\n config.component = () => import('@/pages/auth/AdditionalIdentificationPage.vue'); break\n case staticRoutes.onBoarding.name:\n config.component = () => import('@/pages/descriptions/OnBoardingPage.vue'); break\n\n case staticRoutes.initialization.name:\n config.component = () => import('@/pages/accounts/InitializationPage.vue'); break\n case staticRoutes.contactAnonymous.name:\n config.component = () => import('@/pages/contact/ContactAnonymousPage.vue'); break\n case staticRoutes.account.name:\n config.component = () => import('@/pages/accounts/AccountPage.vue'); break\n\n case staticRoutes.menu.name:\n config.component = () => import('@/pages/menu/MenuPage.vue'); break\n\n case staticRoutes.ownerIdeaDetail.name:\n config.component = () => import('@/pages/idea/OwnerIdeaDetailPage.vue'); break\n case staticRoutes.adminIdeaDetail.name:\n config.component = () => import('@/pages/idea/AdminIdeaDetailPage.vue'); break\n case staticRoutes.ideaUpdatesList.name:\n config.component = () => import('@/pages/idea-updates/IdeaUpdatesListPage.vue'); break\n\n case staticRoutes.gmResolutionDetail.name:\n config.component = () => import('@/pages/resolutions/GMResolutionDetailPage.vue'); break\n case staticRoutes.onlineResolutionDetail.name:\n config.component = () => import('@/pages/resolutions/OnlineResolutionDetailPage.vue'); break\n case staticRoutes.gmResolutionQuestionsList.name:\n case staticRoutes.onlineResolutionQuestionsList.name:\n config.component = () => import('@/pages/resolutions/QuestionListPage.vue'); break\n\n case staticRoutes.questionnairesList.name:\n config.component = () => import('@/pages/questionnaires/QuestionnairesListPage.vue'); break\n case staticRoutes.questionnaireAnswerConfirmation.name:\n config.component = () => import('@/pages/questionnaires/QuestionnaireAnswerConfirmationPage.vue'); break\n case staticRoutes.questionnairesReportDetail.name:\n config.component = () => import('@/pages/questionnaires/QuestionnairesReportDetailPage.vue'); break\n case staticRoutes.archivedQuestionnairesList.name:\n config.component = () => import('@/pages/questionnaires/ArchivedQuestionnairesListPage.vue'); break\n case staticRoutes.questionnaireDetailTop.name:\n config.component = () => import('@/pages/questionnaires/QuestionnaireDetailTopPage.vue'); break\n\n case staticRoutes.repairPlan.name:\n config.component = () => import('@/pages/repair-plan/RepairPlanPage.vue'); break\n case staticRoutes.repairPlanUpdates.name:\n config.component = () => import('@/pages/repair-plan-updates/RepairPlanUpdatesPage.vue'); break\n case staticRoutes.repairPlanUpdateDetail.name:\n config.component = () => import('@/pages/repair-plan-updates/RepairPlanUpdateDetailPage.vue'); break\n case staticRoutes.repairPlanPrint.name:\n config.component = () => import('@/pages/repair-plan/RepairPlanPrintPage.vue'); break\n case staticRoutes.repairPlanDetailPrint.name:\n config.component = () => import('@/pages/repair-plan/RepairPlanDetailPrintPage.vue'); break\n\n case staticRoutes.consultations.name:\n config.component = () => import('@/pages/consultations/ConsultationsPage.vue'); break\n case staticRoutes.notifications.name:\n config.component = () => import('@/pages/notifications/NotificationsPage.vue'); break\n case staticRoutes.notificationDetail.name:\n config.component = () => import('@/pages/notifications/NotificationDetailPage.vue'); break\n\n case staticRoutes.simpleRepairPlan.name:\n config.component = () => import('@/pages/simple-repair-plan/SimpleRepairPlanDetailPage.vue'); break\n case staticRoutes.simpleRepairPlanUpdates.name:\n config.component = () => import('@/pages/simple-repair-plan/updates/SimpleRepairPlanUpdatesPage.vue'); break\n case staticRoutes.simpleRepairPlanDetailPrintPage.name:\n config.component = () => import('@/pages/simple-repair-plan/SimpleRepairPlanDetailPrintPage.vue'); break\n case staticRoutes.simpleRepairPlanConstructionPrint.name:\n config.component = () => import('@/pages/simple-repair-plan/construction/SimpleRepairPlanConstructionPrintPage.vue'); break\n\n case staticRoutes.support.name:\n config.component = () => import('@/pages/support/SupportPage.vue'); break\n case staticRoutes.supportQa.name:\n config.component = () => import('@/pages/support/SupportQaPage.vue'); break\n case staticRoutes.contact.name:\n config.component = () => import('@/pages/contact/ContactPage.vue'); break\n\n case staticRoutes.archivedDecisionProcesses.name:\n config.component = () => import('@/pages/decision-processes/ArchivedDecisionProcessesListPage.vue'); break\n case staticRoutes.decisionProcesses.name:\n config.component = () => import('@/pages/decision-processes/DecisionProcessesListPage.vue'); break\n\n case staticRoutes.maintenance.name:\n config.component = () => import('@/pages/error/MaintenancePage.vue'); break\n\n case staticRoutes.initialRegistrationManual.name:\n config.component = () => import('@/pages/static-assets/InitialRegistrationManual.vue'); break\n\n case staticRoutes.notFound.name:\n config.component = () => import('@/pages/error/NotFoundPage.vue'); break\n\n case staticRoutes.deleted.name:\n config.component = () => import('@/pages/error/DeletedPage.vue'); break\n default: {\n // 開発時にエラー原因に気づきやすいようにするためのもの。単体テスト以降で通過想定なし\n throw new Error(`${_route.name} page component not defined`)\n }\n }\n\n return config\n })\n}\n\nfunction formatRouteRecordRawsLocal(): RouteRecordRaw[] {\n return Object.values(staticRoutesLocal).map(_route => {\n const config = configBase(_route)\n\n switch (_route.name) {\n case staticRoutesLocal.helloWorld.name:\n config.component = () => import('@/pages/HelloWorld.vue'); break\n default: {\n throw new Error(`${_route.name} page component not defined`)\n }\n }\n\n return config\n })\n}\n","import type { RouteLocationNormalized } from 'vue-router'\nimport { AuthState, AUTH_STATE } from './constants/constants'\n\nexport const NAVIGATION_GROUP = {\n INDEPENDENT: 0,\n DECISION_PROCESS: 1,\n MENU: 3,\n} as const\nexport type NavigationGroup = typeof NAVIGATION_GROUP[keyof typeof NAVIGATION_GROUP]\n\nexport class RouteMetaData {\n // eslint-disable-next-line\n [key: string|number|symbol]: any\n /** 分類に基づいてナビゲーションのカレント表示が制御される */\n navigationGroup: NavigationGroup = NAVIGATION_GROUP.INDEPENDENT\n\n specifiedVAppCss = ''\n\n hideAppBar = false\n hideSystemBar = false\n hideNavigation = false\n removeBottomMargin = false\n showPrintView = false\n keepGlobalError = false\n\n /** そのページを開くのに必要な認証状態 */\n necessaryAuthState: AuthState = AUTH_STATE.AUTHORIZED\n\n constructor(partial?: Partial) {\n Object.assign(this, partial)\n }\n}\n\ninterface IStaticRoute {\n name: string\n path: string\n meta?: RouteMetaData\n alias?: string\n props?: Record | ((route: RouteLocationNormalized) => unknown)\n children?: Record // 未使用\n}\n\nexport class StaticRoute {\n public readonly name: string\n public readonly path: string\n public readonly meta?: RouteMetaData\n public readonly alias?: string\n public readonly props?: Record | ((route: RouteLocationNormalized) => unknown)\n public readonly children?: Record // 未使用\n\n constructor(name: string, path: string, meta?: Partial, alias?: string, props?: Record | ((route: RouteLocationNormalized) => unknown), children?: Record) {\n this.name = name\n this.path = path\n this.meta = new RouteMetaData(meta)\n this.alias = alias\n this.props = props\n this.children = children // 未使用\n }\n}\n\nexport const staticRoutes = {\n landing: new StaticRoute('Landing', '',\n { specifiedVAppCss: 'sm__landing-background', necessaryAuthState: AUTH_STATE.ANONYMOUS, hideAppBar: true, hideSystemBar: true, hideNavigation: true, removeBottomMargin: true }, undefined,\n route => {\n // 外部から直接特定のページに遷移したい際に指定される想定(メールやプッシュ通知、素敵ネットとのSSO連携)\n // この画面が必ずルートパスにマッピングされていないといけない\n const { redirect, ...rest } = route.query\n return { redirect, additionalParams: rest }\n }\n ),\n login: new StaticRoute('Login', '/login',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.ANONYMOUS, hideNavigation: true, removeBottomMargin: true }),\n\n // ※※※※※※※ 以下の4画面は外部連携先から参照されるURLのため変更不可 ※※※※※※※\n loginCompletion: new StaticRoute('LoginCompletion', '/login/completion',\n { necessaryAuthState: AUTH_STATE.ANONYMOUS, hideAppBar: true, hideNavigation: true }, undefined, route => ({ redirectedParams: route.query })),\n externalLogin: new StaticRoute('ExternalLogin', '/external-login',\n { necessaryAuthState: AUTH_STATE.ANONYMOUS, hideAppBar: true, hideNavigation: true }, undefined, route => ({ queryParams: route.query })),\n externalLoginCompletion: new StaticRoute('ExternalLoginCompletion', '/external-login/completion',\n { necessaryAuthState: AUTH_STATE.ANONYMOUS, hideAppBar: true, hideNavigation: true }, undefined, route => ({ redirectedParams: route.query })),\n logoutCompletion: new StaticRoute('LogoutCompletion', '/logout/completion',\n { necessaryAuthState: AUTH_STATE.ANONYMOUS, hideAppBar: true, hideNavigation: true }, undefined, route => ({ redirectedParams: route.query })),\n // ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n lmLanding: new StaticRoute('LMLanding', '/landing/lm',\n { specifiedVAppCss: 'sm__landing-background', necessaryAuthState: AUTH_STATE.ANONYMOUS, hideAppBar: true, hideSystemBar: true, hideNavigation: true, removeBottomMargin: true }),\n lmLogin: new StaticRoute('LMLogin', '/login/lm',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.ANONYMOUS, hideNavigation: true, removeBottomMargin: true }),\n lmPassword: new StaticRoute('LMPassword', '/auth/password/lm',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_MFA, hideNavigation: true, removeBottomMargin: true }),\n lmAuthenticationKey: new StaticRoute('LMAuthenticationKey', '/auth/authentication-key/lm',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_MFA, hideNavigation: true, removeBottomMargin: true }),\n lmCaution: new StaticRoute('LMCaution', '/cautions/lm',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_CAUTION, hideNavigation: true, removeBottomMargin: true }),\n selectBuilding: new StaticRoute('SelectBuilding', '/buildings',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_SELECT_BUILDING, hideNavigation: true, removeBottomMargin: true }),\n\n simulateLoginCompletion: new StaticRoute('SimulateLoginCompletion', '/simulate-login/completion',\n { necessaryAuthState: AUTH_STATE.ANONYMOUS, hideAppBar: true, hideNavigation: true }, undefined, route => ({ queryParams: route.query })),\n\n identification: new StaticRoute('Identification', '/identification',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_IDENTIFY, hideNavigation: true, removeBottomMargin: true }),\n additionalIdentification: new StaticRoute('AdditionalIdentification', '/identification/additional',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_IDENTIFY, hideNavigation: true, removeBottomMargin: true }),\n onBoarding: new StaticRoute('OnBoarding', '/on-boarding',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_INITIALIZE, hideNavigation: true, removeBottomMargin: true, hideAppBar: true }),\n initialization: new StaticRoute('Initialization', '/initialization',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.HAVE_TO_INITIALIZE, hideNavigation: true, removeBottomMargin: true }),\n contactAnonymous: new StaticRoute('ContactAnonymous', '/contact/anonymous',\n { specifiedVAppCss: 'sm__background-white', necessaryAuthState: AUTH_STATE.ANONYMOUS, hideNavigation: true, removeBottomMargin: true }),\n\n menu: new StaticRoute('Menu', '/menu', { navigationGroup: NAVIGATION_GROUP.MENU }),\n account: new StaticRoute('Account', '/account', { navigationGroup: NAVIGATION_GROUP.MENU }),\n\n ownerIdeaDetail: new StaticRoute('OwnerIdeaDetail', '/ideas/1/:ideaId', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n adminIdeaDetail: new StaticRoute('AdminIdeaDetail', '/ideas/2/:ideaId', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n ideaUpdatesList: new StaticRoute('IdeaUpdatesList', '/ideas/2/:ideaId/updates', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n\n gmResolutionQuestionsList: new StaticRoute('GMResolutionQuestionsList', '/resolutions/1/:resolutionId/questions', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n gmResolutionDetail: new StaticRoute('GMResolutionDetail', '/resolutions/1/:resolutionId', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n onlineResolutionQuestionsList: new StaticRoute('OnlineResolutionQuestionsList', '/resolutions/2/:resolutionId/questions', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n onlineResolutionDetail: new StaticRoute('OnlineResolutionDetail', '/resolutions/2/:resolutionId', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n\n questionnairesList: new StaticRoute('Questionnaires', '/questionnaires', { navigationGroup: NAVIGATION_GROUP.MENU }),\n questionnaireAnswerConfirmation: new StaticRoute('QuestionnairesAnswerConfirmation', '/questionnaires/:questionnaireId/answer', { navigationGroup: NAVIGATION_GROUP.MENU }),\n questionnairesReportDetail: new StaticRoute('QuestionnairesReportDetail', '/questionnaires/:questionnaireId/report', { navigationGroup: NAVIGATION_GROUP.MENU }),\n\n archivedQuestionnairesList: new StaticRoute('ArchivedQuestionnaires', '/questionnaires/archived', { navigationGroup: NAVIGATION_GROUP.MENU }),\n questionnaireDetailTop: new StaticRoute('QuestionnaireDetailTop', '/questionnaires/:questionnaireId'),\n\n repairPlan: new StaticRoute('RepairPlan', '/repair-plan', { navigationGroup: NAVIGATION_GROUP.MENU, removeBottomMargin: true }),\n repairPlanUpdates: new StaticRoute('RepairPlanUpdates', '/repair-plan/updates', { navigationGroup: NAVIGATION_GROUP.MENU }),\n repairPlanUpdateDetail: new StaticRoute('RepairPlanUpdateDetail', '/repair-plan/updates/:updateId', { navigationGroup: NAVIGATION_GROUP.MENU }),\n repairPlanPrint: new StaticRoute('RepairPlanPrint', '/repair-plan/print', { showPrintView: true, removeBottomMargin: true }),\n repairPlanDetailPrint: new StaticRoute('RepairPlanDetailPrint', '/repair-plan/detail-print', { showPrintView: true, removeBottomMargin: true }),\n\n consultations: new StaticRoute('Consultations', '/consultations'),\n notifications: new StaticRoute('Notifications', '/notifications'),\n notificationDetail: new StaticRoute('NotificationDetail', '/notifications/:ownerNotificationId'),\n\n simpleRepairPlan: new StaticRoute('SimpleRepairPlan', '/simple-repair-plan', { navigationGroup: NAVIGATION_GROUP.MENU, removeBottomMargin: true }),\n simpleRepairPlanUpdates: new StaticRoute('SimpleRepairPlanUpdates', '/simple-repair-plan/updates', { navigationGroup: NAVIGATION_GROUP.MENU, removeBottomMargin: true }),\n simpleRepairPlanDetailPrintPage: new StaticRoute('SimpleRepairPlanDetailPrintPage', '/simple-repair-plan/print', { showPrintView: true, removeBottomMargin: true }),\n simpleRepairPlanConstructionPrint: new StaticRoute('SimpleRepairPlanConstructionPrint', '/simple-repair-plan/construction-print', { showPrintView: true, removeBottomMargin: true }),\n\n support: new StaticRoute('Support', '/support', { navigationGroup: NAVIGATION_GROUP.MENU }),\n supportQa: new StaticRoute('SupportQa', '/support/qa', { navigationGroup: NAVIGATION_GROUP.MENU }),\n contact: new StaticRoute('Contact', '/contact', { navigationGroup: NAVIGATION_GROUP.MENU }),\n\n archivedDecisionProcesses: new StaticRoute('ArchivedDecisionProcesses', '/decision-processes/archived', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n decisionProcesses: new StaticRoute('DecisionProcesses', '/decision-processes', { navigationGroup: NAVIGATION_GROUP.DECISION_PROCESS }),\n\n maintenance: new StaticRoute('Maintenance', '/maintenance', { necessaryAuthState: AUTH_STATE.ANONYMOUS, hideNavigation: true, removeBottomMargin: true }),\n\n initialRegistrationManual: new StaticRoute('staticAssets', '/static-assets/initial-registration-manual', { necessaryAuthState: AUTH_STATE.ANONYMOUS, hideNavigation: true }),\n\n deleted: new StaticRoute('Deleted', '/deleted/:content', { keepGlobalError: true }),\n notFound: new StaticRoute('NotFound', '/:pathMatch(.*)*', { keepGlobalError: true }),\n} as const\n\nexport const staticRoutesLocal = {\n helloWorld: new StaticRoute('HelloWorld', '/hello-world', { necessaryAuthState: AUTH_STATE.ANONYMOUS }),\n} as const\n","// TODO storeのnameとpreserve-stateをまとめて一元管理できるようにする\nexport const PRESERVED_STATE_SESSION_PATHS = ['analytics', 'auth', 'cognito', 'myBuildings', 'myCurrentBuilding', 'myDevice', 'staticAssets']\nexport const PRESERVED_STATE_LOCAL_PATHS = ['localParamStorage']\n","/**\n * バッジ更新のスキップ期間(ミリ秒)\n * 現在値:5分\n */\nexport const BADGE_SKIP_TIME = 5 * 60 * 1000\n\n/**\n * バッジ更新をスキップするか判定\n * @param lastTime\n */\nexport function skipUpdate(lastTime:Date):boolean {\n return Date.now() - lastTime.getTime() <= BADGE_SKIP_TIME\n}\n","\nimport { Type } from 'class-transformer'\nimport { OwnerProfileDto, LoginResultCode } from '@/dtos/auth/common'\n\nexport class AuthAdminPostRequest {\n cognitoAccessToken: string\n buildingId?: string\n constructor(cognitoAccessToken: string, buildingId?: string) {\n this.cognitoAccessToken = cognitoAccessToken\n this.buildingId = buildingId\n }\n}\n\nexport class AuthAdminPostResponse {\n resultCode!: LoginResultCode\n accessToken?: string\n @Type(() => OwnerProfileDto) profile?: OwnerProfileDto\n}\n","export class LogoutPostResponse {\r\n redirectTo?: string\r\n}\r\n","export class SsoVerifyGetResponse {\r\n redirectTo?: string\r\n}\r\n","import { APIClientBase } from './api-client-base'\nimport { AuthAdminPostRequest, AuthAdminPostResponse } from '@//dtos/auth/admin/post'\nimport { IdentificationPostRequest, IdentificationPostResponse } from '@/dtos/auth/identification/post'\nimport { AdditionalIdentificationPostRequest, AdditionalIdentificationPostResponse } from '@/dtos/auth/identification/additional/post'\nimport { LoginPostRequest, LoginPostResponse } from '@/dtos/auth/login/post'\nimport { LogoutPostResponse } from '@/dtos/auth/logout/post'\nimport { SimulateLoginPostRequest, SimulateLoginPostResponse } from '@/dtos/auth/simulate/post'\nimport { SsoVerifyPostRequest, SsoVerifyPostResponse } from '@/dtos/auth/sso-verify/post'\nimport { SsoVerifyGetResponse } from '@/dtos/auth/sso-verify/get'\n\nclass AuthClient extends APIClientBase {\n constructor() {\n super('/auth/')\n }\n\n postLogin(req: LoginPostRequest): Promise {\n return this.post('login', req, LoginPostResponse)\n }\n\n postLogout() {\n return this.post('logout', undefined, LogoutPostResponse)\n }\n\n postIdentification(req: IdentificationPostRequest): Promise {\n return this.post('identification', req, IdentificationPostResponse)\n }\n\n postAdditionalIdentification(req: AdditionalIdentificationPostRequest): Promise {\n return this.post('identification/additional', req, AdditionalIdentificationPostResponse)\n }\n\n getSsoVerify(): Promise {\n return this.get('sso-verify', undefined, SsoVerifyGetResponse)\n }\n\n postSsoVerify(req: SsoVerifyPostRequest): Promise {\n return this.post('sso-verify', req, SsoVerifyPostResponse)\n }\n\n postAdminLogin(req: AuthAdminPostRequest): Promise {\n return this.post('admin', req, AuthAdminPostResponse)\n }\n\n postSimulateLogin(req: SimulateLoginPostRequest): Promise {\n return this.post('simulate', req, SimulateLoginPostResponse)\n }\n}\n\nexport const authClient = new AuthClient()\n","import { Type } from 'class-transformer'\nimport { RepairPlanType } from '@/constants/constants'\n\nexport class BuildingBasics {\n buildingId!: string\n condominiumCd!: string\n ridgeCd!: string\n buildingName!: string\n ownerCount!: number\n isTrialTargetBuilding!: boolean\n}\n\nexport class Requirements {\n gmRequirement!: string\n onlineRequirement!: string\n agreementRequirement!: string\n}\n\nexport class Accountings {\n accountingMonth!: number\n firstPeriodEndYear!: number\n smIntroducedPeriod!: number\n}\n\nexport class AvailabilitiesSutekiNet {\n facilityReservation!: boolean\n}\n\nexport class Availabilities {\n repairPlan!: boolean\n repairPlanType!: RepairPlanType\n @Type(() => AvailabilitiesSutekiNet) sutekiNet = new AvailabilitiesSutekiNet()\n isConsultation!: boolean\n}\n\nexport class GetMyCurrentBuildingResponse {\n @Type(() => BuildingBasics) basics = new BuildingBasics()\n @Type(() => Requirements) requirements = new Requirements()\n @Type(() => Accountings) accountings = new Accountings()\n @Type(() => Availabilities) availabilities = new Availabilities()\n}\n","import { GetMyCurrentBuildingResponse } from '@/dtos/my/building/current/get'\nimport { CurrentBuildingPostRequest } from '@/dtos/my/building/current/post'\nimport { APIClientBase } from './api-client-base'\n\nclass MyCurrentBuildingClient extends APIClientBase {\n constructor() {\n super('/my')\n }\n\n async getCurrentBuilding():Promise {\n return await this.get('/buildings/current', null, GetMyCurrentBuildingResponse)\n }\n\n async postCurrentBuilding(req: CurrentBuildingPostRequest): Promise {\n await this.post('/buildings/current', req)\n }\n}\n\nexport const myCurrentBuildingClient = new MyCurrentBuildingClient()\n","import { Type } from 'class-transformer'\n\nexport class Building {\n buildingId!:string\n condominiumCd!:string\n buildingName!:string\n}\n\nexport class MyBuildingsGetResponse {\n @Type(() => Building)\n buildings: Building[] = []\n}\n","import { APIClientBase } from './api-client-base'\nimport { MyBuildingsGetResponse } from '@/dtos/my/building/get'\n\nclass MyBuildingsClient extends APIClientBase {\n constructor() {\n super('/my/buildings')\n }\n\n getMyBuildings(): Promise {\n return this.get('', null, MyBuildingsGetResponse)\n }\n}\n\nexport const myBuildingsClient = new MyBuildingsClient()\n","export class QuestionDetailGetRequest {\r\n resolutionId!: string\r\n questionId!: string\r\n}\r\n\r\nexport class QuestionDetailGetResponse {\r\n questionId!: string\r\n body!: string\r\n version!: number\r\n}\r\n","export class UnprocessedResolutionsSummaryGetRequest {}\n\nexport class UnprocessedResolutionsSummaryGetResponse {\n resolutionIds!:string[]\n}\n","import { APIClientBase } from './api-client-base'\nimport { QuestionsGetRequest, QuestionsGetResponse } from '@/dtos/resolutions/questions/get'\nimport { ResolutionReadsPostRequest } from '@/dtos/resolutions/reads/post'\nimport { QuestionDetailGetRequest, QuestionDetailGetResponse } from '@/dtos/resolutions/questions/get-detail'\nimport { QuestionsPostRequest } from '@/dtos/resolutions/questions/post'\nimport { QuestionsPutRequest } from '@/dtos/resolutions/questions/put'\nimport { QuestionsDeleteRequest } from '@/dtos/resolutions/questions/delete'\nimport { UnprocessedResolutionsSummaryGetResponse } from '@/dtos/resolutions/unprocessed/get'\n\nclass ResolutionsClient extends APIClientBase {\n constructor() {\n super('/resolutions')\n }\n\n // 決議一覧(サマリ)\n getUnprocessedResolutionsSummary() {\n return this.get('unprocessed/summary', undefined, UnprocessedResolutionsSummaryGetResponse)\n }\n\n postResolutionReads(req: ResolutionReadsPostRequest) {\n return this.post(`${req.resolutionId}/reads`, null)\n }\n\n // 質問\n getQuestions(req: QuestionsGetRequest) {\n const { resolutionId, ...query } = req\n return this.get(`/${resolutionId}/questions`, query, QuestionsGetResponse, false)\n }\n\n getQuestionDetail(req: QuestionDetailGetRequest) {\n return this.get(`${req.resolutionId}/questions/${req.questionId}`, null, QuestionDetailGetResponse)\n }\n\n postQuestions(req: QuestionsPostRequest): Promise {\n return this.post(`${req.resolutionId}/questions`, req)\n }\n\n putQuestions(req: QuestionsPutRequest): Promise {\n return this.put(`${req.resolutionId}/questions/${req.questionId}`, req)\n }\n\n deleteQuestions(req: QuestionsDeleteRequest): Promise {\n return this.delete(`${req.resolutionId}/questions/${req.questionId}`)\n }\n}\n\nexport const resolutionsClient = new ResolutionsClient()\n","import { APIClientBase } from './api-client-base'\r\nimport { NotificationsGetRequest, NotificationsGetResponse } from '@/dtos/notifications/get'\r\nimport { NotificationDetailGetRequest, NotificationDetailGetResponse } from '@/dtos/notifications/get-detail'\r\nimport { NotificationsReadPostRequest } from '@/dtos/notifications/post'\r\n\r\nclass NotificationsClient extends APIClientBase {\r\n constructor() {\r\n super('/notifications')\r\n }\r\n\r\n getNotifications(req: NotificationsGetRequest) {\r\n return this.get('', req, NotificationsGetResponse, false)\r\n }\r\n\r\n postNotificationsRead(req?: NotificationsReadPostRequest) {\r\n return this.post('read', req)\r\n }\r\n\r\n getNotificationDetail(req: NotificationDetailGetRequest) {\r\n return this.get(`/${req.notificationId}`, null, NotificationDetailGetResponse)\r\n }\r\n}\r\n\r\nexport const notificationsClient = new NotificationsClient()\r\n","export class CurrentBuildingPostRequest {\n buildingId!: string\n constructor(buildingId:string) {\n this.buildingId = buildingId\n }\n}\n","import { createStore } from 'vuex'\r\nimport { config, Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators'\r\nimport createPersistedState from 'vuex-persistedstate'\r\nimport { PRESERVED_STATE_SESSION_PATHS, PRESERVED_STATE_LOCAL_PATHS } from './preserve-state/paths'\r\n\r\nimport { AUTH_STATE, DUMMY_AUTH_ERROR_MESSAGE, LOGIN_TYPE, REPAIR_PLAN_TABS } from '@/constants/constants'\r\nimport type { AuthState, LoginType } from '@/constants/constants'\r\nimport Auth, { CognitoUser } from '@aws-amplify/auth'\r\nimport { ClassConstructor, plainToClass } from 'class-transformer'\r\nimport { skipUpdate } from '@/libs/badge-skip-update'\r\n\r\nimport { authClient } from '@/clients/auth-client'\r\nimport { myCurrentBuildingClient } from '@/clients/my-current-building-client'\r\nimport { myBuildingsClient } from '@/clients/my-buildings-client'\r\nimport { resolutionsClient } from '@/clients/resolutions-client'\r\nimport { notificationsClient } from '@/clients/notifications-client'\r\n\r\nimport { Accountings, Availabilities, BuildingBasics, GetMyCurrentBuildingResponse, Requirements } from '@/dtos/my/building/current/get'\r\nimport { NotificationsGetRequest, NotificationsGetResponse, Notification } from '@/dtos/notifications/get'\r\nimport { NotificationDetailGetRequest, NotificationDetailGetResponse } from '@/dtos/notifications/get-detail'\r\nimport { NotificationsReadPostRequest } from '@/dtos/notifications/post'\r\nimport { ResolutionReadsPostRequest } from '@/dtos/resolutions/reads/post'\r\nimport { QuestionsGetRequest, Question, FILTER_TYPE, QuestionsGetResponse } from '@/dtos/resolutions/questions/get'\r\nimport { QuestionDetailGetRequest, QuestionDetailGetResponse } from '@/dtos/resolutions/questions/get-detail'\r\nimport { QuestionsPostRequest } from '@/dtos/resolutions/questions/post'\r\nimport { QuestionsPutRequest } from '@/dtos/resolutions/questions/put'\r\nimport { QuestionsDeleteRequest } from '@/dtos/resolutions/questions/delete'\r\nimport { NavigationItems } from '@/dtos/navigation'\r\nimport { MyBuildingsGetResponse } from '@/dtos/my/building/get'\r\nimport { LOGIN_RESULT_CODE, OwnerProfileDto } from '@/dtos/auth/common'\r\nimport { AuthAdminPostRequest, AuthAdminPostResponse } from '@/dtos/auth/admin/post'\r\nimport { LoginPostRequest, LoginPostResponse } from '@/dtos/auth/login/post'\r\nimport { IdentificationPostRequest, IdentificationPostResponse, IDENTIFY_RESULT_CODE } from '@/dtos/auth/identification/post'\r\nimport { AdditionalIdentificationPostRequest, AdditionalIdentificationPostResponse } from '@/dtos/auth/identification/additional/post'\r\nimport { SsoVerifyGetResponse } from '@/dtos/auth/sso-verify/get'\r\nimport { SsoVerifyPostRequest, SsoVerifyResultCode, SSO_VERIFY_RESULT_CODE } from '@/dtos/auth/sso-verify/post'\r\nimport { UserIcon } from '@/dtos/static-assets/user-icons/get'\r\nimport { LogoutPostResponse } from '@/dtos/auth/logout/post'\r\nimport { SimulateLoginPostRequest, SimulateLoginPostResponse } from '@/dtos/auth/simulate/post'\r\nimport { CurrentBuildingPostRequest } from '@/dtos/my/building/current/post'\r\n\r\nimport { NAVIGATION_GROUP } from '@/routes'\r\nimport type { NavigationGroup } from '@/routes'\r\n\r\nconfig.rawError = true\r\n\r\nconst KEY = 'smooth-e'\r\n\r\n// すでにstateが保持されていればそれを、でなければ初期化したものをストアとして使う\r\nclearInvalidStorage()\r\nexport const isAlreadyInitialized = window.sessionStorage.getItem(KEY) !== null\r\nexport const isAlreadyLocalStored = window.localStorage.getItem(KEY) !== null\r\n\r\nconst persistedSessionStorage = createPersistedState({\r\n key: KEY,\r\n paths: PRESERVED_STATE_SESSION_PATHS,\r\n storage: window.sessionStorage,\r\n})\r\n\r\nconst persistedLocalStorage = createPersistedState({\r\n key: KEY,\r\n paths: PRESERVED_STATE_LOCAL_PATHS,\r\n storage: window.localStorage,\r\n})\r\n\r\nexport const store = createStore({\r\n modules: {\r\n /** dynamically injected if module declared as @Module({ store, dynamic: true }) */\r\n },\r\n plugins: [persistedSessionStorage, persistedLocalStorage]\r\n})\r\n\r\nfunction clearInvalidStorage() {\r\n try {\r\n const _v = window.sessionStorage.getItem(KEY)\r\n if (!_v) return\r\n else if (_v === '{}') {\r\n window.sessionStorage.removeItem(KEY)\r\n return\r\n }\r\n\r\n const v = JSON.parse(_v)\r\n for (const p of PRESERVED_STATE_SESSION_PATHS) {\r\n if (!v[p]) {\r\n window.sessionStorage.removeItem(KEY)\r\n return\r\n }\r\n }\r\n } catch {\r\n // parseに失敗した場合\r\n window.sessionStorage.removeItem(KEY)\r\n }\r\n\r\n try {\r\n const _v = window.localStorage.getItem(KEY)\r\n if (!_v) return\r\n else if (_v === '{}') {\r\n window.localStorage.removeItem(KEY)\r\n return\r\n }\r\n\r\n const v = JSON.parse(_v)\r\n for (const p of PRESERVED_STATE_LOCAL_PATHS) {\r\n if (!v[p]) {\r\n window.localStorage.removeItem(KEY)\r\n return\r\n }\r\n }\r\n } catch {\r\n // parseに失敗した場合\r\n window.localStorage.removeItem(KEY)\r\n }\r\n}\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'errors' })\r\nclass ErrorsStore extends VuexModule {\r\n private _fieldErrors: { [key: string]: string[] } = {}\r\n private _globalErrors: string[] = []\r\n\r\n get fieldErrors() {\r\n return (fieldId: string): string[] => {\r\n return this._fieldErrors[fieldId]\r\n }\r\n }\r\n\r\n get globalErrors(): string[] {\r\n return this._globalErrors\r\n }\r\n\r\n get hasErrors(): boolean {\r\n return Object.keys(this._fieldErrors).length > 0 || this._globalErrors.length > 0\r\n }\r\n\r\n @Mutation\r\n private SET_ERRORS(errors: { fieldErrors: { [key: string]: string[] }, globalErrors: string[] }): void {\r\n this._fieldErrors = errors.fieldErrors ?? {}\r\n this._globalErrors = errors.globalErrors ?? []\r\n }\r\n\r\n @Mutation\r\n private SET_GLOBAL_ERRORS(globalErrors: string[]): void {\r\n this._globalErrors = globalErrors\r\n }\r\n\r\n @Mutation\r\n private CLEAR_ERRORS(): void {\r\n this._fieldErrors = {}\r\n this._globalErrors = []\r\n }\r\n\r\n @Mutation\r\n private CLEAR_FIELD_ERRORS(fieldId: string): void {\r\n delete this._fieldErrors[fieldId]\r\n }\r\n\r\n @Action\r\n setErrors(errors: { fieldErrors: { [key: string]: string[] }, globalErrors: string[] }): void {\r\n this.SET_ERRORS(errors)\r\n }\r\n\r\n @Action\r\n setGlobalErrors(globalErrors: string[]): void {\r\n this.SET_GLOBAL_ERRORS(globalErrors)\r\n }\r\n\r\n @Action\r\n clearErrors(): void {\r\n this.CLEAR_ERRORS()\r\n }\r\n\r\n @Action\r\n clearFieldErrors(filedId: string): void {\r\n this.CLEAR_FIELD_ERRORS(filedId)\r\n }\r\n}\r\n\r\nexport const errorsModule = getModule(ErrorsStore)\r\n\r\nconst statusBeforeLogin: AuthState[] = [AUTH_STATE.ANONYMOUS, AUTH_STATE.HAVE_TO_MFA, AUTH_STATE.HAVE_TO_CAUTION]\r\n\r\nexport class Credential {\r\n id?: string\r\n password?: string\r\n}\r\n\r\nexport const CHALLENGE_NAMES = {\r\n PASSWORD_REQUIRED: 'NEW_PASSWORD_REQUIRED',\r\n MFA: 'SMS_MFA'\r\n} as const\r\nexport type ChallengeName = typeof CHALLENGE_NAMES[keyof typeof CHALLENGE_NAMES]\r\n\r\nexport class ChallengeParam {\r\n CODE_DELIVERY_DELIVERY_MEDIUM = ''\r\n CODE_DELIVERY_DESTINATION = ''\r\n}\r\n\r\nexport type AuthUser = CognitoUser & {\r\n challengeName: ChallengeName,\r\n challengeParam: ChallengeParam\r\n}\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'cognito', preserveState: isAlreadyInitialized })\r\nclass CognitoStore extends VuexModule {\r\n private _user: AuthUser | null = null\r\n private _isAuthenticated = false\r\n private _credential = new Credential()\r\n\r\n get isNewPasswordRequired(): boolean {\r\n return this._user?.challengeName === CHALLENGE_NAMES.PASSWORD_REQUIRED ?? false\r\n }\r\n\r\n get isMFARequired(): boolean | undefined {\r\n return this._user?.challengeName === CHALLENGE_NAMES.MFA\r\n }\r\n\r\n get phoneNumber():string | undefined {\r\n return this._user?.challengeParam.CODE_DELIVERY_DESTINATION\r\n }\r\n\r\n get isAuthenticated():boolean {\r\n return this._isAuthenticated\r\n }\r\n\r\n @Mutation\r\n private SET_USER(user: AuthUser | null): void {\r\n this._user = user\r\n }\r\n\r\n @Mutation\r\n private SET_IS_AUTHENTICATED(val:boolean) {\r\n this._isAuthenticated = val\r\n }\r\n\r\n @Mutation\r\n private SET_CREDENTIAL(credential: Credential) {\r\n this._credential = credential\r\n }\r\n\r\n @Action\r\n async signIn(credential: Credential) {\r\n await this.cognitoSignIn(credential)\r\n this.SET_CREDENTIAL(credential)\r\n }\r\n\r\n @Action\r\n async cognitoSignIn(credential: Credential) {\r\n if (!credential.id || !credential.password) return\r\n const user = await Auth.signIn(credential.id, credential.password)\r\n authModule.setStateHaveToMfa()\r\n this.SET_USER(user)\r\n }\r\n\r\n @Action\r\n async confirmSignIn(code:string) {\r\n await Auth.confirmSignIn(this._user, code, CHALLENGE_NAMES.MFA)\r\n }\r\n\r\n @Action\r\n async createSession() {\r\n this.SET_IS_AUTHENTICATED(false)\r\n try {\r\n const session = await Auth.currentSession()\r\n await authModule.postAdminLogin(session.getAccessToken().getJwtToken())\r\n } catch (err) {\r\n // セッション確立失敗した場合はログアウト\r\n await this.signOut()\r\n throw err\r\n }\r\n\r\n this.SET_IS_AUTHENTICATED(true)\r\n }\r\n\r\n @Action\r\n deleteCredential() {\r\n this.SET_CREDENTIAL(new Credential())\r\n }\r\n\r\n @Action\r\n async signOut() {\r\n // smooth-e側ログアウトがまだされていなければログアウト\r\n if (!statusBeforeLogin.includes(authModule.currentAuthState)) {\r\n await authModule.postLogout()\r\n }\r\n\r\n // cognito側ログアウト\r\n try {\r\n await Auth.signOut()\r\n } catch {\r\n // 最初からcognito側にログインしてなかった場合はエラーが出るが、特に問題はないため握りつぶす\r\n }\r\n\r\n this.SET_IS_AUTHENTICATED(false)\r\n this.SET_USER(null)\r\n }\r\n\r\n @Action\r\n async completeNewPassword(password: string): Promise {\r\n const user = await Auth.completeNewPassword(this._user, password)\r\n this.SET_USER(user)\r\n const credential = this._credential\r\n credential.password = password\r\n this.SET_CREDENTIAL(credential)\r\n }\r\n\r\n @Action\r\n async resendingSMS() {\r\n await this.cognitoSignIn(this._credential)\r\n }\r\n\r\n @Action\r\n async changePassword(password: {currentPassword: string, newPassword: string}): Promise {\r\n const user = await Auth.currentAuthenticatedUser()\r\n await Auth.changePassword(user, password.currentPassword, password.newPassword)\r\n }\r\n}\r\n\r\nexport const cognitoModule = getModule(CognitoStore)\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'auth', preserveState: isAlreadyInitialized })\r\nclass AuthStore extends VuexModule {\r\n // ログイン認証前の特定の画面へアクセスしてきた際に指定されることのある、ログイン後に遷移したい画面の情報(メールやプッシュ通知、素敵ネットからの遷移)\r\n // FLPとのリダイレクトのやり取りの中で初期に指定された値を保持し続けられるようにしている\r\n private _memorizedQueryParams: Record = {}\r\n get memorizedQueryParams(): Record { return this._memorizedQueryParams }\r\n\r\n @Mutation\r\n private SET_QUERY_PARAMS(params?: Record): void { this._memorizedQueryParams = params ?? {} }\r\n\r\n @Action public memorizeQueryParams(params: Record) { this.SET_QUERY_PARAMS(params) }\r\n @Action public clearQueryParams() { this.SET_QUERY_PARAMS(undefined) }\r\n\r\n // -------------------- 認証系APIで共通保持する項目 --------------------\r\n\r\n // smooth-eのAPIを利用するためのアクセストークン(期限付き)\r\n private _accessToken = ''\r\n get accessToken(): string { return this._accessToken }\r\n @Mutation private SET_ACCESS_TOKEN(token: string): void { this._accessToken = token }\r\n\r\n // ログインや初回動線の進行具合によって移り変わる認証状態を保持する。主に、未認証で利用できない画面への遷移を防止するのに参照する。\r\n private _authState: AuthState = AUTH_STATE.ANONYMOUS\r\n get currentAuthState(): AuthState { return this._authState }\r\n @Mutation private SET_AUTH_STATE(state: AuthState): void { this._authState = state }\r\n\r\n // ログイン種別\r\n private _loginType: LoginType = LOGIN_TYPE.FROM_OWNER_APPS.NORMAL\r\n get currentLoginType(): LoginType { return this._loginType }\r\n @Mutation SET_LOGIN_TYPE(type: LoginType): void { this._loginType = type }\r\n\r\n // ログインユーザのプロフィール\r\n private _profile = new OwnerProfileDto()\r\n get profile(): OwnerProfileDto { return this._profile }\r\n @Mutation private SET_PROFILE(profile: OwnerProfileDto): void { this._profile = profile }\r\n\r\n // ----------------------------------------\r\n\r\n private _loginResponse: Omit = new LoginPostResponse()\r\n get loginResponse(): Omit { return this._loginResponse }\r\n\r\n @Mutation\r\n private SET_LOGIN_RESPONSE(res: Omit):void {\r\n this._loginResponse = res\r\n }\r\n\r\n @Action\r\n public async postLogin(req: LoginPostRequest): Promise {\r\n const res = await authClient.postLogin(req)\r\n if (!res) return\r\n\r\n if (res.resultCode === LOGIN_RESULT_CODE.SUCCESS) {\r\n // SUCCESSなら必ずある想定\r\n if (res.authState) this.SET_AUTH_STATE(res.authState)\r\n if (res.profile) this.SET_PROFILE(res.profile)\r\n if (res.accessToken) this.SET_ACCESS_TOKEN(res.accessToken)\r\n }\r\n delete res.authState\r\n delete res.profile\r\n this.SET_LOGIN_RESPONSE(res)\r\n this.SET_LOGIN_TYPE(LOGIN_TYPE.FROM_OWNER_APPS.NORMAL)\r\n }\r\n\r\n // ----------------------------------------\r\n\r\n private _identificationResponse: Omit = new IdentificationPostResponse()\r\n\r\n get identificationResponse(): Omit {\r\n return this._identificationResponse\r\n }\r\n\r\n @Mutation\r\n private SET_IDENTIFICATION_RESPONSE(res: Omit):void {\r\n this._identificationResponse = res\r\n }\r\n\r\n @Action\r\n public async postIdentification(req: IdentificationPostRequest): Promise {\r\n const res = await authClient.postIdentification(req)\r\n if (!res) return\r\n\r\n if (res.resultCode === IDENTIFY_RESULT_CODE.SUCCESS && !res.requiredAdditionalIdentification) {\r\n this.SET_AUTH_STATE(AUTH_STATE.HAVE_TO_INITIALIZE)\r\n // SUCCESSなら必ずある想定\r\n if (res.profile) this.SET_PROFILE(res.profile)\r\n if (res.accessToken) this.SET_ACCESS_TOKEN(res.accessToken)\r\n }\r\n delete res.profile\r\n this.SET_IDENTIFICATION_RESPONSE(res)\r\n }\r\n\r\n private _additionalIdentificationResponse: Omit = new AdditionalIdentificationPostResponse()\r\n\r\n get additionalIdentificationResponse(): Omit {\r\n return this._additionalIdentificationResponse\r\n }\r\n\r\n @Mutation\r\n private SET_ADDITIONAL_IDENTIFICATION_RESPONSE(res: Omit):void {\r\n this._additionalIdentificationResponse = res\r\n }\r\n\r\n @Action\r\n public async postAdditionalIdentification(req: AdditionalIdentificationPostRequest): Promise {\r\n const res = await authClient.postAdditionalIdentification(req)\r\n if (!res) return\r\n\r\n if (res.resultCode === IDENTIFY_RESULT_CODE.SUCCESS) {\r\n this.SET_AUTH_STATE(AUTH_STATE.HAVE_TO_INITIALIZE)\r\n // SUCCESSなら必ずある想定\r\n if (res.profile) this.SET_PROFILE(res.profile)\r\n if (res.accessToken) this.SET_ACCESS_TOKEN(res.accessToken)\r\n }\r\n delete res.profile\r\n this.SET_ADDITIONAL_IDENTIFICATION_RESPONSE(res)\r\n }\r\n\r\n @Action\r\n public clearIdentification():void {\r\n this.SET_IDENTIFICATION_RESPONSE(new IdentificationPostResponse())\r\n }\r\n\r\n @Action\r\n public clearAdditionalIdentification():void {\r\n this.SET_ADDITIONAL_IDENTIFICATION_RESPONSE(new AdditionalIdentificationPostResponse())\r\n }\r\n\r\n // ------物件選択-----------------\r\n @Action\r\n public markAsSelectedBuilding(): void { this.SET_AUTH_STATE(AUTH_STATE.AUTHORIZED) }\r\n\r\n // ----------------------------------------\r\n private _ssoVerifyPreRequest: SsoVerifyGetResponse | null = null\r\n get ssoVerifyPreRequest() : SsoVerifyGetResponse | null { return this._ssoVerifyPreRequest }\r\n @Mutation private SET_SSO_VERIFY_GET(res?: SsoVerifyGetResponse) { this._ssoVerifyPreRequest = res ?? null }\r\n @Action public async getSsoVerify() { this.SET_SSO_VERIFY_GET(await authClient.getSsoVerify()) }\r\n\r\n private _ssoVerifyResult: SsoVerifyResultCode | null = null\r\n get ssoVerifyResult(): SsoVerifyResultCode | null { return this._ssoVerifyResult }\r\n @Mutation private SET_SSO_VERIFY_RESULT(code: SsoVerifyResultCode | null) { this._ssoVerifyResult = code }\r\n\r\n @Action\r\n public async postSsoVerify(refreshToken: string): Promise {\r\n const res = await authClient.postSsoVerify(new SsoVerifyPostRequest(refreshToken))\r\n if (!res) return\r\n\r\n this.SET_SSO_VERIFY_RESULT(res.resultCode)\r\n if (res.resultCode === SSO_VERIFY_RESULT_CODE.SUCCESS) {\r\n // SUCCESSなら必ずある想定\r\n if (res.authState) this.SET_AUTH_STATE(res.authState)\r\n if (res.profile) this.SET_PROFILE(res.profile)\r\n if (res.accessToken) this.SET_ACCESS_TOKEN(res.accessToken)\r\n }\r\n }\r\n\r\n // ----------------------------------------\r\n\r\n private _logoutResponse: LogoutPostResponse | null = null\r\n get logoutRedirect(): string | undefined { return this._logoutResponse?.redirectTo }\r\n @Mutation private SET_LOGOUT_RESPONSE(res: LogoutPostResponse) { this._logoutResponse = res }\r\n\r\n @Action\r\n public async postLogout(): Promise {\r\n // サーバ側でのログアウト処理の成否に関わらず、クライアント側の制御を完了したら終了とする\r\n try {\r\n const res = await authClient.postLogout()\r\n if (res) this.SET_LOGOUT_RESPONSE(res)\r\n } catch { /* kill error */ } finally {\r\n // ログインしていないと保持しえない情報をリセット(※ログイン種別はログアウト直後の画面遷移先判定に用いるためここではリセットせず、ログイン時に更新する)\r\n this.SET_AUTH_STATE(AUTH_STATE.ANONYMOUS)\r\n this.SET_ACCESS_TOKEN('')\r\n }\r\n }\r\n\r\n @Action\r\n public markAsInitialized(): void {\r\n this.SET_AUTH_STATE(AUTH_STATE.AUTHORIZED)\r\n }\r\n\r\n @Action\r\n public changeIcon(icon:UserIcon):void {\r\n const profile = plainToClass(OwnerProfileDto, this._profile)\r\n profile.icon = icon\r\n this.SET_PROFILE(profile)\r\n }\r\n\r\n // ------------- LMログイン用 -------------\r\n @Action\r\n public async postAdminLogin(accessToken:string) {\r\n const req = new AuthAdminPostRequest(accessToken, myCurrentBuildingModule.basics.buildingId)\r\n let res : AuthAdminPostResponse | undefined\r\n try {\r\n res = await authClient.postAdminLogin(req)\r\n } catch {\r\n throw new Error(DUMMY_AUTH_ERROR_MESSAGE.UNEXPECTED_ERROR)\r\n }\r\n\r\n // 認証失敗したら例外を投げる(cognito側からログアウト処理を走らせるため)\r\n if (!res || res.resultCode !== LOGIN_RESULT_CODE.SUCCESS || !res.profile || !res.accessToken) {\r\n throw new Error(DUMMY_AUTH_ERROR_MESSAGE.USER_DISABLED)\r\n }\r\n this.SET_ACCESS_TOKEN(res.accessToken)\r\n\r\n await myBuildingsModule.fetchMyBuildings()\r\n\r\n // 現在設定している物件が選択不能になった場合、セッション切れ扱いにする\r\n if (myCurrentBuildingModule.basics.buildingId && !myBuildingsModule.myBuildingsGet.buildings.some(b => b.buildingId === myCurrentBuildingModule.basics.buildingId)) {\r\n structureModule.openReLoginDialog()\r\n return\r\n }\r\n\r\n // 物件0件なら紐付く物件なし→認証失敗扱いでエラー\r\n if (myBuildingsModule.myBuildingsGet.buildings.length === 0) {\r\n throw new Error(DUMMY_AUTH_ERROR_MESSAGE.NO_BUILDING_ASSIGNED)\r\n }\r\n\r\n this.SET_PROFILE(res.profile)\r\n this.SET_LOGIN_TYPE(LOGIN_TYPE.FROM_OWNER_APPS.DUMMY)\r\n }\r\n\r\n @Action\r\n public setStateAnonymous(): void {\r\n this.SET_AUTH_STATE(AUTH_STATE.ANONYMOUS)\r\n }\r\n\r\n @Action\r\n public setStateHaveToMfa(): void {\r\n this.SET_AUTH_STATE(AUTH_STATE.HAVE_TO_MFA)\r\n }\r\n\r\n @Action\r\n public setStateHaveToCaution(): void { this.SET_AUTH_STATE(AUTH_STATE.HAVE_TO_CAUTION) }\r\n\r\n @Action\r\n public setStateSelectBuilding(): void { this.SET_AUTH_STATE(AUTH_STATE.HAVE_TO_SELECT_BUILDING) }\r\n\r\n @Action\r\n public setStateLMAuthorized(): void { this.SET_AUTH_STATE(AUTH_STATE.AUTHORIZED) }\r\n\r\n // ------------- 成り代わりログイン用 -------------\r\n private _simulateLoginResponse: Omit = new SimulateLoginPostResponse()\r\n get simulateLoginResponse(): Omit { return this._simulateLoginResponse }\r\n\r\n @Mutation\r\n private SET_SIMULATE_LOGIN_RESPONSE(res: Omit):void {\r\n this._simulateLoginResponse = res\r\n }\r\n\r\n @Action\r\n public async postSimulateLogin(req: SimulateLoginPostRequest): Promise {\r\n const res = await authClient.postSimulateLogin(req)\r\n if (!res) return\r\n\r\n if (res.resultCode === LOGIN_RESULT_CODE.SUCCESS) {\r\n // SUCCESSなら必ずある想定\r\n if (res.profile) this.SET_PROFILE(res.profile)\r\n if (res.accessToken) this.SET_ACCESS_TOKEN(res.accessToken)\r\n\r\n this.SET_AUTH_STATE(AUTH_STATE.AUTHORIZED)\r\n this.SET_LOGIN_TYPE(LOGIN_TYPE.FROM_ADMIN_APPS.SIMULATE)\r\n }\r\n delete res.profile\r\n this.SET_SIMULATE_LOGIN_RESPONSE(res)\r\n }\r\n}\r\n\r\nexport const authModule = getModule(AuthStore)\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'analytics', preserveState: isAlreadyInitialized })\r\nclass AnalyticsStore extends VuexModule {\r\n // 通知自体のID\r\n private _notificationId:string | null = null\r\n public get notificationId():string | null { return this._notificationId }\r\n @Mutation private SET_NOTIFICATION_ID(notificationId:string | null) { this._notificationId = notificationId }\r\n @Action public setNotificationId(notificationId:string) { this.SET_NOTIFICATION_ID(notificationId) }\r\n\r\n // 通知を受けたユーザーID。メール・プッシュ通知に付与される。\r\n private _notifiedUserId:string | null = null\r\n public get notifiedUserId():string | null { return this._notifiedUserId }\r\n @Mutation private SET_NOTIFIED_USER_ID(notifiedUserId:string | null) { this._notifiedUserId = notifiedUserId }\r\n @Action public setNotifiedUserId(notifiedUserId:string) { this.SET_NOTIFIED_USER_ID(notifiedUserId) }\r\n\r\n private _notificationType:string | null = null\r\n public get notificationType():string | null { return this._notificationType }\r\n @Mutation private SET_NOTIFICATION_TYPE(notificationType:string | null) { this._notificationType = notificationType }\r\n @Action public setNotificationType(notificationType:string) { this.SET_NOTIFICATION_TYPE(notificationType) }\r\n\r\n private _ownerNotificationId:string | null = null\r\n public get ownerNotificationId():string | null { return this._ownerNotificationId }\r\n @Mutation private SET_OWNER_NOTIFICATION_ID(ownerNotificationId:string | null) { this._ownerNotificationId = ownerNotificationId }\r\n @Action public setOwnerNotificationId(ownerNotificationId:string) { this.SET_OWNER_NOTIFICATION_ID(ownerNotificationId) }\r\n\r\n @Action public clearAnalyticsProperties() {\r\n this.SET_NOTIFICATION_ID(null)\r\n this.SET_NOTIFIED_USER_ID(null)\r\n this.SET_NOTIFICATION_TYPE(null)\r\n this.SET_OWNER_NOTIFICATION_ID(null)\r\n }\r\n}\r\n\r\nexport const analyticsModule = getModule(AnalyticsStore)\r\n\r\nconst format = (d: Date): string => { return `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}` }\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'myCurrentBuilding', preserveState: isAlreadyInitialized })\r\nclass MyCurrentBuildingStore extends VuexModule {\r\n private _myCurrentBuilding = new GetMyCurrentBuildingResponse()\r\n\r\n public get basics(): BuildingBasics { return this._myCurrentBuilding.basics }\r\n public get requirements(): Requirements { return this._myCurrentBuilding.requirements }\r\n public get accountings(): Accountings { return this._myCurrentBuilding.accountings }\r\n public get availabilities(): Availabilities { return this._myCurrentBuilding.availabilities }\r\n\r\n public get currentPeriod(): number {\r\n const now = new Date()\r\n const base = now.getFullYear() - this.accountings.firstPeriodEndYear + 1\r\n\r\n return now.getTime() > this._periodEndDate(base).getTime() ? base + 1 : base\r\n }\r\n\r\n /**\r\n * 期を決算の年月に変換する関数を返します\r\n * 例えば、1期の会計年度が2021年2月~2022年1月であれば、「1 -> 2022/1」「5 -> 2026/1」です\r\n */\r\n public get periodToYearMonth() {\r\n return (period: number) => `${this._periodToEndYear(period)}/${this.accountings.accountingMonth}`\r\n }\r\n\r\n /**\r\n * 期を会計年度の開始・終了日に変換する関数を返します\r\n */\r\n public get periodToSpan() {\r\n return (period: number): { from: string, to: string } =>\r\n ({ from: format(this._periodStartDate(period)), to: format(this._periodEndDate(period)) })\r\n }\r\n\r\n private get _periodToEndYear() { return (period: number) => this.accountings.firstPeriodEndYear + period - 1 }\r\n\r\n // 開始日は「選択年の前年、決算月の翌月、1日」、終了日は「選択年、決算月、最終日」 ※Dateコンストラクタの第2引数はindex(1月が0)\r\n // なお、Dateコンストラクタは日に0を指定すると「1つ前の月の最終日」を指す\r\n private get _periodStartDate() { return (period: number) => { return new Date(this._periodToEndYear(period) - 1, this.accountings.accountingMonth, 1) } }\r\n private get _periodEndDate() { return (period: number) => { return new Date(this._periodToEndYear(period), this.accountings.accountingMonth, 0, 23, 59, 59) } }\r\n\r\n @Mutation\r\n private SET_MY_CURRENT_BUILDING(res:GetMyCurrentBuildingResponse): void {\r\n this._myCurrentBuilding = res\r\n }\r\n\r\n @Action\r\n public async fetchMyCurrentBuilding(): Promise {\r\n const res = await myCurrentBuildingClient.getCurrentBuilding()\r\n this.SET_MY_CURRENT_BUILDING(res)\r\n }\r\n\r\n @Action\r\n public async postCurrentBuilding(buildingId:string): Promise {\r\n await myCurrentBuildingClient.postCurrentBuilding(new CurrentBuildingPostRequest(buildingId))\r\n }\r\n}\r\n\r\nexport const myCurrentBuildingModule = getModule(MyCurrentBuildingStore)\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'notifications' })\r\nclass NotificationsStore extends VuexModule {\r\n private _notifications: Notification[] = []\r\n\r\n private _notificationBadgeLastUpdateTime:Date = new Date(0)\r\n\r\n get notifications(): Notification[] {\r\n return this._notifications\r\n }\r\n\r\n @Mutation\r\n private PUSH_NOTIFICATIONS(res: NotificationsGetResponse): void {\r\n this._notifications.push(...res.notifications)\r\n this._notificationBadgeLastUpdateTime = new Date()\r\n }\r\n\r\n @Mutation\r\n private CLEAR_NOTIFICATIONS(): void {\r\n this._notifications = []\r\n }\r\n\r\n @Action\r\n async fetchNotifications(req: NotificationsGetRequest): Promise {\r\n const res = await notificationsClient.getNotifications(req)\r\n this.PUSH_NOTIFICATIONS(res)\r\n this.SET_UNREAD_COUNT(res.unreadCount)\r\n }\r\n\r\n @Action\r\n clearFetchedNotifications(): void {\r\n this.CLEAR_NOTIFICATIONS()\r\n }\r\n\r\n // 既読登録\r\n @Action\r\n async postNotificationsRead(req?: NotificationsReadPostRequest): Promise {\r\n await notificationsClient.postNotificationsRead(req)\r\n }\r\n\r\n private _unreadCount = 0\r\n\r\n get unreadCount():number { return this._unreadCount }\r\n\r\n @Mutation\r\n private SET_UNREAD_COUNT(res:number):void {\r\n this._unreadCount = res\r\n }\r\n\r\n public get notificationBadgeVisible():boolean {\r\n return this._unreadCount > 0\r\n }\r\n\r\n // お知らせ通知バッジ更新\r\n @Action\r\n public async fetchNotificationBadgeVisible():Promise {\r\n if (!skipUpdate(this._notificationBadgeLastUpdateTime)) {\r\n const res = await notificationsClient.getNotifications({ skip: 0, take: 1 })\r\n this.CLEAR_NOTIFICATIONS()\r\n this.PUSH_NOTIFICATIONS(res)\r\n this.SET_UNREAD_COUNT(res.unreadCount)\r\n }\r\n }\r\n\r\n /**\r\n * お知らせ通知バッジ更新\r\n * skipUpdateでバッジ更新のスキップ時間を考慮せず即時更新する\r\n */\r\n @Action\r\n public async fetchNotificationBadgeVisibleNow():Promise {\r\n const res = await notificationsClient.getNotifications({ skip: 0, take: 1 })\r\n this.CLEAR_NOTIFICATIONS()\r\n this.PUSH_NOTIFICATIONS(res)\r\n this.SET_UNREAD_COUNT(res.unreadCount)\r\n }\r\n\r\n // お知らせ詳細\r\n private _notificationDetail: NotificationDetailGetResponse = new NotificationDetailGetResponse()\r\n\r\n get notificationDetail(): NotificationDetailGetResponse {\r\n return this._notificationDetail\r\n }\r\n\r\n @Mutation\r\n private SET_NOTIFICATION_DETAIL(res:NotificationDetailGetResponse) {\r\n this._notificationDetail = res\r\n }\r\n\r\n @Action\r\n async fetchNotificationDetail(req: NotificationDetailGetRequest) {\r\n const res = await notificationsClient.getNotificationDetail(req)\r\n this.SET_NOTIFICATION_DETAIL(res)\r\n }\r\n}\r\n\r\nexport const notificationsModule = getModule(NotificationsStore)\r\n\r\n/**\r\n * 再びその画面に戻ってくる場合を見越してパラメータを保持させたい場合などに、その保管先として用いるストア\r\n * 原則的に保持のキーは画面名(staticRoutes.hoge.name)を指定する想定だが、1画面に複数の保管対象がある場合などは、各画面内で一意になるよう定義する\r\n *\r\n * 保存したパラメータは、保存者の意図しない特定のタイミングでリセットされることがある(ログアウトや特別なボタン押下時など)\r\n * そういったリセットの影響を受けたくないパラメータは、キーの頭文字を小文字アンダースコア(_)で定義すること\r\n *\r\n * リアクティビティが要求されるユースケースは想定していない\r\n */\r\n@Module({ store, dynamic: true, namespaced: true, name: 'paramStorage' })\r\nclass ParamStorageStore extends VuexModule {\r\n private _savedParams: Record = {}\r\n\r\n get savedParam() {\r\n return (key: string, parsedTo: ClassConstructor): T | undefined => {\r\n if (!this._savedParams) return undefined\r\n const stored = this._savedParams[key]\r\n return stored ? plainToClass(parsedTo, stored) : undefined\r\n }\r\n }\r\n\r\n @Mutation private SET({ key, params }: { key: string, params: unknown }) {\r\n if (!this._savedParams) this._savedParams = {}\r\n this._savedParams[key] = params\r\n }\r\n\r\n @Mutation private DELETE(key: string) { delete this._savedParams[key] }\r\n\r\n @Action save(_: { key: string, params: unknown }) { this.SET(_) }\r\n @Action delete(key: string) { this.DELETE(key) }\r\n\r\n @Action deleteAll() {\r\n Object.keys(this._savedParams).filter(key => !key.startsWith('_')).forEach(key => this.DELETE(key))\r\n }\r\n}\r\n\r\nexport const paramStorageModule = getModule(ParamStorageStore)\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'resolutions' })\r\nclass ResolutionsStore extends VuexModule {\r\n // 質問\r\n @Action\r\n async postQuestions(req: QuestionsPostRequest): Promise {\r\n await resolutionsClient.postQuestions(req)\r\n }\r\n\r\n @Action\r\n async putQuestions(req: QuestionsPutRequest): Promise {\r\n await resolutionsClient.putQuestions(req)\r\n }\r\n\r\n @Action\r\n async deleteQuestions(req: QuestionsDeleteRequest): Promise {\r\n await resolutionsClient.deleteQuestions(req)\r\n }\r\n\r\n // 質問詳細\r\n private _questionDetailGet: QuestionDetailGetResponse | null = null\r\n\r\n get questionDetailGet(): QuestionDetailGetResponse | null {\r\n return this._questionDetailGet\r\n }\r\n\r\n @Mutation\r\n private SET_QUESTION_DETAIL(res: QuestionDetailGetResponse | null) {\r\n this._questionDetailGet = res\r\n }\r\n\r\n @Action\r\n async fetchQuestionDetail(req: QuestionDetailGetRequest): Promise {\r\n const res = await resolutionsClient.getQuestionDetail(req)\r\n this.SET_QUESTION_DETAIL(res)\r\n }\r\n\r\n @Action\r\n clearQuestionDetail(): void {\r\n this.SET_QUESTION_DETAIL(null)\r\n }\r\n\r\n // 既読\r\n @Action\r\n async postResolutionReads(req: ResolutionReadsPostRequest) {\r\n await resolutionsClient.postResolutionReads(req)\r\n }\r\n\r\n // 質問一覧\r\n private _myQuestionsInfo = new QuestionsGetResponse()\r\n private _myQuestions: Question[] = []\r\n private _othersQuestions: Question[] = []\r\n\r\n get myQuestionsInfo(): QuestionsGetResponse {\r\n return this._myQuestionsInfo\r\n }\r\n\r\n get myQuestions(): Question[] {\r\n return this._myQuestions\r\n }\r\n\r\n get othersQuestions(): Question[] {\r\n return this._othersQuestions\r\n }\r\n\r\n @Mutation\r\n private SET_MY_QUESTIONS_INFO(res: QuestionsGetResponse): void {\r\n this._myQuestionsInfo = res\r\n }\r\n\r\n @Mutation\r\n private SET_MY_QUESTIONS(questions: Question[]): void {\r\n this._myQuestions = questions\r\n }\r\n\r\n @Mutation\r\n private SET_OTHERS_QUESTIONS(questions: Question[]): void {\r\n this._othersQuestions = questions\r\n }\r\n\r\n @Mutation\r\n private PUSH_OTHERS_QUESTIONS(questions: Question[]): void {\r\n this._othersQuestions.push(...questions)\r\n }\r\n\r\n @Action\r\n async fetchThenOverwriteMyQuestions(req: QuestionsGetRequest): Promise {\r\n if (req.filterType !== FILTER_TYPE.MY_QUESTIONS) return\r\n\r\n const res = await resolutionsClient.getQuestions(req)\r\n this.SET_MY_QUESTIONS_INFO(res)\r\n this.SET_MY_QUESTIONS(res.questions)\r\n }\r\n\r\n @Action\r\n async fetchOthersQuestions(req: QuestionsGetRequest): Promise {\r\n if (req.filterType !== FILTER_TYPE.OTHERS_QUESTIONS) return\r\n\r\n const res = await resolutionsClient.getQuestions(req)\r\n this.PUSH_OTHERS_QUESTIONS(res.questions)\r\n }\r\n\r\n @Action\r\n clearOthersQuestions(): void {\r\n this.SET_OTHERS_QUESTIONS([])\r\n }\r\n\r\n private _unprocessedResolution:{\r\n resolutionIds:string[]\r\n lastUpdate:Date\r\n } = {\r\n resolutionIds: [],\r\n lastUpdate: new Date(0)\r\n }\r\n\r\n public get unprocessedResolutionBadgeVisible():boolean {\r\n return this._unprocessedResolution.resolutionIds.length > 0\r\n }\r\n\r\n // 未対応決議更新\r\n @Mutation\r\n private SET_UNPROCESSED_RESOLUTIONS(resolutionIds:string[]) {\r\n this._unprocessedResolution = {\r\n resolutionIds: resolutionIds,\r\n lastUpdate: new Date()\r\n }\r\n }\r\n\r\n @Action\r\n public async fetchUnprocessedResolutions(): Promise {\r\n if (!skipUpdate(this._unprocessedResolution.lastUpdate)) {\r\n const res = await resolutionsClient.getUnprocessedResolutionsSummary()\r\n this.SET_UNPROCESSED_RESOLUTIONS(res.resolutionIds)\r\n }\r\n }\r\n\r\n @Action\r\n public async fetchUnprocessedResolutionsNow(): Promise {\r\n const res = await resolutionsClient.getUnprocessedResolutionsSummary()\r\n this.SET_UNPROCESSED_RESOLUTIONS(res.resolutionIds)\r\n }\r\n\r\n // 対応した決議を未対応決議から削除\r\n @Action\r\n public deleteProcessedResolution(resolutionId:string):void {\r\n const resolutionIds = this._unprocessedResolution.resolutionIds.filter(e => e !== resolutionId)\r\n this.SET_UNPROCESSED_RESOLUTIONS(resolutionIds)\r\n }\r\n}\r\n\r\nexport const resolutionsModule = getModule(ResolutionsStore)\r\n\r\nexport class AppBar {\r\n visible = true\r\n rightIconVisible = true\r\n title?: string\r\n leftIcon?: string\r\n isExtensionVisible = false\r\n selectedTab = REPAIR_PLAN_TABS.summary.tab\r\n constructor(init?: Partial) { Object.assign(this, init) }\r\n}\r\n\r\nexport class SnackBar {\r\n message?: string\r\n display = false\r\n caution?: boolean\r\n}\r\n\r\n/**\r\n * ナビゲーション項目\r\n */\r\nexport const NAVIGATIONS:NavigationItems = { // ※ オブジェクトのキーとidの値は一致していなければならない\r\n decisionProcesses: { id: 'decisionProcesses', name: 'アイデア投稿・投票', icon: '$emoji_objects_outlined', badgeVisible: false },\r\n menu: { id: 'menu', name: 'メニュー', icon: '$dehaze_round', badgeVisible: false },\r\n} as const\r\nexport type NavigationId = keyof typeof NAVIGATIONS | 'NOT_SELECTED'\r\n\r\n/**\r\n * 共通のページ構造に関する値を保持するモジュール\r\n */\r\n@Module({ store, dynamic: true, namespaced: true, name: 'structure' })\r\nclass StructureStore extends VuexModule {\r\n private _appBar = new AppBar()\r\n private _systemBarVisible = true\r\n private _navigationVisible = true\r\n private _currentNavigation: NavigationId = 'NOT_SELECTED'\r\n private _snackbar = new SnackBar()\r\n\r\n private _reLoginDialogVisible = false\r\n private _simulateReLoginDialogVisible = false\r\n\r\n private _specifiedVAppCss = ''\r\n private _applyBottomMargin = true\r\n private _overlayStacks = 0\r\n private _isPrintView = false\r\n private _globalErrorVisible = true\r\n\r\n get appBar(): AppBar { return this._appBar }\r\n get systemBarVisible(): boolean { return this._systemBarVisible }\r\n get navigationVisible(): boolean { return this._navigationVisible }\r\n get currentNavigation(): NavigationId { return this._currentNavigation }\r\n get snackbar(): SnackBar { return this._snackbar }\r\n\r\n get reLoginDialogVisible(): boolean { return this._reLoginDialogVisible }\r\n get simulateReLoginDialogVisible(): boolean { return this._simulateReLoginDialogVisible }\r\n\r\n get specifiedVAppCss(): string { return this._specifiedVAppCss }\r\n get applyBottomMargin(): boolean { return this._applyBottomMargin }\r\n get showOverlay(): boolean { return this._overlayStacks > 0 }\r\n get isPrintView():boolean { return this._isPrintView }\r\n get globalErrorVisible(): boolean { return this._globalErrorVisible }\r\n\r\n @Mutation\r\n private SET_SPECIFIED_VAPP_CSS(css: string): void { this._specifiedVAppCss = css }\r\n\r\n @Mutation\r\n private SET_CURRENT_NAVIGATION(id: NavigationId): void { this._currentNavigation = id }\r\n\r\n @Mutation\r\n private SET_APP_BAR(appBar: AppBar): void { this._appBar = appBar }\r\n\r\n @Mutation\r\n private SET_SYSTEM_BAR_VISIBLE(visible: boolean):void { this._systemBarVisible = visible }\r\n\r\n @Mutation\r\n private SET_NAVIGATION_VISIBLE(navigation: boolean):void { this._navigationVisible = navigation }\r\n\r\n @Mutation\r\n private SET_RE_LOGIN_DIALOG_VISIBLE(visible: boolean): void { this._reLoginDialogVisible = visible }\r\n\r\n @Mutation\r\n private SET_SIMULATE_RE_LOGIN_DIALOG_VISIBLE(visible: boolean): void { this._simulateReLoginDialogVisible = visible }\r\n\r\n @Mutation\r\n private SET_MARGIN_BOTTOM_VISIBLE(visible: boolean):void { this._applyBottomMargin = visible }\r\n\r\n @Mutation\r\n private ADD_OVERLAY_STACK(diff: number): void { this._overlayStacks = Math.max(this._overlayStacks + diff, 0) /* 最小値をゼロに */ }\r\n\r\n @Mutation\r\n private SET_SNACKBAR(snackbar: SnackBar): void { this._snackbar = snackbar }\r\n\r\n @Mutation\r\n private SET_IS_PRINT_VIEW(isPrintView: boolean): void { this._isPrintView = isPrintView }\r\n\r\n @Mutation\r\n private SET_GLOBAL_ERROR_VISIBLE(globalErrorVisible: boolean): void { this._globalErrorVisible = globalErrorVisible }\r\n\r\n @Action\r\n public specifyVAppCss(css: string): void {\r\n this.SET_SPECIFIED_VAPP_CSS(css)\r\n }\r\n\r\n @Action\r\n public changeCurrentNavigation(groupOfRoutingTo: NavigationGroup): void {\r\n switch (groupOfRoutingTo) {\r\n case NAVIGATION_GROUP.DECISION_PROCESS: this.SET_CURRENT_NAVIGATION(NAVIGATIONS.decisionProcesses.id); break\r\n case NAVIGATION_GROUP.MENU: this.SET_CURRENT_NAVIGATION(NAVIGATIONS.menu.id); break\r\n case NAVIGATION_GROUP.INDEPENDENT: this.SET_CURRENT_NAVIGATION('NOT_SELECTED'); break\r\n default: {\r\n const _exhaustiveCheck: never = groupOfRoutingTo\r\n return _exhaustiveCheck\r\n }\r\n }\r\n }\r\n\r\n @Action\r\n public updateAppBar(appBar: Partial): void {\r\n this.SET_APP_BAR(new AppBar(appBar))\r\n }\r\n\r\n @Action\r\n public deleteAppBar(): void {\r\n this.SET_APP_BAR(new AppBar({ visible: false }))\r\n }\r\n\r\n @Action\r\n public showSystemBar():void {\r\n this.SET_SYSTEM_BAR_VISIBLE(true)\r\n }\r\n\r\n @Action\r\n public hideSystemBar():void {\r\n this.SET_SYSTEM_BAR_VISIBLE(false)\r\n }\r\n\r\n @Action\r\n public showNavigation():void {\r\n this.SET_NAVIGATION_VISIBLE(true)\r\n }\r\n\r\n @Action\r\n public hideNavigation(): void {\r\n this.SET_NAVIGATION_VISIBLE(false)\r\n }\r\n\r\n @Action openReLoginDialog(): void { this.SET_RE_LOGIN_DIALOG_VISIBLE(true) }\r\n @Action closeReLoginDialog(): void { this.SET_RE_LOGIN_DIALOG_VISIBLE(false) }\r\n\r\n @Action openSimulateReLoginDialog(): void { this.SET_SIMULATE_RE_LOGIN_DIALOG_VISIBLE(true) }\r\n @Action closeSimulateReLoginDialog(): void { this.SET_SIMULATE_RE_LOGIN_DIALOG_VISIBLE(false) }\r\n\r\n @Action\r\n public showMarginBottom(): void {\r\n this.SET_MARGIN_BOTTOM_VISIBLE(true)\r\n }\r\n\r\n @Action\r\n public hideMarginBottom(): void {\r\n this.SET_MARGIN_BOTTOM_VISIBLE(false)\r\n }\r\n\r\n @Action public requestShowProgressOverlay(): void { this.ADD_OVERLAY_STACK(1) }\r\n @Action public requestHideProgressOverlay(): void { this.ADD_OVERLAY_STACK(-1) }\r\n @Action public forceHideProgressOverlay(): void { this.ADD_OVERLAY_STACK(-1 * this._overlayStacks) }\r\n\r\n @Action\r\n public updateSnackbarMessage(message: string) : void {\r\n this.SET_SNACKBAR({ message: message, display: true, caution: false })\r\n }\r\n\r\n @Action\r\n public updateSnackbarErrorMessage(message: string) : void {\r\n this.SET_SNACKBAR({ message: message, display: true, caution: true })\r\n }\r\n\r\n @Action\r\n public closeSnackbar(): void {\r\n this.SET_SNACKBAR({ display: false })\r\n }\r\n\r\n @Action\r\n public setSelectExpansionTab(selectedTab:string):void {\r\n this.SET_APP_BAR(Object.assign(this._appBar, { selectedTab: selectedTab }))\r\n }\r\n\r\n @Action\r\n public showPrintView(): void {\r\n this.SET_IS_PRINT_VIEW(true)\r\n }\r\n\r\n @Action\r\n public hidePrintView(): void {\r\n this.SET_IS_PRINT_VIEW(false)\r\n }\r\n\r\n @Action\r\n public showGlobalError(): void {\r\n this.SET_GLOBAL_ERROR_VISIBLE(true)\r\n }\r\n\r\n @Action\r\n public hideGlobalErrorMessage(): void {\r\n this.SET_GLOBAL_ERROR_VISIBLE(false)\r\n }\r\n}\r\n\r\nexport const structureModule = getModule(StructureStore)\r\n\r\n@Module({ store, dynamic: true, namespaced: true, name: 'myBuildings', preserveState: isAlreadyInitialized })\r\nclass MyBuildingsStore extends VuexModule {\r\n private _myBuildingsGet: MyBuildingsGetResponse = new MyBuildingsGetResponse()\r\n\r\n get myBuildingsGet(): MyBuildingsGetResponse {\r\n return this._myBuildingsGet\r\n }\r\n\r\n @Mutation\r\n private SET_MY_BUILDINGS_GET(res: MyBuildingsGetResponse): void {\r\n this._myBuildingsGet = res\r\n }\r\n\r\n @Action\r\n async fetchMyBuildings(): Promise {\r\n const res = await myBuildingsClient.getMyBuildings()\r\n this.SET_MY_BUILDINGS_GET(res)\r\n }\r\n}\r\n\r\nexport const myBuildingsModule = getModule(MyBuildingsStore)\r\n","import { Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators'\nimport { store, isAlreadyLocalStored } from './index'\n\nconst storeName = 'localParamStorage'\n\n/**\n * ローカルストレージに保持する画面パラメータ系の設定\n */\n@Module({ store, dynamic: true, namespaced: true, name: storeName, preserveState: isAlreadyLocalStored })\nclass LocalParamStorageStore extends VuexModule {\n // メールアドレスを記憶する\n private _mailAddress: string | null = ''\n // LMログインIDを記憶する\n private _lmLoginId:string | null = ''\n\n get mailAddress(): string | null { return this._mailAddress }\n @Mutation private SET_MAIL_ADDRESS(mailAddress: string | null): void { this._mailAddress = mailAddress }\n @Action public putMailAddress(mailAddress: string): void { this.SET_MAIL_ADDRESS(mailAddress) }\n @Action public clearMailAddress(): void { this.SET_MAIL_ADDRESS(null) }\n\n get lmLoginId(): string | null { return this._lmLoginId }\n @Mutation private SET_LM_LOGIN_ID(lmLoginId: string | null): void { this._lmLoginId = lmLoginId }\n @Action public putLmLoginId(lmLoginId: string): void { this.SET_LM_LOGIN_ID(lmLoginId) }\n @Action public clearLmLoginId():void { this.SET_LM_LOGIN_ID(null) }\n}\n\nexport const localParamStorageModule = getModule(LocalParamStorageStore)\n","import { PostMyDeviceRequest } from '@/dtos/my/device/post'\nimport { APIClientBase } from './api-client-base'\n\nclass MyDeviceClient extends APIClientBase {\n constructor() {\n super('/my/device')\n }\n\n async postDevice(req: PostMyDeviceRequest): Promise {\n await this.post('', req)\n }\n}\n\nexport const myDeviceClient = new MyDeviceClient()\n","import { DeviceType } from '@/constants/constants'\r\n\r\nexport class PostMyDeviceRequest {\r\n deviceType: DeviceType\r\n deviceToken: string\r\n\r\n constructor(type: DeviceType, token: string) {\r\n this.deviceType = type\r\n this.deviceToken = token\r\n }\r\n}\r\n","import { Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators'\nimport { isAlreadyInitialized, store } from './index'\nimport { nativeBridge } from '@/libs/native-bridge'\n\nimport { myDeviceClient } from '@/clients/my-device-client'\nimport { PostMyDeviceRequest } from '@/dtos/my/device/post'\n\n@Module({ store, dynamic: true, namespaced: true, name: 'myDevice', preserveState: isAlreadyInitialized })\nclass MyDeviceStore extends VuexModule {\n private _deviceToken: string | null = null\n\n @Mutation private SET_DEVICE_TOKEN(token: string | null) { this._deviceToken = token }\n @Action setDeviceToken(token: string) { this.SET_DEVICE_TOKEN(token) }\n\n @Action\n async postMyDevice(): Promise {\n if (!this._deviceToken) return\n\n const req = new PostMyDeviceRequest(nativeBridge.deviceType, this._deviceToken)\n await myDeviceClient.postDevice(req)\n\n this.SET_DEVICE_TOKEN(null)\n }\n}\n\nexport const myDeviceModule = getModule(MyDeviceStore)\n","import { Type } from 'class-transformer'\r\n\r\nexport class Reaction {\r\n assetId!: string\r\n assetPath!: string\r\n}\r\n\r\nexport class ConsultationReactionsResponse {\r\n @Type(() => Reaction) reactions: Reaction[] = []\r\n}\r\n","export class GetCommonPdfResponse {\r\n commonPdfUrl!: string\r\n commonPdfDownloadUrl!: string\r\n}\r\n","import { ConsultationReactionsResponse } from '@/dtos/static-assets/reactions/get'\nimport { GetUserIconsResponse } from '@/dtos/static-assets/user-icons/get'\nimport { GetCommonPdfResponse } from '@/dtos/static-assets/get'\nimport { APIClientBase } from './api-client-base'\n\nclass StaticAssetsClient extends APIClientBase {\n constructor() {\n super('/static-assets')\n }\n\n async getUserIcons():Promise {\n return await this.get('user-icons', null, GetUserIconsResponse)\n }\n\n // リアクション一覧の取得\n getConsultationReactions(): Promise {\n return this.get('/reactions', '', ConsultationReactionsResponse, false)\n }\n\n getRegulationsPdf() {\n return this.get('/regulations', null, GetCommonPdfResponse)\n }\n\n getInitialRegistrationManualPdf() {\n return this.get('/initial-registration-manual', null, GetCommonPdfResponse)\n }\n}\n\nexport const staticAssetsClient = new StaticAssetsClient()\n","import { staticAssetsClient } from '@/clients/static-assets-client'\nimport { ConsultationReactionsResponse } from '@/dtos/static-assets/reactions/get'\nimport type { Reaction } from '@/dtos/static-assets/reactions/get'\nimport { UserIcon } from '@/dtos/static-assets/user-icons/get'\nimport { Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators'\nimport { isAlreadyInitialized, store } from './index'\nimport { GetCommonPdfResponse } from '@/dtos/static-assets/get'\n\n@Module({ store, dynamic: true, namespaced: true, name: 'staticAssets', preserveState: isAlreadyInitialized })\nclass StaticAssetsStore extends VuexModule {\n private _userIcons:UserIcon[] = []\n\n public get userIcons():UserIcon[] {\n return this._userIcons\n }\n\n @Mutation\n private SET_USER_ICONS(items:UserIcon[]):void {\n this._userIcons = items\n }\n\n @Action\n public async fetchUserIcons():Promise {\n const res = await staticAssetsClient.getUserIcons()\n this.SET_USER_ICONS(res.icons)\n }\n\n // リアクション一覧の取得\n private _reactions: Reaction[] = []\n\n get reactions(): Reaction[] { return this._reactions }\n\n @Mutation\n private SET_REACTION_GET(res: ConsultationReactionsResponse): void {\n this._reactions = res.reactions\n }\n\n @Action\n async fetchReactions(): Promise {\n const res = await staticAssetsClient.getConsultationReactions()\n this.SET_REACTION_GET(res)\n }\n\n private _RegulationsPdfGet: GetCommonPdfResponse = new GetCommonPdfResponse()\n\n get RegulationsPdfGet(): GetCommonPdfResponse {\n return this._RegulationsPdfGet\n }\n\n @Mutation\n private SET_REGULATIONS_PDF_GET(res: GetCommonPdfResponse): void {\n this._RegulationsPdfGet = res\n }\n\n @Action\n async fetchRegulationsPdf(): Promise {\n const res = await staticAssetsClient.getRegulationsPdf()\n this.SET_REGULATIONS_PDF_GET(res)\n }\n\n private _InitialRegistrationManualPdfGet: GetCommonPdfResponse = new GetCommonPdfResponse()\n\n get InitialRegistrationManualGet(): GetCommonPdfResponse {\n return this._InitialRegistrationManualPdfGet\n }\n\n @Mutation\n private SET_INITIAL_REGISTRATION_MANUAL_PDF_GET(res: GetCommonPdfResponse): void {\n this._InitialRegistrationManualPdfGet = res\n }\n\n @Action\n async fetchInitialRegistrationManualPdf(): Promise {\n const res = await staticAssetsClient.getInitialRegistrationManualPdf()\n this.SET_INITIAL_REGISTRATION_MANUAL_PDF_GET(res)\n }\n}\n\nexport const staticAssetsModule = getModule(StaticAssetsStore)\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"61\":\"2f79f895\",\"131\":\"d0b4fb5e\",\"146\":\"76186177\",\"382\":\"e3def025\",\"424\":\"0fce66fd\",\"588\":\"60c82a34\",\"605\":\"3b229e5a\",\"634\":\"60665399\",\"647\":\"1642164e\",\"659\":\"85935c71\",\"661\":\"aa60f26d\",\"774\":\"eb9f75ae\",\"776\":\"b67a572f\",\"807\":\"b83be676\",\"830\":\"8c29c569\",\"856\":\"bd97772e\",\"884\":\"e6cba299\",\"1007\":\"d5ac7168\",\"1027\":\"16e09134\",\"1037\":\"5f0080ce\",\"1039\":\"2d30fb42\",\"1114\":\"852ed1a8\",\"1125\":\"96da43bb\",\"1134\":\"1e60ab12\",\"1364\":\"3449f57d\",\"1366\":\"83be96d7\",\"1515\":\"0e51d4c3\",\"1567\":\"3ccb1217\",\"1648\":\"fa6d114c\",\"1668\":\"cb1009a4\",\"1669\":\"2ff182ba\",\"1732\":\"3b188365\",\"1830\":\"24087509\",\"1875\":\"c862afe5\",\"1886\":\"739091ec\",\"1922\":\"c4c6ec48\",\"1927\":\"d55999fb\",\"1950\":\"2933fdd1\",\"1982\":\"74ba0bd8\",\"1994\":\"f2da7bac\",\"2047\":\"ba9d95fe\",\"2090\":\"0f35b472\",\"2204\":\"9c6706c9\",\"2259\":\"6fafa07a\",\"2287\":\"300a82a5\",\"2362\":\"9a47a701\",\"2401\":\"8ad5e541\",\"2441\":\"8e7e80d3\",\"2443\":\"118034eb\",\"2457\":\"0f870a6c\",\"2466\":\"3978b4b7\",\"2600\":\"8bdf2975\",\"2664\":\"0048531c\",\"2696\":\"9ffcaa25\",\"2869\":\"52539998\",\"2910\":\"3bdadb2d\",\"3030\":\"b77d21f6\",\"3132\":\"2683b0c5\",\"3136\":\"158e4f55\",\"3148\":\"3416db91\",\"3182\":\"df4b45a0\",\"3253\":\"07ee83cb\",\"3295\":\"0b965395\",\"3375\":\"b7bdbbe3\",\"3381\":\"0dd9f5e5\",\"3388\":\"28ab0515\",\"3398\":\"98515451\",\"3557\":\"e229e3b0\",\"3690\":\"9b213040\",\"3741\":\"74630fc1\",\"3898\":\"ccd150cd\",\"3938\":\"ab983b21\",\"3943\":\"9493b1db\",\"3979\":\"79bfb813\",\"4075\":\"54b562ca\",\"4166\":\"d7805a5d\",\"4214\":\"d254d85f\",\"4391\":\"46e293ac\",\"4416\":\"18851887\",\"4647\":\"9886209f\",\"4663\":\"7769c341\",\"4754\":\"2ef17652\",\"4805\":\"0963cff3\",\"4850\":\"d318ad47\",\"4909\":\"17020b02\",\"4971\":\"ba906a38\",\"4981\":\"13b4ac0f\",\"5008\":\"3938d3cb\",\"5129\":\"a7faa202\",\"5140\":\"8910e213\",\"5159\":\"02704d43\",\"5321\":\"0c1d2b7b\",\"5344\":\"804834ba\",\"5381\":\"9c299643\",\"5461\":\"d341ff47\",\"5478\":\"8a124108\",\"5500\":\"d376a604\",\"5566\":\"5d0baeab\",\"5597\":\"38c6e0f1\",\"5608\":\"70ccce34\",\"5644\":\"5fbb13ab\",\"5654\":\"8fdaa761\",\"5696\":\"7410ee76\",\"5770\":\"942a88c9\",\"5922\":\"d70507b1\",\"5923\":\"a722c486\",\"6001\":\"c3d3ad91\",\"6045\":\"b89cf11d\",\"6129\":\"9d2a07ba\",\"6133\":\"1e44d5c4\",\"6144\":\"a911a286\",\"6189\":\"7225970a\",\"6351\":\"e4f481ce\",\"6353\":\"3c51d707\",\"6437\":\"6c0dd74e\",\"6468\":\"89f5e53e\",\"6475\":\"f05266b4\",\"6576\":\"300b568f\",\"6642\":\"3f11a264\",\"6678\":\"5b9494ad\",\"6702\":\"09f2fcca\",\"6820\":\"b222c2bc\",\"6826\":\"309ba46a\",\"6832\":\"6084e56e\",\"6942\":\"b6cb01a6\",\"6965\":\"7e45c9a6\",\"7007\":\"818eb7f7\",\"7107\":\"e90182a8\",\"7182\":\"eb836179\",\"7301\":\"ee541275\",\"7468\":\"f7728eb0\",\"7470\":\"6453fd4c\",\"7501\":\"dbdb86bf\",\"7539\":\"e7ca1021\",\"7541\":\"baeb2e61\",\"7648\":\"a15105aa\",\"7658\":\"bbfd5d15\",\"7695\":\"f6649bcb\",\"7696\":\"fa48db8c\",\"7761\":\"03c9209a\",\"7861\":\"926d676e\",\"7980\":\"51b1f511\",\"8111\":\"ecd7d422\",\"8175\":\"2c35d223\",\"8296\":\"29182dfb\",\"8325\":\"461b1063\",\"8335\":\"863f5382\",\"8342\":\"5e197b0f\",\"8351\":\"c5687b12\",\"8393\":\"ce580897\",\"8408\":\"4141dac1\",\"8419\":\"a53f2ea9\",\"8446\":\"229a266f\",\"8448\":\"4c8d8015\",\"8458\":\"d270ac49\",\"8623\":\"7af10e6f\",\"8625\":\"0507ab87\",\"8632\":\"c5a739ab\",\"8660\":\"c87e4178\",\"8689\":\"23f5a76b\",\"8812\":\"e38253cb\",\"8903\":\"5e72b61b\",\"8948\":\"e7ef739b\",\"8982\":\"e7d77694\",\"8996\":\"29fbe702\",\"9021\":\"75acf1c8\",\"9047\":\"75ee327a\",\"9061\":\"af957999\",\"9121\":\"2e65f5b6\",\"9192\":\"b2fa8d26\",\"9209\":\"e13c1a1c\",\"9242\":\"b917cbb6\",\"9302\":\"a6cc884b\",\"9314\":\"2ce2cbe1\",\"9342\":\"708fa59f\",\"9461\":\"b5d03a20\",\"9609\":\"29c6a25f\",\"9665\":\"9df38331\",\"9699\":\"651049f5\",\"9717\":\"933d1474\",\"9720\":\"3602d1cb\",\"9733\":\"1e925a73\",\"9734\":\"d6881a0f\",\"9761\":\"3b92d683\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"61\":\"631bfc1d\",\"131\":\"cb232b99\",\"146\":\"7a267a4d\",\"382\":\"47b3c772\",\"424\":\"ae68cef8\",\"588\":\"fff8cf0f\",\"605\":\"f41c97a8\",\"634\":\"a8a5ac42\",\"647\":\"7c336788\",\"659\":\"6d094e4b\",\"661\":\"0aad3a40\",\"774\":\"7978033c\",\"830\":\"47b3c772\",\"856\":\"d95e2c85\",\"884\":\"5c8291c3\",\"1007\":\"c29e4ac8\",\"1027\":\"4b45e473\",\"1114\":\"8cab6679\",\"1366\":\"e24bc026\",\"1515\":\"bc9c315b\",\"1567\":\"112168de\",\"1648\":\"e31abe63\",\"1668\":\"2f256de0\",\"1875\":\"a2bfee72\",\"1886\":\"04b238e2\",\"1922\":\"9454c92f\",\"1982\":\"5ee7677c\",\"2047\":\"e5cb5e08\",\"2204\":\"e40fdabd\",\"2287\":\"f9880686\",\"2362\":\"12a9338a\",\"2401\":\"9c2f9043\",\"2443\":\"ab77993c\",\"2457\":\"a22b9689\",\"2664\":\"429c3ec7\",\"2869\":\"17e7729b\",\"2910\":\"6e351208\",\"3132\":\"530b37f1\",\"3136\":\"1714535f\",\"3182\":\"8211c2ad\",\"3295\":\"4b45e473\",\"3375\":\"9ff241f4\",\"3381\":\"d90949ed\",\"3388\":\"1c40a7dd\",\"3398\":\"740ca459\",\"3557\":\"9736de95\",\"3938\":\"01c37756\",\"3943\":\"9fc5e0de\",\"3979\":\"6e351208\",\"4075\":\"0e39bbc1\",\"4166\":\"d95e2c85\",\"4416\":\"e9a0369a\",\"4647\":\"e31abe63\",\"4754\":\"90d28580\",\"4850\":\"60bc9463\",\"4909\":\"653550b3\",\"4971\":\"299eda80\",\"4981\":\"3fe38556\",\"5140\":\"12c222eb\",\"5159\":\"449e7da6\",\"5321\":\"4cd091a5\",\"5381\":\"5e536c3c\",\"5500\":\"5dddc18f\",\"5566\":\"3d9c112f\",\"5597\":\"775314ac\",\"5608\":\"112168de\",\"5644\":\"4c16cebd\",\"5922\":\"adeb432f\",\"6129\":\"9b31ecff\",\"6133\":\"d6354426\",\"6189\":\"5fc0aae7\",\"6437\":\"640934ea\",\"6468\":\"6ddfeaa4\",\"6702\":\"cadfe362\",\"6820\":\"baa74623\",\"6826\":\"9bb03da6\",\"6832\":\"ec7764f7\",\"6965\":\"8f2f009b\",\"7007\":\"6b7cf3f5\",\"7107\":\"ac92743a\",\"7470\":\"83c83292\",\"7541\":\"d0939c93\",\"7648\":\"72589bb9\",\"7658\":\"1abc1898\",\"7761\":\"00b3dd87\",\"8111\":\"94590218\",\"8325\":\"33480b3f\",\"8335\":\"574e51c9\",\"8351\":\"7df95fbf\",\"8393\":\"6ddfeaa4\",\"8419\":\"05abdc49\",\"8446\":\"05abdc49\",\"8448\":\"c77274c2\",\"8623\":\"10f567f3\",\"8625\":\"b553378b\",\"8632\":\"aa631052\",\"8689\":\"0857a29c\",\"8948\":\"feb935eb\",\"8982\":\"67b1702e\",\"9021\":\"84c9aa5d\",\"9047\":\"2fc10d66\",\"9061\":\"05abdc49\",\"9121\":\"00554509\",\"9192\":\"ae68cef8\",\"9302\":\"469e6c80\",\"9342\":\"31dfd727\",\"9461\":\"1201a1fc\",\"9609\":\"70a7dfcf\",\"9665\":\"baa74623\",\"9717\":\"83225cfa\",\"9733\":\"05abdc49\",\"9734\":\"79a04a25\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"smooth-e.web.owner:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"61\":1,\"131\":1,\"146\":1,\"382\":1,\"424\":1,\"588\":1,\"605\":1,\"634\":1,\"647\":1,\"659\":1,\"661\":1,\"774\":1,\"830\":1,\"856\":1,\"884\":1,\"1007\":1,\"1027\":1,\"1114\":1,\"1366\":1,\"1515\":1,\"1567\":1,\"1648\":1,\"1668\":1,\"1875\":1,\"1886\":1,\"1922\":1,\"1982\":1,\"2047\":1,\"2204\":1,\"2287\":1,\"2362\":1,\"2401\":1,\"2443\":1,\"2457\":1,\"2664\":1,\"2869\":1,\"2910\":1,\"3132\":1,\"3136\":1,\"3182\":1,\"3295\":1,\"3375\":1,\"3381\":1,\"3388\":1,\"3398\":1,\"3557\":1,\"3938\":1,\"3943\":1,\"3979\":1,\"4075\":1,\"4166\":1,\"4416\":1,\"4647\":1,\"4754\":1,\"4850\":1,\"4909\":1,\"4971\":1,\"4981\":1,\"5140\":1,\"5159\":1,\"5321\":1,\"5381\":1,\"5500\":1,\"5566\":1,\"5597\":1,\"5608\":1,\"5644\":1,\"5922\":1,\"6129\":1,\"6133\":1,\"6189\":1,\"6437\":1,\"6468\":1,\"6702\":1,\"6820\":1,\"6826\":1,\"6832\":1,\"6965\":1,\"7007\":1,\"7107\":1,\"7470\":1,\"7541\":1,\"7648\":1,\"7658\":1,\"7761\":1,\"8111\":1,\"8325\":1,\"8335\":1,\"8351\":1,\"8393\":1,\"8419\":1,\"8446\":1,\"8448\":1,\"8623\":1,\"8625\":1,\"8632\":1,\"8689\":1,\"8948\":1,\"8982\":1,\"9021\":1,\"9047\":1,\"9061\":1,\"9121\":1,\"9192\":1,\"9302\":1,\"9342\":1,\"9461\":1,\"9609\":1,\"9665\":1,\"9717\":1,\"9733\":1,\"9734\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^8(393|446)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksmooth_e_web_owner\"] = self[\"webpackChunksmooth_e_web_owner\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(2379); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["INNER_ERROR_STATUS","VALIDATION","BAD_REQUEST","OPTIMISTIC_LOCK","PERMISSION_DENIED","NOT_FOUND","SESSION_NOT_FOUND","APPLICATION","SERVICE_UNAVAILABLE","NOT_PROCESSED","ERROR_SHORT_MESSAGES","UNEXPECTED","ACCESS_TOKEN","APIClientBase","constructor","additionalBaseUrl","AxiosRequestConfig","baseURL","timeout","headers","withCredentials","this","_client","interceptors","request","use","config","accessToken","hasErrors","clearErrors","response","error","forceHideProgressOverlay","data","innerStatus","innerStatusCode","setErrors","updateSnackbarErrorMessage","currentLoginType","FROM_OWNER_APPS","NORMAL","openReLoginDialog","FROM_ADMIN_APPS","SIMULATE","openSimulateReLoginDialog","DUMMY","createSession","_exhaustiveCheck","replace","name","notFound","push","maintenance","setGlobalErrors","get","url","params","responseClass","showProgressOverlay","requestShowProgressOverlay","fullResponse","_formatQueryParams","requestHideProgressOverlay","getPlain","responseType","post","body","put","delete","Object","entries","reduce","acc","key","value","Array","isArray","forEach","v","idx","DEVICE_TYPE","IOS","ANDROID","WEB","WEB_TYPE","CRIOS","GSA","EDGIOS","SAFARI","AUTH_STATE","ANONYMOUS","HAVE_TO_IDENTIFY","HAVE_TO_INITIALIZE","HAVE_TO_SELECT_BUILDING","AUTHORIZED","HAVE_TO_MFA","HAVE_TO_CAUTION","LOGIN_TYPE","LM_DUMMY_ROOM_NUMBER","FUNCTION_TYPE","OWNER_IDEA_DETAIL","ADMIN_IDEA_DETAIL","GM_RESOLUTION_DETAIL","ONLINE_RESOLUTION_DETAIL","REPAIR_PLAN","NOTIFICATIONS","NOTIFICATION_DETAIL","CONSULTATION_DETAIL","QUESTIONNAIRE_DETAIL","QUESTIONNAIRE_REPORT_DETAIL","SIMPLE_REPAIR_PLAN","DECISION_PROCESS_TYPE","ALL","IDEA","OPINION","AGREEMENT","RESOLUTION","IDEA_TYPES","OWNER_IDEA","ADMIN_IDEA","IDEA_STATES","OWNER","POSTED","ADOPTED","REJECTED","CANCELED","DELETED","ADMIN","ACCEPTING_AGREEMENT","COUNTING","RELEASED","ACCEPTING_OPINION","IDEA_STATE_MAP","Map","LABEL","IS_ARCHIVED","IS_DELETED","PROCESS","ADMIN_IDEA_ITEM_TYPES","PLAN","COUNTING_RESULT","MEETING","MEETING_SUMMARY","RESOLUTION_TYPES","GENERAL_MEETING","ONLINE","RESOLUTION_STATES","ACCEPTING_ALL","ACCEPTING_STATEMENT","ACCEPTING_VOTE","RESOLUTION_STATE_MAP","IS_ACTIONABLE","IS_QUESTIONABLE","IS_RELEASED","STATEMENT_TYPES","PRESENT_LOCAL","DELEGATE","VOTE","PRESENT_REMOTE","HOLDING_METHOD_TYPE","LOCAL","REMOTE","BOTH","VOTE_TYPES","BLANK","FOR","AGAINST","VOTE_TYPE_MAP","MATERIAL_TYPES","IMAGE","VIDEO","PDF","NOTIFICATION_ELEMENT_TYPES","BODY","ATTACHMENT","LINK","SMOOTH_E","EXTERNAL","EMAIL","PHONE_NUMBER","HEADING","LEVEL2","LEVEL3","LEVEL4","BULLET_POINT","DOT","INDEX","HORIZON","ROUNDED_SQUARE","LIGHT_GRAY","BUTTON","POST_IDEA","CONSULTATION","NOTIFICATION_SETTING_TYPES","SOME","MINIMUM","HIERARCHY_TYPES","FIRST_HIERARCHY","SECOND_HIERARCHY","THIRD_HIERARCHY","HIERARCHY_TYPE_DOT_MAP","HIERARCHY_TYPE_INDEX_MAP","REPAIR_PLAN_TABS","summary","tab","detail","REPAIR_PLAN_TYPES","GA_ANONYMOUS","GA_USER_CATEGORY","ADMIN_DUMMY","ADMIN_SIMULATE","DUMMY_AUTH_ERROR_MESSAGE","USER_DISABLED","ACCOUNT_LOCKED","INVALID_CREDENTIAL","INVALID_PASSWORD","INVALID_CURRENT_PASSWORD","PASSWORD_CHANGE_LOCKED","MFA_NOT_SET","MFA_TIMEOUT","INVALID_MFA","NO_BUILDING_ASSIGNED","UNEXPECTED_ERROR","QUESTIONNAIRE_STATE","OPEN","QUESTIONNAIRE_QUESTION_TYPE","FREE_TEXT","SINGLE_SELECTION","MULTIPLE_SELECTIONS","QUESTIONNAIRE_QUESTION_ELEMENT_TYPES","FREE","SELECTABLE_OPTION","OTHER_OPTION","QUESTIONNAIRE_STATE_MAP","REQUIRE_ANSWER","UNREAD_VISIBLE","APP_VERSION_ERROR_MESSAGE","CHART_TYPES","HORIZONTAL","PIE","LOGIN_RESULT_CODE","SUCCESS","UNAUTHORIZED","OwnerProfileDto","AdditionalIdentificationPostRequest","email","pass","authCode","condominiumCd","roomNumber","super","AdditionalIdentificationPostResponse","IdentificationPostRequest","IDENTIFY_RESULT_CODE","FORBIDDEN","IdentificationPostResponse","LoginPostRequest","emailAddress","password","LoginPostResponse","SimulateLoginPostRequest","adminId","oneTimeToken","SimulateLoginPostResponse","SsoVerifyPostRequest","refreshToken","SSO_VERIFY_RESULT_CODE","UNAUTHENTICATED","SsoVerifyPostResponse","User","Material","BaseIdea","Budget","MaterialInput","NotificationDetailGetRequest","notificationId","FFNTransition","BulletPoint","FFNElement","NotificationDetailGetResponse","NotificationsGetRequest","initialTake","skip","take","Transition","Notification","NotificationsGetResponse","NotificationsReadPostRequest","QuestionsDeleteRequest","resolutionId","questionId","FILTER_TYPE","MY_QUESTIONS","OTHERS_QUESTIONS","QuestionsGetRequest","filterType","Answer","Question","QuestionsGetResponse","questions","QuestionsPostRequest","QuestionsPutRequest","ResolutionReadsPostRequest","UserIcon","GetUserIconsResponse","isNormalLogin","isDummyLogin","isSimulateLogin","isAdmin","sendPageViewGtm","gtm","path","pageName","trackEvent","event","user_id","getUserId","page_path","dimension1","basics","buildingId","dimension2","dimension3","buildingName","dimension4","profile","dimension5","userName","dimension6","dimension7","getGAUserCategory","dimension8","analyticsModule","dimension9","notificationType","userId","notifiedUserId","NativeBridge","_nativeEventReceiver","_deviceType","_webType","_isIos","_isAndroid","userAgent","navigator","toLowerCase","endsWith","includes","window","eventReceiver","call","bind","deviceType","isWeb","isAndroid","isIos","isGsa","isCrios","isEdgios","isSafari","isNativeApp","isPdfViewerRequired","isNativeEvent","eventName","webkit","messageHandlers","android","callNative","arg","onWeb","postMessage","undefined","register","callback","nativeBridge","join","paths","p","startsWith","length","substr","_hoisted_1","id","_hoisted_2","class","render","_ctx","_cache","$props","$setup","$data","$options","_component_sm_system_bar","_component_sm_drawer","_component_sm_app_bar","_component_sm_progress_overlay","_component_sm_text","_component_router_view","_component_v_main","_component_sm_dialog","_component_sm_bottom_navigation","_component_sm_snackbar","_component_v_app","specifiedVAppCss","default","$vuetify","display","mobile","systemBarVisible","systemBarFirstBtn","drawerVisible","icon","text","notificationBadgeVisible","goToConsultations","goToNotifications","isPrintView","items","navigations","current","currentNavigation","transTo","appBar","app","modelValue","selectedTab","$event","label","title","leftIcon","$router","back","isExtensionVisible","onClickExtensionBtn","rightIconVisible","isConsultation","showOverlay","globalErrors","globalErrorVisible","color","_","showReLoginDialog","forceRelogin","showSimulateReLoginDialog","displaySnackbar","message","snackbar","caution","App","isNavOpen","reLoginDialogVisible","simulateReLoginDialogVisible","assign","decisionProcesses","badgeVisible","unprocessedResolutionBadgeVisible","availabilities","navigationVisible","bottomNavigationVisible","applyBottomMargin","newValue","setSelectExpansionTab","smMainClassDecider","closeSnackbar","closeReLoginDialog","$isDummyLogin","signOut","lmLogin","postLogout","login","deleteAll","Promise","all","fetchNotificationBadgeVisible","fetchUnprocessedResolutions","pushExceptSamePage","consultations","notifications","repairPlanType","repairPlanUpdates","simpleRepairPlanUpdates","navigationId","fetchUnprocessedResolutionsNow","menu","routeName","$route","mounted","router","afterEach","to","externalLogin","$gtm","toString","gaPropertyRetentionPages","landing","externalLoginCompletion","loginCompletion","clearAnalyticsProperties","components","SmText","SmAppBar","SmBottomNavigation","SmDrawer","SmDialog","SmProgressOverlay","SmSnackbar","SmSystemBar","__exports__","standardClass","parsed","MaterialIcon","themes","theme","suffix","substring","indexOf","type","String","height","width","d","script","lightCustomTheme","dark","colors","primary","secondary","accent","info","warning","success","reflection","background","customIconSets","component","iconProp","h","vuetify","directives","thresholds","md","mobileBreakpoint","icons","defaultSet","aliases","sm_chat","SmChatIcon","sm_questionnaire","SmQuestionnaireIcon","sm_warning","SmWarningIcon","sm_idea_plan","SmIdeaPlanIcon","sm_plan","SmPlanIcon","missingMaterialIcons","sets","defaultTheme","cspNonce","ids","LogClient","_reportedStack","postLogReport","req","report","JSON","stringify","resolve","pop","unshift","postCSPReport","logClient","LogPostRequest","stack","currentPath","additionalInfo","stackTrace","CSPReportPostRequest","blockedURI","columnNumber","documentURI","effectiveDirective","lineNumber","originalPolicy","referrer","sourceFile","statusCode","violatedDirective","Auth","region","userPoolId","userPoolWebClientId","authenticationFlowType","oauth","configure","currencyFormatter","Intl","NumberFormat","style","currency","commaFormatter","globalProperties","$filters","format","comma","Math","round","commaByThousand","generateMessage","ja","inputValue","passwordPattern","test","targetPassword","_params_","_field_","reportError","err","_isRouter","currentRoute","e","console","vueRouter","errorHandler","vm","Error","IGNORABLE_ERRORS","addEventListener","reason","warnHandler","msg","trace","warn","mount","CurrentUserManager","_userLoginType","$isNormalLogin","$isSimulateLogin","$isAdmin","configBase","r","alias","meta","props","children","routeRecordRaws","formatRouteRecordRaws","routes","history","scrollBehavior","setTimeout","top","left","values","map","_route","logoutCompletion","lmLanding","lmPassword","lmAuthenticationKey","lmCaution","selectBuilding","simulateLoginCompletion","identification","additionalIdentification","onBoarding","initialization","contactAnonymous","account","ownerIdeaDetail","adminIdeaDetail","ideaUpdatesList","gmResolutionDetail","onlineResolutionDetail","gmResolutionQuestionsList","onlineResolutionQuestionsList","questionnairesList","questionnaireAnswerConfirmation","questionnairesReportDetail","archivedQuestionnairesList","questionnaireDetailTop","repairPlan","repairPlanUpdateDetail","repairPlanPrint","repairPlanDetailPrint","notificationDetail","simpleRepairPlan","simpleRepairPlanDetailPrintPage","simpleRepairPlanConstructionPrint","support","supportQa","contact","archivedDecisionProcesses","initialRegistrationManual","deleted","beforeEach","from","next","toMeta","necessaryAuthState","currentAuthState","keepGlobalError","specifyVAppCss","changeCurrentNavigation","navigationGroup","hideAppBar","deleteAppBar","updateAppBar","hideSystemBar","showSystemBar","hideNavigation","showNavigation","removeBottomMargin","hideMarginBottom","showMarginBottom","showPrintView","hidePrintView","hideGlobalErrorMessage","showGlobalError","NAVIGATION_GROUP","INDEPENDENT","DECISION_PROCESS","MENU","RouteMetaData","partial","StaticRoute","staticRoutes","route","query","redirect","rest","additionalParams","redirectedParams","queryParams","PRESERVED_STATE_SESSION_PATHS","PRESERVED_STATE_LOCAL_PATHS","BADGE_SKIP_TIME","skipUpdate","lastTime","Date","now","getTime","AuthAdminPostRequest","cognitoAccessToken","AuthAdminPostResponse","LogoutPostResponse","SsoVerifyGetResponse","AuthClient","postLogin","postIdentification","postAdditionalIdentification","getSsoVerify","postSsoVerify","postAdminLogin","postSimulateLogin","authClient","BuildingBasics","Requirements","Accountings","AvailabilitiesSutekiNet","Availabilities","sutekiNet","GetMyCurrentBuildingResponse","requirements","accountings","MyCurrentBuildingClient","getCurrentBuilding","postCurrentBuilding","myCurrentBuildingClient","Building","MyBuildingsGetResponse","buildings","MyBuildingsClient","getMyBuildings","myBuildingsClient","QuestionDetailGetRequest","QuestionDetailGetResponse","UnprocessedResolutionsSummaryGetResponse","ResolutionsClient","getUnprocessedResolutionsSummary","postResolutionReads","getQuestions","getQuestionDetail","postQuestions","putQuestions","deleteQuestions","resolutionsClient","NotificationsClient","getNotifications","postNotificationsRead","getNotificationDetail","notificationsClient","CurrentBuildingPostRequest","rawError","KEY","clearInvalidStorage","isAlreadyInitialized","sessionStorage","getItem","isAlreadyLocalStored","localStorage","persistedSessionStorage","storage","persistedLocalStorage","store","modules","plugins","_v","removeItem","parse","ErrorsStore","_fieldErrors","_globalErrors","fieldErrors","fieldId","keys","SET_ERRORS","errors","SET_GLOBAL_ERRORS","CLEAR_ERRORS","CLEAR_FIELD_ERRORS","clearFieldErrors","filedId","dynamic","namespaced","errorsModule","statusBeforeLogin","Credential","CHALLENGE_NAMES","PASSWORD_REQUIRED","MFA","CognitoStore","_user","_isAuthenticated","_credential","isNewPasswordRequired","challengeName","isMFARequired","phoneNumber","challengeParam","CODE_DELIVERY_DESTINATION","isAuthenticated","SET_USER","user","SET_IS_AUTHENTICATED","val","SET_CREDENTIAL","credential","signIn","cognitoSignIn","authModule","setStateHaveToMfa","confirmSignIn","code","session","currentSession","getAccessToken","getJwtToken","deleteCredential","completeNewPassword","resendingSMS","changePassword","currentAuthenticatedUser","currentPassword","newPassword","preserveState","cognitoModule","AuthStore","_memorizedQueryParams","_accessToken","_authState","_loginType","_profile","_loginResponse","_identificationResponse","_additionalIdentificationResponse","_ssoVerifyPreRequest","_ssoVerifyResult","_logoutResponse","_simulateLoginResponse","memorizedQueryParams","SET_QUERY_PARAMS","memorizeQueryParams","clearQueryParams","SET_ACCESS_TOKEN","token","SET_AUTH_STATE","state","SET_LOGIN_TYPE","SET_PROFILE","loginResponse","SET_LOGIN_RESPONSE","res","resultCode","authState","identificationResponse","SET_IDENTIFICATION_RESPONSE","requiredAdditionalIdentification","additionalIdentificationResponse","SET_ADDITIONAL_IDENTIFICATION_RESPONSE","clearIdentification","clearAdditionalIdentification","markAsSelectedBuilding","ssoVerifyPreRequest","SET_SSO_VERIFY_GET","ssoVerifyResult","SET_SSO_VERIFY_RESULT","logoutRedirect","redirectTo","SET_LOGOUT_RESPONSE","markAsInitialized","changeIcon","myCurrentBuildingModule","myBuildingsModule","fetchMyBuildings","myBuildingsGet","some","b","structureModule","setStateAnonymous","setStateHaveToCaution","setStateSelectBuilding","setStateLMAuthorized","simulateLoginResponse","SET_SIMULATE_LOGIN_RESPONSE","Record","Omit","AnalyticsStore","_notificationId","_notifiedUserId","_notificationType","_ownerNotificationId","SET_NOTIFICATION_ID","setNotificationId","SET_NOTIFIED_USER_ID","setNotifiedUserId","SET_NOTIFICATION_TYPE","setNotificationType","ownerNotificationId","SET_OWNER_NOTIFICATION_ID","setOwnerNotificationId","getFullYear","getMonth","getDate","MyCurrentBuildingStore","_myCurrentBuilding","currentPeriod","base","firstPeriodEndYear","_periodEndDate","periodToYearMonth","period","_periodToEndYear","accountingMonth","periodToSpan","_periodStartDate","SET_MY_CURRENT_BUILDING","fetchMyCurrentBuilding","NotificationsStore","_notifications","_notificationBadgeLastUpdateTime","_unreadCount","_notificationDetail","PUSH_NOTIFICATIONS","CLEAR_NOTIFICATIONS","fetchNotifications","SET_UNREAD_COUNT","unreadCount","clearFetchedNotifications","fetchNotificationBadgeVisibleNow","SET_NOTIFICATION_DETAIL","fetchNotificationDetail","notificationsModule","ParamStorageStore","_savedParams","savedParam","parsedTo","stored","SET","DELETE","save","filter","paramStorageModule","ResolutionsStore","_questionDetailGet","_myQuestionsInfo","_myQuestions","_othersQuestions","_unprocessedResolution","resolutionIds","lastUpdate","questionDetailGet","SET_QUESTION_DETAIL","fetchQuestionDetail","clearQuestionDetail","myQuestionsInfo","myQuestions","othersQuestions","SET_MY_QUESTIONS_INFO","SET_MY_QUESTIONS","SET_OTHERS_QUESTIONS","PUSH_OTHERS_QUESTIONS","fetchThenOverwriteMyQuestions","fetchOthersQuestions","clearOthersQuestions","SET_UNPROCESSED_RESOLUTIONS","deleteProcessedResolution","resolutionsModule","AppBar","init","visible","SnackBar","NAVIGATIONS","StructureStore","_appBar","_systemBarVisible","_navigationVisible","_currentNavigation","_snackbar","_reLoginDialogVisible","_simulateReLoginDialogVisible","_specifiedVAppCss","_applyBottomMargin","_overlayStacks","_isPrintView","_globalErrorVisible","SET_SPECIFIED_VAPP_CSS","css","SET_CURRENT_NAVIGATION","SET_APP_BAR","SET_SYSTEM_BAR_VISIBLE","SET_NAVIGATION_VISIBLE","navigation","SET_RE_LOGIN_DIALOG_VISIBLE","SET_SIMULATE_RE_LOGIN_DIALOG_VISIBLE","SET_MARGIN_BOTTOM_VISIBLE","ADD_OVERLAY_STACK","diff","max","SET_SNACKBAR","SET_IS_PRINT_VIEW","SET_GLOBAL_ERROR_VISIBLE","groupOfRoutingTo","closeSimulateReLoginDialog","updateSnackbarMessage","Partial","MyBuildingsStore","_myBuildingsGet","SET_MY_BUILDINGS_GET","storeName","LocalParamStorageStore","_mailAddress","_lmLoginId","mailAddress","SET_MAIL_ADDRESS","putMailAddress","clearMailAddress","lmLoginId","SET_LM_LOGIN_ID","putLmLoginId","clearLmLoginId","localParamStorageModule","MyDeviceClient","postDevice","myDeviceClient","PostMyDeviceRequest","deviceToken","MyDeviceStore","_deviceToken","SET_DEVICE_TOKEN","setDeviceToken","postMyDevice","myDeviceModule","Reaction","ConsultationReactionsResponse","reactions","GetCommonPdfResponse","StaticAssetsClient","getUserIcons","getConsultationReactions","getRegulationsPdf","getInitialRegistrationManualPdf","staticAssetsClient","StaticAssetsStore","_userIcons","_reactions","_RegulationsPdfGet","_InitialRegistrationManualPdfGet","userIcons","SET_USER_ICONS","fetchUserIcons","SET_REACTION_GET","fetchReactions","RegulationsPdfGet","SET_REGULATIONS_PDF_GET","fetchRegulationsPdf","InitialRegistrationManualGet","SET_INITIAL_REGISTRATION_MANUAL_PDF_GET","fetchInitialRegistrationManualPdf","staticAssetsModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","n","getter","__esModule","a","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","t","mode","then","ns","create","def","getOwnPropertyNames","definition","o","defineProperty","enumerable","f","chunkId","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","target","head","appendChild","Symbol","toStringTag","nmd","createStylesheet","fullhref","oldTag","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","insertBefore","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}