@things-factory/kpi 9.0.31 → 9.0.32
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/README.md +1 -2
- package/client/charts/kpi-boxplot-chart.ts +182 -42
- package/client/charts/kpi-radar-chart.ts +9 -9
- package/client/pages/kpi/kpi-list-page.ts +196 -32
- package/client/pages/kpi/kpi-overview.ts +9 -11
- package/client/pages/kpi/kpi-tree-page.ts +409 -0
- package/client/pages/kpi/kpi-view.ts +187 -0
- package/client/pages/kpi-dashboard/cards/kpi-level1-card.ts +1 -1
- package/client/pages/kpi-dashboard/cards/kpi-level2-comparison.ts +1 -1
- package/client/pages/kpi-dashboard/cards/kpi-level3-comparison.ts +1 -1
- package/client/pages/kpi-dashboard/components/kpi-left-panel.ts +198 -160
- package/client/pages/kpi-dashboard/components/kpi-map-panel.ts +133 -0
- package/client/pages/kpi-dashboard/components/kpi-region-popup.ts +3 -2
- package/client/pages/kpi-dashboard/kpi-dashboard-map.ts +4 -3
- package/client/pages/kpi-dashboard/kpi-dashboard.ts +28 -30
- package/client/pages/kpi-history/kpi-history-list-page.ts +11 -11
- package/client/pages/kpi-metric/kpi-metric-list-page.ts +10 -2
- package/client/pages/kpi-metric-value/kpi-metric-value-editor-page.ts +7 -7
- package/client/pages/kpi-metric-value/kpi-metric-value-importer.ts +2 -2
- package/client/pages/kpi-metric-value/kpi-metric-value-list-page.ts +16 -8
- package/client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.ts +5 -5
- package/client/pages/kpi-statistic/kpi-statistic-editor-page.ts +1 -2
- package/client/pages/kpi-statistic/kpi-statistic-list-page.ts +10 -2
- package/client/pages/kpi-value/kpi-value-editor-page.ts +11 -7
- package/client/pages/kpi-value/kpi-value-list-page.ts +31 -7
- package/client/route.ts +2 -9
- package/design-entities.md +8 -12
- package/dist-client/charts/kpi-boxplot-chart.d.ts +2 -0
- package/dist-client/charts/kpi-boxplot-chart.js +168 -42
- package/dist-client/charts/kpi-boxplot-chart.js.map +1 -1
- package/dist-client/charts/kpi-radar-chart.js +9 -9
- package/dist-client/charts/kpi-radar-chart.js.map +1 -1
- package/dist-client/pages/kpi/kpi-list-page.d.ts +19 -3
- package/dist-client/pages/kpi/kpi-list-page.js +188 -32
- package/dist-client/pages/kpi/kpi-list-page.js.map +1 -1
- package/dist-client/pages/kpi/kpi-overview.js +9 -11
- package/dist-client/pages/kpi/kpi-overview.js.map +1 -1
- package/dist-client/pages/kpi/kpi-tree-page.d.ts +59 -0
- package/dist-client/pages/kpi/kpi-tree-page.js +403 -0
- package/dist-client/pages/kpi/kpi-tree-page.js.map +1 -0
- package/dist-client/pages/kpi/kpi-view.d.ts +12 -0
- package/dist-client/pages/kpi/kpi-view.js +191 -0
- package/dist-client/pages/kpi/kpi-view.js.map +1 -0
- package/dist-client/pages/kpi-dashboard/cards/kpi-level1-card.js +1 -1
- package/dist-client/pages/kpi-dashboard/cards/kpi-level1-card.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/cards/kpi-level2-comparison.js +1 -1
- package/dist-client/pages/kpi-dashboard/cards/kpi-level2-comparison.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/cards/kpi-level3-comparison.js +1 -1
- package/dist-client/pages/kpi-dashboard/cards/kpi-level3-comparison.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.d.ts +3 -1
- package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js +197 -161
- package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.d.ts +5 -0
- package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.js +146 -0
- package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js +3 -2
- package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js +4 -3
- package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/kpi-dashboard.js +28 -30
- package/dist-client/pages/kpi-dashboard/kpi-dashboard.js.map +1 -1
- package/dist-client/pages/kpi-history/kpi-history-list-page.d.ts +6 -1
- package/dist-client/pages/kpi-history/kpi-history-list-page.js +11 -11
- package/dist-client/pages/kpi-history/kpi-history-list-page.js.map +1 -1
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.d.ts +5 -0
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.js +10 -2
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.js.map +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.d.ts +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js +8 -8
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js.map +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js +2 -2
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js.map +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.d.ts +5 -0
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js +16 -8
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js.map +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.d.ts +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js +6 -6
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js.map +1 -1
- package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js +1 -2
- package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js.map +1 -1
- package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.d.ts +5 -0
- package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js +10 -2
- package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js.map +1 -1
- package/dist-client/pages/kpi-value/kpi-value-editor-page.d.ts +2 -1
- package/dist-client/pages/kpi-value/kpi-value-editor-page.js +16 -8
- package/dist-client/pages/kpi-value/kpi-value-editor-page.js.map +1 -1
- package/dist-client/pages/kpi-value/kpi-value-list-page.d.ts +5 -0
- package/dist-client/pages/kpi-value/kpi-value-list-page.js +31 -7
- package/dist-client/pages/kpi-value/kpi-value-list-page.js.map +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +2 -8
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/controllers/kpi-metric-value-provider.d.ts +1 -1
- package/dist-server/controllers/kpi-metric-value-provider.js +4 -4
- package/dist-server/controllers/kpi-metric-value-provider.js.map +1 -1
- package/dist-server/controllers/kpi-value-provider.d.ts +1 -1
- package/dist-server/controllers/kpi-value-provider.js +3 -3
- package/dist-server/controllers/kpi-value-provider.js.map +1 -1
- package/dist-server/migrations/1752190849680-seed-kpi-metrics.d.ts +6 -0
- package/dist-server/migrations/1752190849680-seed-kpi-metrics.js +101 -0
- package/dist-server/migrations/1752190849680-seed-kpi-metrics.js.map +1 -0
- package/dist-server/migrations/1752190849681-seed-kpi.d.ts +5 -0
- package/dist-server/migrations/1752190849681-seed-kpi.js +315 -0
- package/dist-server/migrations/1752190849681-seed-kpi.js.map +1 -0
- package/dist-server/migrations/1752192090123-add-grades-to-kpi.d.ts +7 -0
- package/dist-server/migrations/1752192090123-add-grades-to-kpi.js +51 -0
- package/dist-server/migrations/1752192090123-add-grades-to-kpi.js.map +1 -0
- package/dist-server/migrations/1752192090124-add-kpi-statistics.d.ts +5 -0
- package/dist-server/migrations/1752192090124-add-kpi-statistics.js +710 -0
- package/dist-server/migrations/1752192090124-add-kpi-statistics.js.map +1 -0
- package/dist-server/migrations/1752192090128-seed-kpi-org-scope.d.ts +6 -0
- package/dist-server/migrations/1752192090128-seed-kpi-org-scope.js +111 -0
- package/dist-server/migrations/1752192090128-seed-kpi-org-scope.js.map +1 -0
- package/dist-server/migrations/1752192090129-seed-kpi-values.d.ts +6 -0
- package/dist-server/migrations/1752192090129-seed-kpi-values.js +187 -0
- package/dist-server/migrations/1752192090129-seed-kpi-values.js.map +1 -0
- package/dist-server/migrations/grade-data/x11-performance-table.json +962 -0
- package/dist-server/migrations/grade-data/x12-performance-table.json +611 -0
- package/dist-server/migrations/grade-data/x14-performance-table.json +42 -0
- package/dist-server/migrations/grade-data/x21-performance-table.json +889 -0
- package/dist-server/migrations/grade-data/x22-performance-table.json +1064 -0
- package/dist-server/migrations/grade-data/x23-performance-table.json +42 -0
- package/dist-server/migrations/grade-data/x31-performance-table.json +644 -0
- package/dist-server/migrations/grade-data/x32-performance-table.json +993 -0
- package/dist-server/migrations/grade-data/x33-performance-table.json +195 -0
- package/dist-server/migrations/grade-data/x34-performance-table.json +12 -0
- package/dist-server/migrations/grade-data/x35-performance-table.json +42 -0
- package/dist-server/migrations/grade-data/x41-performance-table.json +825 -0
- package/dist-server/migrations/grade-data/x42-performance-table.json +786 -0
- package/dist-server/migrations/grade-data/x43-performance-table.json +12 -0
- package/dist-server/migrations/grade-data/x44-performance-table.json +42 -0
- package/dist-server/migrations/grade-data/x51-performance-table.json +924 -0
- package/dist-server/migrations/grade-data/x52-performance-table.json +42 -0
- package/dist-server/migrations/grade-data/x61-performance-table.json +261 -0
- package/dist-server/migrations/grade-data/x62-performance-table.json +42 -0
- package/dist-server/migrations/seed-data/kpi-metrics-seed.json +454 -0
- package/dist-server/migrations/seed-data/kpi-org-scope-seed.json +1676 -0
- package/dist-server/migrations/seed-data/kpi-values-seed.json +402 -0
- package/dist-server/migrations/seed-data/kpis-seed.json +488 -0
- package/dist-server/service/index.d.ts +3 -7
- package/dist-server/service/index.js +5 -12
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/kpi/aggregate-kpi.js +30 -13
- package/dist-server/service/kpi/aggregate-kpi.js.map +1 -1
- package/dist-server/service/kpi/kpi-formula.service.d.ts +15 -0
- package/dist-server/service/kpi/kpi-formula.service.js +90 -0
- package/dist-server/service/kpi/kpi-formula.service.js.map +1 -1
- package/dist-server/service/kpi/kpi-history.d.ts +0 -3
- package/dist-server/service/kpi/kpi-history.js +0 -10
- package/dist-server/service/kpi/kpi-history.js.map +1 -1
- package/dist-server/service/kpi/kpi-mutation.d.ts +1 -1
- package/dist-server/service/kpi/kpi-mutation.js +57 -20
- package/dist-server/service/kpi/kpi-mutation.js.map +1 -1
- package/dist-server/service/kpi/kpi-query.d.ts +7 -3
- package/dist-server/service/kpi/kpi-query.js +126 -10
- package/dist-server/service/kpi/kpi-query.js.map +1 -1
- package/dist-server/service/kpi/kpi-type.d.ts +4 -2
- package/dist-server/service/kpi/kpi-type.js +12 -4
- package/dist-server/service/kpi/kpi-type.js.map +1 -1
- package/dist-server/service/kpi/kpi.d.ts +4 -3
- package/dist-server/service/kpi/kpi.js +20 -8
- package/dist-server/service/kpi/kpi.js.map +1 -1
- package/dist-server/service/kpi-metric/aggregate-kpi-metric.js +46 -11
- package/dist-server/service/kpi-metric/aggregate-kpi-metric.js.map +1 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.d.ts +1 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js +6 -6
- package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js.map +1 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value-type.d.ts +2 -2
- package/dist-server/service/kpi-metric-value/kpi-metric-value-type.js +4 -4
- package/dist-server/service/kpi-metric-value/kpi-metric-value-type.js.map +1 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value.d.ts +1 -1
- package/dist-server/service/kpi-metric-value/kpi-metric-value.js +3 -3
- package/dist-server/service/kpi-metric-value/kpi-metric-value.js.map +1 -1
- package/dist-server/service/kpi-org-scope/index.d.ts +9 -0
- package/dist-server/service/kpi-org-scope/index.js +14 -0
- package/dist-server/service/kpi-org-scope/index.js.map +1 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.d.ts +8 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.js +170 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.js.map +1 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-query.d.ts +14 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-query.js +152 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-query.js.map +1 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-type.d.ts +26 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-type.js +101 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope-type.js.map +1 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope.d.ts +26 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope.js +135 -0
- package/dist-server/service/kpi-org-scope/kpi-org-scope.js.map +1 -0
- package/dist-server/service/kpi-statistic/kpi-statistic.d.ts +1 -0
- package/dist-server/service/kpi-statistic/kpi-statistic.js +11 -0
- package/dist-server/service/kpi-statistic/kpi-statistic.js.map +1 -1
- package/dist-server/service/kpi-value/kpi-value-mutation.js +71 -7
- package/dist-server/service/kpi-value/kpi-value-mutation.js.map +1 -1
- package/dist-server/service/kpi-value/kpi-value-type.d.ts +4 -2
- package/dist-server/service/kpi-value/kpi-value-type.js +12 -4
- package/dist-server/service/kpi-value/kpi-value-type.js.map +1 -1
- package/dist-server/service/kpi-value/kpi-value.d.ts +3 -1
- package/dist-server/service/kpi-value/kpi-value.js +11 -5
- package/dist-server/service/kpi-value/kpi-value.js.map +1 -1
- package/dist-server/service/utils/value-date-util.d.ts +1 -0
- package/dist-server/service/utils/value-date-util.js +41 -0
- package/dist-server/service/utils/value-date-util.js.map +1 -1
- package/dist-server/tsconfig.json +10 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -6
- package/server/@types/index.d.ts +11 -0
- package/server/controllers/kpi-metric-value-provider.ts +5 -5
- package/server/controllers/kpi-value-provider.ts +4 -4
- package/server/migrations/1752190849680-seed-kpi-metrics.ts +124 -0
- package/server/migrations/1752190849681-seed-kpi.ts +356 -0
- package/server/migrations/1752192090123-add-grades-to-kpi.ts +67 -0
- package/server/migrations/1752192090124-add-kpi-statistics.ts +719 -0
- package/server/migrations/1752192090128-seed-kpi-org-scope.ts +132 -0
- package/server/migrations/1752192090129-seed-kpi-values.ts +207 -0
- package/server/migrations/grade-data/x11-performance-table.json +962 -0
- package/server/migrations/grade-data/x12-performance-table.json +611 -0
- package/server/migrations/grade-data/x14-performance-table.json +42 -0
- package/server/migrations/grade-data/x21-performance-table.json +889 -0
- package/server/migrations/grade-data/x22-performance-table.json +1064 -0
- package/server/migrations/grade-data/x23-performance-table.json +42 -0
- package/server/migrations/grade-data/x31-performance-table.json +644 -0
- package/server/migrations/grade-data/x32-performance-table.json +993 -0
- package/server/migrations/grade-data/x33-performance-table.json +195 -0
- package/server/migrations/grade-data/x34-performance-table.json +12 -0
- package/server/migrations/grade-data/x35-performance-table.json +42 -0
- package/server/migrations/grade-data/x41-performance-table.json +825 -0
- package/server/migrations/grade-data/x42-performance-table.json +786 -0
- package/server/migrations/grade-data/x43-performance-table.json +12 -0
- package/server/migrations/grade-data/x44-performance-table.json +42 -0
- package/server/migrations/grade-data/x51-performance-table.json +924 -0
- package/server/migrations/grade-data/x52-performance-table.json +42 -0
- package/server/migrations/grade-data/x61-performance-table.json +261 -0
- package/server/migrations/grade-data/x62-performance-table.json +42 -0
- package/server/migrations/seed-data/kpi-metrics-seed.json +454 -0
- package/server/migrations/seed-data/kpi-org-scope-seed.json +1676 -0
- package/server/migrations/seed-data/kpi-values-seed.json +402 -0
- package/server/migrations/seed-data/kpis-seed.json +488 -0
- package/server/service/index.ts +5 -12
- package/server/service/kpi/aggregate-kpi.ts +31 -13
- package/server/service/kpi/kpi-formula.service.ts +101 -0
- package/server/service/kpi/kpi-history.ts +0 -8
- package/server/service/kpi/kpi-mutation.ts +59 -19
- package/server/service/kpi/kpi-query.ts +118 -8
- package/server/service/kpi/kpi-type.ts +10 -4
- package/server/service/kpi/kpi.ts +17 -7
- package/server/service/kpi-metric/aggregate-kpi-metric.ts +55 -11
- package/server/service/kpi-metric-value/kpi-metric-value-mutation.ts +6 -6
- package/server/service/kpi-metric-value/kpi-metric-value-type.ts +4 -4
- package/server/service/kpi-metric-value/kpi-metric-value.ts +3 -3
- package/server/service/kpi-org-scope/index.ts +11 -0
- package/server/service/kpi-org-scope/kpi-org-scope-mutation.ts +173 -0
- package/server/service/kpi-org-scope/kpi-org-scope-query.ts +127 -0
- package/server/service/kpi-org-scope/kpi-org-scope-type.ts +68 -0
- package/server/service/kpi-org-scope/kpi-org-scope.ts +123 -0
- package/server/service/kpi-statistic/kpi-statistic.ts +10 -0
- package/server/service/kpi-value/kpi-value-mutation.ts +73 -7
- package/server/service/kpi-value/kpi-value-type.ts +10 -4
- package/server/service/kpi-value/kpi-value.ts +10 -5
- package/server/service/utils/value-date-util.ts +47 -0
- package/server/types/global.d.ts +8 -0
- package/things-factory.config.js +1 -0
- package/translations/en.json +15 -3
- package/translations/ja.json +13 -3
- package/translations/ko.json +15 -3
- package/translations/ms.json +13 -3
- package/translations/zh.json +13 -3
- package/client/pages/kpi-category/kpi-category-importer.ts +0 -90
- package/client/pages/kpi-category/kpi-category-list-page.ts +0 -537
- package/client/pages/kpi-category/kpi-category-value-calculator.ts +0 -233
- package/client/pages/kpi-category-value/kpi-category-value-list-page.ts +0 -404
- package/dist-client/pages/kpi-category/kpi-category-importer.d.ts +0 -23
- package/dist-client/pages/kpi-category/kpi-category-importer.js +0 -92
- package/dist-client/pages/kpi-category/kpi-category-importer.js.map +0 -1
- package/dist-client/pages/kpi-category/kpi-category-list-page.d.ts +0 -74
- package/dist-client/pages/kpi-category/kpi-category-list-page.js +0 -517
- package/dist-client/pages/kpi-category/kpi-category-list-page.js.map +0 -1
- package/dist-client/pages/kpi-category/kpi-category-value-calculator.d.ts +0 -13
- package/dist-client/pages/kpi-category/kpi-category-value-calculator.js +0 -256
- package/dist-client/pages/kpi-category/kpi-category-value-calculator.js.map +0 -1
- package/dist-client/pages/kpi-category-value/kpi-category-value-list-page.d.ts +0 -63
- package/dist-client/pages/kpi-category-value/kpi-category-value-list-page.js +0 -393
- package/dist-client/pages/kpi-category-value/kpi-category-value-list-page.js.map +0 -1
- package/dist-server/service/kpi-category/index.d.ts +0 -6
- package/dist-server/service/kpi-category/index.js +0 -10
- package/dist-server/service/kpi-category/index.js.map +0 -1
- package/dist-server/service/kpi-category/kpi-category-mutation.d.ts +0 -9
- package/dist-server/service/kpi-category/kpi-category-mutation.js +0 -221
- package/dist-server/service/kpi-category/kpi-category-mutation.js.map +0 -1
- package/dist-server/service/kpi-category/kpi-category-query.d.ts +0 -18
- package/dist-server/service/kpi-category/kpi-category-query.js +0 -115
- package/dist-server/service/kpi-category/kpi-category-query.js.map +0 -1
- package/dist-server/service/kpi-category/kpi-category-type.d.ts +0 -24
- package/dist-server/service/kpi-category/kpi-category-type.js +0 -100
- package/dist-server/service/kpi-category/kpi-category-type.js.map +0 -1
- package/dist-server/service/kpi-category/kpi-category.d.ts +0 -22
- package/dist-server/service/kpi-category/kpi-category.js +0 -106
- package/dist-server/service/kpi-category/kpi-category.js.map +0 -1
- package/dist-server/service/kpi-category-value/index.d.ts +0 -6
- package/dist-server/service/kpi-category-value/index.js +0 -10
- package/dist-server/service/kpi-category-value/index.js.map +0 -1
- package/dist-server/service/kpi-category-value/kpi-category-value-mutation.d.ts +0 -8
- package/dist-server/service/kpi-category-value/kpi-category-value-mutation.js +0 -102
- package/dist-server/service/kpi-category-value/kpi-category-value-mutation.js.map +0 -1
- package/dist-server/service/kpi-category-value/kpi-category-value-query.d.ts +0 -13
- package/dist-server/service/kpi-category-value/kpi-category-value-query.js +0 -91
- package/dist-server/service/kpi-category-value/kpi-category-value-query.js.map +0 -1
- package/dist-server/service/kpi-category-value/kpi-category-value-type.d.ts +0 -19
- package/dist-server/service/kpi-category-value/kpi-category-value-type.js +0 -73
- package/dist-server/service/kpi-category-value/kpi-category-value-type.js.map +0 -1
- package/dist-server/service/kpi-category-value/kpi-category-value.d.ts +0 -19
- package/dist-server/service/kpi-category-value/kpi-category-value.js +0 -91
- package/dist-server/service/kpi-category-value/kpi-category-value.js.map +0 -1
- package/helps/kpi/kpi-category.md +0 -160
- package/server/service/kpi-category/index.ts +0 -7
- package/server/service/kpi-category/kpi-category-mutation.ts +0 -217
- package/server/service/kpi-category/kpi-category-query.ts +0 -87
- package/server/service/kpi-category/kpi-category-type.ts +0 -73
- package/server/service/kpi-category/kpi-category.ts +0 -95
- package/server/service/kpi-category-value/index.ts +0 -7
- package/server/service/kpi-category-value/kpi-category-value-mutation.ts +0 -88
- package/server/service/kpi-category-value/kpi-category-value-query.ts +0 -62
- package/server/service/kpi-category-value/kpi-category-value-type.ts +0 -48
- package/server/service/kpi-category-value/kpi-category-value.ts +0 -79
|
@@ -186,15 +186,15 @@ export class KpiDashboardPage extends PageView {
|
|
|
186
186
|
minData[category] = Math.min(...values)
|
|
187
187
|
maxData[category] = Math.max(...values)
|
|
188
188
|
avgData[category] = values.reduce((a, b) => a + b, 0) / values.length
|
|
189
|
-
aData[category] = data.find(d => d.category === category && d.
|
|
189
|
+
aData[category] = data.find(d => d.category === category && d.org === 'A')?.value ?? avgData[category]
|
|
190
190
|
})
|
|
191
|
-
// kpi-radar-chart가 기대하는 구조로 변환: [{
|
|
191
|
+
// kpi-radar-chart가 기대하는 구조로 변환: [{org, category, value} ...]
|
|
192
192
|
const result: any[] = []
|
|
193
193
|
categories.forEach(category => {
|
|
194
|
-
result.push({
|
|
195
|
-
result.push({
|
|
196
|
-
result.push({
|
|
197
|
-
result.push({
|
|
194
|
+
result.push({ org: 'Min', category, value: minData[category] })
|
|
195
|
+
result.push({ org: 'Max', category, value: maxData[category] })
|
|
196
|
+
result.push({ org: 'Avg', category, value: avgData[category] })
|
|
197
|
+
result.push({ org: 'A', category, value: aData[category] })
|
|
198
198
|
})
|
|
199
199
|
return result
|
|
200
200
|
}
|
|
@@ -221,9 +221,9 @@ export class KpiDashboardPage extends PageView {
|
|
|
221
221
|
const q1 = sorted[Math.floor(sorted.length / 4)]
|
|
222
222
|
const q3 = sorted[Math.floor((sorted.length * 3) / 4)]
|
|
223
223
|
// value: A그룹의 실제값(강조)
|
|
224
|
-
const value = data.find(d => d.category === category && d.
|
|
224
|
+
const value = data.find(d => d.category === category && d.org === 'A')?.value ?? mean
|
|
225
225
|
return {
|
|
226
|
-
|
|
226
|
+
org: category, // x축: 카테고리
|
|
227
227
|
min,
|
|
228
228
|
q1,
|
|
229
229
|
median,
|
|
@@ -470,28 +470,26 @@ export class KpiDashboardPage extends PageView {
|
|
|
470
470
|
const response = await client.query({
|
|
471
471
|
query: gql`
|
|
472
472
|
query {
|
|
473
|
-
kpiCategories {
|
|
474
|
-
|
|
473
|
+
kpiCategories: kpisLevel1 {
|
|
474
|
+
id
|
|
475
|
+
name
|
|
476
|
+
kpis: children {
|
|
475
477
|
id
|
|
476
478
|
name
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
updatedAt
|
|
492
|
-
updater {
|
|
493
|
-
name
|
|
494
|
-
}
|
|
479
|
+
value {
|
|
480
|
+
value
|
|
481
|
+
valueDate
|
|
482
|
+
}
|
|
483
|
+
targetValue
|
|
484
|
+
unit
|
|
485
|
+
grades
|
|
486
|
+
vizType
|
|
487
|
+
vizMeta
|
|
488
|
+
histories(limit: 1) {
|
|
489
|
+
version
|
|
490
|
+
updatedAt
|
|
491
|
+
updater {
|
|
492
|
+
name
|
|
495
493
|
}
|
|
496
494
|
}
|
|
497
495
|
}
|
|
@@ -508,7 +506,7 @@ export class KpiDashboardPage extends PageView {
|
|
|
508
506
|
}
|
|
509
507
|
`
|
|
510
508
|
})
|
|
511
|
-
this.categories = response.data.kpiCategories
|
|
509
|
+
this.categories = response.data.kpiCategories || []
|
|
512
510
|
this.alerts = response.data.kpiAlerts || []
|
|
513
511
|
} catch (e) {
|
|
514
512
|
this.error = 'KPI 카테고리 데이터를 불러오지 못했습니다.'
|
|
@@ -548,7 +546,7 @@ export class KpiDashboardPage extends PageView {
|
|
|
548
546
|
id
|
|
549
547
|
name
|
|
550
548
|
unit
|
|
551
|
-
category {
|
|
549
|
+
category: parent {
|
|
552
550
|
id
|
|
553
551
|
name
|
|
554
552
|
}
|
|
@@ -7,6 +7,7 @@ import { client } from '@operato/graphql'
|
|
|
7
7
|
import { i18next, localize } from '@operato/i18n'
|
|
8
8
|
import { PageView } from '@operato/shell'
|
|
9
9
|
import { gql } from '@apollo/client'
|
|
10
|
+
import { p13n } from '@operato/p13n'
|
|
10
11
|
|
|
11
12
|
const KPI_HISTORY_LIST_QUERY = gql`
|
|
12
13
|
query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
|
@@ -35,7 +36,7 @@ const KPI_HISTORY_LIST_QUERY = gql`
|
|
|
35
36
|
`
|
|
36
37
|
|
|
37
38
|
@customElement('kpi-history-list-page')
|
|
38
|
-
export class KpiHistoryListPage extends localize(i18next)(PageView) {
|
|
39
|
+
export class KpiHistoryListPage extends p13n(localize(i18next)(PageView)) {
|
|
39
40
|
static styles = css`
|
|
40
41
|
:host {
|
|
41
42
|
display: flex;
|
|
@@ -61,7 +62,6 @@ export class KpiHistoryListPage extends localize(i18next)(PageView) {
|
|
|
61
62
|
'version',
|
|
62
63
|
'name',
|
|
63
64
|
'description',
|
|
64
|
-
'category',
|
|
65
65
|
'formula',
|
|
66
66
|
'active',
|
|
67
67
|
'state',
|
|
@@ -75,7 +75,6 @@ export class KpiHistoryListPage extends localize(i18next)(PageView) {
|
|
|
75
75
|
'version',
|
|
76
76
|
'name',
|
|
77
77
|
'description',
|
|
78
|
-
'category',
|
|
79
78
|
'formula',
|
|
80
79
|
'active',
|
|
81
80
|
'state',
|
|
@@ -98,13 +97,6 @@ export class KpiHistoryListPage extends localize(i18next)(PageView) {
|
|
|
98
97
|
{ type: 'number', name: 'version', header: '버전', record: { editable: false }, width: 80 },
|
|
99
98
|
{ type: 'string', name: 'name', header: '이름', record: { editable: false }, width: 150 },
|
|
100
99
|
{ type: 'string', name: 'description', header: '설명', record: { editable: false }, width: 200 },
|
|
101
|
-
{
|
|
102
|
-
type: 'string',
|
|
103
|
-
name: 'category',
|
|
104
|
-
header: '카테고리',
|
|
105
|
-
record: { editable: false, renderer: (v, c, r) => r.category?.name },
|
|
106
|
-
width: 120
|
|
107
|
-
},
|
|
108
100
|
{ type: 'formula', name: 'formula', header: '산식', record: { editable: false }, width: 200 },
|
|
109
101
|
{ type: 'checkbox', name: 'active', label: true, header: '활성', record: { editable: false }, width: 60 },
|
|
110
102
|
{ type: 'string', name: 'state', header: '상태', record: { editable: false }, width: 100 },
|
|
@@ -130,7 +122,15 @@ export class KpiHistoryListPage extends localize(i18next)(PageView) {
|
|
|
130
122
|
@query('ox-grist') private grist!: DataGrist
|
|
131
123
|
|
|
132
124
|
render() {
|
|
133
|
-
return html`
|
|
125
|
+
return html`
|
|
126
|
+
<ox-grist
|
|
127
|
+
.config=${this.gristConfig}
|
|
128
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
129
|
+
.personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}
|
|
130
|
+
>
|
|
131
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
|
132
|
+
</ox-grist>
|
|
133
|
+
`
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {
|
|
@@ -15,6 +15,7 @@ import { i18next, localize } from '@operato/i18n'
|
|
|
15
15
|
import { notify, openPopup } from '@operato/layout'
|
|
16
16
|
import { OxPopup, OxPrompt } from '@operato/popup'
|
|
17
17
|
import { isMobileDevice } from '@operato/utils'
|
|
18
|
+
import { p13n } from '@operato/p13n'
|
|
18
19
|
|
|
19
20
|
import { connect } from 'pwa-helpers/connect-mixin'
|
|
20
21
|
import gql from 'graphql-tag'
|
|
@@ -22,7 +23,7 @@ import gql from 'graphql-tag'
|
|
|
22
23
|
import { KpiMetricImporter } from './kpi-metric-importer'
|
|
23
24
|
|
|
24
25
|
@customElement('kpi-metric-list-page')
|
|
25
|
-
export class KpiMetricListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
|
|
26
|
+
export class KpiMetricListPage extends connect(store)(p13n(localize(i18next)(ScopedElementsMixin(PageView)))) {
|
|
26
27
|
static styles = [
|
|
27
28
|
ScrollbarStyles,
|
|
28
29
|
CommonGristStyles,
|
|
@@ -100,7 +101,12 @@ export class KpiMetricListPage extends connect(store)(localize(i18next)(ScopedEl
|
|
|
100
101
|
const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
|
|
101
102
|
|
|
102
103
|
return html`
|
|
103
|
-
<ox-grist
|
|
104
|
+
<ox-grist
|
|
105
|
+
.mode=${mode}
|
|
106
|
+
.config=${this.gristConfig}
|
|
107
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
108
|
+
.personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}
|
|
109
|
+
>
|
|
104
110
|
<div slot="headroom" class="header">
|
|
105
111
|
<div class="filters">
|
|
106
112
|
<ox-filters-form autofocus without-search></ox-filters-form>
|
|
@@ -118,6 +124,8 @@ export class KpiMetricListPage extends connect(store)(localize(i18next)(ScopedEl
|
|
|
118
124
|
</ox-record-creator>
|
|
119
125
|
</div>
|
|
120
126
|
</div>
|
|
127
|
+
|
|
128
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
|
121
129
|
</ox-grist>
|
|
122
130
|
`
|
|
123
131
|
}
|
|
@@ -209,7 +209,7 @@ export class KpiMetricValueEditorPage extends connect(store)(localize(i18next)(S
|
|
|
209
209
|
`
|
|
210
210
|
]
|
|
211
211
|
|
|
212
|
-
@property({ type: String })
|
|
212
|
+
@property({ type: String }) org: string = ''
|
|
213
213
|
@property({ type: String }) startDate: string = ''
|
|
214
214
|
@property({ type: String }) endDate: string = ''
|
|
215
215
|
|
|
@@ -262,8 +262,8 @@ export class KpiMetricValueEditorPage extends connect(store)(localize(i18next)(S
|
|
|
262
262
|
<div class="controls">
|
|
263
263
|
<md-outlined-text-field
|
|
264
264
|
label="그룹"
|
|
265
|
-
.value=${this.
|
|
266
|
-
@input=${(e: any) => (this.
|
|
265
|
+
.value=${this.org}
|
|
266
|
+
@input=${(e: any) => (this.org = e.target.value)}
|
|
267
267
|
style="width: 150px;"
|
|
268
268
|
></md-outlined-text-field>
|
|
269
269
|
|
|
@@ -492,7 +492,7 @@ export class KpiMetricValueEditorPage extends connect(store)(localize(i18next)(S
|
|
|
492
492
|
metricId
|
|
493
493
|
valueDate
|
|
494
494
|
value
|
|
495
|
-
|
|
495
|
+
org
|
|
496
496
|
}
|
|
497
497
|
total
|
|
498
498
|
}
|
|
@@ -500,7 +500,7 @@ export class KpiMetricValueEditorPage extends connect(store)(localize(i18next)(S
|
|
|
500
500
|
`,
|
|
501
501
|
variables: {
|
|
502
502
|
filters: [
|
|
503
|
-
...(this.
|
|
503
|
+
...(this.org ? [{ name: 'org', operator: 'eq', value: this.org }] : []),
|
|
504
504
|
{ name: 'valueDate', operator: 'between', value: [this.startDate, this.endDate] }
|
|
505
505
|
]
|
|
506
506
|
}
|
|
@@ -576,7 +576,7 @@ export class KpiMetricValueEditorPage extends connect(store)(localize(i18next)(S
|
|
|
576
576
|
patches.push({
|
|
577
577
|
id: existingValue.id,
|
|
578
578
|
value: data.value,
|
|
579
|
-
|
|
579
|
+
org: this.org,
|
|
580
580
|
cuFlag: 'M'
|
|
581
581
|
})
|
|
582
582
|
} else {
|
|
@@ -594,7 +594,7 @@ export class KpiMetricValueEditorPage extends connect(store)(localize(i18next)(S
|
|
|
594
594
|
metricId: metric.metricId,
|
|
595
595
|
valueDate: normalizedDate,
|
|
596
596
|
value: data.value,
|
|
597
|
-
|
|
597
|
+
org: this.org,
|
|
598
598
|
cuFlag: '+'
|
|
599
599
|
})
|
|
600
600
|
}
|
|
@@ -25,13 +25,13 @@ export class KpiMetricValueImporter extends LitElement {
|
|
|
25
25
|
|
|
26
26
|
@property({ type: Array }) metricValues: any[] = []
|
|
27
27
|
@property({ type: Object }) columns = {
|
|
28
|
-
list: { fields: ['metric', 'value', 'valueDate', '
|
|
28
|
+
list: { fields: ['metric', 'value', 'valueDate', 'org', 'meta'] },
|
|
29
29
|
pagination: { infinite: true },
|
|
30
30
|
columns: [
|
|
31
31
|
{ type: 'string', name: 'metric', header: 'Metric', width: 150 },
|
|
32
32
|
{ type: 'number', name: 'value', header: '값', width: 120 },
|
|
33
33
|
{ type: 'date', name: 'valueDate', header: '날짜', width: 120 },
|
|
34
|
-
{ type: 'string', name: '
|
|
34
|
+
{ type: 'string', name: 'org', header: '조직', width: 120 },
|
|
35
35
|
{ type: 'object', name: 'meta', header: '메타', width: 120 }
|
|
36
36
|
]
|
|
37
37
|
}
|
|
@@ -16,12 +16,13 @@ import { i18next, localize } from '@operato/i18n'
|
|
|
16
16
|
import { notify, openPopup } from '@operato/layout'
|
|
17
17
|
import { OxPopup, OxPrompt } from '@operato/popup'
|
|
18
18
|
import { isMobileDevice } from '@operato/utils'
|
|
19
|
+
import { p13n } from '@operato/p13n'
|
|
19
20
|
|
|
20
21
|
import { connect } from 'pwa-helpers/connect-mixin'
|
|
21
22
|
import gql from 'graphql-tag'
|
|
22
23
|
|
|
23
24
|
@customElement('kpi-metric-value-list-page')
|
|
24
|
-
export class KpiMetricValueListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
|
|
25
|
+
export class KpiMetricValueListPage extends connect(store)(p13n(localize(i18next)(ScopedElementsMixin(PageView)))) {
|
|
25
26
|
static styles = [
|
|
26
27
|
ScrollbarStyles,
|
|
27
28
|
CommonGristStyles,
|
|
@@ -90,7 +91,12 @@ export class KpiMetricValueListPage extends connect(store)(localize(i18next)(Sco
|
|
|
90
91
|
render() {
|
|
91
92
|
const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
|
|
92
93
|
return html`
|
|
93
|
-
<ox-grist
|
|
94
|
+
<ox-grist
|
|
95
|
+
.mode=${mode}
|
|
96
|
+
.config=${this.gristConfig}
|
|
97
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
98
|
+
.personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}
|
|
99
|
+
>
|
|
94
100
|
<div slot="headroom" class="header">
|
|
95
101
|
<div class="filters">
|
|
96
102
|
<ox-filters-form autofocus without-search></ox-filters-form>
|
|
@@ -106,6 +112,8 @@ export class KpiMetricValueListPage extends connect(store)(localize(i18next)(Sco
|
|
|
106
112
|
</ox-record-creator>
|
|
107
113
|
</div>
|
|
108
114
|
</div>
|
|
115
|
+
|
|
116
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
|
109
117
|
</ox-grist>
|
|
110
118
|
`
|
|
111
119
|
}
|
|
@@ -113,8 +121,8 @@ export class KpiMetricValueListPage extends connect(store)(localize(i18next)(Sco
|
|
|
113
121
|
async pageInitialized() {
|
|
114
122
|
this.gristConfig = {
|
|
115
123
|
list: {
|
|
116
|
-
fields: ['metric', 'valueDate', 'value', '
|
|
117
|
-
details: ['metric', 'valueDate', 'value', '
|
|
124
|
+
fields: ['metric', 'valueDate', 'value', 'org', 'meta', 'createdAt', 'updatedAt', 'creator', 'updater'],
|
|
125
|
+
details: ['metric', 'valueDate', 'value', 'org', 'meta', 'createdAt', 'updatedAt', 'creator', 'updater']
|
|
118
126
|
},
|
|
119
127
|
columns: [
|
|
120
128
|
{ type: 'gutter', gutterName: 'sequence' },
|
|
@@ -140,7 +148,7 @@ export class KpiMetricValueListPage extends connect(store)(localize(i18next)(Sco
|
|
|
140
148
|
},
|
|
141
149
|
{ type: 'string', name: 'valueDate', header: '날짜', record: { editable: true }, width: 120 },
|
|
142
150
|
{ type: 'number', name: 'value', header: '값', record: { editable: true }, width: 120 },
|
|
143
|
-
{ type: 'string', name: '
|
|
151
|
+
{ type: 'string', name: 'org', header: '조직', record: { editable: false }, width: 120 },
|
|
144
152
|
{ type: 'object', name: 'meta', header: '메타', record: { editable: false }, width: 120 },
|
|
145
153
|
{ type: 'datetime', name: 'createdAt', header: '생성일', record: { editable: false }, width: 180 },
|
|
146
154
|
{ type: 'datetime', name: 'updatedAt', header: '수정일', record: { editable: false }, width: 180 },
|
|
@@ -189,7 +197,7 @@ export class KpiMetricValueListPage extends connect(store)(localize(i18next)(Sco
|
|
|
189
197
|
valueDate
|
|
190
198
|
value
|
|
191
199
|
meta
|
|
192
|
-
|
|
200
|
+
org
|
|
193
201
|
updater {
|
|
194
202
|
id
|
|
195
203
|
name
|
|
@@ -307,7 +315,7 @@ export class KpiMetricValueListPage extends connect(store)(localize(i18next)(Sco
|
|
|
307
315
|
|
|
308
316
|
async exportHandler() {
|
|
309
317
|
const exportTargets = this.grist.selected.length ? this.grist.selected : this.grist.dirtyData.records
|
|
310
|
-
const targetFieldSet = new Set(['id', 'metric', 'valueDate', 'value', '
|
|
318
|
+
const targetFieldSet = new Set(['id', 'metric', 'valueDate', 'value', 'org', 'meta'])
|
|
311
319
|
return exportTargets.map(metricValue => {
|
|
312
320
|
let tempObj = {}
|
|
313
321
|
for (const field of targetFieldSet) {
|
|
@@ -328,7 +336,7 @@ export class KpiMetricValueListPage extends connect(store)(localize(i18next)(Sco
|
|
|
328
336
|
.metric=${metricValue.metric}
|
|
329
337
|
.valueDate=${metricValue.valueDate}
|
|
330
338
|
.value=${metricValue.value}
|
|
331
|
-
.
|
|
339
|
+
.org=${metricValue.org}
|
|
332
340
|
.meta=${metricValue.meta ? JSON.stringify(metricValue.meta) : ''}
|
|
333
341
|
@saved=${() => {
|
|
334
342
|
this.grist.fetch()
|
|
@@ -61,7 +61,7 @@ export class KpiMetricValueManualEntryForm extends LitElement {
|
|
|
61
61
|
@property({ type: Object }) metric: any
|
|
62
62
|
@state() valueDate = new Date().toISOString().slice(0, 10)
|
|
63
63
|
@state() value = ''
|
|
64
|
-
@state()
|
|
64
|
+
@state() org = ''
|
|
65
65
|
@state() meta = ''
|
|
66
66
|
@state() loading = false
|
|
67
67
|
|
|
@@ -80,7 +80,7 @@ export class KpiMetricValueManualEntryForm extends LitElement {
|
|
|
80
80
|
</label>
|
|
81
81
|
<label>
|
|
82
82
|
그룹 (선택)
|
|
83
|
-
<input type="text" .value=${this.
|
|
83
|
+
<input type="text" .value=${this.org} @input=${e => (this.org = e.target.value)} />
|
|
84
84
|
</label>
|
|
85
85
|
<label>
|
|
86
86
|
메타정보 (선택, JSON)
|
|
@@ -111,8 +111,8 @@ export class KpiMetricValueManualEntryForm extends LitElement {
|
|
|
111
111
|
try {
|
|
112
112
|
await client.mutate({
|
|
113
113
|
mutation: gql`
|
|
114
|
-
mutation ($metricName: String!, $value: Float!, $
|
|
115
|
-
recordKpiMetricValue(metricName: $metricName, value: $value, meta: $meta,
|
|
114
|
+
mutation ($metricName: String!, $value: Float!, $org: String, $meta: Object) {
|
|
115
|
+
recordKpiMetricValue(metricName: $metricName, value: $value, meta: $meta, org: $org) {
|
|
116
116
|
id
|
|
117
117
|
}
|
|
118
118
|
}
|
|
@@ -120,7 +120,7 @@ export class KpiMetricValueManualEntryForm extends LitElement {
|
|
|
120
120
|
variables: {
|
|
121
121
|
metricName: this.metric.name,
|
|
122
122
|
value: parseFloat(this.value),
|
|
123
|
-
|
|
123
|
+
org: this.org || undefined,
|
|
124
124
|
meta: parsedMeta
|
|
125
125
|
}
|
|
126
126
|
})
|
|
@@ -15,6 +15,7 @@ import { i18next, localize } from '@operato/i18n'
|
|
|
15
15
|
import { notify, openPopup } from '@operato/layout'
|
|
16
16
|
import { OxPopup, OxPrompt } from '@operato/popup'
|
|
17
17
|
import { isMobileDevice } from '@operato/utils'
|
|
18
|
+
import { p13n } from '@operato/p13n'
|
|
18
19
|
|
|
19
20
|
import { connect } from 'pwa-helpers/connect-mixin'
|
|
20
21
|
import gql from 'graphql-tag'
|
|
@@ -22,7 +23,7 @@ import gql from 'graphql-tag'
|
|
|
22
23
|
import { KpiStatisticImporter } from './kpi-statistic-importer.js'
|
|
23
24
|
|
|
24
25
|
@customElement('kpi-statistic-list-page')
|
|
25
|
-
export class KpiStatisticListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
|
|
26
|
+
export class KpiStatisticListPage extends connect(store)(p13n(localize(i18next)(ScopedElementsMixin(PageView)))) {
|
|
26
27
|
static styles = [
|
|
27
28
|
ScrollbarStyles,
|
|
28
29
|
CommonGristStyles,
|
|
@@ -100,7 +101,12 @@ export class KpiStatisticListPage extends connect(store)(localize(i18next)(Scope
|
|
|
100
101
|
const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
|
|
101
102
|
|
|
102
103
|
return html`
|
|
103
|
-
<ox-grist
|
|
104
|
+
<ox-grist
|
|
105
|
+
.mode=${mode}
|
|
106
|
+
.config=${this.gristConfig}
|
|
107
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
108
|
+
.personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}
|
|
109
|
+
>
|
|
104
110
|
<div slot="headroom" class="header">
|
|
105
111
|
<div class="filters">
|
|
106
112
|
<ox-filters-form autofocus without-search></ox-filters-form>
|
|
@@ -118,6 +124,8 @@ export class KpiStatisticListPage extends connect(store)(localize(i18next)(Scope
|
|
|
118
124
|
</ox-record-creator>
|
|
119
125
|
</div>
|
|
120
126
|
</div>
|
|
127
|
+
|
|
128
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
|
121
129
|
</ox-grist>
|
|
122
130
|
`
|
|
123
131
|
}
|
|
@@ -210,7 +210,8 @@ export class KpiValueEditorPage extends connect(store)(localize(i18next)(ScopedE
|
|
|
210
210
|
`
|
|
211
211
|
]
|
|
212
212
|
|
|
213
|
-
@property({ type: String })
|
|
213
|
+
@property({ type: String }) kpiOrgScopeId: string = ''
|
|
214
|
+
@property({ type: String }) org: string = '' // legacy support
|
|
214
215
|
@property({ type: String }) startDate: string = ''
|
|
215
216
|
@property({ type: String }) endDate: string = ''
|
|
216
217
|
|
|
@@ -263,8 +264,8 @@ export class KpiValueEditorPage extends connect(store)(localize(i18next)(ScopedE
|
|
|
263
264
|
<div class="controls">
|
|
264
265
|
<md-outlined-text-field
|
|
265
266
|
label="그룹"
|
|
266
|
-
.value=${this.
|
|
267
|
-
@input=${(e: any) => (this.
|
|
267
|
+
.value=${this.org}
|
|
268
|
+
@input=${(e: any) => (this.org = e.target.value)}
|
|
268
269
|
style="width: 150px;"
|
|
269
270
|
></md-outlined-text-field>
|
|
270
271
|
|
|
@@ -591,7 +592,10 @@ export class KpiValueEditorPage extends connect(store)(localize(i18next)(ScopedE
|
|
|
591
592
|
valueDate
|
|
592
593
|
value
|
|
593
594
|
score
|
|
594
|
-
|
|
595
|
+
kpiOrgScope {
|
|
596
|
+
id
|
|
597
|
+
org
|
|
598
|
+
}
|
|
595
599
|
}
|
|
596
600
|
total
|
|
597
601
|
}
|
|
@@ -599,7 +603,7 @@ export class KpiValueEditorPage extends connect(store)(localize(i18next)(ScopedE
|
|
|
599
603
|
`,
|
|
600
604
|
variables: {
|
|
601
605
|
filters: [
|
|
602
|
-
...(this.
|
|
606
|
+
...(this.org ? [{ name: 'org', operator: 'eq', value: this.org }] : []),
|
|
603
607
|
{ name: 'valueDate', operator: 'between', value: [this.startDate, this.endDate] }
|
|
604
608
|
]
|
|
605
609
|
}
|
|
@@ -688,7 +692,7 @@ export class KpiValueEditorPage extends connect(store)(localize(i18next)(ScopedE
|
|
|
688
692
|
patches.push({
|
|
689
693
|
id: existingValue.id,
|
|
690
694
|
value: data.value,
|
|
691
|
-
|
|
695
|
+
org: this.org,
|
|
692
696
|
cuFlag: 'M'
|
|
693
697
|
})
|
|
694
698
|
} else {
|
|
@@ -697,7 +701,7 @@ export class KpiValueEditorPage extends connect(store)(localize(i18next)(ScopedE
|
|
|
697
701
|
kpiId: kpi.kpiId,
|
|
698
702
|
valueDate: date,
|
|
699
703
|
value: data.value,
|
|
700
|
-
|
|
704
|
+
org: this.org,
|
|
701
705
|
cuFlag: '+'
|
|
702
706
|
})
|
|
703
707
|
}
|
|
@@ -15,6 +15,7 @@ import { i18next, localize } from '@operato/i18n'
|
|
|
15
15
|
import { notify, openPopup } from '@operato/layout'
|
|
16
16
|
import { OxPopup, OxPrompt } from '@operato/popup'
|
|
17
17
|
import { isMobileDevice } from '@operato/utils'
|
|
18
|
+
import { p13n } from '@operato/p13n'
|
|
18
19
|
|
|
19
20
|
import { connect } from 'pwa-helpers/connect-mixin'
|
|
20
21
|
import gql from 'graphql-tag'
|
|
@@ -22,7 +23,7 @@ import gql from 'graphql-tag'
|
|
|
22
23
|
import { KpiValueImporter } from './kpi-value-importer'
|
|
23
24
|
|
|
24
25
|
@customElement('kpi-value-list-page')
|
|
25
|
-
export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
|
|
26
|
+
export class KpiValueListPage extends connect(store)(p13n(localize(i18next)(ScopedElementsMixin(PageView)))) {
|
|
26
27
|
static styles = [
|
|
27
28
|
ScrollbarStyles,
|
|
28
29
|
CommonGristStyles,
|
|
@@ -106,7 +107,12 @@ export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedEle
|
|
|
106
107
|
const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
|
|
107
108
|
|
|
108
109
|
return html`
|
|
109
|
-
<ox-grist
|
|
110
|
+
<ox-grist
|
|
111
|
+
.mode=${mode}
|
|
112
|
+
.config=${this.gristConfig}
|
|
113
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
114
|
+
.personalConfigProvider=${this.getPagePreferenceProvider('ox-grist')!}
|
|
115
|
+
>
|
|
110
116
|
<div slot="headroom" class="header">
|
|
111
117
|
<div class="filters">
|
|
112
118
|
<ox-filters-form autofocus without-search></ox-filters-form>
|
|
@@ -124,6 +130,8 @@ export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedEle
|
|
|
124
130
|
</ox-record-creator>
|
|
125
131
|
</div>
|
|
126
132
|
</div>
|
|
133
|
+
|
|
134
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
|
127
135
|
</ox-grist>
|
|
128
136
|
`
|
|
129
137
|
}
|
|
@@ -137,7 +145,7 @@ export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedEle
|
|
|
137
145
|
'valueDate',
|
|
138
146
|
'value',
|
|
139
147
|
'score',
|
|
140
|
-
'
|
|
148
|
+
'kpiOrgScope',
|
|
141
149
|
'inputType',
|
|
142
150
|
'source',
|
|
143
151
|
'meta',
|
|
@@ -152,7 +160,7 @@ export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedEle
|
|
|
152
160
|
'valueDate',
|
|
153
161
|
'value',
|
|
154
162
|
'score',
|
|
155
|
-
'
|
|
163
|
+
'kpiOrgScope',
|
|
156
164
|
'inputType',
|
|
157
165
|
'source',
|
|
158
166
|
'meta',
|
|
@@ -188,7 +196,16 @@ export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedEle
|
|
|
188
196
|
{ type: 'string', name: 'valueDate', header: '실적일', record: { editable: true }, width: 120 },
|
|
189
197
|
{ type: 'number', name: 'value', header: '실적값', record: { editable: true }, width: 120 },
|
|
190
198
|
{ type: 'number', name: 'score', header: '성과점수', record: { editable: false }, width: 120 },
|
|
191
|
-
{
|
|
199
|
+
{
|
|
200
|
+
type: 'string',
|
|
201
|
+
name: 'kpiOrgScope',
|
|
202
|
+
header: '조직',
|
|
203
|
+
record: { editable: false },
|
|
204
|
+
width: 120,
|
|
205
|
+
renderer: (value, column, record, rowIndex, field) => {
|
|
206
|
+
return value?.entityName || value?.org || ''
|
|
207
|
+
}
|
|
208
|
+
},
|
|
192
209
|
{ type: 'string', name: 'inputType', header: '입력방식', record: { editable: false }, width: 100 },
|
|
193
210
|
{ type: 'string', name: 'source', header: '수집출처', record: { editable: false }, width: 120 },
|
|
194
211
|
{ type: 'object', name: 'meta', header: '메타', record: { editable: false }, width: 120 },
|
|
@@ -243,7 +260,10 @@ export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedEle
|
|
|
243
260
|
inputType
|
|
244
261
|
source
|
|
245
262
|
meta
|
|
246
|
-
|
|
263
|
+
kpiOrgScope {
|
|
264
|
+
id
|
|
265
|
+
org
|
|
266
|
+
}
|
|
247
267
|
updater {
|
|
248
268
|
id
|
|
249
269
|
name
|
|
@@ -362,7 +382,11 @@ export class KpiValueListPage extends connect(store)(localize(i18next)(ScopedEle
|
|
|
362
382
|
value
|
|
363
383
|
score
|
|
364
384
|
valueDate
|
|
365
|
-
|
|
385
|
+
kpiOrgScope {
|
|
386
|
+
id
|
|
387
|
+
entityName
|
|
388
|
+
org
|
|
389
|
+
}
|
|
366
390
|
}
|
|
367
391
|
}
|
|
368
392
|
`,
|
package/client/route.ts
CHANGED
|
@@ -12,17 +12,10 @@ export default function route(page: string) {
|
|
|
12
12
|
import('./pages/kpi/kpi-list-page')
|
|
13
13
|
return page
|
|
14
14
|
|
|
15
|
-
case 'kpi-
|
|
16
|
-
import('./pages/kpi
|
|
15
|
+
case 'kpi-tree':
|
|
16
|
+
import('./pages/kpi/kpi-tree-page')
|
|
17
17
|
return page
|
|
18
18
|
|
|
19
|
-
case 'kpi-category-list':
|
|
20
|
-
import('./pages/kpi-category/kpi-category-list-page')
|
|
21
|
-
return page
|
|
22
|
-
|
|
23
|
-
case 'kpi-category-value-list':
|
|
24
|
-
import('./pages/kpi-category-value/kpi-category-value-list-page')
|
|
25
|
-
return page
|
|
26
19
|
|
|
27
20
|
case 'kpi-metric-list':
|
|
28
21
|
import('./pages/kpi-metric/kpi-metric-list-page')
|