bbj-screen-widget 2.4.44
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 +24 -0
- package/bbj-screen-widget.d.ts +117 -0
- package/bbj-screen-widget.metadata.json +1 -0
- package/bundles/bbj-screen-widget-core.umd.js +606 -0
- package/bundles/bbj-screen-widget-core.umd.js.map +1 -0
- package/bundles/bbj-screen-widget-core.umd.min.js +2 -0
- package/bundles/bbj-screen-widget-core.umd.min.js.map +1 -0
- package/bundles/bbj-screen-widget.umd.js +21247 -0
- package/bundles/bbj-screen-widget.umd.js.map +1 -0
- package/bundles/bbj-screen-widget.umd.min.js +2 -0
- package/bundles/bbj-screen-widget.umd.min.js.map +1 -0
- package/core/bbj-screen-widget-core.d.ts +4 -0
- package/core/bbj-screen-widget-core.metadata.json +1 -0
- package/core/package.json +11 -0
- package/core/public_api.d.ts +1 -0
- package/core/service/baidu-map.service.d.ts +16 -0
- package/esm2015/bbj-screen-widget.js +118 -0
- package/esm2015/core/bbj-screen-widget-core.js +5 -0
- package/esm2015/core/public_api.js +2 -0
- package/esm2015/core/service/baidu-map.service.js +101 -0
- package/esm2015/lib/announcement/announcement.component.js +80 -0
- package/esm2015/lib/announcement/announcement.module.js +25 -0
- package/esm2015/lib/audio/audio.component.js +167 -0
- package/esm2015/lib/audio/audio.module.js +20 -0
- package/esm2015/lib/background/background.component.js +52 -0
- package/esm2015/lib/background/background.module.js +19 -0
- package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.component.js +323 -0
- package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.module.js +20 -0
- package/esm2015/lib/basic-bar-chart/basic-bar-chart.component.js +604 -0
- package/esm2015/lib/basic-bar-chart/basic-bar-chart.module.js +27 -0
- package/esm2015/lib/basic-line-chart/basic-line-chart.component.js +782 -0
- package/esm2015/lib/basic-line-chart/basic-line-chart.module.js +20 -0
- package/esm2015/lib/basic-pie-chart/basic-pie-chart.component.js +471 -0
- package/esm2015/lib/basic-pie-chart/basic-pie-chart.module.js +20 -0
- package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.component.js +233 -0
- package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.module.js +21 -0
- package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.component.js +503 -0
- package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.module.js +19 -0
- package/esm2015/lib/bubble-chart/bubble-chart.component.js +348 -0
- package/esm2015/lib/bubble-chart/bubble-chart.module.js +20 -0
- package/esm2015/lib/bulletin-board/bulletin-board.component.js +160 -0
- package/esm2015/lib/bulletin-board/bulletin-board.module.js +23 -0
- package/esm2015/lib/button/button.component.js +186 -0
- package/esm2015/lib/button/button.module.js +21 -0
- package/esm2015/lib/calendar/calendar.component.js +96 -0
- package/esm2015/lib/calendar/calendar.module.js +28 -0
- package/esm2015/lib/checkbox/checkbox.component.js +333 -0
- package/esm2015/lib/checkbox/checkbox.module.js +21 -0
- package/esm2015/lib/cross-table/cross-table.component.js +291 -0
- package/esm2015/lib/cross-table/cross-table.module.js +20 -0
- package/esm2015/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.js +685 -0
- package/esm2015/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.js +278 -0
- package/esm2015/lib/custom-baidu-map/base-layer.js +53 -0
- package/esm2015/lib/custom-baidu-map/custom-baidu-map.component.js +655 -0
- package/esm2015/lib/custom-baidu-map/custom-baidu-map.module.js +46 -0
- package/esm2015/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.js +116 -0
- package/esm2015/lib/custom-baidu-map/wind-layer/wind-layer.component.js +331 -0
- package/esm2015/lib/date-picker/date-picker.component.js +447 -0
- package/esm2015/lib/date-picker/date-picker.module.js +22 -0
- package/esm2015/lib/funnel-chart/funnel-chart.component.js +241 -0
- package/esm2015/lib/funnel-chart/funnel-chart.module.js +20 -0
- package/esm2015/lib/gantt/gantt.component.js +222 -0
- package/esm2015/lib/gantt/gantt.module.js +39 -0
- package/esm2015/lib/gauge/gauge.component.js +324 -0
- package/esm2015/lib/gauge/gauge.module.js +20 -0
- package/esm2015/lib/gauge-progress/gauge-progress.component.js +348 -0
- package/esm2015/lib/gauge-progress/gauge.module.js +21 -0
- package/esm2015/lib/general-text/general-text.component.js +144 -0
- package/esm2015/lib/general-text/general-text.module.js +20 -0
- package/esm2015/lib/iconfont/icon.js +199 -0
- package/esm2015/lib/iconfont/iconfont.component.js +56 -0
- package/esm2015/lib/iconfont/iconfont.module.js +20 -0
- package/esm2015/lib/iframe/iframe.component.js +46 -0
- package/esm2015/lib/iframe/iframe.module.js +20 -0
- package/esm2015/lib/image/image.component.js +98 -0
- package/esm2015/lib/image/image.module.js +19 -0
- package/esm2015/lib/item-swiper/item-swiper.component.js +334 -0
- package/esm2015/lib/item-swiper/item-swiper.module.js +28 -0
- package/esm2015/lib/line-bar-chart/line-bar-chart.component.js +398 -0
- package/esm2015/lib/line-bar-chart/line-bar-chart.module.js +20 -0
- package/esm2015/lib/line-light-flow/line-light-flow.component.js +241 -0
- package/esm2015/lib/line-light-flow/line-light-flow.module.js +24 -0
- package/esm2015/lib/liquid-fill/liquid-fill.component.js +158 -0
- package/esm2015/lib/liquid-fill/liquid-fill.module.js +20 -0
- package/esm2015/lib/marquee/marquee.component.js +110 -0
- package/esm2015/lib/marquee/marquee.module.js +19 -0
- package/esm2015/lib/mip-anim/mip-anim.component.js +26 -0
- package/esm2015/lib/mip-anim/mip-anim.module.js +19 -0
- package/esm2015/lib/multi-title-gauge/multi-title-gauge.component.js +277 -0
- package/esm2015/lib/multi-title-gauge/multi-title-gauge.module.js +22 -0
- package/esm2015/lib/number-flop/number-flop.component.js +124 -0
- package/esm2015/lib/number-flop/number-flop.module.js +19 -0
- package/esm2015/lib/parent-container/parent-container.component.js +21 -0
- package/esm2015/lib/parent-container/parent-container.module.js +19 -0
- package/esm2015/lib/percent-pie-chart/percent-pie-chart.component.js +248 -0
- package/esm2015/lib/percent-pie-chart/percent-pie-chart.module.js +20 -0
- package/esm2015/lib/pie3d-chart/pie3d-chart.component.js +303 -0
- package/esm2015/lib/pie3d-chart/pie3d-chart.module.js +19 -0
- package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.js +431 -0
- package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.js +19 -0
- package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.js +252 -0
- package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.js +19 -0
- package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.js +124 -0
- package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.js +19 -0
- package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.js +359 -0
- package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.js +21 -0
- package/esm2015/lib/planimetric-map2d/planimetric-map2d.component.js +712 -0
- package/esm2015/lib/planimetric-map2d/planimetric-map2d.module.js +34 -0
- package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.js +128 -0
- package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.js +19 -0
- package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.js +242 -0
- package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.js +19 -0
- package/esm2015/lib/planimetric-map3d/planimetric-map3d.component.js +265 -0
- package/esm2015/lib/planimetric-map3d/planimetric-map3d.module.js +22 -0
- package/esm2015/lib/radar-chart/radar-chart.component.js +236 -0
- package/esm2015/lib/radar-chart/radar-chart.module.js +20 -0
- package/esm2015/lib/radio/radio.component.js +148 -0
- package/esm2015/lib/radio/radio.module.js +21 -0
- package/esm2015/lib/rate/rate.component.js +57 -0
- package/esm2015/lib/rate/rate.module.js +23 -0
- package/esm2015/lib/scatter3d/scatter3d.component.js +166 -0
- package/esm2015/lib/scatter3d/scatter3d.module.js +20 -0
- package/esm2015/lib/screen-widget.module.js +536 -0
- package/esm2015/lib/search/search.component.js +130 -0
- package/esm2015/lib/search/search.module.js +29 -0
- package/esm2015/lib/select/select.component.js +343 -0
- package/esm2015/lib/select/select.module.js +21 -0
- package/esm2015/lib/shape/shape.component.js +248 -0
- package/esm2015/lib/shape/shape.module.js +19 -0
- package/esm2015/lib/shared/component/video-player/video-player.component.js +114 -0
- package/esm2015/lib/shared/component/video-player/video-player.module.js +14 -0
- package/esm2015/lib/shared/service/common.service.js +39 -0
- package/esm2015/lib/shared/service/file-url.service.js +12 -0
- package/esm2015/lib/shared/service/gaode-map.service.js +36 -0
- package/esm2015/lib/shared/service/highcharts.service.js +36 -0
- package/esm2015/lib/shared/service/http.service.js +20 -0
- package/esm2015/lib/shared/util/base.util.js +5 -0
- package/esm2015/lib/shared/util/echarts.util.js +12 -0
- package/esm2015/lib/shared/util/style.util.js +19 -0
- package/esm2015/lib/shuffling-list/color.pipe.js +23 -0
- package/esm2015/lib/shuffling-list/shuffling-list.component.js +600 -0
- package/esm2015/lib/shuffling-list/shuffling-list.module.js +22 -0
- package/esm2015/lib/table/table.component.js +657 -0
- package/esm2015/lib/table/table.module.js +38 -0
- package/esm2015/lib/tabs/tab/tab.component.js +27 -0
- package/esm2015/lib/tabs/tabs.component.js +85 -0
- package/esm2015/lib/tabs/tabs.module.js +22 -0
- package/esm2015/lib/temporary-data/temporary-data.component.js +49 -0
- package/esm2015/lib/temporary-data/temporary-data.module.js +20 -0
- package/esm2015/lib/time-picker/time-picker.component.js +112 -0
- package/esm2015/lib/time-picker/time-picker.module.js +21 -0
- package/esm2015/lib/timer/timer.component.js +108 -0
- package/esm2015/lib/timer/timer.module.js +20 -0
- package/esm2015/lib/tree-control/tree-control.component.js +381 -0
- package/esm2015/lib/tree-control/tree-control.module.js +24 -0
- package/esm2015/lib/tree-ring-chart/tree-ring-chart.component.js +215 -0
- package/esm2015/lib/tree-ring-chart/tree-ring-chart.module.js +20 -0
- package/esm2015/lib/upload/upload.component.js +127 -0
- package/esm2015/lib/upload/upload.module.js +22 -0
- package/esm2015/lib/video-grid/video-grid.component.js +133 -0
- package/esm2015/lib/video-grid/video-grid.module.js +22 -0
- package/esm2015/lib/visual-map-chart/visual-map-chart.component.js +395 -0
- package/esm2015/lib/visual-map-chart/visual-map-chart.module.js +20 -0
- package/esm2015/lib/vote/vote.component.js +100 -0
- package/esm2015/lib/vote/vote.module.js +21 -0
- package/esm2015/lib/weather/weather.component.js +92 -0
- package/esm2015/lib/weather/weather.module.js +21 -0
- package/esm2015/lib/wordart/wordart.component.js +84 -0
- package/esm2015/lib/wordart/wordart.module.js +19 -0
- package/esm2015/lib/workbench-widget.module.js +620 -0
- package/esm2015/public-api.js +39 -0
- package/fesm2015/bbj-screen-widget-core.js +107 -0
- package/fesm2015/bbj-screen-widget-core.js.map +1 -0
- package/fesm2015/bbj-screen-widget.js +20169 -0
- package/fesm2015/bbj-screen-widget.js.map +1 -0
- package/lib/announcement/announcement.component.d.ts +13 -0
- package/lib/announcement/announcement.module.d.ts +5 -0
- package/lib/audio/audio.component.d.ts +22 -0
- package/lib/audio/audio.module.d.ts +4 -0
- package/lib/background/background.component.d.ts +12 -0
- package/lib/background/background.module.d.ts +4 -0
- package/lib/bar-chart-three-d/bar-chart-three-d.component.d.ts +30 -0
- package/lib/bar-chart-three-d/bar-chart-three-d.module.d.ts +4 -0
- package/lib/basic-bar-chart/basic-bar-chart.component.d.ts +105 -0
- package/lib/basic-bar-chart/basic-bar-chart.module.d.ts +5 -0
- package/lib/basic-line-chart/basic-line-chart.component.d.ts +102 -0
- package/lib/basic-line-chart/basic-line-chart.module.d.ts +4 -0
- package/lib/basic-pie-chart/basic-pie-chart.component.d.ts +56 -0
- package/lib/basic-pie-chart/basic-pie-chart.module.d.ts +4 -0
- package/lib/basic-planimetric-map/basic-planimetric-map.component.d.ts +18 -0
- package/lib/basic-planimetric-map/basic-planimetric-map.module.d.ts +4 -0
- package/lib/breathing-bubble-layer/breathing-bubble-layer.component.d.ts +210 -0
- package/lib/breathing-bubble-layer/breathing-bubble-layer.module.d.ts +4 -0
- package/lib/bubble-chart/bubble-chart.component.d.ts +75 -0
- package/lib/bubble-chart/bubble-chart.module.d.ts +4 -0
- package/lib/bulletin-board/bulletin-board.component.d.ts +25 -0
- package/lib/bulletin-board/bulletin-board.module.d.ts +4 -0
- package/lib/button/button.component.d.ts +25 -0
- package/lib/button/button.module.d.ts +4 -0
- package/lib/calendar/calendar.component.d.ts +14 -0
- package/lib/calendar/calendar.module.d.ts +4 -0
- package/lib/checkbox/checkbox.component.d.ts +45 -0
- package/lib/checkbox/checkbox.module.d.ts +4 -0
- package/lib/cross-table/cross-table.component.d.ts +30 -0
- package/lib/cross-table/cross-table.module.d.ts +4 -0
- package/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.d.ts +67 -0
- package/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.d.ts +23 -0
- package/lib/custom-baidu-map/base-layer.d.ts +16 -0
- package/lib/custom-baidu-map/custom-baidu-map.component.d.ts +92 -0
- package/lib/custom-baidu-map/custom-baidu-map.module.d.ts +4 -0
- package/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.d.ts +16 -0
- package/lib/custom-baidu-map/wind-layer/wind-layer.component.d.ts +28 -0
- package/lib/date-picker/date-picker.component.d.ts +63 -0
- package/lib/date-picker/date-picker.module.d.ts +4 -0
- package/lib/funnel-chart/funnel-chart.component.d.ts +24 -0
- package/lib/funnel-chart/funnel-chart.module.d.ts +4 -0
- package/lib/gantt/gantt.component.d.ts +25 -0
- package/lib/gantt/gantt.module.d.ts +4 -0
- package/lib/gauge/gauge.component.d.ts +37 -0
- package/lib/gauge/gauge.module.d.ts +4 -0
- package/lib/gauge-progress/gauge-progress.component.d.ts +46 -0
- package/lib/gauge-progress/gauge.module.d.ts +4 -0
- package/lib/general-text/general-text.component.d.ts +21 -0
- package/lib/general-text/general-text.module.d.ts +4 -0
- package/lib/iconfont/icon.d.ts +1 -0
- package/lib/iconfont/iconfont.component.d.ts +11 -0
- package/lib/iconfont/iconfont.module.d.ts +4 -0
- package/lib/iframe/iframe.component.d.ts +10 -0
- package/lib/iframe/iframe.module.d.ts +4 -0
- package/lib/image/image.component.d.ts +21 -0
- package/lib/image/image.module.d.ts +4 -0
- package/lib/item-swiper/item-swiper.component.d.ts +41 -0
- package/lib/item-swiper/item-swiper.module.d.ts +4 -0
- package/lib/line-bar-chart/line-bar-chart.component.d.ts +63 -0
- package/lib/line-bar-chart/line-bar-chart.module.d.ts +4 -0
- package/lib/line-light-flow/line-light-flow.component.d.ts +26 -0
- package/lib/line-light-flow/line-light-flow.module.d.ts +4 -0
- package/lib/liquid-fill/liquid-fill.component.d.ts +18 -0
- package/lib/liquid-fill/liquid-fill.module.d.ts +4 -0
- package/lib/marquee/marquee.component.d.ts +20 -0
- package/lib/marquee/marquee.module.d.ts +4 -0
- package/lib/mip-anim/mip-anim.component.d.ts +6 -0
- package/lib/mip-anim/mip-anim.module.d.ts +4 -0
- package/lib/multi-title-gauge/multi-title-gauge.component.d.ts +26 -0
- package/lib/multi-title-gauge/multi-title-gauge.module.d.ts +4 -0
- package/lib/number-flop/number-flop.component.d.ts +22 -0
- package/lib/number-flop/number-flop.module.d.ts +4 -0
- package/lib/parent-container/parent-container.component.d.ts +9 -0
- package/lib/parent-container/parent-container.module.d.ts +4 -0
- package/lib/percent-pie-chart/percent-pie-chart.component.d.ts +24 -0
- package/lib/percent-pie-chart/percent-pie-chart.module.d.ts +4 -0
- package/lib/pie3d-chart/pie3d-chart.component.d.ts +30 -0
- package/lib/pie3d-chart/pie3d-chart.module.d.ts +4 -0
- package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.d.ts +206 -0
- package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.d.ts +4 -0
- package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.d.ts +15 -0
- package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.d.ts +4 -0
- package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.d.ts +15 -0
- package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.d.ts +4 -0
- package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.d.ts +49 -0
- package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.d.ts +4 -0
- package/lib/planimetric-map2d/planimetric-map2d.component.d.ts +48 -0
- package/lib/planimetric-map2d/planimetric-map2d.module.d.ts +4 -0
- package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.d.ts +14 -0
- package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.d.ts +4 -0
- package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.d.ts +41 -0
- package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.d.ts +4 -0
- package/lib/planimetric-map3d/planimetric-map3d.component.d.ts +29 -0
- package/lib/planimetric-map3d/planimetric-map3d.module.d.ts +4 -0
- package/lib/radar-chart/radar-chart.component.d.ts +23 -0
- package/lib/radar-chart/radar-chart.module.d.ts +4 -0
- package/lib/radio/radio.component.d.ts +21 -0
- package/lib/radio/radio.module.d.ts +4 -0
- package/lib/rate/rate.component.d.ts +13 -0
- package/lib/rate/rate.module.d.ts +4 -0
- package/lib/scatter3d/scatter3d.component.d.ts +25 -0
- package/lib/scatter3d/scatter3d.module.d.ts +4 -0
- package/lib/screen-widget.module.d.ts +4 -0
- package/lib/search/search.component.d.ts +21 -0
- package/lib/search/search.module.d.ts +6 -0
- package/lib/select/select.component.d.ts +34 -0
- package/lib/select/select.module.d.ts +4 -0
- package/lib/shape/shape.component.d.ts +50 -0
- package/lib/shape/shape.module.d.ts +4 -0
- package/lib/shared/component/video-player/video-player.component.d.ts +28 -0
- package/lib/shared/component/video-player/video-player.module.d.ts +2 -0
- package/lib/shared/service/common.service.d.ts +21 -0
- package/lib/shared/service/file-url.service.d.ts +3 -0
- package/lib/shared/service/gaode-map.service.d.ts +10 -0
- package/lib/shared/service/highcharts.service.d.ts +9 -0
- package/lib/shared/service/http.service.d.ts +7 -0
- package/lib/shared/util/base.util.d.ts +1 -0
- package/lib/shared/util/echarts.util.d.ts +1 -0
- package/lib/shared/util/style.util.d.ts +1 -0
- package/lib/shuffling-list/color.pipe.d.ts +4 -0
- package/lib/shuffling-list/shuffling-list.component.d.ts +76 -0
- package/lib/shuffling-list/shuffling-list.module.d.ts +4 -0
- package/lib/table/table.component.d.ts +65 -0
- package/lib/table/table.module.d.ts +4 -0
- package/lib/tabs/tab/tab.component.d.ts +7 -0
- package/lib/tabs/tabs.component.d.ts +13 -0
- package/lib/tabs/tabs.module.d.ts +4 -0
- package/lib/temporary-data/temporary-data.component.d.ts +13 -0
- package/lib/temporary-data/temporary-data.module.d.ts +4 -0
- package/lib/time-picker/time-picker.component.d.ts +17 -0
- package/lib/time-picker/time-picker.module.d.ts +4 -0
- package/lib/timer/timer.component.d.ts +21 -0
- package/lib/timer/timer.module.d.ts +4 -0
- package/lib/tree-control/tree-control.component.d.ts +59 -0
- package/lib/tree-control/tree-control.module.d.ts +4 -0
- package/lib/tree-ring-chart/tree-ring-chart.component.d.ts +24 -0
- package/lib/tree-ring-chart/tree-ring-chart.module.d.ts +4 -0
- package/lib/upload/upload.component.d.ts +21 -0
- package/lib/upload/upload.module.d.ts +4 -0
- package/lib/video-grid/video-grid.component.d.ts +23 -0
- package/lib/video-grid/video-grid.module.d.ts +4 -0
- package/lib/visual-map-chart/visual-map-chart.component.d.ts +49 -0
- package/lib/visual-map-chart/visual-map-chart.module.d.ts +4 -0
- package/lib/vote/vote.component.d.ts +15 -0
- package/lib/vote/vote.module.d.ts +4 -0
- package/lib/weather/weather.component.d.ts +26 -0
- package/lib/weather/weather.module.d.ts +4 -0
- package/lib/wordart/wordart.component.d.ts +14 -0
- package/lib/wordart/wordart.module.d.ts +4 -0
- package/lib/workbench-widget.module.d.ts +4 -0
- package/package.json +30 -0
- package/public-api.d.ts +34 -0
- package/src/assets/echarts/map/json/330305.json +1 -0
- package/src/assets/echarts/map/json/china-cities.json +1 -0
- package/src/assets/echarts/map/json/china-contour.json +1 -0
- package/src/assets/echarts/map/json/china.json +1 -0
- package/src/assets/echarts/map/json/custom_map.json +1425 -0
- package/src/assets/echarts/map/json/custom_map_config.json +1299 -0
- package/src/assets/echarts/map/json/province/anhui.json +1 -0
- package/src/assets/echarts/map/json/province/aomen.json +1 -0
- package/src/assets/echarts/map/json/province/beijing.json +1 -0
- package/src/assets/echarts/map/json/province/chongqing.json +1 -0
- package/src/assets/echarts/map/json/province/fujian.json +1 -0
- package/src/assets/echarts/map/json/province/gansu.json +1 -0
- package/src/assets/echarts/map/json/province/guangdong.json +1 -0
- package/src/assets/echarts/map/json/province/guangxi.json +1 -0
- package/src/assets/echarts/map/json/province/guizhou.json +1 -0
- package/src/assets/echarts/map/json/province/hainan.json +1 -0
- package/src/assets/echarts/map/json/province/hebei.json +1 -0
- package/src/assets/echarts/map/json/province/heilongjiang.json +1 -0
- package/src/assets/echarts/map/json/province/henan.json +1 -0
- package/src/assets/echarts/map/json/province/hubei.json +1 -0
- package/src/assets/echarts/map/json/province/hunan.json +1 -0
- package/src/assets/echarts/map/json/province/jiangsu.json +1 -0
- package/src/assets/echarts/map/json/province/jiangxi.json +1 -0
- package/src/assets/echarts/map/json/province/jilin.json +1 -0
- package/src/assets/echarts/map/json/province/liaoning.json +1 -0
- package/src/assets/echarts/map/json/province/neimenggu.json +1 -0
- package/src/assets/echarts/map/json/province/ningxia.json +1 -0
- package/src/assets/echarts/map/json/province/qinghai.json +1 -0
- package/src/assets/echarts/map/json/province/shandong.json +1 -0
- package/src/assets/echarts/map/json/province/shanghai.json +1 -0
- package/src/assets/echarts/map/json/province/shanxi.json +1 -0
- package/src/assets/echarts/map/json/province/shanxi1.json +1 -0
- package/src/assets/echarts/map/json/province/sichuan.json +1 -0
- package/src/assets/echarts/map/json/province/taiwan.json +1 -0
- package/src/assets/echarts/map/json/province/tianjin.json +1 -0
- package/src/assets/echarts/map/json/province/xianggang.json +1 -0
- package/src/assets/echarts/map/json/province/xinjiang.json +1 -0
- package/src/assets/echarts/map/json/province/xizang.json +1 -0
- package/src/assets/echarts/map/json/province/yunnan.json +1 -0
- package/src/assets/echarts/map/json/province/zhejiang.json +1 -0
- package/src/assets/echarts/map/json/wenzhou.json +1 -0
- package/src/assets/echarts/map/json/world.json +1 -0
- package/src/assets/img/screen/bulletin-board.png +0 -0
- package/src/assets/img/screen/cross-table.png +0 -0
- package/src/assets/img/screen/custom-table.png +0 -0
- package/src/assets/img/screen/date-picker.png +0 -0
- package/src/assets/img/screen/file-upload.png +0 -0
- package/src/assets/img/screen/gantt.png +0 -0
- package/src/assets/img/screen/grid.png +0 -0
- package/src/assets/img/screen/marker.png +0 -0
- package/src/assets/img/screen/multiTitleGauge.png +0 -0
- package/src/assets/img/screen/pie3d.png +0 -0
- package/src/assets/img/screen/shuffling.png +0 -0
- package/src/assets/img/screen/sub-screen.png +0 -0
- package/src/assets/img/screen/time-picker.png +0 -0
- package/src/assets/img/screen/typhoon.png +0 -0
- package/src/assets/img/screen/weather_cloudy.png +0 -0
- package/src/assets/img/screen/weather_overcast.png +0 -0
- package/src/assets/img/screen/weather_rain.png +0 -0
- package/src/assets/img/screen/weather_sunny.png +0 -0
- package/src/assets/js/BMap/MarkerClusterer_min.js +1 -0
- package/src/assets/js/BMap/TextIconOverlay_min.js +1 -0
- package/src/assets/js/BMapGL/MarkerClusterer_min.js +1 -0
- package/src/assets/js/BMapGL/TextIconOverlay_min.js +1 -0
- package/src/assets/js/BMapGL/mapvgl.min.js +1023 -0
- package/src/assets/js/flv.min.js +10 -0
- package/src/assets/js/highcharts/highcharts-3d.js +104 -0
- package/src/assets/js/highcharts/highcharts.js +574 -0
- package/src/assets/js/hls.js +2 -0
|
@@ -0,0 +1,600 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Component, ElementRef, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, } from '@angular/core';
|
|
3
|
+
import { Widget, Data, Property, DataSchema, DataOutput, WidgetRef } from 'bbj-widget-base';
|
|
4
|
+
import { getFontStyle } from '../shared/util/style.util';
|
|
5
|
+
let ShufflingListComponent = class ShufflingListComponent {
|
|
6
|
+
constructor(ele, cd, widgetRef, renderer) {
|
|
7
|
+
this.ele = ele;
|
|
8
|
+
this.cd = cd;
|
|
9
|
+
this.widgetRef = widgetRef;
|
|
10
|
+
this.renderer = renderer;
|
|
11
|
+
this.carousel = true;
|
|
12
|
+
this.lineWrap = true;
|
|
13
|
+
this.time = 1;
|
|
14
|
+
this.serialNumberDisplay = true;
|
|
15
|
+
this.headDisplay = true;
|
|
16
|
+
this.headBackground = '';
|
|
17
|
+
this.headFont = { family: '', color: '#ffffff', weight: 'normal', size: 20, space: 0, lineHeight: 40 };
|
|
18
|
+
this.fontBling = false;
|
|
19
|
+
this.bindColor = [];
|
|
20
|
+
this.blingColor = '';
|
|
21
|
+
this.borderColor = '';
|
|
22
|
+
this.borderBlingColor = '';
|
|
23
|
+
this.borderSize = 0;
|
|
24
|
+
this.clickTarget = 'row';
|
|
25
|
+
this.titleStyle = [];
|
|
26
|
+
this.blingNum = 3;
|
|
27
|
+
this.oddBackground = '';
|
|
28
|
+
this.evenBackground = '';
|
|
29
|
+
this.contentFont = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: 40 };
|
|
30
|
+
this.contentFontBling = false;
|
|
31
|
+
this.contentBlingColor = '';
|
|
32
|
+
this.contentBlingNum = 3;
|
|
33
|
+
this.paddingLeft = 0;
|
|
34
|
+
this.paddingRight = 0;
|
|
35
|
+
this.data = [
|
|
36
|
+
{
|
|
37
|
+
地区: '温州',
|
|
38
|
+
流量: '123',
|
|
39
|
+
行为: 'xxxx',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
地区: '杭州',
|
|
43
|
+
流量: '1235',
|
|
44
|
+
行为: 'xxxx',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
地区: '上海',
|
|
48
|
+
流量: '1234',
|
|
49
|
+
行为: 'xxxx',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
地区: '北京',
|
|
53
|
+
流量: '12367',
|
|
54
|
+
行为: 'xxxx',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
地区: '温州1',
|
|
58
|
+
流量: '123835',
|
|
59
|
+
行为: 'xxxx',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
地区: '温州2',
|
|
63
|
+
流量: '123835',
|
|
64
|
+
行为: 'xxxx',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
地区: '温州3',
|
|
68
|
+
流量: '123835',
|
|
69
|
+
行为: 'xxxx',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
地区: '温州4',
|
|
73
|
+
流量: '123835',
|
|
74
|
+
行为: 'xxxx',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
this.tableStyle = {};
|
|
78
|
+
this.animationDelay = 0;
|
|
79
|
+
this.dateChange = new EventEmitter();
|
|
80
|
+
this.cellClick = new EventEmitter();
|
|
81
|
+
this.columnClick = new EventEmitter();
|
|
82
|
+
this.headStyle = {};
|
|
83
|
+
this.bodyStyle = {};
|
|
84
|
+
this.rowStyle = {};
|
|
85
|
+
this.pageChange = new EventEmitter();
|
|
86
|
+
}
|
|
87
|
+
ngOnInit() {
|
|
88
|
+
var _a, _b;
|
|
89
|
+
const widget = this.widgetRef.widget;
|
|
90
|
+
if (this.clickTarget !== 'cell' && (((_a = widget.link) === null || _a === void 0 ? void 0 : _a.enabled) || ((_b = widget.outputs) === null || _b === void 0 ? void 0 : _b.enabled))) {
|
|
91
|
+
this.tableStyle.cursor = 'pointer';
|
|
92
|
+
}
|
|
93
|
+
this.headStyle = getFontStyle(this.headFont);
|
|
94
|
+
this.headStyle.backgroundColor = this.headBackground;
|
|
95
|
+
if (this.paddingLeft) {
|
|
96
|
+
this.headStyle.paddingLeft = this.rowStyle.paddingLeft = this.paddingLeft + 'px';
|
|
97
|
+
}
|
|
98
|
+
if (this.paddingRight) {
|
|
99
|
+
this.headStyle.paddingRight = this.rowStyle.paddingRight = this.paddingRight + 'px';
|
|
100
|
+
}
|
|
101
|
+
Object.assign(this.tableStyle, getFontStyle(this.contentFont));
|
|
102
|
+
if (this.borderSize && this.borderColor) {
|
|
103
|
+
const element = this.ele.nativeElement;
|
|
104
|
+
const border = `${this.borderSize}px solid ${this.borderColor || '#fff'}`;
|
|
105
|
+
this.rowStyle.borderBottom = this.headStyle.borderBottom = border;
|
|
106
|
+
this.renderer.setStyle(element, 'border', border);
|
|
107
|
+
if (this.borderBlingColor) {
|
|
108
|
+
const filter = `drop-shadow(0 0 8px ${this.borderBlingColor})`;
|
|
109
|
+
this.renderer.setStyle(element, 'filter', filter);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (this.fontBling) {
|
|
113
|
+
// 发光
|
|
114
|
+
let color = this.blingColor || this.headFont.color || '#ffffff';
|
|
115
|
+
let num = this.blingNum || 3;
|
|
116
|
+
this.headStyle.textShadow = this.getBlingStyle(color, num);
|
|
117
|
+
}
|
|
118
|
+
if (this.contentFontBling) {
|
|
119
|
+
// 发光
|
|
120
|
+
let color = this.contentBlingColor || this.contentFont.color || '#ffffff';
|
|
121
|
+
let num = this.blingNum || 3;
|
|
122
|
+
this.tableStyle.textShadow = this.getBlingStyle(color, num);
|
|
123
|
+
}
|
|
124
|
+
if (this.lineWrap) {
|
|
125
|
+
this.tableStyle.wordBreak = 'break-all';
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
this.tableStyle.whiteSpace = 'nowrap';
|
|
129
|
+
}
|
|
130
|
+
this.cd.markForCheck();
|
|
131
|
+
}
|
|
132
|
+
ngOnChanges(changes) {
|
|
133
|
+
if ((changes.data || changes.schema) && this.data) {
|
|
134
|
+
if (this.data.totalElements != null) {
|
|
135
|
+
this.paged = true;
|
|
136
|
+
const start = this.data.number * this.data.size;
|
|
137
|
+
if (this.content == null) {
|
|
138
|
+
this.content = [];
|
|
139
|
+
}
|
|
140
|
+
if (this.content.length > start) {
|
|
141
|
+
this.content.splice(start, this.content.length - start);
|
|
142
|
+
}
|
|
143
|
+
else if (this.content.length < start) {
|
|
144
|
+
this.pageChange.emit(Math.ceil(this.content.length / this.data.size));
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.content.push(...this.data.content);
|
|
148
|
+
this.total = this.data.totalElements;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
this.paged = false;
|
|
152
|
+
this.content = this.data;
|
|
153
|
+
this.total = this.data.length;
|
|
154
|
+
}
|
|
155
|
+
if (!this.paged || this.data.number === 0) {
|
|
156
|
+
this.updateColumns();
|
|
157
|
+
}
|
|
158
|
+
const element = this.ele.nativeElement;
|
|
159
|
+
this.parentHeight = Number(element.parentElement.style.height.replace('px', ''));
|
|
160
|
+
this.headerHeight = this.headFont.lineHeight || 40;
|
|
161
|
+
this.rowHeight = this.contentFont.linHeight || 40;
|
|
162
|
+
if (this.borderSize && this.borderColor) {
|
|
163
|
+
this.headerHeight += this.borderSize;
|
|
164
|
+
this.rowHeight += this.borderSize;
|
|
165
|
+
}
|
|
166
|
+
if (!this.headDisplay) {
|
|
167
|
+
this.headerHeight = 0;
|
|
168
|
+
}
|
|
169
|
+
const carousel = this.carousel && this.total * this.rowHeight + this.headerHeight > this.parentHeight;
|
|
170
|
+
if (!this._carousel && carousel) {
|
|
171
|
+
this.runtime = 0;
|
|
172
|
+
}
|
|
173
|
+
this._carousel = carousel;
|
|
174
|
+
this.placeholder = null;
|
|
175
|
+
if (this._carousel) {
|
|
176
|
+
const time = this.total * this.time;
|
|
177
|
+
this.tableStyle.animation = 'carousel ' + time + 's linear infinite';
|
|
178
|
+
if (this.paged && this.total > this.content.length) {
|
|
179
|
+
this.placeholder = this.rowHeight * (this.total - this.content.length);
|
|
180
|
+
}
|
|
181
|
+
if (!this.paused) {
|
|
182
|
+
this.updateRuntime();
|
|
183
|
+
this.loadNextPage();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
this.tableStyle.animation = null;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
this.cd.markForCheck();
|
|
191
|
+
}
|
|
192
|
+
ngOnDestroy() {
|
|
193
|
+
this.stopLoadNext();
|
|
194
|
+
}
|
|
195
|
+
getBlingStyle(color, num) {
|
|
196
|
+
let str = '';
|
|
197
|
+
for (let i = 0; i < num; i++) {
|
|
198
|
+
str += '0 0 20px ' + color + ',';
|
|
199
|
+
}
|
|
200
|
+
return str.substr(0, str.length - 1);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* 更新已滚动时间
|
|
204
|
+
*/
|
|
205
|
+
updateRuntime() {
|
|
206
|
+
const now = new Date().getTime();
|
|
207
|
+
if (this.lastTime) {
|
|
208
|
+
this.runtime += now - this.lastTime;
|
|
209
|
+
}
|
|
210
|
+
this.lastTime = now;
|
|
211
|
+
}
|
|
212
|
+
stopLoadNext() {
|
|
213
|
+
if (this.nextPageTimeout != null) {
|
|
214
|
+
clearTimeout(this.nextPageTimeout);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
getNextLoadTime() {
|
|
218
|
+
const contentHeight = this.headerHeight + this.rowHeight * this.content.length; // 已加载内容的高度
|
|
219
|
+
let nextLoadTime = ((contentHeight - this.parentHeight) / this.rowHeight) * this.time * 1000 - this.runtime + this.animationDelay;
|
|
220
|
+
return nextLoadTime;
|
|
221
|
+
}
|
|
222
|
+
loadNextPage() {
|
|
223
|
+
this.stopLoadNext();
|
|
224
|
+
if (this.paged && this.total > this.content.length) {
|
|
225
|
+
let nextLoadTime = this.getNextLoadTime();
|
|
226
|
+
if (nextLoadTime < 0) {
|
|
227
|
+
nextLoadTime = 0;
|
|
228
|
+
}
|
|
229
|
+
this.nextPageTimeout = setTimeout(() => {
|
|
230
|
+
this.pageChange.next(this.data.number + 1);
|
|
231
|
+
}, nextLoadTime);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
updateColumns() {
|
|
235
|
+
this.columns = [];
|
|
236
|
+
let keys;
|
|
237
|
+
if (this.schema && this.schema.properties) {
|
|
238
|
+
keys = Object.keys(this.schema.properties);
|
|
239
|
+
}
|
|
240
|
+
else if (this.content && this.content[0]) {
|
|
241
|
+
keys = Object.keys(this.content[0]);
|
|
242
|
+
}
|
|
243
|
+
const titleStyleMap = {};
|
|
244
|
+
if (this.titleStyle && this.titleStyle.length > 0) {
|
|
245
|
+
this.titleStyle.forEach((titleStyle) => {
|
|
246
|
+
if (titleStyle.key) {
|
|
247
|
+
titleStyleMap[titleStyle.key] = titleStyle;
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
if (keys) {
|
|
252
|
+
for (const key of keys) {
|
|
253
|
+
let title = key;
|
|
254
|
+
if (this.schema && this.schema.properties) {
|
|
255
|
+
const property = this.schema.properties[key];
|
|
256
|
+
if (property && property.title) {
|
|
257
|
+
title = property.title;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const headStyle = {};
|
|
261
|
+
const cellStyle = {};
|
|
262
|
+
const column = { index: key, title, headStyle, cellStyle };
|
|
263
|
+
const titleStyle = titleStyleMap[key];
|
|
264
|
+
if (this.titleStyle.length && (titleStyle == null || !titleStyle.show)) {
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
let width;
|
|
268
|
+
if (titleStyle) {
|
|
269
|
+
width = titleStyle.width;
|
|
270
|
+
if (titleStyle.align) {
|
|
271
|
+
cellStyle.textAlign = titleStyle.align;
|
|
272
|
+
}
|
|
273
|
+
if (this.clickTarget === 'cell' && titleStyle.clickable) {
|
|
274
|
+
column.clickable = true;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (width) {
|
|
278
|
+
headStyle.width = cellStyle.width = width + 'px';
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
headStyle.flex = cellStyle.flex = 1;
|
|
282
|
+
}
|
|
283
|
+
this.columns.push(column);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
onClick(value) {
|
|
288
|
+
if (this.clickTarget !== 'cell') {
|
|
289
|
+
this.dateChange.emit(value);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
mouseover() {
|
|
293
|
+
// this._carousel=false;
|
|
294
|
+
if (this._carousel) {
|
|
295
|
+
this.paused = true;
|
|
296
|
+
this.tableStyle.animationPlayState = 'paused';
|
|
297
|
+
this.updateRuntime();
|
|
298
|
+
this.stopLoadNext();
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
mouseout() {
|
|
302
|
+
if (this._carousel) {
|
|
303
|
+
this.paused = false;
|
|
304
|
+
this.lastTime = new Date().getTime();
|
|
305
|
+
this.tableStyle.animationPlayState = 'running';
|
|
306
|
+
if (this.paged) {
|
|
307
|
+
this.loadNextPage();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
onMousewheel(event) {
|
|
312
|
+
if (this._carousel) {
|
|
313
|
+
this.animationDelay -= event.deltaY * 2;
|
|
314
|
+
if (this.animationDelay > this.runtime) {
|
|
315
|
+
this.animationDelay = this.runtime;
|
|
316
|
+
}
|
|
317
|
+
this.tableStyle.animationDelay = this.animationDelay / 1000 + 's';
|
|
318
|
+
if (this.paged && this.total > this.content.length && this.getNextLoadTime() < 0) {
|
|
319
|
+
this.pageChange.emit(this.data.number + 1);
|
|
320
|
+
}
|
|
321
|
+
event.stopPropagation();
|
|
322
|
+
event.preventDefault();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
onCellClick(column, row, event) {
|
|
326
|
+
if (this.clickTarget !== 'cell' || column.clickable) {
|
|
327
|
+
event.stopPropagation();
|
|
328
|
+
this.cellClick.emit(row[column.index]);
|
|
329
|
+
this.columnClick.emit(column.index);
|
|
330
|
+
this.dateChange.emit(row);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
exportWord() {
|
|
334
|
+
let html = '<table>';
|
|
335
|
+
if (this.headDisplay) {
|
|
336
|
+
html += '<thead><tr>';
|
|
337
|
+
this.columns.forEach((column) => {
|
|
338
|
+
html += `<th>${column.title}</th>`;
|
|
339
|
+
});
|
|
340
|
+
html += '</tr></thead>';
|
|
341
|
+
}
|
|
342
|
+
html += '<tbody>';
|
|
343
|
+
this.content.forEach((row) => {
|
|
344
|
+
html += '<tr>';
|
|
345
|
+
this.columns.forEach((column) => {
|
|
346
|
+
html += `<td>${row[column.index]}</td>`;
|
|
347
|
+
});
|
|
348
|
+
html += '</tr>';
|
|
349
|
+
});
|
|
350
|
+
html += '</tbody></table><br/>';
|
|
351
|
+
return html;
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
ShufflingListComponent.decorators = [
|
|
355
|
+
{ type: Component, args: [{
|
|
356
|
+
selector: 'sc-shuffling-list',
|
|
357
|
+
template: "<ng-container *ngIf=\"data\">\n <div *ngIf=\"headDisplay\" class=\"head\" [ngStyle]=\"headStyle\">\n <div *ngIf=\"serialNumberDisplay\" class=\"cell index-col\"></div>\n <div *ngFor=\"let column of columns\" class=\"cell\" [ngStyle]=\"column.headStyle\">{{ column.title }}</div>\n </div>\n <div class=\"body\" [class.carousel]=\"carousel\" (mouseover)=\"mouseover()\" (mouseout)=\"mouseout()\">\n <div class=\"body-scroll\" [ngStyle]=\"tableStyle\" (mousewheel)=\"onMousewheel($event)\">\n <ng-template #list>\n <div\n *ngFor=\"let row of content; let idx = index\"\n class=\"row\"\n [style.backgroundColor]=\"idx % 2 == 0 ? oddBackground : evenBackground\"\n [ngStyle]=\"rowStyle\"\n [style.color]=\"row | bindColor: bindColor\"\n (click)=\"onClick(row)\"\n >\n <div *ngIf=\"serialNumberDisplay\" class=\"cell index-col\">\n {{ idx + 1 }}\n </div>\n <ng-container *ngFor=\"let column of columns; let index = index\">\n <div class=\"cell\" [ngStyle]=\"column.cellStyle\" [title]=\"row[column.index]\">\n <span\n *ngIf=\"row[column.index] != null\"\n [class.clickable]=\"column.clickable\"\n (click)=\"onCellClick(column, row, $event)\"\n [innerHTML]=\"row[column.index] | nzSafeNull | nzSanitizer: 'html'\"\n ></span>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"placeholder\" [style.height.px]=\"placeholder\"></div>\n </ng-template>\n <ng-container [ngTemplateOutlet]=\"list\"></ng-container>\n <ng-container *ngIf=\"_carousel\" [ngTemplateOutlet]=\"list\"></ng-container>\n </div>\n </div>\n</ng-container>\n",
|
|
358
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
359
|
+
styles: [":host{flex-direction:column;height:100%;width:100%;overflow:hidden}.head,:host{display:flex}.head{flex:none}.cell{text-align:center;overflow:hidden;text-overflow:ellipsis}.cell>.clickable{cursor:pointer;color:#ff0;text-decoration:underline}.cell>.clickable:hover{color:#4e87ad}.body{flex:1;overflow:auto}.body.carousel{overflow:hidden}.row{display:flex}.index-col{width:30px;text-align:left}::-webkit-scrollbar{width:0}@keyframes carousel{0%{transform:translateY(0)}to{transform:translateY(-50%)}}"]
|
|
360
|
+
},] }
|
|
361
|
+
];
|
|
362
|
+
ShufflingListComponent.ctorParameters = () => [
|
|
363
|
+
{ type: ElementRef },
|
|
364
|
+
{ type: ChangeDetectorRef },
|
|
365
|
+
{ type: WidgetRef },
|
|
366
|
+
{ type: Renderer2 }
|
|
367
|
+
];
|
|
368
|
+
__decorate([
|
|
369
|
+
Property('轮播', { type: 'boolean' }),
|
|
370
|
+
__metadata("design:type", Object)
|
|
371
|
+
], ShufflingListComponent.prototype, "carousel", void 0);
|
|
372
|
+
__decorate([
|
|
373
|
+
Property('自动换行', { type: 'boolean' }),
|
|
374
|
+
__metadata("design:type", Object)
|
|
375
|
+
], ShufflingListComponent.prototype, "lineWrap", void 0);
|
|
376
|
+
__decorate([
|
|
377
|
+
Property('轮播间隔', { ui: { widget: 'myRange', min: 1, max: 20, step: 1 } }),
|
|
378
|
+
__metadata("design:type", Object)
|
|
379
|
+
], ShufflingListComponent.prototype, "time", void 0);
|
|
380
|
+
__decorate([
|
|
381
|
+
Property('序列号显示', { type: 'boolean' }),
|
|
382
|
+
__metadata("design:type", Object)
|
|
383
|
+
], ShufflingListComponent.prototype, "serialNumberDisplay", void 0);
|
|
384
|
+
__decorate([
|
|
385
|
+
Property('表头显示', { type: 'boolean' }),
|
|
386
|
+
__metadata("design:type", Object)
|
|
387
|
+
], ShufflingListComponent.prototype, "headDisplay", void 0);
|
|
388
|
+
__decorate([
|
|
389
|
+
Property('表头背景', {
|
|
390
|
+
ui: {
|
|
391
|
+
widget: 'myColor',
|
|
392
|
+
example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],
|
|
393
|
+
},
|
|
394
|
+
}),
|
|
395
|
+
__metadata("design:type", Object)
|
|
396
|
+
], ShufflingListComponent.prototype, "headBackground", void 0);
|
|
397
|
+
__decorate([
|
|
398
|
+
Property('表头字体', { ui: { widget: 'myFont' } }),
|
|
399
|
+
__metadata("design:type", Object)
|
|
400
|
+
], ShufflingListComponent.prototype, "headFont", void 0);
|
|
401
|
+
__decorate([
|
|
402
|
+
Property('字体发光', { type: 'boolean' }),
|
|
403
|
+
__metadata("design:type", Object)
|
|
404
|
+
], ShufflingListComponent.prototype, "fontBling", void 0);
|
|
405
|
+
__decorate([
|
|
406
|
+
Property('字段颜色', {
|
|
407
|
+
type: 'array',
|
|
408
|
+
maxItems: 99,
|
|
409
|
+
items: {
|
|
410
|
+
type: 'object',
|
|
411
|
+
properties: {
|
|
412
|
+
key: {
|
|
413
|
+
type: 'string',
|
|
414
|
+
title: '字段',
|
|
415
|
+
},
|
|
416
|
+
value: {
|
|
417
|
+
type: 'string',
|
|
418
|
+
title: '值',
|
|
419
|
+
},
|
|
420
|
+
color: {
|
|
421
|
+
type: 'string',
|
|
422
|
+
title: '颜色',
|
|
423
|
+
ui: {
|
|
424
|
+
widget: 'myColor',
|
|
425
|
+
},
|
|
426
|
+
},
|
|
427
|
+
},
|
|
428
|
+
required: [],
|
|
429
|
+
},
|
|
430
|
+
ui: { grid: { arraySpan: 24 }, spanControl: 24 },
|
|
431
|
+
}),
|
|
432
|
+
__metadata("design:type", Object)
|
|
433
|
+
], ShufflingListComponent.prototype, "bindColor", void 0);
|
|
434
|
+
__decorate([
|
|
435
|
+
Property('发光颜色', {
|
|
436
|
+
ui: {
|
|
437
|
+
widget: 'myColor',
|
|
438
|
+
example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],
|
|
439
|
+
},
|
|
440
|
+
}),
|
|
441
|
+
__metadata("design:type", Object)
|
|
442
|
+
], ShufflingListComponent.prototype, "blingColor", void 0);
|
|
443
|
+
__decorate([
|
|
444
|
+
Property('边框颜色', {
|
|
445
|
+
ui: {
|
|
446
|
+
widget: 'myColor',
|
|
447
|
+
example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],
|
|
448
|
+
},
|
|
449
|
+
}),
|
|
450
|
+
__metadata("design:type", Object)
|
|
451
|
+
], ShufflingListComponent.prototype, "borderColor", void 0);
|
|
452
|
+
__decorate([
|
|
453
|
+
Property('边框发光', {
|
|
454
|
+
ui: {
|
|
455
|
+
widget: 'myColor',
|
|
456
|
+
example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],
|
|
457
|
+
},
|
|
458
|
+
}),
|
|
459
|
+
__metadata("design:type", Object)
|
|
460
|
+
], ShufflingListComponent.prototype, "borderBlingColor", void 0);
|
|
461
|
+
__decorate([
|
|
462
|
+
Property('边框粗细', {
|
|
463
|
+
ui: { widget: 'myRange', min: 0, max: 40, step: 1 },
|
|
464
|
+
}),
|
|
465
|
+
__metadata("design:type", Object)
|
|
466
|
+
], ShufflingListComponent.prototype, "borderSize", void 0);
|
|
467
|
+
__decorate([
|
|
468
|
+
Property('点击触发方式', {
|
|
469
|
+
enum: [
|
|
470
|
+
{ label: '行', value: 'row' },
|
|
471
|
+
{ label: '单元格', value: 'cell' },
|
|
472
|
+
],
|
|
473
|
+
}),
|
|
474
|
+
__metadata("design:type", Object)
|
|
475
|
+
], ShufflingListComponent.prototype, "clickTarget", void 0);
|
|
476
|
+
__decorate([
|
|
477
|
+
Property('表头设置', {
|
|
478
|
+
type: 'array',
|
|
479
|
+
maxItems: 99,
|
|
480
|
+
items: {
|
|
481
|
+
type: 'object',
|
|
482
|
+
properties: {
|
|
483
|
+
key: {
|
|
484
|
+
type: 'string',
|
|
485
|
+
title: 'key',
|
|
486
|
+
},
|
|
487
|
+
width: {
|
|
488
|
+
type: 'number',
|
|
489
|
+
title: '宽度',
|
|
490
|
+
},
|
|
491
|
+
align: {
|
|
492
|
+
type: 'string',
|
|
493
|
+
ui: { widget: 'select' },
|
|
494
|
+
enum: [
|
|
495
|
+
{ label: '居左', value: 'left' },
|
|
496
|
+
{ label: '居中', value: 'center' },
|
|
497
|
+
{ label: '居右', value: 'right' },
|
|
498
|
+
],
|
|
499
|
+
},
|
|
500
|
+
show: {
|
|
501
|
+
type: 'boolean',
|
|
502
|
+
title: '是否显示',
|
|
503
|
+
default: true,
|
|
504
|
+
},
|
|
505
|
+
clickable: {
|
|
506
|
+
type: 'boolean',
|
|
507
|
+
title: '是否可点击',
|
|
508
|
+
ui: { visibleIf: { '/clickTarget': ['cell'] } },
|
|
509
|
+
},
|
|
510
|
+
},
|
|
511
|
+
required: [],
|
|
512
|
+
},
|
|
513
|
+
ui: { grid: { arraySpan: 24 }, spanControl: 24 },
|
|
514
|
+
}),
|
|
515
|
+
__metadata("design:type", Object)
|
|
516
|
+
], ShufflingListComponent.prototype, "titleStyle", void 0);
|
|
517
|
+
__decorate([
|
|
518
|
+
Property('发光程度', { ui: { widget: 'myRange', min: 1, max: 10, step: 1 } }),
|
|
519
|
+
__metadata("design:type", Object)
|
|
520
|
+
], ShufflingListComponent.prototype, "blingNum", void 0);
|
|
521
|
+
__decorate([
|
|
522
|
+
Property('奇行背景', {
|
|
523
|
+
ui: {
|
|
524
|
+
widget: 'myColor',
|
|
525
|
+
example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],
|
|
526
|
+
},
|
|
527
|
+
}),
|
|
528
|
+
__metadata("design:type", Object)
|
|
529
|
+
], ShufflingListComponent.prototype, "oddBackground", void 0);
|
|
530
|
+
__decorate([
|
|
531
|
+
Property('偶行背景', {
|
|
532
|
+
ui: {
|
|
533
|
+
widget: 'myColor',
|
|
534
|
+
example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],
|
|
535
|
+
},
|
|
536
|
+
}),
|
|
537
|
+
__metadata("design:type", Object)
|
|
538
|
+
], ShufflingListComponent.prototype, "evenBackground", void 0);
|
|
539
|
+
__decorate([
|
|
540
|
+
Property('内容字体', { ui: { widget: 'myFont' } }),
|
|
541
|
+
__metadata("design:type", Object)
|
|
542
|
+
], ShufflingListComponent.prototype, "contentFont", void 0);
|
|
543
|
+
__decorate([
|
|
544
|
+
Property('字体发光', { type: 'boolean' }),
|
|
545
|
+
__metadata("design:type", Object)
|
|
546
|
+
], ShufflingListComponent.prototype, "contentFontBling", void 0);
|
|
547
|
+
__decorate([
|
|
548
|
+
Property('发光颜色', {
|
|
549
|
+
ui: {
|
|
550
|
+
widget: 'myColor',
|
|
551
|
+
example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],
|
|
552
|
+
},
|
|
553
|
+
}),
|
|
554
|
+
__metadata("design:type", Object)
|
|
555
|
+
], ShufflingListComponent.prototype, "contentBlingColor", void 0);
|
|
556
|
+
__decorate([
|
|
557
|
+
Property('发光程度', { ui: { widget: 'myRange', min: 1, max: 10, step: 1 } }),
|
|
558
|
+
__metadata("design:type", Object)
|
|
559
|
+
], ShufflingListComponent.prototype, "contentBlingNum", void 0);
|
|
560
|
+
__decorate([
|
|
561
|
+
Property('左内边距', { ui: { widget: 'myRange', min: 1, max: 100, step: 1 } }),
|
|
562
|
+
__metadata("design:type", Object)
|
|
563
|
+
], ShufflingListComponent.prototype, "paddingLeft", void 0);
|
|
564
|
+
__decorate([
|
|
565
|
+
Property('右内边距', { ui: { widget: 'myRange', min: 1, max: 100, step: 1 } }),
|
|
566
|
+
__metadata("design:type", Object)
|
|
567
|
+
], ShufflingListComponent.prototype, "paddingRight", void 0);
|
|
568
|
+
__decorate([
|
|
569
|
+
Data({}),
|
|
570
|
+
__metadata("design:type", Object)
|
|
571
|
+
], ShufflingListComponent.prototype, "data", void 0);
|
|
572
|
+
__decorate([
|
|
573
|
+
DataSchema('data'),
|
|
574
|
+
__metadata("design:type", Object)
|
|
575
|
+
], ShufflingListComponent.prototype, "schema", void 0);
|
|
576
|
+
__decorate([
|
|
577
|
+
DataOutput('行数据'),
|
|
578
|
+
__metadata("design:type", Object)
|
|
579
|
+
], ShufflingListComponent.prototype, "dateChange", void 0);
|
|
580
|
+
__decorate([
|
|
581
|
+
DataOutput('单元格'),
|
|
582
|
+
__metadata("design:type", Object)
|
|
583
|
+
], ShufflingListComponent.prototype, "cellClick", void 0);
|
|
584
|
+
__decorate([
|
|
585
|
+
DataOutput('列'),
|
|
586
|
+
__metadata("design:type", Object)
|
|
587
|
+
], ShufflingListComponent.prototype, "columnClick", void 0);
|
|
588
|
+
__decorate([
|
|
589
|
+
DataOutput('翻页'),
|
|
590
|
+
__metadata("design:type", Object)
|
|
591
|
+
], ShufflingListComponent.prototype, "pageChange", void 0);
|
|
592
|
+
ShufflingListComponent = __decorate([
|
|
593
|
+
Widget('滚动表格', { group: 'table', icon: 'icontubiao', image: '/assets/img/screen/shuffling.png' }),
|
|
594
|
+
__metadata("design:paramtypes", [ElementRef,
|
|
595
|
+
ChangeDetectorRef,
|
|
596
|
+
WidgetRef,
|
|
597
|
+
Renderer2])
|
|
598
|
+
], ShufflingListComponent);
|
|
599
|
+
export { ShufflingListComponent };
|
|
600
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2h1ZmZsaW5nLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWVuLXdpZGdldC9zcmMvbGliL3NodWZmbGluZy1saXN0L3NodWZmbGluZy1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBSVYsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixpQkFBaUIsRUFHakIsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUcxRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7SUFTNUMsc0JBQXNCLFNBQXRCLHNCQUFzQjtJQWtPakMsWUFDVSxHQUFlLEVBQ2YsRUFBcUIsRUFDckIsU0FBb0IsRUFDcEIsUUFBbUI7UUFIbkIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXBPN0IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUdoQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRWhCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFFVCx3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFM0IsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFPbkIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFcEIsYUFBUSxHQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxF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QUFFLEVBQUUsQ0FBQzs7K0RBQ3REO0FBRXBCO0lBREMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDOzsyREFDM0Q7QUFFaEI7SUFEQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7OzREQUMxRDtBQUVqQjtJQURDLElBQUksQ0FBQyxFQUFFLENBQUM7O29EQTBDUDtBQUVGO0lBREMsVUFBVSxDQUFDLE1BQU0sQ0FBQzs7c0RBQ0Y7QUFLakI7SUFEQyxVQUFVLENBQUMsS0FBSyxDQUFDOzswREFDbUI7QUFFckM7SUFEQyxVQUFVLENBQUMsS0FBSyxDQUFDOzt5REFDa0I7QUFFcEM7SUFEQyxVQUFVLENBQUMsR0FBRyxDQUFDOzsyREFDc0I7QUFZdEM7SUFEQyxVQUFVLENBQUMsSUFBSSxDQUFDOzswREFDb0I7QUE1TjFCLHNCQUFzQjtJQURsQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxDQUFDO3FDQW9PakYsVUFBVTtRQUNYLGlCQUFpQjtRQUNWLFNBQVM7UUFDVixTQUFTO0dBdE9sQixzQkFBc0IsQ0EyZmxDO1NBM2ZZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBWaWV3Q2hpbGQsXG4gIEhvc3RCaW5kaW5nLFxuICBSZW5kZXJlcjIsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaWRnZXQsIERhdGEsIFByb3BlcnR5LCBEYXRhU2NoZW1hLCBEYXRhT3V0cHV0LCBXaWRnZXRSZWYsIEN1c3RvbUV4cG9ydCB9IGZyb20gJ2Jiai13aWRnZXQtYmFzZSc7XG5pbXBvcnQgeyBTRkFycmF5V2lkZ2V0U2NoZW1hLCBTRlNjaGVtYSB9IGZyb20gJ0BkZWxvbi9mb3JtJztcbmltcG9ydCB7IGRlZXBDb3B5IH0gZnJvbSAnQGRlbG9uL3V0aWwnO1xuaW1wb3J0IHsgZ2V0Rm9udFN0eWxlIH0gZnJvbSAnLi4vc2hhcmVkL3V0aWwvc3R5bGUudXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NjLXNodWZmbGluZy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NodWZmbGluZy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0eWxlVXJsczogWycuL3NodWZmbGluZy1saXN0LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuQFdpZGdldCgn5rua5Yqo6KGo5qC8JywgeyBncm91cDogJ3RhYmxlJywgaWNvbjogJ2ljb250dWJpYW8nLCBpbWFnZTogJy9hc3NldHMvaW1nL3NjcmVlbi9zaHVmZmxpbmcucG5nJyB9KVxuZXhwb3J0IGNsYXNzIFNodWZmbGluZ0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDdXN0b21FeHBvcnQge1xuICBAUHJvcGVydHkoJ+i9ruaSrScsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXG4gIGNhcm91c2VsID0gdHJ1ZTtcbiAgX2Nhcm91c2VsOiBib29sZWFuO1xuICBAUHJvcGVydHkoJ+iHquWKqOaNouihjCcsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXG4gIGxpbmVXcmFwID0gdHJ1ZTtcbiAgQFByb3BlcnR5KCfova7mkq3pl7TpmpQnLCB7IHVpOiB7IHdpZGdldDogJ215UmFuZ2UnLCBtaW46IDEsIG1heDogMjAsIHN0ZXA6IDEgfSB9KVxuICB0aW1lID0gMTtcbiAgQFByb3BlcnR5KCfluo/liJflj7fmmL7npLonLCB7IHR5cGU6ICdib29sZWFuJyB9KVxuICBzZXJpYWxOdW1iZXJEaXNwbGF5ID0gdHJ1ZTtcbiAgQFByb3BlcnR5KCfooajlpLTmmL7npLonLCB7IHR5cGU6ICdib29sZWFuJyB9KVxuICBoZWFkRGlzcGxheSA9IHRydWU7XG4gIEBQcm9wZXJ0eSgn6KGo5aS06IOM5pmvJywge1xuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdteUNvbG9yJyxcbiAgICAgIGV4YW1wbGU6IFsnI0QwMDIxQicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsICcjZmZmZmZmJ10sXG4gICAgfSxcbiAgfSlcbiAgaGVhZEJhY2tncm91bmQgPSAnJztcbiAgQFByb3BlcnR5KCfooajlpLTlrZfkvZMnLCB7IHVpOiB7IHdpZGdldDogJ215Rm9udCcgfSB9KVxuICBoZWFkRm9udDogYW55ID0geyBmYW1pbHk6ICcnLCBjb2xvcjogJyNmZmZmZmYnLCB3ZWlnaHQ6ICdub3JtYWwnLCBzaXplOiAyMCwgc3BhY2U6IDAsIGxpbmVIZWlnaHQ6IDQwIH07XG4gIEBQcm9wZXJ0eSgn5a2X5L2T5Y+R5YWJJywgeyB0eXBlOiAnYm9vbGVhbicgfSlcbiAgZm9udEJsaW5nID0gZmFsc2U7XG4gIEBQcm9wZXJ0eSgn5a2X5q616aKc6ImyJywge1xuICAgIHR5cGU6ICdhcnJheScsXG4gICAgbWF4SXRlbXM6IDk5LFxuICAgIGl0ZW1zOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAga2V5OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgdGl0bGU6ICflrZfmrrUnLFxuICAgICAgICB9LFxuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIHRpdGxlOiAn5YC8JyxcbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB0aXRsZTogJ+minOiJsicsXG4gICAgICAgICAgdWk6IHtcbiAgICAgICAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVxdWlyZWQ6IFtdLFxuICAgIH0sXG4gICAgdWk6IHsgZ3JpZDogeyBhcnJheVNwYW46IDI0IH0sIHNwYW5Db250cm9sOiAyNCB9IGFzIFNGQXJyYXlXaWRnZXRTY2hlbWEsXG4gIH0pXG4gIGJpbmRDb2xvciA9IFtdO1xuICBAUHJvcGVydHkoJ+WPkeWFieminOiJsicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCAnI2ZmZmZmZiddLFxuICAgIH0sXG4gIH0pXG4gIGJsaW5nQ29sb3IgPSAnJztcbiAgQFByb3BlcnR5KCfovrnmoYbpopzoibInLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjRDAwMjFCJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgJyNmZmZmZmYnXSxcbiAgICB9LFxuICB9KVxuICBib3JkZXJDb2xvciA9ICcnO1xuICBAUHJvcGVydHkoJ+i+ueahhuWPkeWFiScsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCAnI2ZmZmZmZiddLFxuICAgIH0sXG4gIH0pXG4gIGJvcmRlckJsaW5nQ29sb3IgPSAnJztcbiAgQFByb3BlcnR5KCfovrnmoYbnspfnu4YnLCB7XG4gICAgdWk6IHsgd2lkZ2V0OiAnbXlSYW5nZScsIG1pbjogMCwgbWF4OiA0MCwgc3RlcDogMSB9LFxuICB9KVxuICBib3JkZXJTaXplID0gMDtcblxuICBAUHJvcGVydHkoJ+eCueWHu+inpuWPkeaWueW8jycsIHtcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn6KGMJywgdmFsdWU6ICdyb3cnIH0sXG4gICAgICB7IGxhYmVsOiAn5Y2V5YWD5qC8JywgdmFsdWU6ICdjZWxsJyB9LFxuICAgIF0sXG4gIH0pXG4gIGNsaWNrVGFyZ2V0ID0gJ3Jvdyc7XG4gIEBQcm9wZXJ0eSgn6KGo5aS06K6+572uJywge1xuICAgIHR5cGU6ICdhcnJheScsXG4gICAgbWF4SXRlbXM6IDk5LFxuICAgIGl0ZW1zOiB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAga2V5OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgdGl0bGU6ICdrZXknLFxuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgIHRpdGxlOiAn5a695bqmJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWxpZ246IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB1aTogeyB3aWRnZXQ6ICdzZWxlY3QnIH0sXG4gICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgeyBsYWJlbDogJ+WxheW3picsIHZhbHVlOiAnbGVmdCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICflsYXkuK0nLCB2YWx1ZTogJ2NlbnRlcicgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICflsYXlj7MnLCB2YWx1ZTogJ3JpZ2h0JyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHNob3c6IHtcbiAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgdGl0bGU6ICfmmK/lkKbmmL7npLonLFxuICAgICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsaWNrYWJsZToge1xuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICB0aXRsZTogJ+aYr+WQpuWPr+eCueWHuycsXG4gICAgICAgICAgdWk6IHsgdmlzaWJsZUlmOiB7ICcvY2xpY2tUYXJnZXQnOiBbJ2NlbGwnXSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVxdWlyZWQ6IFtdLFxuICAgIH0sXG4gICAgdWk6IHsgZ3JpZDogeyBhcnJheVNwYW46IDI0IH0sIHNwYW5Db250cm9sOiAyNCB9IGFzIFNGQXJyYXlXaWRnZXRTY2hlbWEsXG4gIH0pXG4gIHRpdGxlU3R5bGUgPSBbXTtcbiAgQFByb3BlcnR5KCflj5HlhYnnqIvluqYnLCB7IHVpOiB7IHdpZGdldDogJ215UmFuZ2UnLCBtaW46IDEsIG1heDogMTAsIHN0ZXA6IDEgfSB9KVxuICBibGluZ051bSA9IDM7XG4gIEBQcm9wZXJ0eSgn5aWH6KGM6IOM5pmvJywge1xuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdteUNvbG9yJyxcbiAgICAgIGV4YW1wbGU6IFsnI0QwMDIxQicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsICcjZmZmZmZmJ10sXG4gICAgfSxcbiAgfSlcbiAgb2RkQmFja2dyb3VuZCA9ICcnO1xuICBAUHJvcGVydHkoJ+WBtuihjOiDjOaZrycsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCAnI2ZmZmZmZiddLFxuICAgIH0sXG4gIH0pXG4gIGV2ZW5CYWNrZ3JvdW5kID0gJyc7XG4gIEBQcm9wZXJ0eSgn5YaF5a655a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcbiAgY29udGVudEZvbnQ6IGFueSA9IHsgZmFtaWx5OiAnJywgY29sb3I6ICcjZmZmZmZmJywgd2VpZ2h0OiAnbm9ybWFsJywgc2l6ZTogMTIsIHNwYWNlOiAwLCBsaW5lSGVpZ2h0OiA0MCB9O1xuICBAUHJvcGVydHkoJ+Wtl+S9k+WPkeWFiScsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXG4gIGNvbnRlbnRGb250QmxpbmcgPSBmYWxzZTtcbiAgQFByb3BlcnR5KCflj5HlhYnpopzoibInLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjRDAwMjFCJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgJyNmZmZmZmYnXSxcbiAgICB9LFxuICB9KVxuICBjb250ZW50QmxpbmdDb2xvciA9ICcnO1xuICBAUHJvcGVydHkoJ+WPkeWFieeoi+W6picsIHsgdWk6IHsgd2lkZ2V0OiAnbXlSYW5nZScsIG1pbjogMSwgbWF4OiAxMCwgc3RlcDogMSB9IH0pXG4gIGNvbnRlbnRCbGluZ051bSA9IDM7XG4gIEBQcm9wZXJ0eSgn5bem5YaF6L656LedJywgeyB1aTogeyB3aWRnZXQ6ICdteVJhbmdlJywgbWluOiAxLCBtYXg6IDEwMCwgc3RlcDogMSB9IH0pXG4gIHBhZGRpbmdMZWZ0ID0gMDtcbiAgQFByb3BlcnR5KCflj7PlhoXovrnot50nLCB7IHVpOiB7IHdpZGdldDogJ215UmFuZ2UnLCBtaW46IDEsIG1heDogMTAwLCBzdGVwOiAxIH0gfSlcbiAgcGFkZGluZ1JpZ2h0ID0gMDtcbiAgQERhdGEoe30pXG4gIGRhdGE6IGFueSA9IFtcbiAgICB7XG4gICAgICDlnLDljLo6ICfmuKnlt54nLFxuICAgICAg5rWB6YePOiAnMTIzJyxcbiAgICAgIOihjOS4ujogJ3h4eHgnLFxuICAgIH0sXG4gICAge1xuICAgICAg5Zyw5Yy6OiAn5p2t5beeJyxcbiAgICAgIOa1gemHjzogJzEyMzUnLFxuICAgICAg6KGM5Li6OiAneHh4eCcsXG4gICAgfSxcbiAgICB7XG4gICAgICDlnLDljLo6ICfkuIrmtbcnLFxuICAgICAg5rWB6YePOiAnMTIzNCcsXG4gICAgICDooYzkuLo6ICd4eHh4JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIOWcsOWMujogJ+WMl+S6rCcsXG4gICAgICDmtYHph486ICcxMjM2NycsXG4gICAgICDooYzkuLo6ICd4eHh4JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIOWcsOWMujogJ+a4qeW3njEnLFxuICAgICAg5rWB6YePOiAnMTIzODM1JyxcbiAgICAgIOihjOS4ujogJ3h4eHgnLFxuICAgIH0sXG4gICAge1xuICAgICAg5Zyw5Yy6OiAn5rip5beeMicsXG4gICAgICDmtYHph486ICcxMjM4MzUnLFxuICAgICAg6KGM5Li6OiAneHh4eCcsXG4gICAgfSxcbiAgICB7XG4gICAgICDlnLDljLo6ICfmuKnlt54zJyxcbiAgICAgIOa1gemHjzogJzEyMzgzNScsXG4gICAgICDooYzkuLo6ICd4eHh4JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIOWcsOWMujogJ+a4qeW3njQnLFxuICAgICAg5rWB6YePOiAnMTIzODM1JyxcbiAgICAgIOihjOS4ujogJ3h4eHgnLFxuICAgIH0sXG4gIF07XG4gIEBEYXRhU2NoZW1hKCdkYXRhJylcbiAgc2NoZW1hOiBTRlNjaGVtYTtcbiAgdGFibGVTdHlsZTogYW55ID0ge307XG5cbiAgYW5pbWF0aW9uRGVsYXkgPSAwO1xuICBARGF0YU91dHB1dCgn6KGM5pWw5o2uJylcbiAgZGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBARGF0YU91dHB1dCgn5Y2V5YWD5qC8JylcbiAgY2VsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBEYXRhT3V0cHV0KCfliJcnKVxuICBjb2x1bW5DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBjb2x1bW5zOiBhbnlbXTtcbiAgaGVhZFN0eWxlOiBhbnkgPSB7fTtcbiAgYm9keVN0eWxlOiBhbnkgPSB7fTtcbiAgcm93U3R5bGU6IGFueSA9IHt9O1xuICBjb250ZW50OiBhbnlbXTtcbiAgcGxhY2Vob2xkZXI6IGFueTtcbiAgcGFnZWQ6IGJvb2xlYW47XG4gIHRvdGFsOiBudW1iZXI7XG4gIHJ1bnRpbWU6IG51bWJlcjsgLy/lt7Lmu5rliqjml7bpl7RcbiAgbGFzdFRpbWU6IG51bWJlcjsgLy/kuIrkuIDmrKHorqHml7bml7bpl7RcbiAgQERhdGFPdXRwdXQoJ+e/u+mhtScpXG4gIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgbmV4dFBhZ2VUaW1lb3V0OiBhbnk7XG4gIHBhcmVudEhlaWdodDogbnVtYmVyO1xuICBoZWFkZXJIZWlnaHQ6IGFueTtcbiAgcm93SGVpZ2h0OiBhbnk7XG4gIHBhdXNlZDogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGU6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB3aWRnZXRSZWY6IFdpZGdldFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge31cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3Qgd2lkZ2V0OiBhbnkgPSB0aGlzLndpZGdldFJlZi53aWRnZXQgYXMgYW55O1xuICAgIGlmICh0aGlzLmNsaWNrVGFyZ2V0ICE9PSAnY2VsbCcgJiYgKHdpZGdldC5saW5rPy5lbmFibGVkIHx8IHdpZGdldC5vdXRwdXRzPy5lbmFibGVkKSkge1xuICAgICAgdGhpcy50YWJsZVN0eWxlLmN1cnNvciA9ICdwb2ludGVyJztcbiAgICB9XG4gICAgdGhpcy5oZWFkU3R5bGUgPSBnZXRGb250U3R5bGUodGhpcy5oZWFkRm9udCk7XG4gICAgdGhpcy5oZWFkU3R5bGUuYmFja2dyb3VuZENvbG9yID0gdGhpcy5oZWFkQmFja2dyb3VuZDtcbiAgICBpZiAodGhpcy5wYWRkaW5nTGVmdCkge1xuICAgICAgdGhpcy5oZWFkU3R5bGUucGFkZGluZ0xlZnQgPSB0aGlzLnJvd1N0eWxlLnBhZGRpbmdMZWZ0ID0gdGhpcy5wYWRkaW5nTGVmdCArICdweCc7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhZGRpbmdSaWdodCkge1xuICAgICAgdGhpcy5oZWFkU3R5bGUucGFkZGluZ1JpZ2h0ID0gdGhpcy5yb3dTdHlsZS5wYWRkaW5nUmlnaHQgPSB0aGlzLnBhZGRpbmdSaWdodCArICdweCc7XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnRhYmxlU3R5bGUsIGdldEZvbnRTdHlsZSh0aGlzLmNvbnRlbnRGb250KSk7XG5cbiAgICBpZiAodGhpcy5ib3JkZXJTaXplICYmIHRoaXMuYm9yZGVyQ29sb3IpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZS5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgYm9yZGVyID0gYCR7dGhpcy5ib3JkZXJTaXplfXB4IHNvbGlkICR7dGhpcy5ib3JkZXJDb2xvciB8fCAnI2ZmZid9YDtcbiAgICAgIHRoaXMucm93U3R5bGUuYm9yZGVyQm90dG9tID0gdGhpcy5oZWFkU3R5bGUuYm9yZGVyQm90dG9tID0gYm9yZGVyO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnYm9yZGVyJywgYm9yZGVyKTtcbiAgICAgIGlmICh0aGlzLmJvcmRlckJsaW5nQ29sb3IpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gYGRyb3Atc2hhZG93KDAgMCA4cHggJHt0aGlzLmJvcmRlckJsaW5nQ29sb3J9KWA7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgJ2ZpbHRlcicsIGZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9udEJsaW5nKSB7XG4gICAgICAvLyDlj5HlhYlcbiAgICAgIGxldCBjb2xvciA9IHRoaXMuYmxpbmdDb2xvciB8fCB0aGlzLmhlYWRGb250LmNvbG9yIHx8ICcjZmZmZmZmJztcbiAgICAgIGxldCBudW0gPSB0aGlzLmJsaW5nTnVtIHx8IDM7XG4gICAgICB0aGlzLmhlYWRTdHlsZS50ZXh0U2hhZG93ID0gdGhpcy5nZXRCbGluZ1N0eWxlKGNvbG9yLCBudW0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb250ZW50Rm9udEJsaW5nKSB7XG4gICAgICAvLyDlj5HlhYlcbiAgICAgIGxldCBjb2xvciA9IHRoaXMuY29udGVudEJsaW5nQ29sb3IgfHwgdGhpcy5jb250ZW50Rm9udC5jb2xvciB8fCAnI2ZmZmZmZic7XG4gICAgICBsZXQgbnVtID0gdGhpcy5ibGluZ051bSB8fCAzO1xuICAgICAgdGhpcy50YWJsZVN0eWxlLnRleHRTaGFkb3cgPSB0aGlzLmdldEJsaW5nU3R5bGUoY29sb3IsIG51bSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbmVXcmFwKSB7XG4gICAgICB0aGlzLnRhYmxlU3R5bGUud29yZEJyZWFrID0gJ2JyZWFrLWFsbCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFibGVTdHlsZS53aGl0ZVNwYWNlID0gJ25vd3JhcCc7XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKChjaGFuZ2VzLmRhdGEgfHwgY2hhbmdlcy5zY2hlbWEpICYmIHRoaXMuZGF0YSkge1xuICAgICAgaWYgKHRoaXMuZGF0YS50b3RhbEVsZW1lbnRzICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5wYWdlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5kYXRhLm51bWJlciAqIHRoaXMuZGF0YS5zaXplO1xuICAgICAgICBpZiAodGhpcy5jb250ZW50ID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmNvbnRlbnQgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb250ZW50Lmxlbmd0aCA+IHN0YXJ0KSB7XG4gICAgICAgICAgdGhpcy5jb250ZW50LnNwbGljZShzdGFydCwgdGhpcy5jb250ZW50Lmxlbmd0aCAtIHN0YXJ0KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbnRlbnQubGVuZ3RoIDwgc3RhcnQpIHtcbiAgICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChNYXRoLmNlaWwodGhpcy5jb250ZW50Lmxlbmd0aCAvIHRoaXMuZGF0YS5zaXplKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGVudC5wdXNoKC4uLnRoaXMuZGF0YS5jb250ZW50KTtcbiAgICAgICAgdGhpcy50b3RhbCA9IHRoaXMuZGF0YS50b3RhbEVsZW1lbnRzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYWdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE7XG4gICAgICAgIHRoaXMudG90YWwgPSB0aGlzLmRhdGEubGVuZ3RoO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLnBhZ2VkIHx8IHRoaXMuZGF0YS5udW1iZXIgPT09IDApIHtcbiAgICAgICAgdGhpcy51cGRhdGVDb2x1bW5zKCk7XG4gICAgICB9XG4gICAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICB0aGlzLnBhcmVudEhlaWdodCA9IE51bWJlcihlbGVtZW50LnBhcmVudEVsZW1lbnQuc3R5bGUuaGVpZ2h0LnJlcGxhY2UoJ3B4JywgJycpKTtcbiAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gdGhpcy5oZWFkRm9udC5saW5lSGVpZ2h0IHx8IDQwO1xuICAgICAgdGhpcy5yb3dIZWlnaHQgPSB0aGlzLmNvbnRlbnRGb250LmxpbkhlaWdodCB8fCA0MDtcbiAgICAgIGlmICh0aGlzLmJvcmRlclNpemUgJiYgdGhpcy5ib3JkZXJDb2xvcikge1xuICAgICAgICB0aGlzLmhlYWRlckhlaWdodCArPSB0aGlzLmJvcmRlclNpemU7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0ICs9IHRoaXMuYm9yZGVyU2l6ZTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5oZWFkRGlzcGxheSkge1xuICAgICAgICB0aGlzLmhlYWRlckhlaWdodCA9IDA7XG4gICAgICB9XG4gICAgICBjb25zdCBjYXJvdXNlbCA9IHRoaXMuY2Fyb3VzZWwgJiYgdGhpcy50b3RhbCAqIHRoaXMucm93SGVpZ2h0ICsgdGhpcy5oZWFkZXJIZWlnaHQgPiB0aGlzLnBhcmVudEhlaWdodDtcbiAgICAgIGlmICghdGhpcy5fY2Fyb3VzZWwgJiYgY2Fyb3VzZWwpIHtcbiAgICAgICAgdGhpcy5ydW50aW1lID0gMDtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2Nhcm91c2VsID0gY2Fyb3VzZWw7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gbnVsbDtcbiAgICAgIGlmICh0aGlzLl9jYXJvdXNlbCkge1xuICAgICAgICBjb25zdCB0aW1lID0gdGhpcy50b3RhbCAqIHRoaXMudGltZTtcbiAgICAgICAgdGhpcy50YWJsZVN0eWxlLmFuaW1hdGlvbiA9ICdjYXJvdXNlbCAnICsgdGltZSArICdzIGxpbmVhciBpbmZpbml0ZSc7XG4gICAgICAgIGlmICh0aGlzLnBhZ2VkICYmIHRoaXMudG90YWwgPiB0aGlzLmNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucm93SGVpZ2h0ICogKHRoaXMudG90YWwgLSB0aGlzLmNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVSdW50aW1lKCk7XG4gICAgICAgICAgdGhpcy5sb2FkTmV4dFBhZ2UoKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50YWJsZVN0eWxlLmFuaW1hdGlvbiA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BMb2FkTmV4dCgpO1xuICB9XG5cbiAgZ2V0QmxpbmdTdHlsZShjb2xvcjogc3RyaW5nLCBudW06IG51bWJlcikge1xuICAgIGxldCBzdHIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bTsgaSsrKSB7XG4gICAgICBzdHIgKz0gJzAgMCAyMHB4ICcgKyBjb2xvciArICcsJztcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgc3RyLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIOabtOaWsOW3sua7muWKqOaXtumXtFxuICAgKi9cbiAgdXBkYXRlUnVudGltZSgpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBpZiAodGhpcy5sYXN0VGltZSkge1xuICAgICAgdGhpcy5ydW50aW1lICs9IG5vdyAtIHRoaXMubGFzdFRpbWU7XG4gICAgfVxuICAgIHRoaXMubGFzdFRpbWUgPSBub3c7XG4gIH1cblxuICBzdG9wTG9hZE5leHQoKSB7XG4gICAgaWYgKHRoaXMubmV4dFBhZ2VUaW1lb3V0ICE9IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm5leHRQYWdlVGltZW91dCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0TmV4dExvYWRUaW1lKCkge1xuICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSB0aGlzLmhlYWRlckhlaWdodCArIHRoaXMucm93SGVpZ2h0ICogdGhpcy5jb250ZW50Lmxlbmd0aDsgLy8g5bey5Yqg6L295YaF5a6555qE6auY5bqmXG4gICAgbGV0IG5leHRMb2FkVGltZSA9XG4gICAgICAoKGNvbnRlbnRIZWlnaHQgLSB0aGlzLnBhcmVudEhlaWdodCkgLyB0aGlzLnJvd0hlaWdodCkgKiB0aGlzLnRpbWUgKiAxMDAwIC0gdGhpcy5ydW50aW1lICsgdGhpcy5hbmltYXRpb25EZWxheTtcbiAgICByZXR1cm4gbmV4dExvYWRUaW1lO1xuICB9XG5cbiAgbG9hZE5leHRQYWdlKCkge1xuICAgIHRoaXMuc3RvcExvYWROZXh0KCk7XG4gICAgaWYgKHRoaXMucGFnZWQgJiYgdGhpcy50b3RhbCA+IHRoaXMuY29udGVudC5sZW5ndGgpIHtcbiAgICAgIGxldCBuZXh0TG9hZFRpbWUgPSB0aGlzLmdldE5leHRMb2FkVGltZSgpO1xuICAgICAgaWYgKG5leHRMb2FkVGltZSA8IDApIHtcbiAgICAgICAgbmV4dExvYWRUaW1lID0gMDtcbiAgICAgIH1cbiAgICAgIHRoaXMubmV4dFBhZ2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5uZXh0KHRoaXMuZGF0YS5udW1iZXIgKyAxKTtcbiAgICAgIH0sIG5leHRMb2FkVGltZSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQ29sdW1ucygpIHtcbiAgICB0aGlzLmNvbHVtbnMgPSBbXTtcbiAgICBsZXQga2V5czogc3RyaW5nW107XG4gICAgaWYgKHRoaXMuc2NoZW1hICYmIHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgIGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGVudCAmJiB0aGlzLmNvbnRlbnRbMF0pIHtcbiAgICAgIGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmNvbnRlbnRbMF0pO1xuICAgIH1cbiAgICBjb25zdCB0aXRsZVN0eWxlTWFwID0ge307XG4gICAgaWYgKHRoaXMudGl0bGVTdHlsZSAmJiB0aGlzLnRpdGxlU3R5bGUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50aXRsZVN0eWxlLmZvckVhY2goKHRpdGxlU3R5bGUpID0+IHtcbiAgICAgICAgaWYgKHRpdGxlU3R5bGUua2V5KSB7XG4gICAgICAgICAgdGl0bGVTdHlsZU1hcFt0aXRsZVN0eWxlLmtleV0gPSB0aXRsZVN0eWxlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGtleXMpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgbGV0IHRpdGxlID0ga2V5O1xuICAgICAgICBpZiAodGhpcy5zY2hlbWEgJiYgdGhpcy5zY2hlbWEucHJvcGVydGllcykge1xuICAgICAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5zY2hlbWEucHJvcGVydGllc1trZXldO1xuICAgICAgICAgIGlmIChwcm9wZXJ0eSAmJiBwcm9wZXJ0eS50aXRsZSkge1xuICAgICAgICAgICAgdGl0bGUgPSBwcm9wZXJ0eS50aXRsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGVhZFN0eWxlOiBhbnkgPSB7fTtcbiAgICAgICAgY29uc3QgY2VsbFN0eWxlOiBhbnkgPSB7fTtcbiAgICAgICAgY29uc3QgY29sdW1uOiBhbnkgPSB7IGluZGV4OiBrZXksIHRpdGxlLCBoZWFkU3R5bGUsIGNlbGxTdHlsZSB9O1xuICAgICAgICBjb25zdCB0aXRsZVN0eWxlID0gdGl0bGVTdHlsZU1hcFtrZXldO1xuICAgICAgICBpZiAodGhpcy50aXRsZVN0eWxlLmxlbmd0aCAmJiAodGl0bGVTdHlsZSA9PSBudWxsIHx8ICF0aXRsZVN0eWxlLnNob3cpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHdpZHRoOiBudW1iZXI7XG4gICAgICAgIGlmICh0aXRsZVN0eWxlKSB7XG4gICAgICAgICAgd2lkdGggPSB0aXRsZVN0eWxlLndpZHRoO1xuICAgICAgICAgIGlmICh0aXRsZVN0eWxlLmFsaWduKSB7XG4gICAgICAgICAgICBjZWxsU3R5bGUudGV4dEFsaWduID0gdGl0bGVTdHlsZS5hbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuY2xpY2tUYXJnZXQgPT09ICdjZWxsJyAmJiB0aXRsZVN0eWxlLmNsaWNrYWJsZSkge1xuICAgICAgICAgICAgY29sdW1uLmNsaWNrYWJsZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh3aWR0aCkge1xuICAgICAgICAgIGhlYWRTdHlsZS53aWR0aCA9IGNlbGxTdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoZWFkU3R5bGUuZmxleCA9IGNlbGxTdHlsZS5mbGV4ID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29sdW1ucy5wdXNoKGNvbHVtbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25DbGljayh2YWx1ZSkge1xuICAgIGlmICh0aGlzLmNsaWNrVGFyZ2V0ICE9PSAnY2VsbCcpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgbW91c2VvdmVyKCkge1xuICAgIC8vIHRoaXMuX2Nhcm91c2VsPWZhbHNlO1xuICAgIGlmICh0aGlzLl9jYXJvdXNlbCkge1xuICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgICAgdGhpcy50YWJsZVN0eWxlLmFuaW1hdGlvblBsYXlTdGF0ZSA9ICdwYXVzZWQnO1xuICAgICAgdGhpcy51cGRhdGVSdW50aW1lKCk7XG4gICAgICB0aGlzLnN0b3BMb2FkTmV4dCgpO1xuICAgIH1cbiAgfVxuICBtb3VzZW91dCgpIHtcbiAgICBpZiAodGhpcy5fY2Fyb3VzZWwpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmxhc3RUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICB0aGlzLnRhYmxlU3R5bGUuYW5pbWF0aW9uUGxheVN0YXRlID0gJ3J1bm5pbmcnO1xuICAgICAgaWYgKHRoaXMucGFnZWQpIHtcbiAgICAgICAgdGhpcy5sb2FkTmV4dFBhZ2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgb25Nb3VzZXdoZWVsKGV2ZW50OiBXaGVlbEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2Nhcm91c2VsKSB7XG4gICAgICB0aGlzLmFuaW1hdGlvbkRlbGF5IC09IGV2ZW50LmRlbHRhWSAqIDI7XG4gICAgICBpZiAodGhpcy5hbmltYXRpb25EZWxheSA+IHRoaXMucnVudGltZSkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkRlbGF5ID0gdGhpcy5ydW50aW1lO1xuICAgICAgfVxuICAgICAgdGhpcy50YWJsZVN0eWxlLmFuaW1hdGlvbkRlbGF5ID0gdGhpcy5hbmltYXRpb25EZWxheSAvIDEwMDAgKyAncyc7XG4gICAgICBpZiAodGhpcy5wYWdlZCAmJiB0aGlzLnRvdGFsID4gdGhpcy5jb250ZW50Lmxlbmd0aCAmJiB0aGlzLmdldE5leHRMb2FkVGltZSgpIDwgMCkge1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh0aGlzLmRhdGEubnVtYmVyICsgMSk7XG4gICAgICB9XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgb25DZWxsQ2xpY2soY29sdW1uOiBhbnksIHJvdzogYW55LCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmNsaWNrVGFyZ2V0ICE9PSAnY2VsbCcgfHwgY29sdW1uLmNsaWNrYWJsZSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmNlbGxDbGljay5lbWl0KHJvd1tjb2x1bW4uaW5kZXhdKTtcbiAgICAgIHRoaXMuY29sdW1uQ2xpY2suZW1pdChjb2x1bW4uaW5kZXgpO1xuICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocm93KTtcbiAgICB9XG4gIH1cblxuICBleHBvcnRXb3JkKCkge1xuICAgIGxldCBodG1sID0gJzx0YWJsZT4nO1xuICAgIGlmICh0aGlzLmhlYWREaXNwbGF5KSB7XG4gICAgICBodG1sICs9ICc8dGhlYWQ+PHRyPic7XG4gICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGh0bWwgKz0gYDx0aD4ke2NvbHVtbi50aXRsZX08L3RoPmA7XG4gICAgICB9KTtcbiAgICAgIGh0bWwgKz0gJzwvdHI+PC90aGVhZD4nO1xuICAgIH1cbiAgICBodG1sICs9ICc8dGJvZHk+JztcbiAgICB0aGlzLmNvbnRlbnQuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICBodG1sICs9ICc8dHI+JztcbiAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgaHRtbCArPSBgPHRkPiR7cm93W2NvbHVtbi5pbmRleF19PC90ZD5gO1xuICAgICAgfSk7XG4gICAgICBodG1sICs9ICc8L3RyPic7XG4gICAgfSk7XG4gICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPjxici8+JztcbiAgICByZXR1cm4gaHRtbDtcbiAgfVxufVxuIl19
|