@dssp/project 1.0.0-y.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +15 -15
- package/dist-client/bootstrap.d.ts +0 -0
- package/dist-client/bootstrap.js +0 -2
- package/dist-client/bootstrap.js.map +0 -1
- package/dist-client/index.d.ts +0 -1
- package/dist-client/index.js +0 -2
- package/dist-client/index.js.map +0 -1
- package/dist-client/pages/lib/chatbot-widget.d.ts +0 -53
- package/dist-client/pages/lib/chatbot-widget.js +0 -631
- package/dist-client/pages/lib/chatbot-widget.js.map +0 -1
- package/dist-client/pages/lib/select2-component.d.ts +0 -23
- package/dist-client/pages/lib/select2-component.js +0 -181
- package/dist-client/pages/lib/select2-component.js.map +0 -1
- package/dist-client/pages/lib/waether.d.ts +0 -7
- package/dist-client/pages/lib/waether.js +0 -156
- package/dist-client/pages/lib/waether.js.map +0 -1
- package/dist-client/pages/project/component/pagenation.d.ts +0 -18
- package/dist-client/pages/project/component/pagenation.js +0 -142
- package/dist-client/pages/project/component/pagenation.js.map +0 -1
- package/dist-client/pages/project/component/project-update-header.d.ts +0 -1
- package/dist-client/pages/project/component/project-update-header.js +0 -121
- package/dist-client/pages/project/component/project-update-header.js.map +0 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.d.ts +0 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.js +0 -309
- package/dist-client/pages/project/popup/checklist/task-checklist-attachment-list-popup.js.map +0 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.d.ts +0 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.js +0 -357
- package/dist-client/pages/project/popup/checklist/task-checklist-comment-list-popup.js.map +0 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.d.ts +0 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.js +0 -681
- package/dist-client/pages/project/popup/checklist/task-checklist-create-popup.js.map +0 -1
- package/dist-client/pages/project/popup/checklist/task-checklist-view.d.ts +0 -32
- package/dist-client/pages/project/popup/checklist/task-checklist-view.js +0 -621
- package/dist-client/pages/project/popup/checklist/task-checklist-view.js.map +0 -1
- package/dist-client/pages/project/popup/popup-plan-export.d.ts +0 -10
- package/dist-client/pages/project/popup/popup-plan-export.js +0 -242
- package/dist-client/pages/project/popup/popup-plan-export.js.map +0 -1
- package/dist-client/pages/project/popup/popup-plan-upload.d.ts +0 -13
- package/dist-client/pages/project/popup/popup-plan-upload.js +0 -265
- package/dist-client/pages/project/popup/popup-plan-upload.js.map +0 -1
- package/dist-client/pages/project/popup/popup-project-create.d.ts +0 -12
- package/dist-client/pages/project/popup/popup-project-create.js +0 -152
- package/dist-client/pages/project/popup/popup-project-create.js.map +0 -1
- package/dist-client/pages/project/popup/popup-task-upload.d.ts +0 -9
- package/dist-client/pages/project/popup/popup-task-upload.js +0 -105
- package/dist-client/pages/project/popup/popup-task-upload.js.map +0 -1
- package/dist-client/pages/project/project-completed-list.d.ts +0 -23
- package/dist-client/pages/project/project-completed-list.js +0 -322
- package/dist-client/pages/project/project-completed-list.js.map +0 -1
- package/dist-client/pages/project/project-detail.d.ts +0 -41
- package/dist-client/pages/project/project-detail.js +0 -959
- package/dist-client/pages/project/project-detail.js.map +0 -1
- package/dist-client/pages/project/project-list.d.ts +0 -185
- package/dist-client/pages/project/project-list.js +0 -402
- package/dist-client/pages/project/project-list.js.map +0 -1
- package/dist-client/pages/project/project-plan-management.d.ts +0 -33
- package/dist-client/pages/project/project-plan-management.js +0 -487
- package/dist-client/pages/project/project-plan-management.js.map +0 -1
- package/dist-client/pages/project/project-setting-list.d.ts +0 -29
- package/dist-client/pages/project/project-setting-list.js +0 -431
- package/dist-client/pages/project/project-setting-list.js.map +0 -1
- package/dist-client/pages/project/project-task-list.d.ts +0 -18
- package/dist-client/pages/project/project-task-list.js +0 -306
- package/dist-client/pages/project/project-task-list.js.map +0 -1
- package/dist-client/pages/project/project-task.d.ts +0 -51
- package/dist-client/pages/project/project-task.js +0 -686
- package/dist-client/pages/project/project-task.js.map +0 -1
- package/dist-client/pages/project/project-update.d.ts +0 -47
- package/dist-client/pages/project/project-update.js +0 -1197
- package/dist-client/pages/project/project-update.js.map +0 -1
- package/dist-client/pages/resource/construction-detail-type-popup.d.ts +0 -2
- package/dist-client/pages/resource/construction-detail-type-popup.js +0 -197
- package/dist-client/pages/resource/construction-detail-type-popup.js.map +0 -1
- package/dist-client/pages/resource/construction-type-management.d.ts +0 -34
- package/dist-client/pages/resource/construction-type-management.js +0 -200
- package/dist-client/pages/resource/construction-type-management.js.map +0 -1
- package/dist-client/pages/resource/inspection-drawing-type-management.d.ts +0 -48
- package/dist-client/pages/resource/inspection-drawing-type-management.js +0 -234
- package/dist-client/pages/resource/inspection-drawing-type-management.js.map +0 -1
- package/dist-client/pages/resource/inspection-part-popup.d.ts +0 -2
- package/dist-client/pages/resource/inspection-part-popup.js +0 -197
- package/dist-client/pages/resource/inspection-part-popup.js.map +0 -1
- package/dist-client/pages/resource/resource-importer.d.ts +0 -10
- package/dist-client/pages/resource/resource-importer.js +0 -101
- package/dist-client/pages/resource/resource-importer.js.map +0 -1
- package/dist-client/pages/resource/resource-list-page.d.ts +0 -63
- package/dist-client/pages/resource/resource-list-page.js +0 -332
- package/dist-client/pages/resource/resource-list-page.js.map +0 -1
- package/dist-client/pages/resource/worker-type-management.d.ts +0 -34
- package/dist-client/pages/resource/worker-type-management.js +0 -180
- package/dist-client/pages/resource/worker-type-management.js.map +0 -1
- package/dist-client/pages/task/task-importer.d.ts +0 -10
- package/dist-client/pages/task/task-importer.js +0 -101
- package/dist-client/pages/task/task-importer.js.map +0 -1
- package/dist-client/pages/task/task-list-page.d.ts +0 -63
- package/dist-client/pages/task/task-list-page.js +0 -323
- package/dist-client/pages/task/task-list-page.js.map +0 -1
- package/dist-client/pages/task-resource/task-resource-importer.d.ts +0 -10
- package/dist-client/pages/task-resource/task-resource-importer.js +0 -101
- package/dist-client/pages/task-resource/task-resource-importer.js.map +0 -1
- package/dist-client/pages/task-resource/task-resource-list-page.d.ts +0 -63
- package/dist-client/pages/task-resource/task-resource-list-page.js +0 -332
- package/dist-client/pages/task-resource/task-resource-list-page.js.map +0 -1
- package/dist-client/route.d.ts +0 -1
- package/dist-client/route.js +0 -44
- package/dist-client/route.js.map +0 -1
- package/dist-client/tsconfig.tsbuildinfo +0 -1
- package/dist-server/controllers/export-tasks.d.ts +0 -7
- package/dist-server/controllers/export-tasks.js +0 -29
- package/dist-server/controllers/export-tasks.js.map +0 -1
- package/dist-server/controllers/import-task.d.ts +0 -3
- package/dist-server/controllers/import-task.js +0 -113
- package/dist-server/controllers/import-task.js.map +0 -1
- package/dist-server/controllers/index.d.ts +0 -0
- package/dist-server/controllers/index.js +0 -1
- package/dist-server/controllers/index.js.map +0 -1
- package/dist-server/controllers/parse-excel.d.ts +0 -2
- package/dist-server/controllers/parse-excel.js +0 -74
- package/dist-server/controllers/parse-excel.js.map +0 -1
- package/dist-server/controllers/types.d.ts +0 -18
- package/dist-server/controllers/types.js +0 -3
- package/dist-server/controllers/types.js.map +0 -1
- package/dist-server/index.d.ts +0 -3
- package/dist-server/index.js +0 -7
- package/dist-server/index.js.map +0 -1
- package/dist-server/middlewares/index.d.ts +0 -1
- package/dist-server/middlewares/index.js +0 -7
- package/dist-server/middlewares/index.js.map +0 -1
- package/dist-server/migrations/1723861466413-seed-roles.d.ts +0 -5
- package/dist-server/migrations/1723861466413-seed-roles.js +0 -117
- package/dist-server/migrations/1723861466413-seed-roles.js.map +0 -1
- package/dist-server/migrations/1723861466414-seed-codes.d.ts +0 -5
- package/dist-server/migrations/1723861466414-seed-codes.js +0 -150
- package/dist-server/migrations/1723861466414-seed-codes.js.map +0 -1
- package/dist-server/migrations/1723861476419-seed-resources.d.ts +0 -5
- package/dist-server/migrations/1723861476419-seed-resources.js +0 -57
- package/dist-server/migrations/1723861476419-seed-resources.js.map +0 -1
- package/dist-server/migrations/1723861478420-seed-/bsample-project.d.ts +0 -5
- package/dist-server/migrations/1723861478420-seed-/bsample-project.js +0 -68
- package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +0 -1
- package/dist-server/migrations/1723861478421-seed-/bsample-tasks.d.ts +0 -5
- package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js +0 -189
- package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +0 -1
- package/dist-server/migrations/index.d.ts +0 -1
- package/dist-server/migrations/index.js +0 -12
- package/dist-server/migrations/index.js.map +0 -1
- package/dist-server/routes.d.ts +0 -1
- package/dist-server/routes.js +0 -105
- package/dist-server/routes.js.map +0 -1
- package/dist-server/service/construction-detail-type/construction-detail-type-mutation.d.ts +0 -6
- package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +0 -56
- package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +0 -1
- package/dist-server/service/construction-detail-type/construction-detail-type-query.d.ts +0 -9
- package/dist-server/service/construction-detail-type/construction-detail-type-query.js +0 -53
- package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +0 -1
- package/dist-server/service/construction-detail-type/construction-detail-type-type.d.ts +0 -11
- package/dist-server/service/construction-detail-type/construction-detail-type-type.js +0 -43
- package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +0 -1
- package/dist-server/service/construction-detail-type/construction-detail-type.d.ts +0 -15
- package/dist-server/service/construction-detail-type/construction-detail-type.js +0 -69
- package/dist-server/service/construction-detail-type/construction-detail-type.js.map +0 -1
- package/dist-server/service/construction-detail-type/index.d.ts +0 -5
- package/dist-server/service/construction-detail-type/index.js +0 -9
- package/dist-server/service/construction-detail-type/index.js.map +0 -1
- package/dist-server/service/construction-type/construction-type-mutation.d.ts +0 -6
- package/dist-server/service/construction-type/construction-type-mutation.js +0 -64
- package/dist-server/service/construction-type/construction-type-mutation.js.map +0 -1
- package/dist-server/service/construction-type/construction-type-query.d.ts +0 -13
- package/dist-server/service/construction-type/construction-type-query.js +0 -92
- package/dist-server/service/construction-type/construction-type-query.js.map +0 -1
- package/dist-server/service/construction-type/construction-type-type.d.ts +0 -11
- package/dist-server/service/construction-type/construction-type-type.js +0 -43
- package/dist-server/service/construction-type/construction-type-type.js.map +0 -1
- package/dist-server/service/construction-type/construction-type.d.ts +0 -18
- package/dist-server/service/construction-type/construction-type.js +0 -83
- package/dist-server/service/construction-type/construction-type.js.map +0 -1
- package/dist-server/service/construction-type/index.d.ts +0 -5
- package/dist-server/service/construction-type/index.js +0 -9
- package/dist-server/service/construction-type/index.js.map +0 -1
- package/dist-server/service/index.d.ts +0 -15
- package/dist-server/service/index.js +0 -59
- package/dist-server/service/index.js.map +0 -1
- package/dist-server/service/inspection-drawing-type/index.d.ts +0 -5
- package/dist-server/service/inspection-drawing-type/index.js +0 -9
- package/dist-server/service/inspection-drawing-type/index.js.map +0 -1
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.d.ts +0 -6
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +0 -64
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +0 -1
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.d.ts +0 -12
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +0 -83
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +0 -1
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.d.ts +0 -10
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +0 -39
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +0 -1
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type.d.ts +0 -16
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +0 -72
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +0 -1
- package/dist-server/service/inspection-part/index.d.ts +0 -5
- package/dist-server/service/inspection-part/index.js +0 -9
- package/dist-server/service/inspection-part/index.js.map +0 -1
- package/dist-server/service/inspection-part/inspection-part-mutation.d.ts +0 -6
- package/dist-server/service/inspection-part/inspection-part-mutation.js +0 -55
- package/dist-server/service/inspection-part/inspection-part-mutation.js.map +0 -1
- package/dist-server/service/inspection-part/inspection-part-query.d.ts +0 -10
- package/dist-server/service/inspection-part/inspection-part-query.js +0 -66
- package/dist-server/service/inspection-part/inspection-part-query.js.map +0 -1
- package/dist-server/service/inspection-part/inspection-part-type.d.ts +0 -11
- package/dist-server/service/inspection-part/inspection-part-type.js +0 -43
- package/dist-server/service/inspection-part/inspection-part-type.js.map +0 -1
- package/dist-server/service/inspection-part/inspection-part.d.ts +0 -15
- package/dist-server/service/inspection-part/inspection-part.js +0 -69
- package/dist-server/service/inspection-part/inspection-part.js.map +0 -1
- package/dist-server/service/manager/index.d.ts +0 -7
- package/dist-server/service/manager/index.js +0 -11
- package/dist-server/service/manager/index.js.map +0 -1
- package/dist-server/service/manager/manager-mutation.d.ts +0 -5
- package/dist-server/service/manager/manager-mutation.js +0 -39
- package/dist-server/service/manager/manager-mutation.js.map +0 -1
- package/dist-server/service/manager/manager-query.d.ts +0 -4
- package/dist-server/service/manager/manager-query.js +0 -39
- package/dist-server/service/manager/manager-query.js.map +0 -1
- package/dist-server/service/manager/manager-type.d.ts +0 -15
- package/dist-server/service/manager/manager-type.js +0 -62
- package/dist-server/service/manager/manager-type.js.map +0 -1
- package/dist-server/service/manager/manager.d.ts +0 -8
- package/dist-server/service/manager/manager.js +0 -41
- package/dist-server/service/manager/manager.js.map +0 -1
- package/dist-server/service/project/index.d.ts +0 -5
- package/dist-server/service/project/index.js +0 -9
- package/dist-server/service/project/index.js.map +0 -1
- package/dist-server/service/project/project-mutation.d.ts +0 -12
- package/dist-server/service/project/project-mutation.js +0 -339
- package/dist-server/service/project/project-mutation.js.map +0 -1
- package/dist-server/service/project/project-query.d.ts +0 -23
- package/dist-server/service/project/project-query.js +0 -215
- package/dist-server/service/project/project-query.js.map +0 -1
- package/dist-server/service/project/project-type.d.ts +0 -36
- package/dist-server/service/project/project-type.js +0 -128
- package/dist-server/service/project/project-type.js.map +0 -1
- package/dist-server/service/project/project.d.ts +0 -52
- package/dist-server/service/project/project.js +0 -190
- package/dist-server/service/project/project.js.map +0 -1
- package/dist-server/service/resource/index.d.ts +0 -6
- package/dist-server/service/resource/index.js +0 -10
- package/dist-server/service/resource/index.js.map +0 -1
- package/dist-server/service/resource/resource-mutation.d.ts +0 -10
- package/dist-server/service/resource/resource-mutation.js +0 -132
- package/dist-server/service/resource/resource-mutation.js.map +0 -1
- package/dist-server/service/resource/resource-query.d.ts +0 -11
- package/dist-server/service/resource/resource-query.js +0 -81
- package/dist-server/service/resource/resource-query.js.map +0 -1
- package/dist-server/service/resource/resource-type.d.ts +0 -17
- package/dist-server/service/resource/resource-type.js +0 -65
- package/dist-server/service/resource/resource-type.js.map +0 -1
- package/dist-server/service/resource/resource.d.ts +0 -24
- package/dist-server/service/resource/resource.js +0 -93
- package/dist-server/service/resource/resource.js.map +0 -1
- package/dist-server/service/task/index.d.ts +0 -5
- package/dist-server/service/task/index.js +0 -9
- package/dist-server/service/task/index.js.map +0 -1
- package/dist-server/service/task/task-mutation.d.ts +0 -10
- package/dist-server/service/task/task-mutation.js +0 -135
- package/dist-server/service/task/task-mutation.js.map +0 -1
- package/dist-server/service/task/task-query.d.ts +0 -21
- package/dist-server/service/task/task-query.js +0 -219
- package/dist-server/service/task/task-query.js.map +0 -1
- package/dist-server/service/task/task-type.d.ts +0 -31
- package/dist-server/service/task/task-type.js +0 -114
- package/dist-server/service/task/task-type.js.map +0 -1
- package/dist-server/service/task/task.d.ts +0 -35
- package/dist-server/service/task/task.js +0 -151
- package/dist-server/service/task/task.js.map +0 -1
- package/dist-server/service/task-checklist-binding/index.d.ts +0 -5
- package/dist-server/service/task-checklist-binding/index.js +0 -9
- package/dist-server/service/task-checklist-binding/index.js.map +0 -1
- package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.d.ts +0 -5
- package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.js +0 -186
- package/dist-server/service/task-checklist-binding/task-checklist-binding-mutation.js.map +0 -1
- package/dist-server/service/task-checklist-binding/task-checklist-binding-query.d.ts +0 -8
- package/dist-server/service/task-checklist-binding/task-checklist-binding-query.js +0 -61
- package/dist-server/service/task-checklist-binding/task-checklist-binding-query.js.map +0 -1
- package/dist-server/service/task-checklist-binding/task-checklist-binding-type.d.ts +0 -15
- package/dist-server/service/task-checklist-binding/task-checklist-binding-type.js +0 -57
- package/dist-server/service/task-checklist-binding/task-checklist-binding-type.js.map +0 -1
- package/dist-server/service/task-checklist-binding/task-checklist-binding.d.ts +0 -22
- package/dist-server/service/task-checklist-binding/task-checklist-binding.js +0 -106
- package/dist-server/service/task-checklist-binding/task-checklist-binding.js.map +0 -1
- package/dist-server/service/task-resource/index.d.ts +0 -6
- package/dist-server/service/task-resource/index.js +0 -10
- package/dist-server/service/task-resource/index.js.map +0 -1
- package/dist-server/service/task-resource/task-resource-mutation.d.ts +0 -10
- package/dist-server/service/task-resource/task-resource-mutation.js +0 -132
- package/dist-server/service/task-resource/task-resource-mutation.js.map +0 -1
- package/dist-server/service/task-resource/task-resource-query.d.ts +0 -7
- package/dist-server/service/task-resource/task-resource-query.js +0 -50
- package/dist-server/service/task-resource/task-resource-query.js.map +0 -1
- package/dist-server/service/task-resource/task-resource-type.d.ts +0 -17
- package/dist-server/service/task-resource/task-resource-type.js +0 -65
- package/dist-server/service/task-resource/task-resource-type.js.map +0 -1
- package/dist-server/service/task-resource/task-resource.d.ts +0 -13
- package/dist-server/service/task-resource/task-resource.js +0 -59
- package/dist-server/service/task-resource/task-resource.js.map +0 -1
- package/dist-server/service/worker-type/index.d.ts +0 -5
- package/dist-server/service/worker-type/index.js +0 -9
- package/dist-server/service/worker-type/index.js.map +0 -1
- package/dist-server/service/worker-type/worker-type-mutation.d.ts +0 -6
- package/dist-server/service/worker-type/worker-type-mutation.js +0 -64
- package/dist-server/service/worker-type/worker-type-mutation.js.map +0 -1
- package/dist-server/service/worker-type/worker-type-query.d.ts +0 -11
- package/dist-server/service/worker-type/worker-type-query.js +0 -78
- package/dist-server/service/worker-type/worker-type-query.js.map +0 -1
- package/dist-server/service/worker-type/worker-type-type.d.ts +0 -11
- package/dist-server/service/worker-type/worker-type-type.js +0 -43
- package/dist-server/service/worker-type/worker-type-type.js.map +0 -1
- package/dist-server/service/worker-type/worker-type.d.ts +0 -16
- package/dist-server/service/worker-type/worker-type.js +0 -77
- package/dist-server/service/worker-type/worker-type.js.map +0 -1
- package/dist-server/tsconfig.tsbuildinfo +0 -1
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
export declare class Select2Component extends LitElement {
|
|
3
|
-
static styles: import("lit").CSSResult;
|
|
4
|
-
placeholder: string;
|
|
5
|
-
options: Array<{
|
|
6
|
-
name: string;
|
|
7
|
-
value: string;
|
|
8
|
-
}>;
|
|
9
|
-
selectedValues: string[];
|
|
10
|
-
showOptions: boolean;
|
|
11
|
-
get selectedItems(): ({
|
|
12
|
-
name: string;
|
|
13
|
-
value: string;
|
|
14
|
-
} | undefined)[];
|
|
15
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
16
|
-
connectedCallback(): void;
|
|
17
|
-
disconnectedCallback(): void;
|
|
18
|
-
private _handleOutsideClick;
|
|
19
|
-
private _toggleOptions;
|
|
20
|
-
private _handleSelect;
|
|
21
|
-
private _handleRemove;
|
|
22
|
-
private _dispatchEvent;
|
|
23
|
-
}
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { LitElement, html, css } from 'lit';
|
|
3
|
-
import { customElement, property, state } from 'lit/decorators.js';
|
|
4
|
-
let Select2Component = class Select2Component extends LitElement {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.placeholder = '';
|
|
8
|
-
this.options = [];
|
|
9
|
-
this.selectedValues = [];
|
|
10
|
-
this.showOptions = false;
|
|
11
|
-
this._handleOutsideClick = (event) => {
|
|
12
|
-
const path = event.composedPath();
|
|
13
|
-
if (!path.includes(this)) {
|
|
14
|
-
this.showOptions = false;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
get selectedItems() {
|
|
19
|
-
return this.selectedValues.map(id => this.options.find(option => option.value === id)).filter(Boolean);
|
|
20
|
-
}
|
|
21
|
-
render() {
|
|
22
|
-
return html `
|
|
23
|
-
<div select-container>
|
|
24
|
-
<div tags @click="${this._toggleOptions}">${this.placeholder}</div>
|
|
25
|
-
${this.showOptions
|
|
26
|
-
? html `
|
|
27
|
-
<div options>
|
|
28
|
-
${this.options.map(option => html `
|
|
29
|
-
<div
|
|
30
|
-
option
|
|
31
|
-
?selected=${this.selectedValues.includes(option.value)}
|
|
32
|
-
@click=${() => this._handleSelect(option.value)}
|
|
33
|
-
>
|
|
34
|
-
${option.name}
|
|
35
|
-
</div>
|
|
36
|
-
`)}
|
|
37
|
-
</div>
|
|
38
|
-
`
|
|
39
|
-
: ''}
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<div selected-tags>
|
|
43
|
-
${this.selectedItems.map((tag) => html `
|
|
44
|
-
<div tag @click=${() => this._handleRemove(tag.value)}>
|
|
45
|
-
${tag.name}
|
|
46
|
-
<span tag-close>×</span>
|
|
47
|
-
</div>
|
|
48
|
-
`)}
|
|
49
|
-
</div>
|
|
50
|
-
`;
|
|
51
|
-
}
|
|
52
|
-
connectedCallback() {
|
|
53
|
-
super.connectedCallback();
|
|
54
|
-
document.addEventListener('click', this._handleOutsideClick);
|
|
55
|
-
}
|
|
56
|
-
disconnectedCallback() {
|
|
57
|
-
super.disconnectedCallback();
|
|
58
|
-
document.removeEventListener('click', this._handleOutsideClick);
|
|
59
|
-
}
|
|
60
|
-
_toggleOptions() {
|
|
61
|
-
this.showOptions = !this.showOptions;
|
|
62
|
-
}
|
|
63
|
-
_handleSelect(optionValue) {
|
|
64
|
-
if (this.selectedValues.includes(optionValue)) {
|
|
65
|
-
// 이미 선택된 옵션을 선택한 경우 해제
|
|
66
|
-
this.selectedValues = this.selectedValues.filter(value => value !== optionValue);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
// 선택되지 않은 옵션 추가
|
|
70
|
-
this.selectedValues = [...this.selectedValues, optionValue];
|
|
71
|
-
}
|
|
72
|
-
this.showOptions = false;
|
|
73
|
-
this._dispatchEvent(this.selectedValues);
|
|
74
|
-
}
|
|
75
|
-
_handleRemove(tagValue) {
|
|
76
|
-
this.selectedValues = this.selectedValues.filter(value => value !== tagValue);
|
|
77
|
-
this._dispatchEvent(this.selectedValues);
|
|
78
|
-
}
|
|
79
|
-
_dispatchEvent(selectedValues) {
|
|
80
|
-
this.dispatchEvent(new CustomEvent('selection-changed', {
|
|
81
|
-
detail: { selectedValues }, // ID 배열을 부모로 전달
|
|
82
|
-
bubbles: true,
|
|
83
|
-
composed: true
|
|
84
|
-
}));
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
Select2Component.styles = css `
|
|
88
|
-
div[select-container] {
|
|
89
|
-
position: relative;
|
|
90
|
-
border: 1px solid rgba(51, 51, 51, 0.2);
|
|
91
|
-
border-radius: 5px;
|
|
92
|
-
padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);
|
|
93
|
-
font-size: 14px;
|
|
94
|
-
color: var(--md-sys-color-primary);
|
|
95
|
-
}
|
|
96
|
-
div[select-container]:focus {
|
|
97
|
-
border: 1px solid #1f7fd9;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
div[dropdown] {
|
|
101
|
-
border: 1px solid #ccc;
|
|
102
|
-
padding: var(--spacing-small, 4px);
|
|
103
|
-
cursor: pointer;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
div[options] {
|
|
107
|
-
position: absolute;
|
|
108
|
-
left: 0;
|
|
109
|
-
top: 30px;
|
|
110
|
-
min-width: 50%;
|
|
111
|
-
border: 1px solid #ccc;
|
|
112
|
-
background-color: var(--md-sys-color-surface-tint);
|
|
113
|
-
color: var(--md-sys-color-on-primary);
|
|
114
|
-
max-height: 150px;
|
|
115
|
-
overflow-y: auto;
|
|
116
|
-
display: block;
|
|
117
|
-
z-index: 1;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
div[option] {
|
|
121
|
-
padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);
|
|
122
|
-
cursor: pointer;
|
|
123
|
-
border-bottom: 1px solid rgba(0, 0, 0, 0.4);
|
|
124
|
-
}
|
|
125
|
-
div[option]:last-child {
|
|
126
|
-
border-bottom: none;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
div[option]:hover {
|
|
130
|
-
background-color: var(--md-sys-color-tertiary-container);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
div[option][selected] {
|
|
134
|
-
background-color: var(--md-sys-color-tertiary-container);
|
|
135
|
-
font-weight: bold;
|
|
136
|
-
color: var(--md-sys-color-on-primary);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
div[selected-tags] {
|
|
140
|
-
display: flex;
|
|
141
|
-
flex-wrap: wrap;
|
|
142
|
-
gap: var(--spacing-small, 4px);
|
|
143
|
-
margin-top: var(--spacing-small, 4px);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
div[tag] {
|
|
147
|
-
background-color: #2e79be;
|
|
148
|
-
color: white;
|
|
149
|
-
padding: var(--spacing-tiny, 2px) var(--spacing-medium, 8px);
|
|
150
|
-
border-radius: 20px;
|
|
151
|
-
font-size: 12px;
|
|
152
|
-
display: inline-flex;
|
|
153
|
-
align-items: center;
|
|
154
|
-
cursor: pointer;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
span[tag-close] {
|
|
158
|
-
margin-left: var(--spacing-small, 4px);
|
|
159
|
-
}
|
|
160
|
-
`;
|
|
161
|
-
__decorate([
|
|
162
|
-
property({ type: String }),
|
|
163
|
-
__metadata("design:type", String)
|
|
164
|
-
], Select2Component.prototype, "placeholder", void 0);
|
|
165
|
-
__decorate([
|
|
166
|
-
property({ type: Array }),
|
|
167
|
-
__metadata("design:type", Array)
|
|
168
|
-
], Select2Component.prototype, "options", void 0);
|
|
169
|
-
__decorate([
|
|
170
|
-
property({ type: Array }),
|
|
171
|
-
__metadata("design:type", Array)
|
|
172
|
-
], Select2Component.prototype, "selectedValues", void 0);
|
|
173
|
-
__decorate([
|
|
174
|
-
state(),
|
|
175
|
-
__metadata("design:type", Boolean)
|
|
176
|
-
], Select2Component.prototype, "showOptions", void 0);
|
|
177
|
-
Select2Component = __decorate([
|
|
178
|
-
customElement('select2-component')
|
|
179
|
-
], Select2Component);
|
|
180
|
-
export { Select2Component };
|
|
181
|
-
//# sourceMappingURL=select2-component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select2-component.js","sourceRoot":"","sources":["../../../client/pages/lib/select2-component.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\n@customElement('select2-component')\nexport class Select2Component extends LitElement {\n static styles = css`\n div[select-container] {\n position: relative;\n border: 1px solid rgba(51, 51, 51, 0.2);\n border-radius: 5px;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n font-size: 14px;\n color: var(--md-sys-color-primary);\n }\n div[select-container]:focus {\n border: 1px solid #1f7fd9;\n }\n\n div[dropdown] {\n border: 1px solid #ccc;\n padding: var(--spacing-small, 4px);\n cursor: pointer;\n }\n\n div[options] {\n position: absolute;\n left: 0;\n top: 30px;\n min-width: 50%;\n border: 1px solid #ccc;\n background-color: var(--md-sys-color-surface-tint);\n color: var(--md-sys-color-on-primary);\n max-height: 150px;\n overflow-y: auto;\n display: block;\n z-index: 1;\n }\n\n div[option] {\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n cursor: pointer;\n border-bottom: 1px solid rgba(0, 0, 0, 0.4);\n }\n div[option]:last-child {\n border-bottom: none;\n }\n\n div[option]:hover {\n background-color: var(--md-sys-color-tertiary-container);\n }\n\n div[option][selected] {\n background-color: var(--md-sys-color-tertiary-container);\n font-weight: bold;\n color: var(--md-sys-color-on-primary);\n }\n\n div[selected-tags] {\n display: flex;\n flex-wrap: wrap;\n gap: var(--spacing-small, 4px);\n margin-top: var(--spacing-small, 4px);\n }\n\n div[tag] {\n background-color: #2e79be;\n color: white;\n padding: var(--spacing-tiny, 2px) var(--spacing-medium, 8px);\n border-radius: 20px;\n font-size: 12px;\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n }\n\n span[tag-close] {\n margin-left: var(--spacing-small, 4px);\n }\n `\n\n @property({ type: String }) placeholder: string = ''\n @property({ type: Array }) options: Array<{ name: string; value: string }> = []\n @property({ type: Array }) selectedValues: string[] = []\n\n @state() showOptions: boolean = false\n\n get selectedItems() {\n return this.selectedValues.map(id => this.options.find(option => option.value === id)).filter(Boolean)\n }\n\n render() {\n return html`\n <div select-container>\n <div tags @click=\"${this._toggleOptions}\">${this.placeholder}</div>\n ${this.showOptions\n ? html`\n <div options>\n ${this.options.map(\n option => html`\n <div\n option\n ?selected=${this.selectedValues.includes(option.value)}\n @click=${() => this._handleSelect(option.value)}\n >\n ${option.name}\n </div>\n `\n )}\n </div>\n `\n : ''}\n </div>\n\n <div selected-tags>\n ${this.selectedItems.map(\n (tag: any) => html`\n <div tag @click=${() => this._handleRemove(tag.value)}>\n ${tag!.name}\n <span tag-close>×</span>\n </div>\n `\n )}\n </div>\n `\n }\n\n connectedCallback() {\n super.connectedCallback()\n document.addEventListener('click', this._handleOutsideClick)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n document.removeEventListener('click', this._handleOutsideClick)\n }\n\n private _handleOutsideClick = (event: MouseEvent) => {\n const path = event.composedPath()\n if (!path.includes(this)) {\n this.showOptions = false\n }\n }\n\n private _toggleOptions() {\n this.showOptions = !this.showOptions\n }\n\n private _handleSelect(optionValue: string) {\n if (this.selectedValues.includes(optionValue)) {\n // 이미 선택된 옵션을 선택한 경우 해제\n this.selectedValues = this.selectedValues.filter(value => value !== optionValue)\n } else {\n // 선택되지 않은 옵션 추가\n this.selectedValues = [...this.selectedValues, optionValue]\n }\n\n this.showOptions = false\n this._dispatchEvent(this.selectedValues)\n }\n\n private _handleRemove(tagValue: string) {\n this.selectedValues = this.selectedValues.filter(value => value !== tagValue)\n this._dispatchEvent(this.selectedValues)\n }\n\n private _dispatchEvent(selectedValues: string[]) {\n this.dispatchEvent(\n new CustomEvent('selection-changed', {\n detail: { selectedValues }, // ID 배열을 부모로 전달\n bubbles: true,\n composed: true\n })\n )\n }\n}\n"]}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
const API_KEY = '9epdR01s19phfu%2B3%2F0elTxTi92Nibl3qEO1HSm2QydrWOlrDqyNn9qzeQRJ3jPOh3hV8TesHg1L%2BQ9D6UOPmWQ%3D%3D';
|
|
2
|
-
const URL = 'https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst';
|
|
3
|
-
const NUM_OF_ROWS = 12;
|
|
4
|
-
const DATA_TYPE = 'JSON';
|
|
5
|
-
export default async function _getWeather(latitude, longitude) {
|
|
6
|
-
var _a;
|
|
7
|
-
const { nx, ny } = _getIndexByLatAndLong(latitude, longitude);
|
|
8
|
-
const { base_date, base_time } = _getTodayAndHour();
|
|
9
|
-
const result = await fetch(`${URL}?serviceKey=${API_KEY}&base_date=${base_date}&base_time=${base_time}&nx=${nx}&ny=${ny}&pageNo=1&numOfRows=${NUM_OF_ROWS}&dataType=${DATA_TYPE}`);
|
|
10
|
-
let rain = 0;
|
|
11
|
-
let temperature = 0;
|
|
12
|
-
let humidity = 0;
|
|
13
|
-
let windDirection = '';
|
|
14
|
-
let windSpeed = 0;
|
|
15
|
-
if (result.status == 200) {
|
|
16
|
-
let weather = await result.json().then(data => { var _a; return (_a = data === null || data === void 0 ? void 0 : data.response) === null || _a === void 0 ? void 0 : _a.body; });
|
|
17
|
-
weather = (_a = weather === null || weather === void 0 ? void 0 : weather.items) === null || _a === void 0 ? void 0 : _a.item;
|
|
18
|
-
for (let key in weather) {
|
|
19
|
-
const data = (weather === null || weather === void 0 ? void 0 : weather[key]) || {};
|
|
20
|
-
if (data.category === 'POP') {
|
|
21
|
-
rain = data.fcstValue;
|
|
22
|
-
}
|
|
23
|
-
if (data.category === 'REH') {
|
|
24
|
-
humidity = data.fcstValue;
|
|
25
|
-
}
|
|
26
|
-
if (data.category === 'TMP') {
|
|
27
|
-
temperature = data.fcstValue;
|
|
28
|
-
}
|
|
29
|
-
if (data.category === 'VEC') {
|
|
30
|
-
windDirection = _getWindDirectionByValue(data.fcstValue);
|
|
31
|
-
}
|
|
32
|
-
if (data.category === 'WSD') {
|
|
33
|
-
windSpeed = data.fcstValue;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
console.log('weather :', weather);
|
|
37
|
-
}
|
|
38
|
-
return { rain, temperature, humidity, windDirection, windSpeed };
|
|
39
|
-
}
|
|
40
|
-
const RE = 6371.00877; // 지구 반경(km)
|
|
41
|
-
const GRID = 5.0; // 격자 간격(km)
|
|
42
|
-
const SLAT1 = 30.0; // 투영 위도1(degree)
|
|
43
|
-
const SLAT2 = 60.0; // 투영 위도2(degree)
|
|
44
|
-
const OLON = 126.0; // 기준점 경도(degree)
|
|
45
|
-
const OLAT = 38.0; // 기준점 위도(degree)
|
|
46
|
-
const XO = 43; // 기준점 X좌표(GRID)
|
|
47
|
-
const YO = 136; // 기1준점 Y좌표(GRID)
|
|
48
|
-
// 위경도 -> 기상청 좌표
|
|
49
|
-
function _getIndexByLatAndLong(latitude, longitude) {
|
|
50
|
-
const DEGRAD = Math.PI / 180.0;
|
|
51
|
-
const re = RE / GRID;
|
|
52
|
-
const slat1 = SLAT1 * DEGRAD;
|
|
53
|
-
const slat2 = SLAT2 * DEGRAD;
|
|
54
|
-
const olon = OLON * DEGRAD;
|
|
55
|
-
const olat = OLAT * DEGRAD;
|
|
56
|
-
let sn = Math.tan(Math.PI * 0.25 + slat2 * 0.5) / Math.tan(Math.PI * 0.25 + slat1 * 0.5);
|
|
57
|
-
sn = Math.log(Math.cos(slat1) / Math.cos(slat2)) / Math.log(sn);
|
|
58
|
-
let sf = Math.tan(Math.PI * 0.25 + slat1 * 0.5);
|
|
59
|
-
sf = (Math.pow(sf, sn) * Math.cos(slat1)) / sn;
|
|
60
|
-
let ro = Math.tan(Math.PI * 0.25 + olat * 0.5);
|
|
61
|
-
ro = (re * sf) / Math.pow(ro, sn);
|
|
62
|
-
let ra = Math.tan(Math.PI * 0.25 + latitude * DEGRAD * 0.5);
|
|
63
|
-
ra = (re * sf) / Math.pow(ra, sn);
|
|
64
|
-
let theta = longitude * DEGRAD - olon;
|
|
65
|
-
if (theta > Math.PI)
|
|
66
|
-
theta -= 2.0 * Math.PI;
|
|
67
|
-
if (theta < -Math.PI)
|
|
68
|
-
theta += 2.0 * Math.PI;
|
|
69
|
-
theta *= sn;
|
|
70
|
-
return {
|
|
71
|
-
nx: Math.floor(ra * Math.sin(theta) + XO + 0.5),
|
|
72
|
-
ny: Math.floor(ro - ra * Math.cos(theta) + YO + 0.5),
|
|
73
|
-
latitude,
|
|
74
|
-
longitude
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
function _getTodayAndHour() {
|
|
78
|
-
const now = new Date();
|
|
79
|
-
const todayDate = now.toISOString().slice(0, 10).replace(/-/g, '');
|
|
80
|
-
const yesterday = new Date(now);
|
|
81
|
-
yesterday.setDate(yesterday.getDate() - 1);
|
|
82
|
-
const yesterdayDate = yesterday.toISOString().slice(0, 10).replace(/-/g, '');
|
|
83
|
-
// 1일 총 8번 데이터가 업데이트 된다. (0200, 0500, 0800, 1100, 1400, 1700, 2000, 2300)
|
|
84
|
-
let base_date;
|
|
85
|
-
let base_time;
|
|
86
|
-
if (now.getHours() < 2 || (now.getHours() === 2 && now.getMinutes() <= 10)) {
|
|
87
|
-
base_date = yesterdayDate;
|
|
88
|
-
base_time = '2300';
|
|
89
|
-
}
|
|
90
|
-
else if (now.getHours() < 5 || (now.getHours() === 5 && now.getMinutes() <= 10)) {
|
|
91
|
-
base_date = todayDate;
|
|
92
|
-
base_time = '0200';
|
|
93
|
-
}
|
|
94
|
-
else if (now.getHours() < 8 || (now.getHours() === 8 && now.getMinutes() <= 10)) {
|
|
95
|
-
base_date = todayDate;
|
|
96
|
-
base_time = '0500';
|
|
97
|
-
}
|
|
98
|
-
else if (now.getHours() <= 11 || now.getMinutes() <= 10) {
|
|
99
|
-
base_date = todayDate;
|
|
100
|
-
base_time = '0800';
|
|
101
|
-
}
|
|
102
|
-
else if (now.getHours() < 14 || (now.getHours() === 14 && now.getMinutes() <= 10)) {
|
|
103
|
-
base_date = todayDate;
|
|
104
|
-
base_time = '1100';
|
|
105
|
-
}
|
|
106
|
-
else if (now.getHours() < 17 || (now.getHours() === 17 && now.getMinutes() <= 10)) {
|
|
107
|
-
base_date = todayDate;
|
|
108
|
-
base_time = '1400';
|
|
109
|
-
}
|
|
110
|
-
else if (now.getHours() < 20 || (now.getHours() === 20 && now.getMinutes() <= 10)) {
|
|
111
|
-
base_date = todayDate;
|
|
112
|
-
base_time = '1700';
|
|
113
|
-
}
|
|
114
|
-
else if (now.getHours() < 23 || (now.getHours() === 23 && now.getMinutes() <= 10)) {
|
|
115
|
-
base_date = todayDate;
|
|
116
|
-
base_time = '2000';
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
base_date = todayDate;
|
|
120
|
-
base_time = '2300';
|
|
121
|
-
}
|
|
122
|
-
return { base_time, base_date };
|
|
123
|
-
}
|
|
124
|
-
const windTable = {
|
|
125
|
-
0: 'N',
|
|
126
|
-
1: 'NNE',
|
|
127
|
-
2: 'NE',
|
|
128
|
-
3: 'ENE',
|
|
129
|
-
4: 'E',
|
|
130
|
-
5: 'ESE',
|
|
131
|
-
6: 'SE',
|
|
132
|
-
7: 'SSE',
|
|
133
|
-
8: 'S',
|
|
134
|
-
9: 'SSW',
|
|
135
|
-
10: 'SW',
|
|
136
|
-
11: 'WSW',
|
|
137
|
-
12: 'W',
|
|
138
|
-
13: 'WNW',
|
|
139
|
-
14: 'NW',
|
|
140
|
-
15: 'NNW',
|
|
141
|
-
16: 'N'
|
|
142
|
-
};
|
|
143
|
-
const directoinMapping = {
|
|
144
|
-
N: '북',
|
|
145
|
-
S: '남',
|
|
146
|
-
E: '동',
|
|
147
|
-
W: '서'
|
|
148
|
-
};
|
|
149
|
-
function _getWindDirectionByValue(value) {
|
|
150
|
-
var _a;
|
|
151
|
-
const calc = Math.floor((Number(value) + 22.5 * 0.5) / 22.5) || null;
|
|
152
|
-
if (calc === null)
|
|
153
|
-
return '';
|
|
154
|
-
return ((_a = windTable[calc]) === null || _a === void 0 ? void 0 : _a.replace(/[NSEW]/g, match => directoinMapping[match])) || '';
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=waether.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"waether.js","sourceRoot":"","sources":["../../../client/pages/lib/waether.ts"],"names":[],"mappings":"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","sourcesContent":["const API_KEY = '9epdR01s19phfu%2B3%2F0elTxTi92Nibl3qEO1HSm2QydrWOlrDqyNn9qzeQRJ3jPOh3hV8TesHg1L%2BQ9D6UOPmWQ%3D%3D'\nconst URL = 'https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst'\nconst NUM_OF_ROWS = 12\nconst DATA_TYPE = 'JSON'\n\nexport default async function _getWeather(latitude: number, longitude: number) {\n const { nx, ny } = _getIndexByLatAndLong(latitude, longitude)\n const { base_date, base_time } = _getTodayAndHour()\n const result = await fetch(\n `${URL}?serviceKey=${API_KEY}&base_date=${base_date}&base_time=${base_time}&nx=${nx}&ny=${ny}&pageNo=1&numOfRows=${NUM_OF_ROWS}&dataType=${DATA_TYPE}`\n )\n\n let rain = 0\n let temperature = 0\n let humidity = 0\n let windDirection = ''\n let windSpeed = 0\n\n if (result.status == 200) {\n let weather = await result.json().then(data => data?.response?.body)\n weather = weather?.items?.item\n\n for (let key in weather) {\n const data = weather?.[key] || {}\n\n if (data.category === 'POP') {\n rain = data.fcstValue\n }\n if (data.category === 'REH') {\n humidity = data.fcstValue\n }\n if (data.category === 'TMP') {\n temperature = data.fcstValue\n }\n if (data.category === 'VEC') {\n windDirection = _getWindDirectionByValue(data.fcstValue)\n }\n if (data.category === 'WSD') {\n windSpeed = data.fcstValue\n }\n }\n\n console.log('weather :', weather)\n }\n\n return { rain, temperature, humidity, windDirection, windSpeed }\n}\n\nconst RE = 6371.00877 // 지구 반경(km)\nconst GRID = 5.0 // 격자 간격(km)\nconst SLAT1 = 30.0 // 투영 위도1(degree)\nconst SLAT2 = 60.0 // 투영 위도2(degree)\nconst OLON = 126.0 // 기준점 경도(degree)\nconst OLAT = 38.0 // 기준점 위도(degree)\nconst XO = 43 // 기준점 X좌표(GRID)\nconst YO = 136 // 기1준점 Y좌표(GRID)\n\n// 위경도 -> 기상청 좌표\nfunction _getIndexByLatAndLong(latitude: number, longitude: number) {\n const DEGRAD = Math.PI / 180.0\n const re = RE / GRID\n const slat1 = SLAT1 * DEGRAD\n const slat2 = SLAT2 * DEGRAD\n const olon = OLON * DEGRAD\n const olat = OLAT * DEGRAD\n\n let sn = Math.tan(Math.PI * 0.25 + slat2 * 0.5) / Math.tan(Math.PI * 0.25 + slat1 * 0.5)\n sn = Math.log(Math.cos(slat1) / Math.cos(slat2)) / Math.log(sn)\n let sf = Math.tan(Math.PI * 0.25 + slat1 * 0.5)\n sf = (Math.pow(sf, sn) * Math.cos(slat1)) / sn\n let ro = Math.tan(Math.PI * 0.25 + olat * 0.5)\n ro = (re * sf) / Math.pow(ro, sn)\n let ra = Math.tan(Math.PI * 0.25 + latitude * DEGRAD * 0.5)\n ra = (re * sf) / Math.pow(ra, sn)\n let theta = longitude * DEGRAD - olon\n if (theta > Math.PI) theta -= 2.0 * Math.PI\n if (theta < -Math.PI) theta += 2.0 * Math.PI\n theta *= sn\n\n return {\n nx: Math.floor(ra * Math.sin(theta) + XO + 0.5),\n ny: Math.floor(ro - ra * Math.cos(theta) + YO + 0.5),\n latitude,\n longitude\n }\n}\n\nfunction _getTodayAndHour() {\n const now = new Date()\n const todayDate = now.toISOString().slice(0, 10).replace(/-/g, '')\n const yesterday = new Date(now)\n yesterday.setDate(yesterday.getDate() - 1)\n const yesterdayDate = yesterday.toISOString().slice(0, 10).replace(/-/g, '')\n\n // 1일 총 8번 데이터가 업데이트 된다. (0200, 0500, 0800, 1100, 1400, 1700, 2000, 2300)\n let base_date\n let base_time\n\n if (now.getHours() < 2 || (now.getHours() === 2 && now.getMinutes() <= 10)) {\n base_date = yesterdayDate\n base_time = '2300'\n } else if (now.getHours() < 5 || (now.getHours() === 5 && now.getMinutes() <= 10)) {\n base_date = todayDate\n base_time = '0200'\n } else if (now.getHours() < 8 || (now.getHours() === 8 && now.getMinutes() <= 10)) {\n base_date = todayDate\n base_time = '0500'\n } else if (now.getHours() <= 11 || now.getMinutes() <= 10) {\n base_date = todayDate\n base_time = '0800'\n } else if (now.getHours() < 14 || (now.getHours() === 14 && now.getMinutes() <= 10)) {\n base_date = todayDate\n base_time = '1100'\n } else if (now.getHours() < 17 || (now.getHours() === 17 && now.getMinutes() <= 10)) {\n base_date = todayDate\n base_time = '1400'\n } else if (now.getHours() < 20 || (now.getHours() === 20 && now.getMinutes() <= 10)) {\n base_date = todayDate\n base_time = '1700'\n } else if (now.getHours() < 23 || (now.getHours() === 23 && now.getMinutes() <= 10)) {\n base_date = todayDate\n base_time = '2000'\n } else {\n base_date = todayDate\n base_time = '2300'\n }\n\n return { base_time, base_date }\n}\n\nconst windTable = {\n 0: 'N',\n 1: 'NNE',\n 2: 'NE',\n 3: 'ENE',\n 4: 'E',\n 5: 'ESE',\n 6: 'SE',\n 7: 'SSE',\n 8: 'S',\n 9: 'SSW',\n 10: 'SW',\n 11: 'WSW',\n 12: 'W',\n 13: 'WNW',\n 14: 'NW',\n 15: 'NNW',\n 16: 'N'\n}\nconst directoinMapping = {\n N: '북',\n S: '남',\n E: '동',\n W: '서'\n}\n\nfunction _getWindDirectionByValue(value: number): string {\n const calc: number | null = Math.floor((Number(value) + 22.5 * 0.5) / 22.5) || null\n\n if (calc === null) return ''\n\n return windTable[calc]?.replace(/[NSEW]/g, match => directoinMapping[match]) || ''\n}\n"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import '@material/web/button/outlined-button.js';
|
|
2
|
-
import '@material/web/icon/icon.js';
|
|
3
|
-
import { LitElement } from 'lit';
|
|
4
|
-
export declare class PagenationControl extends LitElement {
|
|
5
|
-
static styles: import("lit").CSSResult[];
|
|
6
|
-
currentPage: number;
|
|
7
|
-
totalItems: number;
|
|
8
|
-
pageLimit: number;
|
|
9
|
-
private get totalPages();
|
|
10
|
-
private get pageBlock();
|
|
11
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
12
|
-
private _emitPageChange;
|
|
13
|
-
private _numberButtons;
|
|
14
|
-
private _onFirst;
|
|
15
|
-
private _onPrev;
|
|
16
|
-
private _onNext;
|
|
17
|
-
private _onLast;
|
|
18
|
-
}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import '@material/web/button/outlined-button.js';
|
|
3
|
-
import '@material/web/icon/icon.js';
|
|
4
|
-
import { css, html, LitElement } from 'lit';
|
|
5
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
6
|
-
let PagenationControl = class PagenationControl extends LitElement {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.currentPage = 1;
|
|
10
|
-
this.totalItems = 0;
|
|
11
|
-
this.pageLimit = 20;
|
|
12
|
-
}
|
|
13
|
-
get totalPages() {
|
|
14
|
-
const totalPages = Math.ceil((this.totalItems || 0) / (this.pageLimit || 1));
|
|
15
|
-
return Math.max(1, totalPages);
|
|
16
|
-
}
|
|
17
|
-
get pageBlock() {
|
|
18
|
-
const blockSize = 10;
|
|
19
|
-
const blockIndex = Math.floor((this.currentPage - 1) / blockSize);
|
|
20
|
-
const start = blockIndex * blockSize + 1;
|
|
21
|
-
const end = Math.min(start + blockSize - 1, this.totalPages);
|
|
22
|
-
return { start, end };
|
|
23
|
-
}
|
|
24
|
-
render() {
|
|
25
|
-
return html `
|
|
26
|
-
<div pagination>
|
|
27
|
-
<md-outlined-button icon ?disabled=${this.currentPage <= 1} @click=${this._onFirst}>
|
|
28
|
-
<md-icon>first_page</md-icon>
|
|
29
|
-
</md-outlined-button>
|
|
30
|
-
<md-outlined-button icon ?disabled=${this.currentPage <= 1} @click=${this._onPrev}>
|
|
31
|
-
<md-icon>chevron_left</md-icon>
|
|
32
|
-
</md-outlined-button>
|
|
33
|
-
|
|
34
|
-
<div numbers>${this._numberButtons()}</div>
|
|
35
|
-
|
|
36
|
-
<md-outlined-button icon ?disabled=${this.currentPage >= this.totalPages} @click=${this._onNext}>
|
|
37
|
-
<md-icon>chevron_right</md-icon>
|
|
38
|
-
</md-outlined-button>
|
|
39
|
-
<md-outlined-button icon ?disabled=${this.currentPage >= this.totalPages} @click=${this._onLast}>
|
|
40
|
-
<md-icon>last_page</md-icon>
|
|
41
|
-
</md-outlined-button>
|
|
42
|
-
</div>
|
|
43
|
-
`;
|
|
44
|
-
}
|
|
45
|
-
_emitPageChange(nextPage) {
|
|
46
|
-
const bounded = Math.min(Math.max(1, nextPage), this.totalPages);
|
|
47
|
-
if (bounded !== this.currentPage) {
|
|
48
|
-
this.dispatchEvent(new CustomEvent('page-change', {
|
|
49
|
-
detail: { page: bounded },
|
|
50
|
-
bubbles: true,
|
|
51
|
-
composed: true
|
|
52
|
-
}));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
_numberButtons() {
|
|
56
|
-
const { start, end } = this.pageBlock;
|
|
57
|
-
const buttons = [];
|
|
58
|
-
for (let page = start; page <= end; page++) {
|
|
59
|
-
const selected = page === this.currentPage;
|
|
60
|
-
buttons.push(html `<md-outlined-button data-page ?selected=${selected} @click=${() => this._emitPageChange(page)}
|
|
61
|
-
>${page}</md-outlined-button
|
|
62
|
-
>`);
|
|
63
|
-
}
|
|
64
|
-
return buttons;
|
|
65
|
-
}
|
|
66
|
-
_onFirst() {
|
|
67
|
-
this._emitPageChange(1);
|
|
68
|
-
}
|
|
69
|
-
_onPrev() {
|
|
70
|
-
this._emitPageChange(this.currentPage - 1);
|
|
71
|
-
}
|
|
72
|
-
_onNext() {
|
|
73
|
-
this._emitPageChange(this.currentPage + 1);
|
|
74
|
-
}
|
|
75
|
-
_onLast() {
|
|
76
|
-
this._emitPageChange(this.totalPages);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
PagenationControl.styles = [
|
|
80
|
-
css `
|
|
81
|
-
div[pagination] {
|
|
82
|
-
display: flex;
|
|
83
|
-
align-items: center;
|
|
84
|
-
justify-content: center;
|
|
85
|
-
gap: var(--spacing-medium, 8px);
|
|
86
|
-
margin: var(--spacing-large, 12px);
|
|
87
|
-
|
|
88
|
-
div[numbers] {
|
|
89
|
-
display: inline-flex;
|
|
90
|
-
gap: var(--spacing-tiny, 2px);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
md-icon {
|
|
94
|
-
--md-icon-size: 18px;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
md-outlined-button {
|
|
98
|
-
--md-outlined-button-container-height: 30px;
|
|
99
|
-
--md-outlined-button-label-text-size: 13px;
|
|
100
|
-
padding: 0 10px;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
md-outlined-button[selected] {
|
|
104
|
-
--md-outlined-button-label-text-color: #ffffff;
|
|
105
|
-
--md-sys-color-outline: #0595e5;
|
|
106
|
-
background-color: #0595e5;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
md-outlined-button[icon] {
|
|
110
|
-
min-width: 30px;
|
|
111
|
-
width: 30px;
|
|
112
|
-
padding: 0;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
md-outlined-button[icon] md-icon {
|
|
116
|
-
margin-top: 5px;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
md-outlined-button[data-page] {
|
|
120
|
-
min-width: 34px;
|
|
121
|
-
padding: 0 8px;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
`
|
|
125
|
-
];
|
|
126
|
-
__decorate([
|
|
127
|
-
property({ type: Number }),
|
|
128
|
-
__metadata("design:type", Number)
|
|
129
|
-
], PagenationControl.prototype, "currentPage", void 0);
|
|
130
|
-
__decorate([
|
|
131
|
-
property({ type: Number }),
|
|
132
|
-
__metadata("design:type", Number)
|
|
133
|
-
], PagenationControl.prototype, "totalItems", void 0);
|
|
134
|
-
__decorate([
|
|
135
|
-
property({ type: Number }),
|
|
136
|
-
__metadata("design:type", Number)
|
|
137
|
-
], PagenationControl.prototype, "pageLimit", void 0);
|
|
138
|
-
PagenationControl = __decorate([
|
|
139
|
-
customElement('pagenation-control')
|
|
140
|
-
], PagenationControl);
|
|
141
|
-
export { PagenationControl };
|
|
142
|
-
//# sourceMappingURL=pagenation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pagenation.js","sourceRoot":"","sources":["../../../../client/pages/project/component/pagenation.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/button/outlined-button.js'\nimport '@material/web/icon/icon.js'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n@customElement('pagenation-control')\nexport class PagenationControl extends LitElement {\n static styles = [\n css`\n div[pagination] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-medium, 8px);\n margin: var(--spacing-large, 12px);\n\n div[numbers] {\n display: inline-flex;\n gap: var(--spacing-tiny, 2px);\n }\n\n md-icon {\n --md-icon-size: 18px;\n }\n\n md-outlined-button {\n --md-outlined-button-container-height: 30px;\n --md-outlined-button-label-text-size: 13px;\n padding: 0 10px;\n }\n\n md-outlined-button[selected] {\n --md-outlined-button-label-text-color: #ffffff;\n --md-sys-color-outline: #0595e5;\n background-color: #0595e5;\n }\n\n md-outlined-button[icon] {\n min-width: 30px;\n width: 30px;\n padding: 0;\n }\n\n md-outlined-button[icon] md-icon {\n margin-top: 5px;\n }\n\n md-outlined-button[data-page] {\n min-width: 34px;\n padding: 0 8px;\n }\n }\n `\n ]\n\n @property({ type: Number }) currentPage: number = 1\n @property({ type: Number }) totalItems: number = 0\n @property({ type: Number }) pageLimit: number = 20\n\n private get totalPages(): number {\n const totalPages = Math.ceil((this.totalItems || 0) / (this.pageLimit || 1))\n return Math.max(1, totalPages)\n }\n\n private get pageBlock(): { start: number; end: number } {\n const blockSize = 10\n const blockIndex = Math.floor((this.currentPage - 1) / blockSize)\n const start = blockIndex * blockSize + 1\n const end = Math.min(start + blockSize - 1, this.totalPages)\n return { start, end }\n }\n\n render() {\n return html`\n <div pagination>\n <md-outlined-button icon ?disabled=${this.currentPage <= 1} @click=${this._onFirst}>\n <md-icon>first_page</md-icon>\n </md-outlined-button>\n <md-outlined-button icon ?disabled=${this.currentPage <= 1} @click=${this._onPrev}>\n <md-icon>chevron_left</md-icon>\n </md-outlined-button>\n\n <div numbers>${this._numberButtons()}</div>\n\n <md-outlined-button icon ?disabled=${this.currentPage >= this.totalPages} @click=${this._onNext}>\n <md-icon>chevron_right</md-icon>\n </md-outlined-button>\n <md-outlined-button icon ?disabled=${this.currentPage >= this.totalPages} @click=${this._onLast}>\n <md-icon>last_page</md-icon>\n </md-outlined-button>\n </div>\n `\n }\n\n private _emitPageChange(nextPage: number) {\n const bounded = Math.min(Math.max(1, nextPage), this.totalPages)\n if (bounded !== this.currentPage) {\n this.dispatchEvent(\n new CustomEvent('page-change', {\n detail: { page: bounded },\n bubbles: true,\n composed: true\n })\n )\n }\n }\n\n private _numberButtons() {\n const { start, end } = this.pageBlock\n const buttons = [] as any[]\n for (let page = start; page <= end; page++) {\n const selected = page === this.currentPage\n buttons.push(\n html`<md-outlined-button data-page ?selected=${selected} @click=${() => this._emitPageChange(page)}\n >${page}</md-outlined-button\n >`\n )\n }\n return buttons\n }\n\n private _onFirst() {\n this._emitPageChange(1)\n }\n\n private _onPrev() {\n this._emitPageChange(this.currentPage - 1)\n }\n\n private _onNext() {\n this._emitPageChange(this.currentPage + 1)\n }\n\n private _onLast() {\n this._emitPageChange(this.totalPages)\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import '@material/web/icon/icon.js';
|