@delon/chart 12.3.0 → 13.0.0-beta.1
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/bar/bar.component.d.ts +4 -1
- package/bar/bar.d.ts +1 -0
- package/bar/bar.module.d.ts +8 -0
- package/bar/package.json +5 -6
- package/card/card.component.d.ts +7 -4
- package/card/card.d.ts +1 -0
- package/card/card.module.d.ts +9 -0
- package/card/package.json +5 -6
- package/card/style/index.less +11 -0
- package/chart-echarts/delon-chart-chart-echarts.d.ts +1 -0
- package/chart-echarts/echarts.component.d.ts +3 -0
- package/chart-echarts/echarts.module.d.ts +7 -0
- package/chart-echarts/echarts.service.d.ts +3 -0
- package/chart-echarts/package.json +5 -6
- package/chart.d.ts +1 -0
- package/core/delon-chart-core.d.ts +1 -0
- package/core/g2.base.component.d.ts +4 -1
- package/core/g2.servicce.d.ts +3 -0
- package/core/package.json +5 -6
- package/custom/custom.component.d.ts +4 -1
- package/custom/custom.module.d.ts +7 -0
- package/custom/delon-chart-custom.d.ts +5 -0
- package/custom/package.json +6 -7
- package/esm2020/bar/bar.component.mjs +143 -0
- package/{esm2015/bar/bar.js → esm2020/bar/bar.mjs} +0 -0
- package/esm2020/bar/bar.module.mjs +21 -0
- package/{esm2015/bar/public_api.js → esm2020/bar/public_api.mjs} +0 -0
- package/esm2020/card/card.component.mjs +55 -0
- package/{esm2015/card/card.js → esm2020/card/card.mjs} +0 -0
- package/esm2020/card/card.module.mjs +22 -0
- package/{esm2015/card/public_api.js → esm2020/card/public_api.mjs} +0 -0
- package/{esm2015/chart-echarts/delon-chart-chart-echarts.js → esm2020/chart-echarts/delon-chart-chart-echarts.mjs} +0 -0
- package/esm2020/chart-echarts/echarts.component.mjs +162 -0
- package/esm2020/chart-echarts/echarts.module.mjs +20 -0
- package/esm2020/chart-echarts/echarts.service.mjs +60 -0
- package/{esm2015/chart-echarts/echarts.types.js → esm2020/chart-echarts/echarts.types.mjs} +0 -0
- package/{esm2015/chart-echarts/public_api.js → esm2020/chart-echarts/public_api.mjs} +0 -0
- package/{esm2015/chart.js → esm2020/chart.mjs} +0 -0
- package/{esm2015/core/delon-chart-core.js → esm2020/core/delon-chart-core.mjs} +0 -0
- package/esm2020/core/g2.base.component.mjs +109 -0
- package/esm2020/core/g2.servicce.mjs +54 -0
- package/{esm2015/core/public_api.js → esm2020/core/public_api.mjs} +0 -0
- package/{esm2015/core/types/interaction.js → esm2020/core/types/interaction.mjs} +0 -0
- package/{esm2015/core/types/time.js → esm2020/core/types/time.mjs} +0 -0
- package/esm2020/core/utils.mjs +21 -0
- package/esm2020/custom/custom.component.mjs +70 -0
- package/esm2020/custom/custom.module.mjs +20 -0
- package/esm2020/custom/delon-chart-custom.mjs +5 -0
- package/{esm2015/custom/public_api.js → esm2020/custom/public_api.mjs} +0 -0
- package/{esm2015/mini-progress/mini-progress.js → esm2020/gauge/delon-chart-gauge.mjs} +1 -1
- package/esm2020/gauge/gauge.component.mjs +169 -0
- package/esm2020/gauge/gauge.module.mjs +20 -0
- package/{esm2015/gauge/public_api.js → esm2020/gauge/public_api.mjs} +0 -0
- package/esm2020/mini-area/delon-chart-mini-area.mjs +5 -0
- package/esm2020/mini-area/mini-area.component.mjs +133 -0
- package/esm2020/mini-area/mini-area.module.mjs +19 -0
- package/{esm2015/mini-area/public_api.js → esm2020/mini-area/public_api.mjs} +0 -0
- package/esm2020/mini-bar/delon-chart-mini-bar.mjs +5 -0
- package/esm2020/mini-bar/mini-bar.component.mjs +100 -0
- package/esm2020/mini-bar/mini-bar.module.mjs +19 -0
- package/{esm2015/mini-bar/public_api.js → esm2020/mini-bar/public_api.mjs} +0 -0
- package/{esm2015/gauge/gauge.js → esm2020/mini-progress/delon-chart-mini-progress.mjs} +1 -1
- package/esm2020/mini-progress/mini-progress.component.mjs +46 -0
- package/esm2020/mini-progress/mini-progress.module.mjs +21 -0
- package/{esm2015/mini-progress/public_api.js → esm2020/mini-progress/public_api.mjs} +0 -0
- package/{esm2015/pie/pie.js → esm2020/number-info/delon-chart-number-info.mjs} +1 -1
- package/esm2020/number-info/number-info.component.mjs +45 -0
- package/esm2020/number-info/number-info.module.mjs +21 -0
- package/{esm2015/number-info/public_api.js → esm2020/number-info/public_api.mjs} +0 -0
- package/{esm2015/number-info/number-info.js → esm2020/pie/delon-chart-pie.mjs} +1 -1
- package/esm2020/pie/pie.component.mjs +215 -0
- package/esm2020/pie/pie.module.mjs +22 -0
- package/{esm2015/pie/public_api.js → esm2020/pie/public_api.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/esm2020/radar/delon-chart-radar.mjs +5 -0
- package/{esm2015/radar/public_api.js → esm2020/radar/public_api.mjs} +0 -0
- package/esm2020/radar/radar.component.mjs +148 -0
- package/esm2020/radar/radar.module.mjs +22 -0
- package/esm2020/single-bar/delon-chart-single-bar.mjs +5 -0
- package/{esm2015/single-bar/public_api.js → esm2020/single-bar/public_api.mjs} +0 -0
- package/esm2020/single-bar/single-bar.component.mjs +126 -0
- package/esm2020/single-bar/single-bar.module.mjs +19 -0
- package/esm2020/tag-cloud/delon-chart-tag-cloud.mjs +5 -0
- package/{esm2015/tag-cloud/public_api.js → esm2020/tag-cloud/public_api.mjs} +0 -0
- package/esm2020/tag-cloud/tag-cloud.component.mjs +161 -0
- package/esm2020/tag-cloud/tag-cloud.module.mjs +20 -0
- package/esm2020/timeline/delon-chart-timeline.mjs +5 -0
- package/{esm2015/timeline/public_api.js → esm2020/timeline/public_api.mjs} +0 -0
- package/esm2020/timeline/timeline.component.mjs +204 -0
- package/esm2020/timeline/timeline.module.mjs +21 -0
- package/esm2020/trend/delon-chart-trend.mjs +5 -0
- package/{esm2015/trend/public_api.js → esm2020/trend/public_api.mjs} +0 -0
- package/esm2020/trend/trend.component.mjs +52 -0
- package/esm2020/trend/trend.module.mjs +20 -0
- package/esm2020/water-wave/delon-chart-water-wave.mjs +5 -0
- package/{esm2015/water-wave/public_api.js → esm2020/water-wave/public_api.mjs} +0 -0
- package/esm2020/water-wave/water-wave.component.mjs +221 -0
- package/esm2020/water-wave/water-wave.module.mjs +20 -0
- package/fesm2015/{bar.js → bar.mjs} +57 -34
- package/fesm2015/bar.mjs.map +1 -0
- package/fesm2015/card.mjs +81 -0
- package/fesm2015/card.mjs.map +1 -0
- package/fesm2015/{chart.js → chart.mjs} +1 -1
- package/fesm2015/chart.mjs.map +1 -0
- package/fesm2015/{delon-chart-chart-echarts.js → delon-chart-chart-echarts.mjs} +62 -53
- package/fesm2015/delon-chart-chart-echarts.mjs.map +1 -0
- package/fesm2015/{delon-chart-core.js → delon-chart-core.mjs} +23 -29
- package/fesm2015/delon-chart-core.mjs.map +1 -0
- package/fesm2015/delon-chart-custom.mjs +94 -0
- package/fesm2015/delon-chart-custom.mjs.map +1 -0
- package/fesm2015/{gauge.js → delon-chart-gauge.mjs} +46 -31
- package/fesm2015/delon-chart-gauge.mjs.map +1 -0
- package/fesm2015/delon-chart-mini-area.mjs +156 -0
- package/fesm2015/delon-chart-mini-area.mjs.map +1 -0
- package/fesm2015/delon-chart-mini-bar.mjs +123 -0
- package/fesm2015/delon-chart-mini-bar.mjs.map +1 -0
- package/fesm2015/delon-chart-mini-progress.mjs +71 -0
- package/fesm2015/delon-chart-mini-progress.mjs.map +1 -0
- package/fesm2015/delon-chart-number-info.mjs +70 -0
- package/fesm2015/delon-chart-number-info.mjs.map +1 -0
- package/fesm2015/delon-chart-pie.mjs +241 -0
- package/fesm2015/delon-chart-pie.mjs.map +1 -0
- package/fesm2015/{radar.js → delon-chart-radar.mjs} +43 -33
- package/fesm2015/delon-chart-radar.mjs.map +1 -0
- package/fesm2015/delon-chart-single-bar.mjs +147 -0
- package/fesm2015/delon-chart-single-bar.mjs.map +1 -0
- package/fesm2015/{tag-cloud.js → delon-chart-tag-cloud.mjs} +39 -26
- package/fesm2015/delon-chart-tag-cloud.mjs.map +1 -0
- package/fesm2015/{timeline.js → delon-chart-timeline.mjs} +64 -36
- package/fesm2015/delon-chart-timeline.mjs.map +1 -0
- package/fesm2015/delon-chart-trend.mjs +76 -0
- package/fesm2015/delon-chart-trend.mjs.map +1 -0
- package/fesm2015/{water-wave.js → delon-chart-water-wave.mjs} +38 -37
- package/fesm2015/delon-chart-water-wave.mjs.map +1 -0
- package/fesm2020/bar.mjs +168 -0
- package/fesm2020/bar.mjs.map +1 -0
- package/fesm2020/card.mjs +81 -0
- package/fesm2020/card.mjs.map +1 -0
- package/fesm2020/chart.mjs +7 -0
- package/fesm2020/chart.mjs.map +1 -0
- package/fesm2020/delon-chart-chart-echarts.mjs +242 -0
- package/fesm2020/delon-chart-chart-echarts.mjs.map +1 -0
- package/fesm2020/delon-chart-core.mjs +187 -0
- package/fesm2020/delon-chart-core.mjs.map +1 -0
- package/fesm2020/delon-chart-custom.mjs +94 -0
- package/fesm2020/delon-chart-custom.mjs.map +1 -0
- package/fesm2020/delon-chart-gauge.mjs +193 -0
- package/fesm2020/delon-chart-gauge.mjs.map +1 -0
- package/fesm2020/delon-chart-mini-area.mjs +156 -0
- package/fesm2020/delon-chart-mini-area.mjs.map +1 -0
- package/fesm2020/delon-chart-mini-bar.mjs +123 -0
- package/fesm2020/delon-chart-mini-bar.mjs.map +1 -0
- package/fesm2020/delon-chart-mini-progress.mjs +71 -0
- package/fesm2020/delon-chart-mini-progress.mjs.map +1 -0
- package/fesm2020/delon-chart-number-info.mjs +70 -0
- package/fesm2020/delon-chart-number-info.mjs.map +1 -0
- package/fesm2020/delon-chart-pie.mjs +241 -0
- package/fesm2020/delon-chart-pie.mjs.map +1 -0
- package/fesm2020/delon-chart-radar.mjs +174 -0
- package/fesm2020/delon-chart-radar.mjs.map +1 -0
- package/fesm2020/delon-chart-single-bar.mjs +149 -0
- package/fesm2020/delon-chart-single-bar.mjs.map +1 -0
- package/fesm2020/delon-chart-tag-cloud.mjs +185 -0
- package/fesm2020/delon-chart-tag-cloud.mjs.map +1 -0
- package/fesm2020/delon-chart-timeline.mjs +229 -0
- package/fesm2020/delon-chart-timeline.mjs.map +1 -0
- package/fesm2020/delon-chart-trend.mjs +76 -0
- package/fesm2020/delon-chart-trend.mjs.map +1 -0
- package/fesm2020/delon-chart-water-wave.mjs +245 -0
- package/fesm2020/delon-chart-water-wave.mjs.map +1 -0
- package/{mini-bar/mini-bar.d.ts → gauge/delon-chart-gauge.d.ts} +1 -0
- package/gauge/gauge.component.d.ts +8 -5
- package/gauge/gauge.module.d.ts +7 -0
- package/gauge/package.json +6 -7
- package/mini-area/delon-chart-mini-area.d.ts +5 -0
- package/mini-area/mini-area.component.d.ts +3 -1
- package/mini-area/mini-area.module.d.ts +6 -0
- package/mini-area/package.json +6 -7
- package/mini-bar/delon-chart-mini-bar.d.ts +5 -0
- package/mini-bar/mini-bar.component.d.ts +3 -0
- package/mini-bar/mini-bar.module.d.ts +6 -0
- package/mini-bar/package.json +6 -7
- package/mini-progress/delon-chart-mini-progress.d.ts +5 -0
- package/mini-progress/mini-progress.component.d.ts +6 -3
- package/mini-progress/mini-progress.module.d.ts +8 -0
- package/mini-progress/package.json +6 -7
- package/mini-progress/style/index.less +5 -0
- package/number-info/delon-chart-number-info.d.ts +5 -0
- package/number-info/number-info.component.d.ts +9 -6
- package/number-info/number-info.module.d.ts +8 -0
- package/number-info/package.json +6 -7
- package/number-info/style/index.less +12 -0
- package/package.json +160 -12
- package/{custom/g2Custom.d.ts → pie/delon-chart-pie.d.ts} +1 -0
- package/pie/package.json +6 -7
- package/pie/pie.component.d.ts +8 -5
- package/pie/pie.module.d.ts +9 -0
- package/pie/style/index.less +14 -0
- package/{gauge/gauge.d.ts → radar/delon-chart-radar.d.ts} +1 -0
- package/radar/package.json +6 -7
- package/radar/radar.component.d.ts +4 -1
- package/radar/radar.module.d.ts +9 -0
- package/radar/style/index.less +6 -0
- package/single-bar/delon-chart-single-bar.d.ts +5 -0
- package/single-bar/package.json +6 -7
- package/single-bar/single-bar.component.d.ts +4 -1
- package/single-bar/single-bar.module.d.ts +6 -0
- package/tag-cloud/delon-chart-tag-cloud.d.ts +5 -0
- package/tag-cloud/package.json +6 -7
- package/tag-cloud/tag-cloud.component.d.ts +3 -0
- package/tag-cloud/tag-cloud.module.d.ts +7 -0
- package/timeline/delon-chart-timeline.d.ts +5 -0
- package/timeline/package.json +6 -7
- package/timeline/timeline.component.d.ts +5 -2
- package/timeline/timeline.module.d.ts +8 -0
- package/{mini-area/mini-area.d.ts → trend/delon-chart-trend.d.ts} +1 -0
- package/trend/package.json +6 -7
- package/trend/style/index.less +6 -0
- package/trend/trend.component.d.ts +4 -1
- package/trend/trend.module.d.ts +7 -0
- package/water-wave/delon-chart-water-wave.d.ts +5 -0
- package/water-wave/package.json +6 -7
- package/water-wave/style/index.less +4 -0
- package/water-wave/water-wave.component.d.ts +5 -2
- package/water-wave/water-wave.module.d.ts +7 -0
- package/bar/bar.metadata.json +0 -1
- package/bundles/bar.umd.js +0 -471
- package/bundles/bar.umd.js.map +0 -1
- package/bundles/card.umd.js +0 -408
- package/bundles/card.umd.js.map +0 -1
- package/bundles/chart.umd.js +0 -19
- package/bundles/chart.umd.js.map +0 -1
- package/bundles/delon-chart-chart-echarts.umd.js +0 -617
- package/bundles/delon-chart-chart-echarts.umd.js.map +0 -1
- package/bundles/delon-chart-core.umd.js +0 -550
- package/bundles/delon-chart-core.umd.js.map +0 -1
- package/bundles/g2Custom.umd.js +0 -407
- package/bundles/g2Custom.umd.js.map +0 -1
- package/bundles/gauge.umd.js +0 -511
- package/bundles/gauge.umd.js.map +0 -1
- package/bundles/mini-area.umd.js +0 -474
- package/bundles/mini-area.umd.js.map +0 -1
- package/bundles/mini-bar.umd.js +0 -444
- package/bundles/mini-bar.umd.js.map +0 -1
- package/bundles/mini-progress.umd.js +0 -401
- package/bundles/mini-progress.umd.js.map +0 -1
- package/bundles/number-info.umd.js +0 -392
- package/bundles/number-info.umd.js.map +0 -1
- package/bundles/pie.umd.js +0 -567
- package/bundles/pie.umd.js.map +0 -1
- package/bundles/radar.umd.js +0 -497
- package/bundles/radar.umd.js.map +0 -1
- package/bundles/single-bar.umd.js +0 -464
- package/bundles/single-bar.umd.js.map +0 -1
- package/bundles/tag-cloud.umd.js +0 -495
- package/bundles/tag-cloud.umd.js.map +0 -1
- package/bundles/timeline.umd.js +0 -524
- package/bundles/timeline.umd.js.map +0 -1
- package/bundles/trend.umd.js +0 -391
- package/bundles/trend.umd.js.map +0 -1
- package/bundles/water-wave.umd.js +0 -587
- package/bundles/water-wave.umd.js.map +0 -1
- package/card/card.metadata.json +0 -1
- package/chart-echarts/delon-chart-chart-echarts.metadata.json +0 -1
- package/chart.metadata.json +0 -1
- package/core/delon-chart-core.metadata.json +0 -1
- package/custom/g2Custom.metadata.json +0 -1
- package/esm2015/bar/bar.component.js +0 -124
- package/esm2015/bar/bar.module.js +0 -16
- package/esm2015/card/card.component.js +0 -52
- package/esm2015/card/card.module.js +0 -17
- package/esm2015/chart-echarts/echarts.component.js +0 -152
- package/esm2015/chart-echarts/echarts.module.js +0 -15
- package/esm2015/chart-echarts/echarts.service.js +0 -64
- package/esm2015/core/g2.base.component.js +0 -110
- package/esm2015/core/g2.servicce.js +0 -58
- package/esm2015/core/utils.js +0 -15
- package/esm2015/custom/custom.component.js +0 -58
- package/esm2015/custom/custom.module.js +0 -15
- package/esm2015/custom/g2Custom.js +0 -5
- package/esm2015/gauge/gauge.component.js +0 -158
- package/esm2015/gauge/gauge.module.js +0 -15
- package/esm2015/mini-area/mini-area.component.js +0 -120
- package/esm2015/mini-area/mini-area.js +0 -5
- package/esm2015/mini-area/mini-area.module.js +0 -14
- package/esm2015/mini-bar/mini-bar.component.js +0 -90
- package/esm2015/mini-bar/mini-bar.js +0 -5
- package/esm2015/mini-bar/mini-bar.module.js +0 -14
- package/esm2015/mini-progress/mini-progress.component.js +0 -50
- package/esm2015/mini-progress/mini-progress.module.js +0 -16
- package/esm2015/number-info/number-info.component.js +0 -40
- package/esm2015/number-info/number-info.module.js +0 -16
- package/esm2015/pie/pie.component.js +0 -197
- package/esm2015/pie/pie.module.js +0 -17
- package/esm2015/radar/radar.component.js +0 -142
- package/esm2015/radar/radar.js +0 -5
- package/esm2015/radar/radar.module.js +0 -17
- package/esm2015/single-bar/single-bar.component.js +0 -111
- package/esm2015/single-bar/single-bar.js +0 -5
- package/esm2015/single-bar/single-bar.module.js +0 -14
- package/esm2015/tag-cloud/tag-cloud.component.js +0 -142
- package/esm2015/tag-cloud/tag-cloud.js +0 -5
- package/esm2015/tag-cloud/tag-cloud.module.js +0 -15
- package/esm2015/timeline/timeline.component.js +0 -178
- package/esm2015/timeline/timeline.js +0 -5
- package/esm2015/timeline/timeline.module.js +0 -16
- package/esm2015/trend/trend.component.js +0 -42
- package/esm2015/trend/trend.js +0 -5
- package/esm2015/trend/trend.module.js +0 -15
- package/esm2015/water-wave/water-wave.component.js +0 -224
- package/esm2015/water-wave/water-wave.js +0 -5
- package/esm2015/water-wave/water-wave.module.js +0 -15
- package/fesm2015/bar.js.map +0 -1
- package/fesm2015/card.js +0 -74
- package/fesm2015/card.js.map +0 -1
- package/fesm2015/chart.js.map +0 -1
- package/fesm2015/delon-chart-chart-echarts.js.map +0 -1
- package/fesm2015/delon-chart-core.js.map +0 -1
- package/fesm2015/g2Custom.js +0 -78
- package/fesm2015/g2Custom.js.map +0 -1
- package/fesm2015/gauge.js.map +0 -1
- package/fesm2015/mini-area.js +0 -139
- package/fesm2015/mini-area.js.map +0 -1
- package/fesm2015/mini-bar.js +0 -109
- package/fesm2015/mini-bar.js.map +0 -1
- package/fesm2015/mini-progress.js +0 -70
- package/fesm2015/mini-progress.js.map +0 -1
- package/fesm2015/number-info.js +0 -61
- package/fesm2015/number-info.js.map +0 -1
- package/fesm2015/pie.js +0 -219
- package/fesm2015/pie.js.map +0 -1
- package/fesm2015/radar.js.map +0 -1
- package/fesm2015/single-bar.js +0 -130
- package/fesm2015/single-bar.js.map +0 -1
- package/fesm2015/tag-cloud.js.map +0 -1
- package/fesm2015/timeline.js.map +0 -1
- package/fesm2015/trend.js +0 -62
- package/fesm2015/trend.js.map +0 -1
- package/fesm2015/water-wave.js.map +0 -1
- package/gauge/gauge.metadata.json +0 -1
- package/mini-area/mini-area.metadata.json +0 -1
- package/mini-bar/mini-bar.metadata.json +0 -1
- package/mini-progress/mini-progress.d.ts +0 -4
- package/mini-progress/mini-progress.metadata.json +0 -1
- package/number-info/number-info.d.ts +0 -4
- package/number-info/number-info.metadata.json +0 -1
- package/pie/pie.d.ts +0 -4
- package/pie/pie.metadata.json +0 -1
- package/radar/radar.d.ts +0 -4
- package/radar/radar.metadata.json +0 -1
- package/single-bar/single-bar.d.ts +0 -4
- package/single-bar/single-bar.metadata.json +0 -1
- package/tag-cloud/tag-cloud.d.ts +0 -4
- package/tag-cloud/tag-cloud.metadata.json +0 -1
- package/timeline/timeline.d.ts +0 -4
- package/timeline/timeline.metadata.json +0 -1
- package/trend/trend.d.ts +0 -4
- package/trend/trend.metadata.json +0 -1
- package/water-wave/water-wave.d.ts +0 -4
- package/water-wave/water-wave.metadata.json +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';
|
|
4
|
+
import { InputNumber } from '@delon/util/decorator';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i2 from 'ng-zorro-antd/core/outlet';
|
|
8
|
+
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
|
|
9
|
+
import * as i3 from 'ng-zorro-antd/icon';
|
|
10
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
11
|
+
|
|
12
|
+
class NumberInfoComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
/** 状态样式 */
|
|
15
|
+
this.theme = 'light';
|
|
16
|
+
/** 设置数字和描述直接的间距(像素) */
|
|
17
|
+
this.gap = 8;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
NumberInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
NumberInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NumberInfoComponent, selector: "number-info", inputs: { title: "title", subTitle: "subTitle", total: "total", subTotal: "subTotal", suffix: "suffix", status: "status", theme: "theme", gap: "gap" }, host: { properties: { "class.number-info": "true", "class.number-info__light": "theme === 'light'", "class.number-info__default": "theme === 'default'" } }, exportAs: ["numberInfo"], ngImport: i0, template: "<div *ngIf=\"title\" class=\"number-info__title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n</div>\n<div *ngIf=\"subTitle\" class=\"number-info__title-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">{{ subTitle }}</ng-container>\n</div>\n<div class=\"number-info__value\" [ngStyle]=\"{ 'margin-top.px': gap }\">\n <span class=\"number-info__value-text\">\n <ng-container *nzStringTemplateOutlet=\"total\">{{ total }}</ng-container>\n <em class=\"number-info__value-suffix\" *ngIf=\"suffix\">{{ suffix }}</em>\n </span>\n <span *ngIf=\"status || subTotal\" class=\"number-info__value-text number-info__value-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTotal\">{{ subTotal }}</ng-container>\n <i *ngIf=\"status\" nz-icon nzType=\"caret-{{ status }}\"></i>\n </span>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
22
|
+
__decorate([
|
|
23
|
+
InputNumber()
|
|
24
|
+
], NumberInfoComponent.prototype, "gap", void 0);
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'number-info', exportAs: 'numberInfo', host: {
|
|
28
|
+
'[class.number-info]': `true`,
|
|
29
|
+
'[class.number-info__light]': `theme === 'light'`,
|
|
30
|
+
'[class.number-info__default]': `theme === 'default'`
|
|
31
|
+
}, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"title\" class=\"number-info__title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n</div>\n<div *ngIf=\"subTitle\" class=\"number-info__title-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">{{ subTitle }}</ng-container>\n</div>\n<div class=\"number-info__value\" [ngStyle]=\"{ 'margin-top.px': gap }\">\n <span class=\"number-info__value-text\">\n <ng-container *nzStringTemplateOutlet=\"total\">{{ total }}</ng-container>\n <em class=\"number-info__value-suffix\" *ngIf=\"suffix\">{{ suffix }}</em>\n </span>\n <span *ngIf=\"status || subTotal\" class=\"number-info__value-text number-info__value-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTotal\">{{ subTotal }}</ng-container>\n <i *ngIf=\"status\" nz-icon nzType=\"caret-{{ status }}\"></i>\n </span>\n</div>\n" }]
|
|
32
|
+
}], propDecorators: { title: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], subTitle: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], total: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], subTotal: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], suffix: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], status: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], theme: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], gap: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}] } });
|
|
49
|
+
|
|
50
|
+
const COMPONENTS = [NumberInfoComponent];
|
|
51
|
+
class NumberInfoModule {
|
|
52
|
+
}
|
|
53
|
+
NumberInfoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
54
|
+
NumberInfoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, declarations: [NumberInfoComponent], imports: [CommonModule, NzIconModule, NzOutletModule], exports: [NumberInfoComponent] });
|
|
55
|
+
NumberInfoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, imports: [[CommonModule, NzIconModule, NzOutletModule]] });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, decorators: [{
|
|
57
|
+
type: NgModule,
|
|
58
|
+
args: [{
|
|
59
|
+
imports: [CommonModule, NzIconModule, NzOutletModule],
|
|
60
|
+
declarations: COMPONENTS,
|
|
61
|
+
exports: COMPONENTS
|
|
62
|
+
}]
|
|
63
|
+
}] });
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Generated bundle index. Do not edit.
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
export { NumberInfoComponent, NumberInfoModule };
|
|
70
|
+
//# sourceMappingURL=delon-chart-number-info.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delon-chart-number-info.mjs","sources":["../../../../packages/chart/number-info/number-info.component.ts","../../../../packages/chart/number-info/number-info.component.html","../../../../packages/chart/number-info/number-info.module.ts","../../../../packages/chart/number-info/delon-chart-number-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport { InputNumber, NumberInput } from '@delon/util/decorator';\n\n@Component({\n selector: 'number-info',\n exportAs: 'numberInfo',\n templateUrl: './number-info.component.html',\n host: {\n '[class.number-info]': `true`,\n '[class.number-info__light]': `theme === 'light'`,\n '[class.number-info__default]': `theme === 'default'`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NumberInfoComponent {\n static ngAcceptInputType_gap: NumberInput;\n\n /** 标题 */\n @Input() title?: string | TemplateRef<void> | null;\n /** 子标题 */\n @Input() subTitle?: string | TemplateRef<void> | null;\n /** 总量 */\n @Input() total?: string | number | TemplateRef<void> | null;\n /** 总量后缀 */\n @Input() subTotal?: string | number | TemplateRef<void> | null;\n /** 子总量 */\n @Input() suffix?: string | null;\n /** 增加状态 */\n @Input() status?: 'up' | 'down';\n /** 状态样式 */\n @Input() theme: 'light' | 'default' = 'light';\n /** 设置数字和描述直接的间距(像素) */\n @Input() @InputNumber() gap = 8;\n}\n","<div *ngIf=\"title\" class=\"number-info__title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n</div>\n<div *ngIf=\"subTitle\" class=\"number-info__title-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">{{ subTitle }}</ng-container>\n</div>\n<div class=\"number-info__value\" [ngStyle]=\"{ 'margin-top.px': gap }\">\n <span class=\"number-info__value-text\">\n <ng-container *nzStringTemplateOutlet=\"total\">{{ total }}</ng-container>\n <em class=\"number-info__value-suffix\" *ngIf=\"suffix\">{{ suffix }}</em>\n </span>\n <span *ngIf=\"status || subTotal\" class=\"number-info__value-text number-info__value-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTotal\">{{ subTotal }}</ng-container>\n <i *ngIf=\"status\" nz-icon nzType=\"caret-{{ status }}\"></i>\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NumberInfoComponent } from './number-info.component';\n\nconst COMPONENTS = [NumberInfoComponent];\n\n@NgModule({\n imports: [CommonModule, NzIconModule, NzOutletModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class NumberInfoModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;MAiBa,mBAAmB;IAbhC;;QA6BW,UAAK,GAAwB,OAAO,CAAC;;QAEtB,QAAG,GAAG,CAAC,CAAC;KACjC;;gHAnBY,mBAAmB;oGAAnB,mBAAmB,kYCjBhC,k1BAgBA;ADmB0B;IAAd,WAAW,EAAE;gDAAS;2FAlBrB,mBAAmB;kBAb/B,SAAS;+BACE,aAAa,YACb,YAAY,QAEhB;wBACJ,qBAAqB,EAAE,MAAM;wBAC7B,4BAA4B,EAAE,mBAAmB;wBACjD,8BAA8B,EAAE,qBAAqB;qBACtD,uBACoB,KAAK,mBACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;8BAM5B,KAAK;sBAAb,KAAK;gBAEG,QAAQ;sBAAhB,KAAK;gBAEG,KAAK;sBAAb,KAAK;gBAEG,QAAQ;sBAAhB,KAAK;gBAEG,MAAM;sBAAd,KAAK;gBAEG,MAAM;sBAAd,KAAK;gBAEG,KAAK;sBAAb,KAAK;gBAEkB,GAAG;sBAA1B,KAAK;;;AE3BR,MAAM,UAAU,GAAG,CAAC,mBAAmB,CAAC,CAAC;MAO5B,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAPT,mBAAmB,aAG3B,YAAY,EAAE,YAAY,EAAE,cAAc,aAHlC,mBAAmB;8GAO1B,gBAAgB,YAJlB,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;2FAI1C,gBAAgB;kBAL5B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;oBACrD,YAAY,EAAE,UAAU;oBACxB,OAAO,EAAE,UAAU;iBACpB;;;ACdD;;;;;;"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';
|
|
4
|
+
import { G2BaseComponent } from '@delon/chart/core';
|
|
5
|
+
import { InputBoolean, InputNumber } from '@delon/util/decorator';
|
|
6
|
+
import * as i1 from 'ng-zorro-antd/skeleton';
|
|
7
|
+
import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
|
|
8
|
+
import * as i2 from 'ng-zorro-antd/divider';
|
|
9
|
+
import { NzDividerModule } from 'ng-zorro-antd/divider';
|
|
10
|
+
import * as i3 from '@angular/common';
|
|
11
|
+
import { CommonModule } from '@angular/common';
|
|
12
|
+
import * as i4 from 'ng-zorro-antd/core/outlet';
|
|
13
|
+
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
|
|
14
|
+
|
|
15
|
+
class G2PieComponent extends G2BaseComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.legendData = [];
|
|
19
|
+
this.isPercent = false;
|
|
20
|
+
// #region fields
|
|
21
|
+
this.animate = true;
|
|
22
|
+
this.color = 'rgba(24, 144, 255, 0.85)';
|
|
23
|
+
this.height = 0;
|
|
24
|
+
this.hasLegend = false;
|
|
25
|
+
this.inner = 0.75;
|
|
26
|
+
this.padding = [12, 0, 12, 0];
|
|
27
|
+
this.tooltip = true;
|
|
28
|
+
this.lineWidth = 0;
|
|
29
|
+
this.blockMaxWidth = 380;
|
|
30
|
+
this.select = true;
|
|
31
|
+
this.data = [];
|
|
32
|
+
this.interaction = 'none';
|
|
33
|
+
this.ratio = {
|
|
34
|
+
text: '占比',
|
|
35
|
+
inverse: '反比',
|
|
36
|
+
color: '',
|
|
37
|
+
inverseColor: '#F0F2F5'
|
|
38
|
+
};
|
|
39
|
+
this.clickItem = new EventEmitter();
|
|
40
|
+
}
|
|
41
|
+
// #endregion
|
|
42
|
+
get block() {
|
|
43
|
+
return this.hasLegend && this.el.nativeElement.clientWidth <= this.blockMaxWidth;
|
|
44
|
+
}
|
|
45
|
+
fixData() {
|
|
46
|
+
const { percent, color } = this;
|
|
47
|
+
this.isPercent = percent != null;
|
|
48
|
+
if (!this.isPercent) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.select = false;
|
|
52
|
+
this.tooltip = false;
|
|
53
|
+
const { text, inverse, color: textColor, inverseColor } = this.ratio;
|
|
54
|
+
this.percentColor = (value) => (value === text ? textColor || color : inverseColor);
|
|
55
|
+
this.data = [
|
|
56
|
+
{
|
|
57
|
+
x: text,
|
|
58
|
+
y: percent
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
x: inverse,
|
|
62
|
+
y: 100 - percent
|
|
63
|
+
}
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
install() {
|
|
67
|
+
const { node, height, padding, tooltip, inner, hasLegend, interaction, theme, animate, lineWidth, isPercent, percentColor, colors } = this;
|
|
68
|
+
const chart = (this._chart = new window.G2.Chart({
|
|
69
|
+
container: node.nativeElement,
|
|
70
|
+
autoFit: true,
|
|
71
|
+
height,
|
|
72
|
+
padding,
|
|
73
|
+
theme
|
|
74
|
+
}));
|
|
75
|
+
chart.animate(animate);
|
|
76
|
+
if (!tooltip) {
|
|
77
|
+
chart.tooltip(false);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
chart.tooltip({
|
|
81
|
+
showTitle: false,
|
|
82
|
+
showMarkers: false
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
if (interaction !== 'none') {
|
|
86
|
+
chart.interaction(interaction);
|
|
87
|
+
}
|
|
88
|
+
chart.axis(false).legend(false).coordinate('theta', { innerRadius: inner });
|
|
89
|
+
chart.filter('x', (_val, item) => item.checked !== false);
|
|
90
|
+
chart
|
|
91
|
+
.interval()
|
|
92
|
+
.adjust('stack')
|
|
93
|
+
.position('y')
|
|
94
|
+
.style({ lineWidth, stroke: '#fff' })
|
|
95
|
+
.color('x', isPercent ? percentColor : colors)
|
|
96
|
+
.tooltip('x*percent', (name, p) => ({
|
|
97
|
+
name,
|
|
98
|
+
value: `${hasLegend ? p : (p * 100).toFixed(2)} %`
|
|
99
|
+
}))
|
|
100
|
+
.state({});
|
|
101
|
+
chart.scale({
|
|
102
|
+
x: {
|
|
103
|
+
type: 'cat',
|
|
104
|
+
range: [0, 1]
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
chart.on(`interval:click`, (ev) => {
|
|
108
|
+
this.ngZone.run(() => { var _a; return this.clickItem.emit({ item: (_a = ev.data) === null || _a === void 0 ? void 0 : _a.data, ev }); });
|
|
109
|
+
});
|
|
110
|
+
this.changeData();
|
|
111
|
+
chart.render();
|
|
112
|
+
}
|
|
113
|
+
changeData() {
|
|
114
|
+
const { _chart, data } = this;
|
|
115
|
+
if (!_chart || !Array.isArray(data) || data.length <= 0)
|
|
116
|
+
return;
|
|
117
|
+
// 转化 percent
|
|
118
|
+
const totalSum = data.reduce((cur, item) => cur + item.y, 0);
|
|
119
|
+
for (const item of data) {
|
|
120
|
+
item.percent = totalSum === 0 ? 0 : item.y / totalSum;
|
|
121
|
+
}
|
|
122
|
+
_chart.changeData(data);
|
|
123
|
+
this.ngZone.run(() => this.genLegend());
|
|
124
|
+
}
|
|
125
|
+
genLegend() {
|
|
126
|
+
const { hasLegend, isPercent, cdr, _chart } = this;
|
|
127
|
+
if (!hasLegend || isPercent)
|
|
128
|
+
return;
|
|
129
|
+
this.legendData = _chart.geometries[0].dataArray.map((item) => {
|
|
130
|
+
const origin = item[0]._origin;
|
|
131
|
+
origin.color = item[0].color;
|
|
132
|
+
origin.checked = true;
|
|
133
|
+
origin.percent = (origin.percent * 100).toFixed(2);
|
|
134
|
+
return origin;
|
|
135
|
+
});
|
|
136
|
+
cdr.detectChanges();
|
|
137
|
+
}
|
|
138
|
+
_click(i) {
|
|
139
|
+
const { legendData, _chart } = this;
|
|
140
|
+
legendData[i].checked = !legendData[i].checked;
|
|
141
|
+
_chart.render(true);
|
|
142
|
+
}
|
|
143
|
+
onChanges() {
|
|
144
|
+
this.fixData();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
G2PieComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
148
|
+
G2PieComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: G2PieComponent, selector: "g2-pie", inputs: { animate: "animate", color: "color", subTitle: "subTitle", total: "total", height: "height", hasLegend: "hasLegend", inner: "inner", padding: "padding", percent: "percent", tooltip: "tooltip", lineWidth: "lineWidth", blockMaxWidth: "blockMaxWidth", select: "select", valueFormat: "valueFormat", data: "data", colors: "colors", interaction: "interaction", ratio: "ratio" }, outputs: { clickItem: "clickItem" }, host: { properties: { "class.g2-pie": "true", "class.g2-pie__legend-has": "hasLegend", "class.g2-pie__legend-block": "block", "class.g2-pie__mini": "isPercent" } }, exportAs: ["g2Pie"], usesInheritance: true, ngImport: i0, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<div class=\"g2-pie__chart\">\n <div #container></div>\n <div *ngIf=\"subTitle || total\" class=\"g2-pie__total\">\n <h4 *ngIf=\"subTitle\" class=\"g2-pie__total-title\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">\n <div [innerHTML]=\"subTitle\"></div>\n </ng-container>\n </h4>\n <div *ngIf=\"total\" class=\"g2-pie__total-stat\">\n <ng-container *nzStringTemplateOutlet=\"total\">\n <div [innerHTML]=\"total\"></div>\n </ng-container>\n </div>\n </div>\n</div>\n<ul *ngIf=\"hasLegend && legendData?.length\" class=\"g2-pie__legend\">\n <li *ngFor=\"let item of legendData; let index = index\" (click)=\"_click(index)\" class=\"g2-pie__legend-item\">\n <span class=\"g2-pie__legend-dot\" [ngStyle]=\"{ 'background-color': !item.checked ? '#aaa' : item.color }\"></span>\n <span class=\"g2-pie__legend-title\">{{ item.x }}</span>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span class=\"g2-pie__legend-percent\">{{ item.percent }}%</span>\n <span class=\"g2-pie__legend-value\" [innerHTML]=\"valueFormat ? valueFormat(item.y) : item.y\"></span>\n </li>\n</ul>\n", components: [{ type: i1.NzSkeletonComponent, selector: "nz-skeleton", inputs: ["nzActive", "nzLoading", "nzRound", "nzTitle", "nzAvatar", "nzParagraph"], exportAs: ["nzSkeleton"] }, { type: i2.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
149
|
+
__decorate([
|
|
150
|
+
InputBoolean()
|
|
151
|
+
], G2PieComponent.prototype, "animate", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
InputNumber()
|
|
154
|
+
], G2PieComponent.prototype, "height", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
InputBoolean()
|
|
157
|
+
], G2PieComponent.prototype, "hasLegend", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
InputNumber()
|
|
160
|
+
], G2PieComponent.prototype, "percent", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
InputBoolean()
|
|
163
|
+
], G2PieComponent.prototype, "tooltip", void 0);
|
|
164
|
+
__decorate([
|
|
165
|
+
InputNumber()
|
|
166
|
+
], G2PieComponent.prototype, "lineWidth", void 0);
|
|
167
|
+
__decorate([
|
|
168
|
+
InputNumber()
|
|
169
|
+
], G2PieComponent.prototype, "blockMaxWidth", void 0);
|
|
170
|
+
__decorate([
|
|
171
|
+
InputBoolean()
|
|
172
|
+
], G2PieComponent.prototype, "select", void 0);
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieComponent, decorators: [{
|
|
174
|
+
type: Component,
|
|
175
|
+
args: [{ selector: 'g2-pie', exportAs: 'g2Pie', host: {
|
|
176
|
+
'[class.g2-pie]': 'true',
|
|
177
|
+
'[class.g2-pie__legend-has]': 'hasLegend',
|
|
178
|
+
'[class.g2-pie__legend-block]': 'block',
|
|
179
|
+
'[class.g2-pie__mini]': 'isPercent'
|
|
180
|
+
}, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<div class=\"g2-pie__chart\">\n <div #container></div>\n <div *ngIf=\"subTitle || total\" class=\"g2-pie__total\">\n <h4 *ngIf=\"subTitle\" class=\"g2-pie__total-title\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">\n <div [innerHTML]=\"subTitle\"></div>\n </ng-container>\n </h4>\n <div *ngIf=\"total\" class=\"g2-pie__total-stat\">\n <ng-container *nzStringTemplateOutlet=\"total\">\n <div [innerHTML]=\"total\"></div>\n </ng-container>\n </div>\n </div>\n</div>\n<ul *ngIf=\"hasLegend && legendData?.length\" class=\"g2-pie__legend\">\n <li *ngFor=\"let item of legendData; let index = index\" (click)=\"_click(index)\" class=\"g2-pie__legend-item\">\n <span class=\"g2-pie__legend-dot\" [ngStyle]=\"{ 'background-color': !item.checked ? '#aaa' : item.color }\"></span>\n <span class=\"g2-pie__legend-title\">{{ item.x }}</span>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span class=\"g2-pie__legend-percent\">{{ item.percent }}%</span>\n <span class=\"g2-pie__legend-value\" [innerHTML]=\"valueFormat ? valueFormat(item.y) : item.y\"></span>\n </li>\n</ul>\n" }]
|
|
181
|
+
}], propDecorators: { animate: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], color: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], subTitle: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], total: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], height: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], hasLegend: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], inner: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], padding: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], percent: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], tooltip: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}], lineWidth: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}], blockMaxWidth: [{
|
|
204
|
+
type: Input
|
|
205
|
+
}], select: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], valueFormat: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], data: [{
|
|
210
|
+
type: Input
|
|
211
|
+
}], colors: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}], interaction: [{
|
|
214
|
+
type: Input
|
|
215
|
+
}], ratio: [{
|
|
216
|
+
type: Input
|
|
217
|
+
}], clickItem: [{
|
|
218
|
+
type: Output
|
|
219
|
+
}] } });
|
|
220
|
+
|
|
221
|
+
const COMPONENTS = [G2PieComponent];
|
|
222
|
+
class G2PieModule {
|
|
223
|
+
}
|
|
224
|
+
G2PieModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
225
|
+
G2PieModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, declarations: [G2PieComponent], imports: [CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule], exports: [G2PieComponent] });
|
|
226
|
+
G2PieModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, imports: [[CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule]] });
|
|
227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, decorators: [{
|
|
228
|
+
type: NgModule,
|
|
229
|
+
args: [{
|
|
230
|
+
imports: [CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule],
|
|
231
|
+
declarations: COMPONENTS,
|
|
232
|
+
exports: COMPONENTS
|
|
233
|
+
}]
|
|
234
|
+
}] });
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Generated bundle index. Do not edit.
|
|
238
|
+
*/
|
|
239
|
+
|
|
240
|
+
export { G2PieComponent, G2PieModule };
|
|
241
|
+
//# sourceMappingURL=delon-chart-pie.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delon-chart-pie.mjs","sources":["../../../../packages/chart/pie/pie.component.ts","../../../../packages/chart/pie/pie.component.html","../../../../packages/chart/pie/pie.module.ts","../../../../packages/chart/pie/delon-chart-pie.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport type { Chart, Event } from '@antv/g2';\n\nimport { G2BaseComponent, G2InteractionType } from '@delon/chart/core';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface G2PieData {\n x: NzSafeAny;\n y: number;\n [key: string]: NzSafeAny;\n}\n\nexport interface G2PieClickItem {\n item: G2PieData;\n ev: Event;\n}\n\nexport interface G2PieRatio {\n /** 占比文本,默认:`占比` */\n text: string;\n /** 反比文本,默认:`反比` */\n inverse: string;\n /** 正比颜色,默认使用 `color` 值 */\n color: string;\n /** 反比颜色,默认:`#F0F2F5` */\n inverseColor: string;\n}\n\n@Component({\n selector: 'g2-pie',\n exportAs: 'g2Pie',\n templateUrl: './pie.component.html',\n host: {\n '[class.g2-pie]': 'true',\n '[class.g2-pie__legend-has]': 'hasLegend',\n '[class.g2-pie__legend-block]': 'block',\n '[class.g2-pie__mini]': 'isPercent'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class G2PieComponent extends G2BaseComponent {\n static ngAcceptInputType_height: NumberInput;\n static ngAcceptInputType_animate: BooleanInput;\n static ngAcceptInputType_hasLegend: BooleanInput;\n static ngAcceptInputType_percent: NumberInput;\n static ngAcceptInputType_tooltip: BooleanInput;\n static ngAcceptInputType_lineWidth: NumberInput;\n static ngAcceptInputType_blockMaxWidth: NumberInput;\n static ngAcceptInputType_select: BooleanInput;\n\n private percentColor!: (value: string) => string;\n legendData: NzSafeAny[] = [];\n isPercent = false;\n\n // #region fields\n\n @Input() @InputBoolean() animate = true;\n @Input() color = 'rgba(24, 144, 255, 0.85)';\n @Input() subTitle?: string | TemplateRef<void> | null;\n @Input() total?: string | number | TemplateRef<void> | null;\n @Input() @InputNumber() height = 0;\n @Input() @InputBoolean() hasLegend = false;\n @Input() inner = 0.75;\n @Input() padding: number | number[] | 'auto' = [12, 0, 12, 0];\n @Input() @InputNumber() percent?: number;\n @Input() @InputBoolean() tooltip = true;\n @Input() @InputNumber() lineWidth = 0;\n @Input() @InputNumber() blockMaxWidth = 380;\n @Input() @InputBoolean() select = true;\n @Input() valueFormat?: (y: number) => string;\n @Input() data: G2PieData[] = [];\n @Input() colors?: string[];\n @Input() interaction: G2InteractionType = 'none';\n @Input() ratio: G2PieRatio = {\n text: '占比',\n inverse: '反比',\n color: '',\n inverseColor: '#F0F2F5'\n };\n @Output() readonly clickItem = new EventEmitter<G2PieClickItem>();\n\n // #endregion\n\n get block(): boolean {\n return this.hasLegend && this.el.nativeElement.clientWidth <= this.blockMaxWidth;\n }\n\n private fixData(): void {\n const { percent, color } = this;\n this.isPercent = percent != null;\n if (!this.isPercent) {\n return;\n }\n\n this.select = false;\n this.tooltip = false;\n const { text, inverse, color: textColor, inverseColor } = this.ratio;\n this.percentColor = (value: string) => (value === text ? textColor || color : inverseColor);\n this.data = [\n {\n x: text,\n y: percent!\n },\n {\n x: inverse,\n y: 100 - percent!\n }\n ];\n }\n\n install(): void {\n const {\n node,\n height,\n padding,\n tooltip,\n inner,\n hasLegend,\n interaction,\n theme,\n animate,\n lineWidth,\n isPercent,\n percentColor,\n colors\n } = this;\n const chart: Chart = (this._chart = new (window as NzSafeAny).G2.Chart({\n container: node.nativeElement,\n autoFit: true,\n height,\n padding,\n theme\n }));\n chart.animate(animate);\n\n if (!tooltip) {\n chart.tooltip(false);\n } else {\n chart.tooltip({\n showTitle: false,\n showMarkers: false\n });\n }\n if (interaction !== 'none') {\n chart.interaction(interaction);\n }\n chart.axis(false).legend(false).coordinate('theta', { innerRadius: inner });\n chart.filter('x', (_val: NzSafeAny, item: NzSafeAny) => item.checked !== false);\n chart\n .interval()\n .adjust('stack')\n .position('y')\n .style({ lineWidth, stroke: '#fff' })\n .color('x', isPercent ? percentColor : colors)\n .tooltip('x*percent', (name: string, p: number) => ({\n name,\n value: `${hasLegend ? p : (p * 100).toFixed(2)} %`\n }))\n .state({});\n chart.scale({\n x: {\n type: 'cat',\n range: [0, 1]\n }\n });\n\n chart.on(`interval:click`, (ev: Event) => {\n this.ngZone.run(() => this.clickItem.emit({ item: ev.data?.data, ev }));\n });\n\n this.changeData();\n chart.render();\n }\n\n changeData(): void {\n const { _chart, data } = this;\n if (!_chart || !Array.isArray(data) || data.length <= 0) return;\n\n // 转化 percent\n const totalSum = data.reduce((cur, item) => cur + item.y, 0);\n for (const item of data) {\n item.percent = totalSum === 0 ? 0 : item.y / totalSum;\n }\n _chart.changeData(data);\n this.ngZone.run(() => this.genLegend());\n }\n\n private genLegend(): void {\n const { hasLegend, isPercent, cdr, _chart } = this;\n if (!hasLegend || isPercent) return;\n\n this.legendData = _chart.geometries[0].dataArray.map((item: NzSafeAny) => {\n const origin = item[0]._origin;\n origin.color = item[0].color;\n origin.checked = true;\n origin.percent = (origin.percent * 100).toFixed(2);\n return origin;\n });\n\n cdr.detectChanges();\n }\n\n _click(i: number): void {\n const { legendData, _chart } = this;\n legendData[i].checked = !legendData[i].checked;\n _chart.render(true);\n }\n\n onChanges(): void {\n this.fixData();\n }\n}\n","<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<div class=\"g2-pie__chart\">\n <div #container></div>\n <div *ngIf=\"subTitle || total\" class=\"g2-pie__total\">\n <h4 *ngIf=\"subTitle\" class=\"g2-pie__total-title\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">\n <div [innerHTML]=\"subTitle\"></div>\n </ng-container>\n </h4>\n <div *ngIf=\"total\" class=\"g2-pie__total-stat\">\n <ng-container *nzStringTemplateOutlet=\"total\">\n <div [innerHTML]=\"total\"></div>\n </ng-container>\n </div>\n </div>\n</div>\n<ul *ngIf=\"hasLegend && legendData?.length\" class=\"g2-pie__legend\">\n <li *ngFor=\"let item of legendData; let index = index\" (click)=\"_click(index)\" class=\"g2-pie__legend-item\">\n <span class=\"g2-pie__legend-dot\" [ngStyle]=\"{ 'background-color': !item.checked ? '#aaa' : item.color }\"></span>\n <span class=\"g2-pie__legend-title\">{{ item.x }}</span>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span class=\"g2-pie__legend-percent\">{{ item.percent }}%</span>\n <span class=\"g2-pie__legend-value\" [innerHTML]=\"valueFormat ? valueFormat(item.y) : item.y\"></span>\n </li>\n</ul>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { G2PieComponent } from './pie.component';\n\nconst COMPONENTS = [G2PieComponent];\n\n@NgModule({\n imports: [CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class G2PieModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAoDa,uBAAuB,eAAe;IAdnD;;QAyBE,eAAU,GAAgB,EAAE,CAAC;QAC7B,cAAS,GAAG,KAAK,CAAC;;QAIO,YAAO,GAAG,IAAI,CAAC;QAC/B,UAAK,GAAG,0BAA0B,CAAC;QAGpB,WAAM,GAAG,CAAC,CAAC;QACV,cAAS,GAAG,KAAK,CAAC;QAClC,UAAK,GAAG,IAAI,CAAC;QACb,YAAO,GAA+B,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAErC,YAAO,GAAG,IAAI,CAAC;QAChB,cAAS,GAAG,CAAC,CAAC;QACd,kBAAa,GAAG,GAAG,CAAC;QACnB,WAAM,GAAG,IAAI,CAAC;QAE9B,SAAI,GAAgB,EAAE,CAAC;QAEvB,gBAAW,GAAsB,MAAM,CAAC;QACxC,UAAK,GAAe;YAC3B,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,SAAS;SACxB,CAAC;QACiB,cAAS,GAAG,IAAI,YAAY,EAAkB,CAAC;KAoInE;;IAhIC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC;KAClF;IAEO,OAAO;QACb,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO,IAAI,IAAI,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,CAAC,KAAa,MAAM,KAAK,KAAK,IAAI,GAAG,SAAS,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,GAAG;YACV;gBACE,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,OAAQ;aACZ;YACD;gBACE,CAAC,EAAE,OAAO;gBACV,CAAC,EAAE,GAAG,GAAG,OAAQ;aAClB;SACF,CAAC;KACH;IAED,OAAO;QACL,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,SAAS,EACT,WAAW,EACX,KAAK,EACL,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,EACZ,MAAM,EACP,GAAG,IAAI,CAAC;QACT,MAAM,KAAK,IAAW,IAAI,CAAC,MAAM,GAAG,IAAK,MAAoB,CAAC,EAAE,CAAC,KAAK,CAAC;YACrE,SAAS,EAAE,IAAI,CAAC,aAAa;YAC7B,OAAO,EAAE,IAAI;YACb,MAAM;YACN,OAAO;YACP,KAAK;SACN,CAAC,CAAC,CAAC;QACJ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvB,IAAI,CAAC,OAAO,EAAE;YACZ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACtB;aAAM;YACL,KAAK,CAAC,OAAO,CAAC;gBACZ,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;SACJ;QACD,IAAI,WAAW,KAAK,MAAM,EAAE;YAC1B,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SAChC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAe,EAAE,IAAe,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;QAChF,KAAK;aACF,QAAQ,EAAE;aACV,MAAM,CAAC,OAAO,CAAC;aACf,QAAQ,CAAC,GAAG,CAAC;aACb,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;aACpC,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;aAC7C,OAAO,CAAC,WAAW,EAAE,CAAC,IAAY,EAAE,CAAS,MAAM;YAClD,IAAI;YACJ,KAAK,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI;SACnD,CAAC,CAAC;aACF,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,KAAK,CAAC,KAAK,CAAC;YACV,CAAC,EAAE;gBACD,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aACd;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAS;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAM,OAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAA,EAAE,CAAC,IAAI,0CAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;SACzE,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAK,CAAC,MAAM,EAAE,CAAC;KAChB;IAED,UAAU;QACR,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO;;QAGhE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;SACvD;QACD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KACzC;IAEO,SAAS;QACf,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,SAAS,IAAI,SAAS;YAAE,OAAO;QAEpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAe;YACnE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,MAAM,CAAC;SACf,CAAC,CAAC;QAEH,GAAG,CAAC,aAAa,EAAE,CAAC;KACrB;IAED,MAAM,CAAC,CAAS;QACd,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACpC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,SAAS;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;;2GA1KU,cAAc;+FAAd,cAAc,kqBCpD3B,0qCAyBA;AD2C2B;IAAf,YAAY,EAAE;+CAAgB;AAIhB;IAAd,WAAW,EAAE;8CAAY;AACV;IAAf,YAAY,EAAE;iDAAmB;AAGnB;IAAd,WAAW,EAAE;+CAAkB;AAChB;IAAf,YAAY,EAAE;+CAAgB;AAChB;IAAd,WAAW,EAAE;iDAAe;AACd;IAAd,WAAW,EAAE;qDAAqB;AACnB;IAAf,YAAY,EAAE;8CAAe;2FA5B5B,cAAc;kBAd1B,SAAS;+BACE,QAAQ,YACR,OAAO,QAEX;wBACJ,gBAAgB,EAAE,MAAM;wBACxB,4BAA4B,EAAE,WAAW;wBACzC,8BAA8B,EAAE,OAAO;wBACvC,sBAAsB,EAAE,WAAW;qBACpC,uBACoB,KAAK,mBACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;8BAkBZ,OAAO;sBAA/B,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,QAAQ;sBAAhB,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACkB,MAAM;sBAA7B,KAAK;gBACmB,SAAS;sBAAjC,KAAK;gBACG,KAAK;sBAAb,KAAK;gBACG,OAAO;sBAAf,KAAK;gBACkB,OAAO;sBAA9B,KAAK;gBACmB,OAAO;sBAA/B,KAAK;gBACkB,SAAS;sBAAhC,KAAK;gBACkB,aAAa;sBAApC,KAAK;gBACmB,MAAM;sBAA9B,KAAK;gBACG,WAAW;sBAAnB,KAAK;gBACG,IAAI;sBAAZ,KAAK;gBACG,MAAM;sBAAd,KAAK;gBACG,WAAW;sBAAnB,KAAK;gBACG,KAAK;sBAAb,KAAK;gBAMa,SAAS;sBAA3B,MAAM;;;AElFT,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC,CAAC;MAOvB,WAAW;;wGAAX,WAAW;yGAAX,WAAW,iBAPJ,cAAc,aAGtB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,aAHvD,cAAc;yGAOrB,WAAW,YAJb,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC;2FAI/D,WAAW;kBALvB,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC;oBAC1E,YAAY,EAAE,UAAU;oBACxB,OAAO,EAAE,UAAU;iBACpB;;;ACfD;;;;;;"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
2
3
|
import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';
|
|
3
4
|
import { G2BaseComponent } from '@delon/chart/core';
|
|
4
5
|
import { InputNumber, InputBoolean } from '@delon/util/decorator';
|
|
6
|
+
import * as i1 from 'ng-zorro-antd/skeleton';
|
|
7
|
+
import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
|
|
8
|
+
import * as i2 from '@angular/common';
|
|
5
9
|
import { CommonModule } from '@angular/common';
|
|
10
|
+
import * as i3 from 'ng-zorro-antd/core/outlet';
|
|
6
11
|
import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
|
|
12
|
+
import * as i4 from 'ng-zorro-antd/grid';
|
|
7
13
|
import { NzGridModule } from 'ng-zorro-antd/grid';
|
|
8
|
-
import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
|
|
9
14
|
|
|
10
15
|
class G2RadarComponent extends G2BaseComponent {
|
|
11
16
|
constructor() {
|
|
@@ -111,30 +116,8 @@ class G2RadarComponent extends G2BaseComponent {
|
|
|
111
116
|
this.legendData.forEach(i => (i.checked = true));
|
|
112
117
|
}
|
|
113
118
|
}
|
|
114
|
-
G2RadarComponent
|
|
115
|
-
{ type:
|
|
116
|
-
selector: 'g2-radar',
|
|
117
|
-
exportAs: 'g2Radar',
|
|
118
|
-
template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<ng-container *nzStringTemplateOutlet=\"title\">\n <h4>{{ title }}</h4>\n</ng-container>\n<div #container></div>\n<div nz-row class=\"g2-radar__legend\" *ngIf=\"hasLegend\">\n <div\n nz-col\n [nzSpan]=\"24 / legendData.length\"\n *ngFor=\"let i of legendData; let idx = index\"\n (click)=\"_click(idx)\"\n class=\"g2-radar__legend-item\"\n >\n <i class=\"g2-radar__legend-dot\" [ngStyle]=\"{ 'background-color': !i.checked ? '#aaa' : i.color }\"></i>\n {{ i.name }}\n <h6 class=\"g2-radar__legend-title\">{{ i.value }}</h6>\n </div>\n</div>\n",
|
|
119
|
-
host: {
|
|
120
|
-
'[style.height.px]': 'height',
|
|
121
|
-
'[class.g2-radar]': 'true'
|
|
122
|
-
},
|
|
123
|
-
preserveWhitespaces: false,
|
|
124
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
125
|
-
encapsulation: ViewEncapsulation.None
|
|
126
|
-
},] }
|
|
127
|
-
];
|
|
128
|
-
G2RadarComponent.propDecorators = {
|
|
129
|
-
title: [{ type: Input }],
|
|
130
|
-
height: [{ type: Input }],
|
|
131
|
-
padding: [{ type: Input }],
|
|
132
|
-
hasLegend: [{ type: Input }],
|
|
133
|
-
tickCount: [{ type: Input }],
|
|
134
|
-
data: [{ type: Input }],
|
|
135
|
-
colors: [{ type: Input }],
|
|
136
|
-
clickItem: [{ type: Output }]
|
|
137
|
-
};
|
|
119
|
+
G2RadarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
+
G2RadarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: G2RadarComponent, selector: "g2-radar", inputs: { title: "title", height: "height", padding: "padding", hasLegend: "hasLegend", tickCount: "tickCount", data: "data", colors: "colors" }, outputs: { clickItem: "clickItem" }, host: { properties: { "style.height.px": "height", "class.g2-radar": "true" } }, exportAs: ["g2Radar"], usesInheritance: true, ngImport: i0, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<ng-container *nzStringTemplateOutlet=\"title\">\n <h4>{{ title }}</h4>\n</ng-container>\n<div #container></div>\n<div nz-row class=\"g2-radar__legend\" *ngIf=\"hasLegend\">\n <div\n nz-col\n [nzSpan]=\"24 / legendData.length\"\n *ngFor=\"let i of legendData; let idx = index\"\n (click)=\"_click(idx)\"\n class=\"g2-radar__legend-item\"\n >\n <i class=\"g2-radar__legend-dot\" [ngStyle]=\"{ 'background-color': !i.checked ? '#aaa' : i.color }\"></i>\n {{ i.name }}\n <h6 class=\"g2-radar__legend-title\">{{ i.value }}</h6>\n </div>\n</div>\n", components: [{ type: i1.NzSkeletonComponent, selector: "nz-skeleton", inputs: ["nzActive", "nzLoading", "nzRound", "nzTitle", "nzAvatar", "nzParagraph"], exportAs: ["nzSkeleton"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
138
121
|
__decorate([
|
|
139
122
|
InputNumber()
|
|
140
123
|
], G2RadarComponent.prototype, "height", void 0);
|
|
@@ -144,21 +127,48 @@ __decorate([
|
|
|
144
127
|
__decorate([
|
|
145
128
|
InputNumber()
|
|
146
129
|
], G2RadarComponent.prototype, "tickCount", void 0);
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarComponent, decorators: [{
|
|
131
|
+
type: Component,
|
|
132
|
+
args: [{ selector: 'g2-radar', exportAs: 'g2Radar', host: {
|
|
133
|
+
'[style.height.px]': 'height',
|
|
134
|
+
'[class.g2-radar]': 'true'
|
|
135
|
+
}, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<ng-container *nzStringTemplateOutlet=\"title\">\n <h4>{{ title }}</h4>\n</ng-container>\n<div #container></div>\n<div nz-row class=\"g2-radar__legend\" *ngIf=\"hasLegend\">\n <div\n nz-col\n [nzSpan]=\"24 / legendData.length\"\n *ngFor=\"let i of legendData; let idx = index\"\n (click)=\"_click(idx)\"\n class=\"g2-radar__legend-item\"\n >\n <i class=\"g2-radar__legend-dot\" [ngStyle]=\"{ 'background-color': !i.checked ? '#aaa' : i.color }\"></i>\n {{ i.name }}\n <h6 class=\"g2-radar__legend-title\">{{ i.value }}</h6>\n </div>\n</div>\n" }]
|
|
136
|
+
}], propDecorators: { title: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], height: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], padding: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], hasLegend: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], tickCount: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], data: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], colors: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], clickItem: [{
|
|
151
|
+
type: Output
|
|
152
|
+
}] } });
|
|
147
153
|
|
|
148
154
|
const COMPONENTS = [G2RadarComponent];
|
|
149
155
|
class G2RadarModule {
|
|
150
156
|
}
|
|
151
|
-
G2RadarModule
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
]
|
|
157
|
+
G2RadarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
158
|
+
G2RadarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, declarations: [G2RadarComponent], imports: [CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule], exports: [G2RadarComponent] });
|
|
159
|
+
G2RadarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, imports: [[CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule]] });
|
|
160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, decorators: [{
|
|
161
|
+
type: NgModule,
|
|
162
|
+
args: [{
|
|
163
|
+
imports: [CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule],
|
|
164
|
+
declarations: COMPONENTS,
|
|
165
|
+
exports: COMPONENTS
|
|
166
|
+
}]
|
|
167
|
+
}] });
|
|
158
168
|
|
|
159
169
|
/**
|
|
160
170
|
* Generated bundle index. Do not edit.
|
|
161
171
|
*/
|
|
162
172
|
|
|
163
173
|
export { G2RadarComponent, G2RadarModule };
|
|
164
|
-
//# sourceMappingURL=radar.
|
|
174
|
+
//# sourceMappingURL=delon-chart-radar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delon-chart-radar.mjs","sources":["../../../../packages/chart/radar/radar.component.ts","../../../../packages/chart/radar/radar.component.html","../../../../packages/chart/radar/radar.module.ts","../../../../packages/chart/radar/delon-chart-radar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport type { Chart, Event } from '@antv/g2';\n\nimport { G2BaseComponent } from '@delon/chart/core';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface G2RadarData {\n name: string;\n label: string;\n value: number;\n [key: string]: NzSafeAny;\n}\n\nexport interface G2RadarClickItem {\n item: G2RadarData;\n ev: Event;\n}\n\n@Component({\n selector: 'g2-radar',\n exportAs: 'g2Radar',\n templateUrl: './radar.component.html',\n host: {\n '[style.height.px]': 'height',\n '[class.g2-radar]': 'true'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class G2RadarComponent extends G2BaseComponent {\n static ngAcceptInputType_height: NumberInput;\n static ngAcceptInputType_hasLegend: BooleanInput;\n static ngAcceptInputType_tickCount: NumberInput;\n\n legendData: NzSafeAny[] = [];\n\n // #region fields\n\n @Input() title?: string | TemplateRef<void> | null;\n @Input() @InputNumber() height = 0;\n @Input() padding: number | number[] | 'auto' = [44, 30, 16, 30];\n @Input() @InputBoolean() hasLegend = true;\n @Input() @InputNumber() tickCount = 4;\n @Input() data: G2RadarData[] = [];\n @Input() colors = ['#1890FF', '#FACC14', '#2FC25B', '#8543E0', '#F04864', '#13C2C2', '#fa8c16', '#a0d911'];\n @Output() readonly clickItem = new EventEmitter<G2RadarClickItem>();\n\n // #endregion\n\n private getHeight(): number {\n return this.height - (this.hasLegend ? 80 : 22);\n }\n\n install(): void {\n const { node, padding, theme, tickCount } = this;\n\n const chart: Chart = (this._chart = new (window as NzSafeAny).G2.Chart({\n container: node.nativeElement,\n autoFit: true,\n height: this.getHeight(),\n padding,\n theme\n }));\n\n chart.coordinate('polar');\n chart.legend(false);\n chart.axis('label', {\n line: null,\n label: {\n offset: 8\n },\n grid: {\n line: {\n style: {\n stroke: '#e9e9e9',\n lineWidth: 1,\n lineDash: [0, 0]\n }\n }\n }\n });\n chart.axis('value', {\n grid: {\n line: {\n type: 'polygon',\n style: {\n stroke: '#e9e9e9',\n lineWidth: 1,\n lineDash: [0, 0]\n }\n }\n }\n });\n chart.scale({\n value: {\n min: 0,\n tickCount\n }\n });\n chart.filter('name', (name: string) => {\n const legendItem = this.legendData.find(w => w.name === name);\n return legendItem ? legendItem.checked !== false : true;\n });\n\n chart.line().position('label*value').color('name', this.colors);\n chart.point().position('label*value').shape('circle').size(3);\n\n chart.on(`point:click`, (ev: Event) => {\n this.ngZone.run(() => this.clickItem.emit({ item: ev.data?.data, ev }));\n });\n\n this.changeData();\n\n chart.render();\n }\n\n changeData(): void {\n const { _chart, data } = this;\n if (!_chart || !Array.isArray(data) || data.length <= 0) return;\n _chart.changeData(data);\n\n this.ngZone.run(() => this.genLegend());\n }\n\n private genLegend(): void {\n const { hasLegend, cdr, _chart } = this;\n if (!hasLegend) return;\n\n this.legendData = _chart.geometries[0].dataArray.map(item => {\n const origin = item[0]._origin;\n const result = {\n name: origin.name,\n color: item[0].color,\n checked: true,\n value: item.reduce((p, n) => p + n._origin.value, 0)\n };\n\n return result;\n });\n\n cdr.detectChanges();\n }\n\n _click(i: number): void {\n const { legendData, _chart } = this;\n legendData[i].checked = !legendData[i].checked;\n _chart.render(true);\n }\n\n onChanges(): void {\n this.legendData.forEach(i => (i.checked = true));\n }\n}\n","<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<ng-container *nzStringTemplateOutlet=\"title\">\n <h4>{{ title }}</h4>\n</ng-container>\n<div #container></div>\n<div nz-row class=\"g2-radar__legend\" *ngIf=\"hasLegend\">\n <div\n nz-col\n [nzSpan]=\"24 / legendData.length\"\n *ngFor=\"let i of legendData; let idx = index\"\n (click)=\"_click(idx)\"\n class=\"g2-radar__legend-item\"\n >\n <i class=\"g2-radar__legend-dot\" [ngStyle]=\"{ 'background-color': !i.checked ? '#aaa' : i.color }\"></i>\n {{ i.name }}\n <h6 class=\"g2-radar__legend-title\">{{ i.value }}</h6>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { G2RadarComponent } from './radar.component';\n\nconst COMPONENTS = [G2RadarComponent];\n\n@NgModule({\n imports: [CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class G2RadarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|