System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2"], function (_export, _context) {
  "use strict";

  var _reporterNs, _cclegacy, GameConst, Singleton, LogMgr, _crd;

  function _reportPossibleCrUseOfGameConst(extras) {
    _reporterNs.report("GameConst", "../Config", _context.meta, extras);
  }

  function _reportPossibleCrUseOfSingleton(extras) {
    _reporterNs.report("Singleton", "../plugin/Singleton", _context.meta, extras);
  }

  _export("default", void 0);

  return {
    setters: [function (_unresolved_) {
      _reporterNs = _unresolved_;
    }, function (_cc) {
      _cclegacy = _cc.cclegacy;
    }, function (_unresolved_2) {
      GameConst = _unresolved_2.GameConst;
    }, function (_unresolved_3) {
      Singleton = _unresolved_3.default;
    }],
    execute: function () {
      _crd = true;

      _cclegacy._RF.push({}, "8f6388wKEdMxYL+VRzQOYH+", "LogMgr", undefined);

      _export("default", LogMgr = class LogMgr extends (_crd && Singleton === void 0 ? (_reportPossibleCrUseOfSingleton({
        error: Error()
      }), Singleton) : Singleton) {
        static log(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          console.log(...arg);
        }

        static warn(...arg) {
          //console.log('-=-=:警告日志被输出，有两条算调试环境', GameConst.cocosWebDebug, GameConst.isDebug);
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          } //console.log('-=-=:警告日志被输出');


          console.warn(...arg);
        }

        static error(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          console.error(...arg);
        } //输出默认的信息日志 有[INFO]开头的蓝色日志


        static info(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          console.info(...arg);
        } //输出默认的调试日志 有[DEBUG]开头的紫色日志


        static assert(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          console.assert(...arg);
        } //以表格的形式打印对象的属性和值


        static table(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          console.table(...arg);
        } //输出默认的绿色调试日志


        static greenLog(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          console.log('%c' + arg, 'color:green');
          console.trace();
        } //输出红字黄底的调试日志


        static redLog(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          arg.forEach((item, index) => {
            if (typeof item === 'object') {
              arg[index] = JSON.stringify(item);
            }
          });
          console.log("%c" + arg.join(), "color: red; font-size: 20px; background-color: yellow;");
        }

        static traceLog(...arg) {
          if (!(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).isDebug && !(_crd && GameConst === void 0 ? (_reportPossibleCrUseOfGameConst({
            error: Error()
          }), GameConst) : GameConst).cocosWebDebug) {
            return;
          }

          console.group('traceLog');
          console.log("%c" + arg.join());
          console.trace();
          console.groupEnd();
        }
        /*
        在使用console.log的%c占位符时，自定义样式的参数是一个包含 CSS 样式声明的字符串，支持的属性主要包括以下类别
        1. 基础样式属性
            字体相关
                color: 文字颜色（如 color: red;）
                font-size: 字体大小（如 font-size: 20px;）
                font-weight: 字重（如 font-weight: bold;）
                font-family: 字体类型（如 font-family: Arial;）
            背景与边框
                background-color: 背景颜色（如 background-color: yellow;）
                background-image: 背景图片（如 background: url(...);）
                border: 边框（如 border: 1px solid red;）
            布局与间距
                padding: 内边距（如 padding: 4px;）
                margin: 外边距（需注意控制台可能部分支持）
                line-height: 行高
        2. 高级效果
            阴影与渐变
                text-shadow: 文字阴影（如 text-shadow: 1px 1px 1px grey;）
                background: 支持渐变和复杂背景（如 background: linear-gradient(...);）
            图片插入
                通过 background-image 插入 Base64 图片（需用 padding 调整尺寸，因 width/height 不直接支持）
        */

        /**
         * 检查给定的对象是否为数组
         */


        static isArray(obj) {
          return Object.prototype.toString.call(obj) === '[object Array]';
        }
        /**
         * 根据日志类型返回对应的颜色
         */


        static typeColor(type) {
          let color = '';

          switch (type) {
            case 'primary':
              color = '#2d8cf0';
              break;

            case 'success':
              color = '#19be6b';
              break;

            case 'info':
              color = '#909399';
              break;

            case 'warn':
              color = '#ff9900';
              break;

            case 'error':
              color = '#f03f14';
              break;

            default:
              color = '#35495E';
              break;
          }

          return color;
        }
        /**
         * 打印日志信息，可选择是否带有背景色
         */


        static print(type = 'default', text, back = false) {
          if (typeof text === 'object') {
            // 如果是對象則調用打印對象方式
            this.isArray(text) ? console.table(text) : console.dir(text);
            return;
          }

          if (back) {
            // 如果是打印帶背景圖的
            console.log(`%c ${text} `, `background:${this.typeColor(type)}; padding: 2px; border-radius: 4px; color: #fff;`);
          } else {
            console.log(`%c ${text} `, `border: 1px solid ${this.typeColor(type)};
                    padding: 2px; border-radius: 4px;
                    color: ${this.typeColor(type)};`);
          }
        }
        /**
         * 打印带有背景色的日志信息
         */


        static printBack(type = 'primary', text) {
          this.print(type, text, true);
        }
        /**
         * 打印格式化的日志信息，可选择是否带有背景色
         */


        static pretty(type = 'primary', title, text) {
          if (typeof text === 'object') {
            console.group('Console Group', title);
            console.log(`%c ${title}`, `background:${this.typeColor(type)}; border: 1px solid ${this.typeColor(type)};
                    padding: 1px; border - radius: 4px 0 0 4px; color: #fff; `);
            this.isArray(text) ? console.table(text) : console.dir(text);
            console.groupEnd();
            return;
          }

          console.log(`% c ${title} % c ${text} % c`, `background:${this.typeColor(type)}; border: 1px solid ${this.typeColor(type)};
                padding: 1px; border - radius: 4px 0 0 4px; color: #fff; `, `border: 1px solid ${this.typeColor(type)};
                padding: 1px; border - radius: 0 4px 4px 0; color: ${this.typeColor(type)}; `, 'background:transparent');
        }
        /**
         * 使用 primary 类型打印格式化的日志信息
         */


        static prettyPrimary(title, ...text) {
          text.forEach(t => this.pretty('primary', title, t));
        }
        /**
         * 使用 success 类型打印格式化的日志信息
         */


        static prettySuccess(title, ...text) {
          text.forEach(t => this.pretty('success', title, t));
        }
        /**
         * 使用 warn 类型打印格式化的日志信息
         */


        static prettyWarn(title, ...text) {
          text.forEach(t => this.pretty('warn', title, t));
        }
        /**
         * 使用 error 类型打印格式化的日志信息
         */


        static prettyError(title, ...text) {
          text.forEach(t => this.pretty('error', title, t));
        }
        /**
         * 使用 info 类型打印格式化的日志信息
         */


        static prettyInfo(title, ...text) {
          text.forEach(t => this.pretty('info', title, t));
        }

      });

      _cclegacy._RF.pop();

      _crd = false;
    }
  };
});
//# sourceMappingURL=d5833f13334baaf6a71ef2f60ad74eead30f653f.js.map