{"version":3,"file":"xxmachina-components-routes-queries.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/routes/queries/queries.routes.ts","../../../../../packages/@xxmachina/components/src/lib/routes/queries/xxmachina-components-routes-queries.ts"],"sourcesContent":["import { computed, effect, inject } from '@angular/core';\nimport { ActivatedRoute, Routes } from '@angular/router';\nimport { Query } from '@xxmachina/common/domain/models';\nimport { QueryHasuraRepository } from '@xxmachina/common/infra/repository/hasura';\nimport { QueryFirestoreRepository } from '@xxmachina/common/infra/repository/firestore';\nimport { defaultDataAccessor, provideDataAccessor } from '@ng-atomic/common/pipes/data-accessor';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectAll } from '@ng-atomic/common/stores/entities';\nimport { AppFrameStore } from '@ng-atomic/components/frames/app';\nimport { IndexPage, IndexPageStore } from '@ng-atomic/components/pages/_index';\nimport { applyToInput, provideEffect } from '@ng-atomic/core';\nimport { plainToInstanceWithValid } from '@nx-ddd/core';\nimport dayjs, { isDayjs } from 'dayjs';\n\nenum ActionId {\n\tEXPORT_QUERIES = '[@xxmachina/app] EXPORT_QUERIES',\n\tIMPORT_QUERIES = '[@xxmachina/app] IMPORT_QUERIES',\n}\n\nexport const routes: Routes = [\n\t{\n\t\tpath: '',\n\t\tcomponent: IndexPage,\n\t\tloadChildren: () => import('./pages/pages.routes').then(m => m.routes),\n\t\tdata: {\n\t\t\ttitle: 'Queries',\n\t\t\tpreload: true,\n\t\t},\n\t\tproviders: [\n\t\t\tprovideDataAccessor(() => (item: Query, key) => {\n\t\t\t\tswitch (key) {\n\t\t\t\t\tcase 'description': return item?.graphql?.query;\n\t\t\t\t\tcase 'subLine': {\n\t\t\t\t\t\treturn item?.createdAt;\n\t\t\t\t\t\t// return item?.createdAt?.format('YYYY/MM/DD HH:mm:ss');\n\t\t\t\t\t}\n\t\t\t\t\tdefault: return defaultDataAccessor(item, key);\n\t\t\t\t}\n\t\t\t}, {merge: false}),\n\t\t\tIndexPageStore.provideDefault(),\n\t\t\tIndexPageStore.Config.provide(() => {\n\t\t\t\tconst route = inject(ActivatedRoute);\n\t\t\t\treturn config => ({\n\t\t\t\t\t...config,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...config.style,\n\t\t\t\t\t\twidth: 'var(--page-width-lv1)',\n\t\t\t\t\t},\n\t\t\t\t\tnavEndActions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'menu',\n\t\t\t\t\t\t\ticon: 'more_vert',\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: AppFrameStore.ActionId.NAVIGATE,\n\t\t\t\t\t\t\t\t\ticon: 'add',\n\t\t\t\t\t\t\t\t\tname: 'クエリの作成',\n\t\t\t\t\t\t\t\t\tpayload: {commands: ['new'], extras: {relativeTo: route}},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: ActionId.EXPORT_QUERIES,\n\t\t\t\t\t\t\t\t\ticon: 'download',\n\t\t\t\t\t\t\t\t\tname: 'クエリのエクスポート'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: ActionId.IMPORT_QUERIES,\n\t\t\t\t\t\t\t\t\ticon: 'upload',\n\t\t\t\t\t\t\t\t\tname: 'クエリのインポート'\n\t\t\t\t\t\t\t\t}\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\ttitle: 'クエリ一覧',\n\t\t\t\t\ttype: 'list',\n\t\t\t\t\ttableChildrenKey: null,\n\t\t\t\t\tgroupedBy: null as unknown as string,\n\t\t\t\t})\n\t\t\t}),\n\t\t\tIndexPageStore.Initializer.provide((store) => {\n\t\t\t\tconst queries = injectAll(Query);\n\t\t\t\tconst compare = (a: any, b: any) => {\n\t\t\t\t\tif (isDayjs(a.createdAt) && isDayjs(b.createdAt)) {\n\t\t\t\t\t\treturn a.createdAt.isBefore(b.createdAt) ? 1 : -1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn a.createdAt < b.createdAt ? 1 : -1;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tfunction isISO8601(value: any) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn dayjs(value).toISOString() === value;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst itemsMap = computed(() => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'名前付き': {\n\t\t\t\t\t\t\titems: queries().filter((query) => !isISO8601(query.title)).sort(compare),\n\t\t\t\t\t\t\titemsLength: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'履歴': {\n\t\t\t\t\t\t\titems: queries().filter((query) => query).sort(compare),\n\t\t\t\t\t\t\titemsLength: 0,\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\teffect(() => { applyToInput(store, 'itemsMap', itemsMap()); });\n\t\t\t}),\n\t\t\tprovideEffect(ActionId.EXPORT_QUERIES, () => {\n\t\t\t\tconst store = inject(IndexPageStore);\n\t\t\t\tconst app = inject(AppService);\n\t\t\t\treturn () => {\n\t\t\t\t\tapp.clipboard.copy(JSON.stringify(store.itemsMap()['名前付き'].items, null, 2));\n\t\t\t\t\tapp.snackBar.open('JSONをコピーしました');\n\t\t\t\t}\n\t\t\t}),\n\t\t\tprovideEffect(ActionId.IMPORT_QUERIES, () => {\n\t\t\t\t// const repo = inject(QueryHasuraRepository);\n\t\t\t\tconst repo = inject(QueryFirestoreRepository);\n\t\t\t\tconst app = inject(AppService);\n\t\t\t\treturn () => {\n\t\t\t\t\tconst json = prompt('JSONを貼り付けてください');\n\t\t\t\t\tif (!json) return;\t\n\t\t\t\t\tconst items = JSON.parse(json) as any[];\n\t\t\t\t\tconst queries = items.map(item => plainToInstanceWithValid(Query, item));\n\t\t\t\t\tapp.loading.await(() => {\n\t\t\t\t\t\treturn repo.saveMany(queries).then(() => {\n\t\t\t\t\t\t\tapp.snackBar.open('クエリをインポートしました');\n\t\t\t\t\t\t}).catch((error) => {\n\t\t\t\t\t\t\tconsole.error(error);\n\t\t\t\t\t\t\tapp.snackBar.open('クエリのインポートに失敗しました');\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}),\n\t\t]\n\t}\n];","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}