import * as Cesium from 'cesium';

export function configureCesium() {
  if (document.querySelector('#hide-cesium-viewer-bottom') === null) {
    document.head.append(
      Object.assign(document.createElement('style'), {
        id: 'hide-cesium-viewer-bottom',
        innerHTML: `
.cesium-viewer-bottom {
  display: none !important;
}
`.trim(),
        type: 'text/css',
      }),
    );
  }

  /* 时间日期格式化 */ {
    const minutes = 0 - new Date().getTimezoneOffset(); // 0 - (-480);

    // Animation 的时间日期格式化
    Cesium.AnimationViewModel.defaultDateFormatter = function (date) {
      const dataZone8 = Cesium.JulianDate.addMinutes(date, minutes, new Cesium.JulianDate());
      return Cesium.JulianDate.toIso8601(dataZone8).slice(0, 10);
    };
    Cesium.AnimationViewModel.defaultTimeFormatter = function (time) {
      const dataZone8 = Cesium.JulianDate.addMinutes(time, minutes, new Cesium.JulianDate());
      return Cesium.JulianDate.toIso8601(dataZone8).slice(11, 19);
    };

    // Timeline 的时间日期格式化
    // @ts-expect-error node_modules/@cesium/widgets/Source/Timeline/Timeline.js
    Cesium.Timeline.prototype.makeLabel = function (time) {
      const dataZone8 = Cesium.JulianDate.addMinutes(time, minutes, new Cesium.JulianDate());
      return Cesium.JulianDate.toIso8601(dataZone8).slice(0, 19);
    };
  }

  // 默认视图区域
  Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(
    75, // 西经
    10, // 南纬
    140, // 东经
    60, // 北纬
  );
}
