!function (t, e) {
  "use strict";

  class s {}
  s.touchScrollEnable = !0;
  s.mouseWheelEnable = !0;
  s.showButtons = !0;
  s.popupBgColor = "#000000";
  s.popupBgAlpha = .5;
  s.closeDialogOnSide = !0;
  window.UIConfig = s;
  class i {}
  i.defaultSizeGrid = [4, 4, 4, 4, 0];
  i.labelColor = "#000000";
  i.labelPadding = [2, 2, 2, 2];
  i.inputLabelPadding = [1, 1, 1, 3];
  i.buttonStateNum = 3;
  i.buttonLabelColors = ["#32556b", "#32cc6b", "#ff0000", "#C0C0C0"];
  i.comboBoxItemColors = ["#5e95b6", "#ffffff", "#000000", "#8fa4b1", "#ffffff"];
  i.scrollBarMinNum = 15;
  i.scrollBarDelayTime = 500;
  class h extends e.Graphics {
    constructor() {
      super(...arguments);
      this.autoCacheCmd = !0;
      this._width = 0;
      this._height = 0;
      this.uv = null;
    }
    destroy() {
      super.destroy();
      this._source = null;
      this._sizeGrid = null;
      this._offset = null;
    }
    get sizeGrid() {
      return this._sizeGrid;
    }
    set sizeGrid(t) {
      this._sizeGrid = t.map(t => +t);
      this._setChanged();
    }
    get width() {
      return this._width ? this._width : this._source ? this._source.sourceWidth : 0;
    }
    set width(t) {
      this._width != t && (this._width = t, this._setChanged());
    }
    get height() {
      return this._height ? this._height : this._source ? this._source.sourceHeight : 0;
    }
    set height(t) {
      this._height != t && (this._height = t, this._setChanged());
    }
    get source() {
      return this._source;
    }
    set source(t) {
      t ? (this._source = t, this._setChanged()) : (this._source = null, this.clear());
    }
    _setChanged() {
      this._isChanged || (this._isChanged = !0, e.ILaya.timer.callLater(this, this.changeSource));
    }
    changeSource() {
      this._isChanged = !1;
      var t = this._source;
      if (t && t.bitmap) {
        var e = this.width;
        var s = this.height;
        var i = this._sizeGrid;
        var h = t.sourceWidth;
        var a = t.sourceHeight;
        if (i && (h !== e || a !== s)) {
          this.clear();
          this.draw9Grid(t, 0, 0, e, s, i);
          return void this._repaint();
        }
        this.clear();
        this.drawTexture(t, this._offset ? this._offset[0] : 0, this._offset ? this._offset[1] : 0, e, s, null, 1, null, null, this.uv);
        this._repaint();
      }
    }
    drawBitmap(t, e, s, i, h = 0, a = 0) {
      h < .1 || a < .1 || (!t || e.width == h && e.height == a ? this.drawImage(e, s, i, h, a) : this.fillTexture(e, s, i, h, a));
    }
    static getTexture(t, s, i, h, a) {
      var r;
      h <= 0 && (h = 1);
      a <= 0 && (a = 1);
      t.$_GID || (t.$_GID = e.Utils.getGID());
      r && r._getSource() || (r = e.Texture.createFromTexture(t, s, i, h, a));
      return r;
    }
  }
  e.ClassUtils.regClass("laya.ui.AutoBitmap", h);
  e.ClassUtils.regClass("Laya.AutoBitmap", h);
  class a extends e.Component {
    constructor() {
      super(...arguments);
      this._top = NaN;
      this._bottom = NaN;
      this._left = NaN;
      this._right = NaN;
      this._centerX = NaN;
      this._centerY = NaN;
    }
    onReset() {
      this._top = this._bottom = this._left = this._right = this._centerX = this._centerY = NaN;
    }
    _onEnable() {
      this.owner.parent ? this._onAdded() : this.owner.once(e.Event.ADDED, this, this._onAdded);
    }
    _onDisable() {
      this.owner.off(e.Event.ADDED, this, this._onAdded);
      this.owner.parent && this.owner.parent.off(e.Event.RESIZE, this, this._onParentResize);
    }
    _onAdded() {
      this.owner.parent && this.owner.parent.on(e.Event.RESIZE, this, this._onParentResize);
      this.resetLayoutX();
      this.resetLayoutY();
    }
    _onParentResize() {
      var t = this.resetLayoutX();
      var s = this.resetLayoutY();
      (t || s) && this.owner.event(e.Event.RESIZE);
    }
    resetLayoutX() {
      var t = this.owner;
      if (!t) {
        return !1;
      }
      var e = t.parent;
      if (e) {
        if (isNaN(this.centerX)) {
          if (isNaN(this.left)) {
            isNaN(this.right) || (t.x = Math.round(e.width - t.displayWidth - this.right + t.pivotX * t.scaleX));
          } else {
            t.x = Math.round(this.left + t.pivotX * t.scaleX);
            if (!isNaN(this.right)) {
              var s = (e._width - this.left - this.right) / (t.scaleX || .01);
              if (s != t.width) {
                t.width = s;
                return !0;
              }
            }
          }
        } else {
          t.x = Math.round(.5 * (e.width - t.displayWidth) + this.centerX + t.pivotX * t.scaleX);
        }
      }
      return !1;
    }
    resetLayoutY() {
      var t = this.owner;
      if (!t) {
        return !1;
      }
      var e = t.parent;
      if (e) {
        if (isNaN(this.centerY)) {
          if (isNaN(this.top)) {
            isNaN(this.bottom) || (t.y = Math.round(e.height - t.displayHeight - this.bottom + t.pivotY * t.scaleY));
          } else {
            t.y = Math.round(this.top + t.pivotY * t.scaleY);
            if (!isNaN(this.bottom)) {
              var s = (e._height - this.top - this.bottom) / (t.scaleY || .01);
              if (s != t.height) {
                t.height = s;
                return !0;
              }
            }
          }
        } else {
          t.y = Math.round(.5 * (e.height - t.displayHeight) + this.centerY + t.pivotY * t.scaleY);
        }
      }
      return !1;
    }
    resetLayout() {
      this.owner && (this.resetLayoutX(), this.resetLayoutY());
    }
    get top() {
      return this._top;
    }
    set top(t) {
      this._top != t && (this._top = t, this.resetLayoutY());
    }
    get bottom() {
      return this._bottom;
    }
    set bottom(t) {
      this._bottom != t && (this._bottom = t, this.resetLayoutY());
    }
    get left() {
      return this._left;
    }
    set left(t) {
      this._left != t && (this._left = t, this.resetLayoutX());
    }
    get right() {
      return this._right;
    }
    set right(t) {
      this._right != t && (this._right = t, this.resetLayoutX());
    }
    get centerX() {
      return this._centerX;
    }
    set centerX(t) {
      this._centerX != t && (this._centerX = t, this.resetLayoutX());
    }
    get centerY() {
      return this._centerY;
    }
    set centerY(t) {
      this._centerY != t && (this._centerY = t, this.resetLayoutY());
    }
  }
  a.EMPTY = null;
  e.ILaya.regClass(a);
  a.EMPTY = new a();
  e.ClassUtils.regClass("laya.ui.Widget", a);
  e.ClassUtils.regClass("Laya.Widget", a);
  class r extends e.Event {}
  r.SHOW_TIP = "showtip";
  r.HIDE_TIP = "hidetip";
  e.ILaya.regClass(r);
  e.ClassUtils.regClass("laya.ui.UIEvent", r);
  e.ClassUtils.regClass("Laya.UIEvent", r);
  class l {
    static fillArray(t, e, s = null) {
      var i = t.concat();
      if (e) {
        for (var h = e.split(","), a = 0, r = Math.min(i.length, h.length); a < r; a++) {
          var l = h[a];
          i[a] = "true" == l || "false" != l && l;
          null != s && (i[a] = s(l));
        }
      }
      return i;
    }
    static toColor(t) {
      return e.Utils.toHexColor(t);
    }
    static gray(t, s = !0) {
      s ? l.addFilter(t, l.grayFilter) : l.clearFilter(t, e.ColorFilter);
    }
    static addFilter(t, e) {
      var s = t.filters || [];
      s.push(e);
      t.filters = s;
    }
    static clearFilter(t, e) {
      var s = t.filters;
      if (null != s && s.length > 0) {
        for (var i = s.length - 1; i > -1; i--) {
          s[i] instanceof e && s.splice(i, 1);
        }
        t.filters = s;
      }
    }
    static _getReplaceStr(t) {
      return l.escapeSequence[t];
    }
    static adptString(t) {
      return t.replace(/\\(\w)/g, l._getReplaceStr);
    }
    static getBindFun(t) {
      l._funMap || (l._funMap = new e.WeakObject());
      var s = l._funMap.get(t);
      if (null == s) {
        var i = '"' + t + '"';
        var h = "(function(data){if(data==null)return;with(data){try{\nreturn " + (i = i.replace(/^"\${|}"$/g, "").replace(/\${/g, '"+').replace(/}/g, '+"')) + "\n}catch(e){}}})";
        s = window.Laya._runScript(h);
        l._funMap.set(t, s);
      }
      return s;
    }
  }
  l.grayFilter = new e.ColorFilter([.3086, .6094, .082, 0, 0, .3086, .6094, .082, 0, 0, .3086, .6094, .082, 0, 0, 0, 0, 0, 1, 0]);
  l.escapeSequence = {
    "\\n": "\n",
    "\\t": "\t"
  };
  l._funMap = null;
  e.ClassUtils.regClass("laya.ui.UIUtils", l);
  e.ClassUtils.regClass("Laya.UIUtils", l);
  class n extends e.Sprite {
    constructor(t = !0) {
      super();
      this._anchorX = NaN;
      this._anchorY = NaN;
      this._widget = a.EMPTY;
      t && (this.preinitialize(), this.createChildren(), this.initialize());
    }
    destroy(t = !0) {
      super.destroy(t);
      this._dataSource = null;
      this._tag = null;
      this._toolTip = null;
    }
    preinitialize() {}
    createChildren() {}
    initialize() {}
    get width() {
      return this.get_width();
    }
    get_width() {
      return this._width ? this._width : this.measureWidth();
    }
    measureWidth() {
      var t = 0;
      this.commitMeasure();
      for (var e = this.numChildren - 1; e > -1; e--) {
        var s = this.getChildAt(e);
        s._visible && (t = Math.max(s._x + s.width * s.scaleX, t));
      }
      return t;
    }
    commitMeasure() {}
    get height() {
      return this.get_height();
    }
    get_height() {
      return this._height ? this._height : this.measureHeight();
    }
    measureHeight() {
      var t = 0;
      this.commitMeasure();
      for (var e = this.numChildren - 1; e > -1; e--) {
        var s = this.getChildAt(e);
        s._visible && (t = Math.max(s._y + s.height * s.scaleY, t));
      }
      return t;
    }
    get dataSource() {
      return this.get_dataSource();
    }
    get_dataSource() {
      return this._dataSource;
    }
    set dataSource(t) {
      this.set_dataSource(t);
    }
    set_dataSource(t) {
      this._dataSource = t;
      for (var e in this._dataSource) {
        e in this && "function" != typeof this[e] && (this[e] = this._dataSource[e]);
      }
    }
    get top() {
      return this.get_top();
    }
    get_top() {
      return this._widget.top;
    }
    set top(t) {
      this.set_top(t);
    }
    set_top(t) {
      t != this._widget.top && (this._getWidget().top = t);
    }
    get bottom() {
      return this.get_bottom();
    }
    get_bottom() {
      return this._widget.bottom;
    }
    set bottom(t) {
      this.set_bottom(t);
    }
    set_bottom(t) {
      t != this._widget.bottom && (this._getWidget().bottom = t);
    }
    get left() {
      return this._widget.left;
    }
    set left(t) {
      t != this._widget.left && (this._getWidget().left = t);
    }
    get right() {
      return this._widget.right;
    }
    set right(t) {
      t != this._widget.right && (this._getWidget().right = t);
    }
    get centerX() {
      return this._widget.centerX;
    }
    set centerX(t) {
      t != this._widget.centerX && (this._getWidget().centerX = t);
    }
    get centerY() {
      return this._widget.centerY;
    }
    set centerY(t) {
      t != this._widget.centerY && (this._getWidget().centerY = t);
    }
    _sizeChanged() {
      isNaN(this._anchorX) || (this.pivotX = this.anchorX * this.width);
      isNaN(this._anchorY) || (this.pivotY = this.anchorY * this.height);
      this.event(e.Event.RESIZE);
      this._widget !== a.EMPTY && this._widget.resetLayout();
    }
    get tag() {
      return this._tag;
    }
    set tag(t) {
      this._tag = t;
    }
    get toolTip() {
      return this._toolTip;
    }
    set toolTip(t) {
      this._toolTip != t && (this._toolTip = t, null != t ? (this.on(e.Event.MOUSE_OVER, this, this.onMouseOver), this.on(e.Event.MOUSE_OUT, this, this.onMouseOut)) : (this.off(e.Event.MOUSE_OVER, this, this.onMouseOver), this.off(e.Event.MOUSE_OUT, this, this.onMouseOut)));
    }
    onMouseOver(t) {
      e.ILaya.stage.event(r.SHOW_TIP, this._toolTip);
    }
    onMouseOut(t) {
      e.ILaya.stage.event(r.HIDE_TIP, this._toolTip);
    }
    get gray() {
      return this._gray;
    }
    set gray(t) {
      t !== this._gray && (this._gray = t, l.gray(this, t));
    }
    get disabled() {
      return this._disabled;
    }
    set disabled(t) {
      t !== this._disabled && (this.gray = this._disabled = t, this.mouseEnabled = !t);
    }
    _getWidget() {
      this._widget === a.EMPTY && (this._widget = this.addComponent(a));
      return this._widget;
    }
    set scaleX(t) {
      this.set_scaleX(t);
    }
    set_scaleX(t) {
      super.get_scaleX() != t && (super.set_scaleX(t), this.event(e.Event.RESIZE));
    }
    get scaleX() {
      return super.scaleX;
    }
    set scaleY(t) {
      this.set_scaleY(t);
    }
    set_scaleY(t) {
      super.get_scaleY() != t && (super.set_scaleY(t), this.event(e.Event.RESIZE));
    }
    get scaleY() {
      return super.scaleY;
    }
    onCompResize() {
      this._sizeChanged();
    }
    set width(t) {
      this.set_width(t);
    }
    set_width(t) {
      super.get_width() != t && (super.set_width(t), this.callLater(this._sizeChanged));
    }
    set height(t) {
      this.set_height(t);
    }
    set_height(t) {
      super.get_height() != t && (super.set_height(t), this.callLater(this._sizeChanged));
    }
    get anchorX() {
      return this.get_anchorX();
    }
    get_anchorX() {
      return this._anchorX;
    }
    set anchorX(t) {
      this.set_anchorX(t);
    }
    set_anchorX(t) {
      this._anchorX != t && (this._anchorX = t, this.callLater(this._sizeChanged));
    }
    get anchorY() {
      return this.get_anchorY();
    }
    get_anchorY() {
      return this._anchorY;
    }
    set anchorY(t) {
      this.set_anchorY(t);
    }
    set_anchorY(t) {
      this._anchorY != t && (this._anchorY = t, this.callLater(this._sizeChanged));
    }
    _childChanged(t = null) {
      this.callLater(this._sizeChanged);
      super._childChanged(t);
    }
  }
  e.ILaya.regClass(n);
  e.ClassUtils.regClass("laya.ui.UIComponent", n);
  e.ClassUtils.regClass("Laya.UIComponent", n);
  class o extends n {
    constructor(t = null) {
      super();
      this.skin = t;
    }
    destroy(t = !0) {
      super.destroy(!0);
      this._bitmap && this._bitmap.destroy();
      this._bitmap = null;
    }
    dispose() {
      this.destroy(!0);
      e.ILaya.loader.clearRes(this._skin);
    }
    createChildren() {
      this.graphics = this._bitmap = new h();
      this._bitmap.autoCacheCmd = !1;
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      if (this._skin != t) {
        this._skin = t;
        if (t) {
          var s = e.Loader.getRes(t);
          s ? (this.source = s, this.onCompResize()) : e.ILaya.loader.load(this._skin, e.Handler.create(this, this.setSource, [this._skin]), null, e.Loader.IMAGE, 1, !0, this._group);
        } else {
          this.source = null;
        }
      }
    }
    get source() {
      return this._bitmap.source;
    }
    set source(t) {
      this._bitmap && (this._bitmap.source = t, this.event(e.Event.LOADED), this.repaint());
    }
    get group() {
      return this._group;
    }
    set group(t) {
      t && this._skin && e.Loader.setGroup(this._skin, t);
      this._group = t;
    }
    setSource(t, e = null) {
      t === this._skin && e && (this.source = e, this.onCompResize());
    }
    measureWidth() {
      return this._bitmap.width;
    }
    measureHeight() {
      return this._bitmap.height;
    }
    set width(t) {
      super.width = t;
      this._bitmap.width = 0 == t ? 1e-7 : t;
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._bitmap.height = 0 == t ? 1e-7 : t;
    }
    get height() {
      return super.height;
    }
    get sizeGrid() {
      return this._bitmap.sizeGrid ? this._bitmap.sizeGrid.join(",") : null;
    }
    set sizeGrid(t) {
      this._bitmap.sizeGrid = l.fillArray(i.defaultSizeGrid, t, Number);
    }
    set dataSource(t) {
      this._dataSource = t;
      "string" == typeof t ? this.skin = t : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
  }
  e.ILaya.regClass(o);
  e.ClassUtils.regClass("laya.ui.Image", o);
  e.ClassUtils.regClass("Laya.Image", o);
  class _ extends o {
    constructor(t = null) {
      super();
      this.advsListArr = [];
      this.resUrl = "https://unioncdn.layabox.com/config/iconlist.json";
      this._http = new e.Browser.window.XMLHttpRequest();
      this._data = [];
      this._resquestTime = 36e4;
      this._playIndex = 0;
      this._lunboTime = 5e3;
      this.skin = t;
      this.setLoadUrl();
      this.init();
      this.size(120, 120);
    }
    setLoadUrl() {}
    init() {
      this.isSupportJump() ? ((e.Browser.onMiniGame || e.Browser.onBDMiniGame) && e.ILaya.timer.loop(this._resquestTime, this, this.onGetAdvsListData), this.onGetAdvsListData(), this.initEvent()) : this.visible = !1;
    }
    initEvent() {
      this.on(e.Event.CLICK, this, this.onAdvsImgClick);
    }
    onAdvsImgClick() {
      this.getCurrentAppidObj() && this.jumptoGame();
    }
    revertAdvsData() {
      this.advsListArr[this._playIndex] && (this.visible = !0, this.skin = this.advsListArr[this._playIndex]);
    }
    isSupportJump() {
      return e.Browser.onMiniGame ? window.wx.navigateToMiniProgram instanceof Function : !!e.Browser.onBDMiniGame;
    }
    jumptoGame() {
      var t = this.advsListArr[this._playIndex];
      parseInt(t.gameid);
      t.extendInfo;
      t.path;
      e.Browser.onMiniGame ? this.isSupportJump() && window.wx.navigateToMiniProgram({
        appId: this._appid,
        path: "",
        extraData: "",
        envVersion: "release",
        success: function () {
          console.log("-------------跳转成功--------------");
        },
        fail: function () {
          console.log("-------------跳转失败--------------");
        },
        complete: function () {
          console.log("-------------跳转接口调用成功--------------");
          this.updateAdvsInfo();
        }.bind(this)
      }) : e.Browser.onBDMiniGame || (this.visible = !1);
    }
    updateAdvsInfo() {
      this.visible = !1;
      this.onLunbo();
      e.ILaya.timer.loop(this._lunboTime, this, this.onLunbo);
    }
    onLunbo() {
      this._playIndex >= this.advsListArr.length - 1 ? this._playIndex = 0 : this._playIndex += 1;
      this.visible = !0;
      this.revertAdvsData();
    }
    getCurrentAppidObj() {
      return this.advsListArr[this._playIndex];
    }
    onGetAdvsListData() {
      var t = this;
      var e = _.randRange(1e4, 1e6);
      var s = this.resUrl + "?" + e;
      this._http.open("get", s, !0);
      this._http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      this._http.responseType = "text";
      this._http.onerror = function (e) {
        t._onError(e);
      };
      this._http.onload = function (e) {
        t._onLoad(e);
      };
      this._http.send(null);
    }
    static randRange(t, e) {
      return Math.floor(Math.random() * (e - t + 1)) + t;
    }
    _onError(t) {
      this.error("Request failed Status:" + this._http.status + " text:" + this._http.statusText);
    }
    _onLoad(t) {
      var e = this._http;
      var s = void 0 !== e.status ? e.status : 200;
      200 === s || 204 === s || 0 === s ? this.complete() : this.error("[" + e.status + "]" + e.statusText + ":" + e.responseURL);
    }
    error(t) {
      this.event(e.Event.ERROR, t);
    }
    complete() {
      try {
        this._data = this._http.response || this._http.responseText;
        this._data = JSON.parse(this._data);
        this.advsListArr = this._data.list;
        this._appid = this._data.appid;
        this.updateAdvsInfo();
        this.revertAdvsData();
      } catch (t) {
        this.error(t.message);
      }
    }
    getAdvsQArr(t) {
      var s = [];
      var i = e.LocalStorage.getJSON("gameObj");
      for (var h in t) {
        var a = t[h];
        i && i[a.gameid] && !a.isQiangZhi || s.push(a);
      }
      return s;
    }
    clear() {
      var t = this._http;
      t.onerror = t.onabort = t.onprogress = t.onload = null;
    }
    destroy(t = !0) {
      e.ILaya.timer.clear(this, this.onLunbo);
      super.destroy(!0);
      this.clear();
      e.ILaya.timer.clear(this, this.onGetAdvsListData);
    }
  }
  e.ClassUtils.regClass("laya.ui.AdvImage", _);
  e.ClassUtils.regClass("Laya.AdvImage", _);
  class c extends n {
    set dataSource(t) {
      this._dataSource = t;
      for (var e in t) {
        var s = this.getChildByName(e);
        s ? s.dataSource = t[e] : e in this && !(this[e] instanceof Function) && (this[e] = t[e]);
      }
    }
    get dataSource() {
      return super.dataSource;
    }
    get bgColor() {
      return this._bgColor;
    }
    set bgColor(t) {
      this._bgColor = t;
      t ? (this._onResize(null), this.on(e.Event.RESIZE, this, this._onResize)) : (this.graphics.clear(), this.off(e.Event.RESIZE, this, this._onResize));
    }
    _onResize(t) {
      this.graphics.clear();
      this.graphics.drawRect(0, 0, this.width, this.height, this._bgColor);
    }
  }
  e.ILaya.regClass(c);
  e.ClassUtils.regClass("laya.ui.Box", c);
  e.ClassUtils.regClass("Laya.Box", c);
  class d extends n {
    constructor(t = null, e = "") {
      super();
      this._labelColors = i.buttonLabelColors;
      this._state = 0;
      this._autoSize = !0;
      this._stateNum = i.buttonStateNum;
      this._stateChanged = !1;
      this.skin = t;
      this.label = e;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._bitmap && this._bitmap.destroy();
      this._text && this._text.destroy(t);
      this._bitmap = null;
      this._text = null;
      this._clickHandler = null;
      this._labelColors = this._sources = this._strokeColors = null;
    }
    createChildren() {
      this.graphics = this._bitmap = new h();
    }
    createText() {
      this._text || (this._text = new e.Text(), this._text.overflow = e.Text.HIDDEN, this._text.align = "center", this._text.valign = "middle", this._text.width = this._width, this._text.height = this._height);
    }
    initialize() {
      1 !== this._mouseState && (this.mouseEnabled = !0, this._setBit(e.Const.HAS_MOUSE, !0));
      this._createListener(e.Event.MOUSE_OVER, this, this.onMouse, null, !1, !1);
      this._createListener(e.Event.MOUSE_OUT, this, this.onMouse, null, !1, !1);
      this._createListener(e.Event.MOUSE_DOWN, this, this.onMouse, null, !1, !1);
      this._createListener(e.Event.MOUSE_UP, this, this.onMouse, null, !1, !1);
      this._createListener(e.Event.CLICK, this, this.onMouse, null, !1, !1);
    }
    onMouse(t) {
      if (!1 !== this.toggle || !this._selected) {
        return t.type === e.Event.CLICK ? (this.toggle && (this.selected = !this._selected), void (this._clickHandler && this._clickHandler.run())) : void (!this._selected && (this.state = d.stateMap[t.type]));
      }
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      this._skin != t && (this._skin = t, t ? e.Loader.getRes(t) ? this._skinLoaded() : e.ILaya.loader.load(this._skin, e.Handler.create(this, this._skinLoaded), null, e.Loader.IMAGE, 1) : this._skinLoaded());
    }
    _skinLoaded() {
      this.callLater(this.changeClips);
      this._setStateChanged();
      this._sizeChanged();
      this.event(e.Event.LOADED);
    }
    get stateNum() {
      return this._stateNum;
    }
    set stateNum(t) {
      "string" == typeof t && (t = parseInt(t));
      this._stateNum != t && (this._stateNum = t < 1 ? 1 : t > 3 ? 3 : t, this.callLater(this.changeClips));
    }
    changeClips() {
      var t = e.Loader.getRes(this._skin);
      if (t) {
        var s = t.sourceWidth;
        var i = t.sourceHeight / this._stateNum;
        t.$_GID || (t.$_GID = e.Utils.getGID());
        var h = t.$_GID + "-" + this._stateNum;
        var a = e.WeakObject.I.get(h);
        e.Utils.isOkTextureList(a) || (a = null);
        if (a) {
          this._sources = a;
        } else {
          this._sources = [];
          if (1 === this._stateNum) {
            this._sources.push(t);
          } else {
            for (var r = 0; r < this._stateNum; r++) {
              this._sources.push(e.Texture.createFromTexture(t, 0, i * r, s, i));
            }
          }
          e.WeakObject.I.set(h, this._sources);
        }
        this._autoSize ? (this._bitmap.width = this._width || s, this._bitmap.height = this._height || i, this._text && (this._text.width = this._bitmap.width, this._text.height = this._bitmap.height)) : this._text && (this._text.x = s);
      } else {
        console.log("lose skin", this._skin);
      }
    }
    measureWidth() {
      this.runCallLater(this.changeClips);
      return this._autoSize ? this._bitmap.width : (this.runCallLater(this.changeState), this._bitmap.width + (this._text ? this._text.width : 0));
    }
    measureHeight() {
      this.runCallLater(this.changeClips);
      return this._text ? Math.max(this._bitmap.height, this._text.height) : this._bitmap.height;
    }
    get label() {
      return this._text ? this._text.text : null;
    }
    set label(t) {
      (this._text || t) && (this.createText(), this._text.text != t && (t && !this._text.parent && this.addChild(this._text), this._text.text = (t + "").replace(/\\n/g, "\n"), this._setStateChanged()));
    }
    get selected() {
      return this._selected;
    }
    set selected(t) {
      this._selected != t && (this._selected = t, this.state = this._selected ? 2 : 0, this.event(e.Event.CHANGE));
    }
    get state() {
      return this._state;
    }
    set state(t) {
      this._state != t && (this._state = t, this._setStateChanged());
    }
    changeState() {
      this._stateChanged = !1;
      this.runCallLater(this.changeClips);
      var t = this._state < this._stateNum ? this._state : this._stateNum - 1;
      this._sources && (this._bitmap.source = this._sources[t]);
      this.label && (this._text.color = this._labelColors[t], this._strokeColors && (this._text.strokeColor = this._strokeColors[t]));
    }
    get labelColors() {
      return this._labelColors.join(",");
    }
    set labelColors(t) {
      this._labelColors = l.fillArray(i.buttonLabelColors, t, String);
      this._setStateChanged();
    }
    get strokeColors() {
      return this._strokeColors ? this._strokeColors.join(",") : "";
    }
    set strokeColors(t) {
      this._strokeColors = l.fillArray(i.buttonLabelColors, t, String);
      this._setStateChanged();
    }
    get labelPadding() {
      this.createText();
      return this._text.padding.join(",");
    }
    set labelPadding(t) {
      this.createText();
      this._text.padding = l.fillArray(i.labelPadding, t, Number);
    }
    get labelSize() {
      this.createText();
      return this._text.fontSize;
    }
    set labelSize(t) {
      this.createText();
      this._text.fontSize = t;
    }
    get labelStroke() {
      this.createText();
      return this._text.stroke;
    }
    set labelStroke(t) {
      this.createText();
      this._text.stroke = t;
    }
    get labelStrokeColor() {
      this.createText();
      return this._text.strokeColor;
    }
    set labelStrokeColor(t) {
      this.createText();
      this._text.strokeColor = t;
    }
    get labelBold() {
      this.createText();
      return this._text.bold;
    }
    set labelBold(t) {
      this.createText();
      this._text.bold = t;
    }
    get labelFont() {
      this.createText();
      return this._text.font;
    }
    set labelFont(t) {
      this.createText();
      this._text.font = t;
    }
    get labelAlign() {
      this.createText();
      return this._text.align;
    }
    set labelAlign(t) {
      this.createText();
      this._text.align = t;
    }
    get clickHandler() {
      return this._clickHandler;
    }
    set clickHandler(t) {
      this._clickHandler = t;
    }
    get text() {
      this.createText();
      return this._text;
    }
    get sizeGrid() {
      return this._bitmap.sizeGrid ? this._bitmap.sizeGrid.join(",") : null;
    }
    set sizeGrid(t) {
      this._bitmap.sizeGrid = l.fillArray(i.defaultSizeGrid, t, Number);
    }
    set width(t) {
      super.set_width(t);
      this._autoSize && (this._bitmap.width = t, this._text && (this._text.width = t));
    }
    get width() {
      return super.get_width();
    }
    set height(t) {
      super.set_height(t);
      this._autoSize && (this._bitmap.height = t, this._text && (this._text.height = t));
    }
    get height() {
      return super.get_height();
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.label = t + "" : super.set_dataSource(t);
    }
    get dataSource() {
      return super.get_dataSource();
    }
    get iconOffset() {
      return this._bitmap._offset ? this._bitmap._offset.join(",") : null;
    }
    set iconOffset(t) {
      this._bitmap._offset = t ? l.fillArray([1, 1], t, Number) : [];
    }
    _setStateChanged() {
      this._stateChanged || (this._stateChanged = !0, this.callLater(this.changeState));
    }
  }
  d.stateMap = {
    mouseup: 0,
    mouseover: 1,
    mousedown: 2,
    mouseout: 0
  };
  e.ILaya.regClass(d);
  e.ClassUtils.regClass("laya.ui.Button", d);
  e.ClassUtils.regClass("Laya.Button", d);
  class u extends d {
    constructor(t = null, e = "") {
      super(t, e);
      this.toggle = !0;
      this._autoSize = !1;
    }
    preinitialize() {
      super.preinitialize();
      this.toggle = !0;
      this._autoSize = !1;
    }
    initialize() {
      super.initialize();
      this.createText();
      this._text.align = "left";
      this._text.valign = "top";
      this._text.width = 0;
    }
    set dataSource(t) {
      this._dataSource = t;
      t instanceof Boolean ? this.selected = t : "string" == typeof t ? this.selected = "true" === t : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
  }
  e.ILaya.regClass(u);
  e.ClassUtils.regClass("laya.ui.CheckBox", u);
  e.ClassUtils.regClass("Laya.CheckBox", u);
  class g extends n {
    constructor(t = null, e = 1, s = 1) {
      super();
      this._clipX = 1;
      this._clipY = 1;
      this._clipWidth = 0;
      this._clipHeight = 0;
      this._interval = 50;
      this._index = 0;
      this._toIndex = -1;
      this._clipX = e;
      this._clipY = s;
      this.skin = t;
    }
    destroy(t = !0) {
      super.destroy(!0);
      this._bitmap && this._bitmap.destroy();
      this._bitmap = null;
      this._sources = null;
    }
    dispose() {
      this.destroy(!0);
      e.ILaya.loader.clearRes(this._skin);
    }
    createChildren() {
      this.graphics = this._bitmap = new h();
    }
    _onDisplay(t) {
      this._isPlaying ? this._getBit(e.Const.DISPLAYED_INSTAGE) ? this.play() : this.stop() : this._autoPlay && this.play();
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      this._skin != t && (this._skin = t, t ? e.Loader.getRes(t) ? this._skinLoaded() : e.ILaya.loader.load(this._skin, e.Handler.create(this, this._skinLoaded), null, e.Loader.IMAGE, 1) : this._bitmap.source = null);
    }
    _skinLoaded() {
      this._setClipChanged();
      this._sizeChanged();
      this.event(e.Event.LOADED);
    }
    get clipX() {
      return this._clipX;
    }
    set clipX(t) {
      this._clipX = t || 1;
      this._setClipChanged();
    }
    get clipY() {
      return this._clipY;
    }
    set clipY(t) {
      this._clipY = t || 1;
      this._setClipChanged();
    }
    get clipWidth() {
      return this._clipWidth;
    }
    set clipWidth(t) {
      this._clipWidth = t;
      this._setClipChanged();
    }
    get clipHeight() {
      return this._clipHeight;
    }
    set clipHeight(t) {
      this._clipHeight = t;
      this._setClipChanged();
    }
    changeClip() {
      this._clipChanged = !1;
      if (this._skin) {
        var t = e.Loader.getRes(this._skin);
        t ? this.loadComplete(this._skin, t) : e.ILaya.loader.load(this._skin, e.Handler.create(this, this.loadComplete, [this._skin]));
      }
    }
    loadComplete(t, s) {
      if (t === this._skin && s) {
        var i = this._clipWidth || Math.ceil(s.sourceWidth / this._clipX);
        var h = this._clipHeight || Math.ceil(s.sourceHeight / this._clipY);
        var a = this._skin + i + h;
        var r = e.WeakObject.I.get(a);
        e.Utils.isOkTextureList(r) || (r = null);
        if (r) {
          this._sources = r;
        } else {
          this._sources = [];
          for (var l = 0; l < this._clipY; l++) {
            for (var n = 0; n < this._clipX; n++) {
              this._sources.push(e.Texture.createFromTexture(s, i * n, h * l, i, h));
            }
          }
          e.WeakObject.I.set(a, this._sources);
        }
        this.index = this._index;
        this.event(e.Event.LOADED);
        this.onCompResize();
      }
    }
    get sources() {
      return this._sources;
    }
    set sources(t) {
      this._sources = t;
      this.index = this._index;
      this.event(e.Event.LOADED);
    }
    get group() {
      return this._group;
    }
    set group(t) {
      t && this._skin && e.Loader.setGroup(this._skin, t);
      this._group = t;
    }
    set width(t) {
      super.width = t;
      this._bitmap.width = t;
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._bitmap.height = t;
    }
    get height() {
      return super.height;
    }
    measureWidth() {
      this.runCallLater(this.changeClip);
      return this._bitmap.width;
    }
    measureHeight() {
      this.runCallLater(this.changeClip);
      return this._bitmap.height;
    }
    get sizeGrid() {
      return this._bitmap.sizeGrid ? this._bitmap.sizeGrid.join(",") : null;
    }
    set sizeGrid(t) {
      this._bitmap.sizeGrid = l.fillArray(i.defaultSizeGrid, t, Number);
    }
    get index() {
      return this._index;
    }
    set index(t) {
      this._index = t;
      this._bitmap && this._sources && (this._bitmap.source = this._sources[t]);
      this.event(e.Event.CHANGE);
    }
    get total() {
      this.runCallLater(this.changeClip);
      return this._sources ? this._sources.length : 0;
    }
    get autoPlay() {
      return this._autoPlay;
    }
    set autoPlay(t) {
      this._autoPlay != t && (this._autoPlay = t, t ? this.play() : this.stop());
    }
    get interval() {
      return this._interval;
    }
    set interval(t) {
      this._interval != t && (this._interval = t, this._isPlaying && this.play());
    }
    get isPlaying() {
      return this._isPlaying;
    }
    set isPlaying(t) {
      this._isPlaying = t;
    }
    play(t = 0, s = -1) {
      this._isPlaying = !0;
      this.index = t;
      this._toIndex = s;
      this._index++;
      e.ILaya.timer.loop(this.interval, this, this._loop);
      this.on(e.Event.DISPLAY, this, this._onDisplay);
      this.on(e.Event.UNDISPLAY, this, this._onDisplay);
    }
    _loop() {
      this._visible && this._sources && (this._index++, this._toIndex > -1 && this._index >= this._toIndex ? this.stop() : this._index >= this._sources.length && (this._index = 0), this.index = this._index);
    }
    stop() {
      this._isPlaying = !1;
      e.ILaya.timer.clear(this, this._loop);
      this.event(e.Event.COMPLETE);
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.index = parseInt(t) : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    get bitmap() {
      return this._bitmap;
    }
    _setClipChanged() {
      this._clipChanged || (this._clipChanged = !0, this.callLater(this.changeClip));
    }
  }
  e.ILaya.regClass(g);
  e.ClassUtils.regClass("laya.ui.Clip", g);
  e.ClassUtils.regClass("Laya.Clip", g);
  class p extends n {
    constructor() {
      super(...arguments);
      this._gridSize = 11;
      this._bgColor = "#ffffff";
      this._borderColor = "#000000";
      this._inputColor = "#000000";
      this._inputBgColor = "#efefef";
      this._colors = [];
      this._selectedColor = "#000000";
    }
    destroy(t = !0) {
      super.destroy(t);
      this._colorPanel && this._colorPanel.destroy(t);
      this._colorButton && this._colorButton.destroy(t);
      this._colorPanel = null;
      this._colorTiles = null;
      this._colorBlock = null;
      this._colorInput = null;
      this._colorButton = null;
      this._colors = null;
      this.changeHandler = null;
    }
    createChildren() {
      this.addChild(this._colorButton = new d());
      this._colorPanel = new c();
      this._colorPanel.size(230, 166);
      this._colorPanel.addChild(this._colorTiles = new e.Sprite());
      this._colorPanel.addChild(this._colorBlock = new e.Sprite());
      this._colorPanel.addChild(this._colorInput = new e.Input());
    }
    initialize() {
      this._colorButton.on(e.Event.CLICK, this, this.onColorButtonClick);
      this._colorBlock.pos(5, 5);
      this._colorInput.pos(60, 5);
      this._colorInput.size(60, 20);
      this._colorInput.on(e.Event.CHANGE, this, this.onColorInputChange);
      this._colorInput.on(e.Event.KEY_DOWN, this, this.onColorFieldKeyDown);
      this._colorTiles.pos(5, 30);
      this._colorTiles.on(e.Event.MOUSE_MOVE, this, this.onColorTilesMouseMove);
      this._colorTiles.on(e.Event.CLICK, this, this.onColorTilesClick);
      this._colorTiles.size(20 * this._gridSize, 12 * this._gridSize);
      this._colorPanel.on(e.Event.MOUSE_DOWN, this, this.onPanelMouseDown);
      this.bgColor = this._bgColor;
    }
    onPanelMouseDown(t) {
      t.stopPropagation();
    }
    changePanel() {
      this._panelChanged = !1;
      var t = this._colorPanel.graphics;
      t.clear(!0);
      t.drawRect(0, 0, 230, 166, this._bgColor, this._borderColor);
      this.drawBlock(this._selectedColor);
      this._colorInput.borderColor = this._borderColor;
      this._colorInput.bgColor = this._inputBgColor;
      this._colorInput.color = this._inputColor;
      (t = this._colorTiles.graphics).clear(!0);
      for (var e = [0, 3355443, 6710886, 10066329, 13421772, 16777215, 16711680, 65280, 255, 16776960, 65535, 16711935], s = 0; s < 12; s++) {
        for (var i = 0; i < 20; i++) {
          var h;
          h = 0 === i ? e[s] : 1 === i ? 0 : 51 * (((3 * s + i / 6) % 3 << 0) + 3 * (s / 6 << 0)) << 16 | i % 6 * 51 << 8 | (s << 0) % 6 * 51;
          var a = l.toColor(h);
          this._colors.push(a);
          var r = i * this._gridSize;
          var n = s * this._gridSize;
          t.drawRect(r, n, this._gridSize, this._gridSize, a, "#000000");
        }
      }
    }
    onColorButtonClick(t) {
      this._colorPanel.parent ? this.close() : this.open();
    }
    open() {
      let t = e.ILaya.stage;
      var s = this.localToGlobal(new e.Point());
      var i = s.x + this._colorPanel.width <= t.width ? s.x : t.width - this._colorPanel.width;
      var h = s.y + this._colorButton.height;
      h = h + this._colorPanel.height <= t.height ? h : s.y - this._colorPanel.height;
      this._colorPanel.pos(i, h);
      this._colorPanel.zOrder = 1001;
      t.addChild(this._colorPanel);
      t.on(e.Event.MOUSE_DOWN, this, this.removeColorBox);
    }
    close() {
      e.ILaya.stage.off(e.Event.MOUSE_DOWN, this, this.removeColorBox);
      this._colorPanel.removeSelf();
    }
    removeColorBox(t = null) {
      this.close();
    }
    onColorFieldKeyDown(t) {
      13 == t.keyCode && (this._colorInput.text ? this.selectedColor = this._colorInput.text : this.selectedColor = null, this.close(), t.stopPropagation());
    }
    onColorInputChange(t = null) {
      this._colorInput.text ? this.drawBlock(this._colorInput.text) : this.drawBlock("#FFFFFF");
    }
    onColorTilesClick(t) {
      this.selectedColor = this.getColorByMouse();
      this.close();
    }
    onColorTilesMouseMove(t) {
      this._colorInput.focus = !1;
      var e = this.getColorByMouse();
      this._colorInput.text = e;
      this.drawBlock(e);
    }
    getColorByMouse() {
      var t = this._colorTiles.getMousePoint();
      var e = Math.floor(t.x / this._gridSize);
      var s = Math.floor(t.y / this._gridSize);
      return this._colors[20 * s + e];
    }
    drawBlock(t) {
      var e = this._colorBlock.graphics;
      e.clear(!0);
      var s = t || "#ffffff";
      e.drawRect(0, 0, 50, 20, s, this._borderColor);
      t || e.drawLine(0, 0, 50, 20, "#ff0000");
    }
    get selectedColor() {
      return this._selectedColor;
    }
    set selectedColor(t) {
      this._selectedColor != t && (this._selectedColor = this._colorInput.text = t, this.drawBlock(t), this.changeColor(), this.changeHandler && this.changeHandler.runWith(this._selectedColor), this.event(e.Event.CHANGE, e.Event.EMPTY.setTo(e.Event.CHANGE, this, this)));
    }
    get skin() {
      return this._colorButton.skin;
    }
    set skin(t) {
      this._colorButton.once(e.Event.LOADED, this, this.changeColor);
      this._colorButton.skin = t;
    }
    changeColor() {
      var t = this.graphics;
      t.clear(!0);
      var e = this._selectedColor || "#000000";
      t.drawRect(0, 0, this._colorButton.width, this._colorButton.height, e);
    }
    get bgColor() {
      return this._bgColor;
    }
    set bgColor(t) {
      this._bgColor = t;
      this._setPanelChanged();
    }
    get borderColor() {
      return this._borderColor;
    }
    set borderColor(t) {
      this._borderColor = t;
      this._setPanelChanged();
    }
    get inputColor() {
      return this._inputColor;
    }
    set inputColor(t) {
      this._inputColor = t;
      this._setPanelChanged();
    }
    get inputBgColor() {
      return this._inputBgColor;
    }
    set inputBgColor(t) {
      this._inputBgColor = t;
      this._setPanelChanged();
    }
    _setPanelChanged() {
      this._panelChanged || (this._panelChanged = !0, this.callLater(this.changePanel));
    }
  }
  e.ILaya.regClass(p);
  e.ClassUtils.regClass("laya.ui.ColorPicker", p);
  e.ClassUtils.regClass("Laya.ColorPicker", p);
  class C extends n {
    constructor(t = "") {
      super();
      this.text = t;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._tf = null;
    }
    createChildren() {
      this.addChild(this._tf = new e.Text());
    }
    get text() {
      return this._tf.text;
    }
    set text(t) {
      this._tf.text != t && (t && (t = l.adptString(t + "")), this._tf.text = t, this.event(e.Event.CHANGE), this._width && this._height || this.onCompResize());
    }
    changeText(t) {
      this._tf.changeText(t);
    }
    get wordWrap() {
      return this._tf.wordWrap;
    }
    set wordWrap(t) {
      this._tf.wordWrap = t;
    }
    get color() {
      return this._tf.color;
    }
    set color(t) {
      this._tf.color = t;
    }
    get font() {
      return this._tf.font;
    }
    set font(t) {
      this._tf.font = t;
    }
    get align() {
      return this._tf.align;
    }
    set align(t) {
      this._tf.align = t;
    }
    get valign() {
      return this._tf.valign;
    }
    set valign(t) {
      this._tf.valign = t;
    }
    get bold() {
      return this._tf.bold;
    }
    set bold(t) {
      this._tf.bold = t;
    }
    get italic() {
      return this._tf.italic;
    }
    set italic(t) {
      this._tf.italic = t;
    }
    get leading() {
      return this._tf.leading;
    }
    set leading(t) {
      this._tf.leading = t;
    }
    get fontSize() {
      return this._tf.fontSize;
    }
    set fontSize(t) {
      this._tf.fontSize = t;
    }
    get padding() {
      return this._tf.padding.join(",");
    }
    set padding(t) {
      this._tf.padding = l.fillArray(i.labelPadding, t, Number);
    }
    get bgColor() {
      return this._tf.bgColor;
    }
    set bgColor(t) {
      this._tf.bgColor = t;
    }
    get borderColor() {
      return this._tf.borderColor;
    }
    set borderColor(t) {
      this._tf.borderColor = t;
    }
    get stroke() {
      return this._tf.stroke;
    }
    set stroke(t) {
      this._tf.stroke = t;
    }
    get strokeColor() {
      return this._tf.strokeColor;
    }
    set strokeColor(t) {
      this._tf.strokeColor = t;
    }
    get textField() {
      return this._tf;
    }
    measureWidth() {
      return this._tf.width;
    }
    measureHeight() {
      return this._tf.height;
    }
    get width() {
      return this._width || this._tf.text ? super.width : 0;
    }
    set width(t) {
      super.width = t;
      this._tf.width = t;
    }
    get height() {
      return this._height || this._tf.text ? super.height : 0;
    }
    set height(t) {
      super.height = t;
      this._tf.height = t;
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.text = t + "" : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    get overflow() {
      return this._tf.overflow;
    }
    set overflow(t) {
      this._tf.overflow = t;
    }
    get underline() {
      return this._tf.underline;
    }
    set underline(t) {
      this._tf.underline = t;
    }
    get underlineColor() {
      return this._tf.underlineColor;
    }
    set underlineColor(t) {
      this._tf.underlineColor = t;
    }
  }
  e.ILaya.regClass(C);
  e.ClassUtils.regClass("laya.ui.Label", C);
  e.ClassUtils.regClass("Laya.Label", C);
  class v extends n {
    constructor(t = null) {
      super();
      this.isVertical = !0;
      this.showLabel = !0;
      this._max = 100;
      this._min = 0;
      this._tick = 1;
      this._value = 0;
      v.label || (v.label = new C());
      this.skin = t;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._bg && this._bg.destroy(t);
      this._bar && this._bar.destroy(t);
      this._progress && this._progress.destroy(t);
      this._bg = null;
      this._bar = null;
      this._progress = null;
      this.changeHandler = null;
    }
    createChildren() {
      this.addChild(this._bg = new o());
      this.addChild(this._bar = new d());
    }
    initialize() {
      this._bar.on(e.Event.MOUSE_DOWN, this, this.onBarMouseDown);
      this._bg.sizeGrid = this._bar.sizeGrid = "4,4,4,4,0";
      this._progress && (this._progress.sizeGrid = this._bar.sizeGrid);
      this.allowClickBack = !0;
    }
    onBarMouseDown(t) {
      var s = e.ILaya;
      this._globalSacle || (this._globalSacle = new e.Point());
      this._globalSacle.setTo(this.globalScaleX || .01, this.globalScaleY || .01);
      this._maxMove = this.isVertical ? this.height - this._bar.height : this.width - this._bar.width;
      this._tx = s.stage.mouseX;
      this._ty = s.stage.mouseY;
      s.stage.on(e.Event.MOUSE_MOVE, this, this.mouseMove);
      s.stage.once(e.Event.MOUSE_UP, this, this.mouseUp);
      s.stage.once(e.Event.MOUSE_OUT, this, this.mouseUp);
      this.showValueText();
    }
    showValueText() {
      if (this.showLabel) {
        var t = v.label;
        this.addChild(t);
        t.textField.changeText(this._value + "");
        this.isVertical ? (t.x = this._bar._x + 20, t.y = .5 * (this._bar.height - t.height) + this._bar._y) : (t.y = this._bar._y - 20, t.x = .5 * (this._bar.width - t.width) + this._bar._x);
      }
    }
    hideValueText() {
      v.label && v.label.removeSelf();
    }
    mouseUp(t) {
      let s = e.ILaya.stage;
      s.off(e.Event.MOUSE_MOVE, this, this.mouseMove);
      s.off(e.Event.MOUSE_UP, this, this.mouseUp);
      s.off(e.Event.MOUSE_OUT, this, this.mouseUp);
      this.sendChangeEvent(e.Event.CHANGED);
      this.hideValueText();
    }
    mouseMove(t) {
      let s = e.ILaya.stage;
      var i = this._value;
      this.isVertical ? (this._bar.y += (s.mouseY - this._ty) / this._globalSacle.y, this._bar._y > this._maxMove ? this._bar.y = this._maxMove : this._bar._y < 0 && (this._bar.y = 0), this._value = this._bar._y / this._maxMove * (this._max - this._min) + this._min, this._progress && (this._progress.height = this._bar._y + .5 * this._bar.height)) : (this._bar.x += (s.mouseX - this._tx) / this._globalSacle.x, this._bar._x > this._maxMove ? this._bar.x = this._maxMove : this._bar._x < 0 && (this._bar.x = 0), this._value = this._bar._x / this._maxMove * (this._max - this._min) + this._min, this._progress && (this._progress.width = this._bar._x + .5 * this._bar.width));
      this._tx = s.mouseX;
      this._ty = s.mouseY;
      if (0 != this._tick) {
        var h = Math.pow(10, (this._tick + "").length - 1);
        this._value = Math.round(Math.round(this._value / this._tick) * this._tick * h) / h;
      }
      this._value != i && this.sendChangeEvent();
      this.showValueText();
    }
    sendChangeEvent(t = e.Event.CHANGE) {
      this.event(t);
      this.changeHandler && this.changeHandler.runWith(this._value);
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      this._skin != t && (this._skin = t, this._skin && !e.Loader.getRes(this._skin) ? e.ILaya.loader.load([this._skin, this._skin.replace(".png", "$bar.png")], e.Handler.create(this, this._skinLoaded)) : this._skinLoaded());
    }
    _skinLoaded() {
      this._bg.skin = this._skin;
      this._bar.skin = this._skin.replace(".png", "$bar.png");
      var t = this._skin.replace(".png", "$progress.png");
      e.Loader.getRes(t) && (this._progress || (this.addChild(this._progress = new o()), this._progress.sizeGrid = this._bar.sizeGrid, this.setChildIndex(this._progress, 1)), this._progress.skin = t);
      this.setBarPoint();
      this.callLater(this.changeValue);
      this._sizeChanged();
      this.event(e.Event.LOADED);
    }
    setBarPoint() {
      this.isVertical ? this._bar.x = Math.round(.5 * (this._bg.width - this._bar.width)) : this._bar.y = Math.round(.5 * (this._bg.height - this._bar.height));
    }
    measureWidth() {
      return Math.max(this._bg.width, this._bar.width);
    }
    measureHeight() {
      return Math.max(this._bg.height, this._bar.height);
    }
    _sizeChanged() {
      super._sizeChanged();
      this.isVertical ? this._bg.height = this.height : this._bg.width = this.width;
      this.setBarPoint();
      this.changeValue();
    }
    get sizeGrid() {
      return this._bg.sizeGrid;
    }
    set sizeGrid(t) {
      this._bg.sizeGrid = t;
      this._bar.sizeGrid = t;
      this._progress && (this._progress.sizeGrid = this._bar.sizeGrid);
    }
    setSlider(t, e, s) {
      this._value = -1;
      this._min = t;
      this._max = e > t ? e : t;
      this.value = s < t ? t : s > e ? e : s;
    }
    get tick() {
      return this._tick;
    }
    set tick(t) {
      this._tick != t && (this._tick = t, this.callLater(this.changeValue));
    }
    changeValue() {
      if (0 != this.tick) {
        var t = Math.pow(10, (this._tick + "").length - 1);
        this._value = Math.round(Math.round(this._value / this._tick) * this._tick * t) / t;
      }
      this._value = this._value > this._max ? this._max : this._value < this._min ? this._min : this._value;
      var e = this._max - this._min;
      0 === e && (e = 1);
      this.isVertical ? (this._bar.y = (this._value - this._min) / e * (this.height - this._bar.height), this._progress && (this._progress.height = this._bar._y + .5 * this._bar.height)) : (this._bar.x = (this._value - this._min) / e * (this.width - this._bar.width), this._progress && (this._progress.width = this._bar._x + .5 * this._bar.width));
    }
    get max() {
      return this._max;
    }
    set max(t) {
      this._max != t && (this._max = t, this.callLater(this.changeValue));
    }
    get min() {
      return this._min;
    }
    set min(t) {
      this._min != t && (this._min = t, this.callLater(this.changeValue));
    }
    get value() {
      return this._value;
    }
    set value(t) {
      if (this._value != t) {
        var e = this._value;
        this._value = t;
        this.changeValue();
        this._value != e && this.sendChangeEvent();
      }
    }
    get allowClickBack() {
      return this._allowClickBack;
    }
    set allowClickBack(t) {
      this._allowClickBack != t && (this._allowClickBack = t, t ? this._bg.on(e.Event.MOUSE_DOWN, this, this.onBgMouseDown) : this._bg.off(e.Event.MOUSE_DOWN, this, this.onBgMouseDown));
    }
    onBgMouseDown(t) {
      var e = this._bg.getMousePoint();
      this.isVertical ? this.value = e.y / (this.height - this._bar.height) * (this._max - this._min) + this._min : this.value = e.x / (this.width - this._bar.width) * (this._max - this._min) + this._min;
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.value = Number(t) : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    get bar() {
      return this._bar;
    }
  }
  v.label = null;
  e.ILaya.regClass(v);
  e.ClassUtils.regClass("laya.ui.Slider", v);
  e.ClassUtils.regClass("Laya.Slider", v);
  class m extends n {
    constructor(t = null) {
      super();
      this.rollRatio = .97;
      this.scaleBar = !0;
      this.autoHide = !1;
      this.elasticDistance = 0;
      this.elasticBackTime = 500;
      this._showButtons = s.showButtons;
      this._scrollSize = 1;
      this._thumbPercent = 1;
      this._lastOffset = 0;
      this._checkElastic = !1;
      this._isElastic = !1;
      this._hide = !1;
      this._clickOnly = !0;
      this._touchScrollEnable = s.touchScrollEnable;
      this._mouseWheelEnable = s.mouseWheelEnable;
      this.skin = t;
      this.max = 1;
    }
    destroy(t = !0) {
      this.stopScroll();
      this.target = null;
      super.destroy(t);
      this.upButton && this.upButton.destroy(t);
      this.downButton && this.downButton.destroy(t);
      this.slider && this.slider.destroy(t);
      this.upButton = this.downButton = null;
      this.slider = null;
      this.changeHandler = null;
      this._offsets = null;
    }
    createChildren() {
      this.addChild(this.slider = new v());
      this.addChild(this.upButton = new d());
      this.addChild(this.downButton = new d());
    }
    initialize() {
      this.slider.showLabel = !1;
      this.slider.tick = 0;
      this.slider.on(e.Event.CHANGE, this, this.onSliderChange);
      this.slider.setSlider(0, 0, 0);
      this.upButton.on(e.Event.MOUSE_DOWN, this, this.onButtonMouseDown);
      this.downButton.on(e.Event.MOUSE_DOWN, this, this.onButtonMouseDown);
    }
    onSliderChange() {
      this._value != this.slider.value && (this.value = this.slider.value);
    }
    onButtonMouseDown(t) {
      var s = t.currentTarget === this.upButton;
      this.slide(s);
      e.ILaya.timer.once(i.scrollBarDelayTime, this, this.startLoop, [s]);
      e.ILaya.stage.once(e.Event.MOUSE_UP, this, this.onStageMouseUp);
    }
    startLoop(t) {
      e.ILaya.timer.frameLoop(1, this, this.slide, [t]);
    }
    slide(t) {
      t ? this.value -= this._scrollSize : this.value += this._scrollSize;
    }
    onStageMouseUp(t) {
      e.ILaya.timer.clear(this, this.startLoop);
      e.ILaya.timer.clear(this, this.slide);
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      " " != t && this._skin != t && (this._skin = t, this._skin && !e.Loader.getRes(this._skin) ? e.ILaya.loader.load([this._skin, this._skin.replace(".png", "$up.png"), this._skin.replace(".png", "$down.png"), this._skin.replace(".png", "$bar.png")], e.Handler.create(this, this._skinLoaded)) : this._skinLoaded());
    }
    _skinLoaded() {
      this.slider.skin = this._skin;
      this.callLater(this.changeScrollBar);
      this._sizeChanged();
      this.event(e.Event.LOADED);
    }
    changeScrollBar() {
      this.upButton.visible = this._showButtons;
      this.downButton.visible = this._showButtons;
      this._showButtons && (this.upButton.skin = this._skin.replace(".png", "$up.png"), this.downButton.skin = this._skin.replace(".png", "$down.png"));
      this.slider.isVertical ? this.slider.y = this._showButtons ? this.upButton.height : 0 : this.slider.x = this._showButtons ? this.upButton.width : 0;
      this.resetPositions();
      this.repaint();
    }
    _sizeChanged() {
      super._sizeChanged();
      this.repaint();
      this.resetPositions();
      this.event(e.Event.CHANGE);
      this.changeHandler && this.changeHandler.runWith(this.value);
    }
    resetPositions() {
      this.slider.isVertical ? this.slider.height = this.height - (this._showButtons ? this.upButton.height + this.downButton.height : 0) : this.slider.width = this.width - (this._showButtons ? this.upButton.width + this.downButton.width : 0);
      this.resetButtonPosition();
    }
    resetButtonPosition() {
      this.slider.isVertical ? this.downButton.y = this.slider._y + this.slider.height : this.downButton.x = this.slider._x + this.slider.width;
    }
    measureWidth() {
      return this.slider.isVertical ? this.slider.width : 100;
    }
    measureHeight() {
      return this.slider.isVertical ? 100 : this.slider.height;
    }
    setScroll(t, e, s) {
      this.runCallLater(this._sizeChanged);
      this.slider.setSlider(t, e, s);
      this.slider.bar.visible = e > 0;
      !this._hide && this.autoHide && (this.visible = !1);
    }
    get max() {
      return this.slider.max;
    }
    set max(t) {
      this.slider.max = t;
    }
    get min() {
      return this.slider.min;
    }
    set min(t) {
      this.slider.min = t;
    }
    get value() {
      return this._value;
    }
    set value(t) {
      t !== this._value && (this._value = t, this._isElastic || (this.slider._value != t && (this.slider._value = t, this.slider.changeValue()), this._value = this.slider._value), this.event(e.Event.CHANGE), this.changeHandler && this.changeHandler.runWith(this._value));
    }
    get isVertical() {
      return this.slider.isVertical;
    }
    set isVertical(t) {
      this.slider.isVertical = t;
    }
    get sizeGrid() {
      return this.slider.sizeGrid;
    }
    set sizeGrid(t) {
      this.slider.sizeGrid = t;
    }
    get scrollSize() {
      return this._scrollSize;
    }
    set scrollSize(t) {
      this._scrollSize = t;
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.value = Number(t) : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    get thumbPercent() {
      return this._thumbPercent;
    }
    set thumbPercent(t) {
      this.runCallLater(this.changeScrollBar);
      this.runCallLater(this._sizeChanged);
      t = t >= 1 ? .99 : t;
      this._thumbPercent = t;
      this.scaleBar && (this.slider.isVertical ? this.slider.bar.height = Math.max(this.slider.height * t, i.scrollBarMinNum) : this.slider.bar.width = Math.max(this.slider.width * t, i.scrollBarMinNum));
    }
    get target() {
      return this._target;
    }
    set target(t) {
      this._target && (this._target.off(e.Event.MOUSE_WHEEL, this, this.onTargetMouseWheel), this._target.off(e.Event.MOUSE_DOWN, this, this.onTargetMouseDown));
      this._target = t;
      t && (this._mouseWheelEnable && this._target.on(e.Event.MOUSE_WHEEL, this, this.onTargetMouseWheel), this._touchScrollEnable && this._target.on(e.Event.MOUSE_DOWN, this, this.onTargetMouseDown));
    }
    get hide() {
      return this._hide;
    }
    set hide(t) {
      this._hide = t;
      this.visible = !t;
    }
    get showButtons() {
      return this._showButtons;
    }
    set showButtons(t) {
      this._showButtons = t;
      this.callLater(this.changeScrollBar);
    }
    get touchScrollEnable() {
      return this._touchScrollEnable;
    }
    set touchScrollEnable(t) {
      this._touchScrollEnable = t;
      this.target = this._target;
    }
    get mouseWheelEnable() {
      return this._mouseWheelEnable;
    }
    set mouseWheelEnable(t) {
      this._mouseWheelEnable = t;
      this.target = this._target;
    }
    onTargetMouseWheel(t) {
      this.value -= t.delta * this._scrollSize;
      this.target = this._target;
    }
    onTargetMouseDown(t) {
      this.isLockedFun && !this.isLockedFun(t) || (this.event(e.Event.END), this._clickOnly = !0, this._lastOffset = 0, this._checkElastic = !1, this._lastPoint || (this._lastPoint = new e.Point()), this._lastPoint.setTo(e.ILaya.stage.mouseX, e.ILaya.stage.mouseY), e.ILaya.timer.clear(this, this.tweenMove), e.Tween.clearTween(this), e.ILaya.stage.once(e.Event.MOUSE_UP, this, this.onStageMouseUp2), e.ILaya.stage.once(e.Event.MOUSE_OUT, this, this.onStageMouseUp2), e.ILaya.timer.frameLoop(1, this, this.loop));
    }
    startDragForce() {
      this._clickOnly = !0;
      this._lastOffset = 0;
      this._checkElastic = !1;
      this._lastPoint || (this._lastPoint = new e.Point());
      this._lastPoint.setTo(e.ILaya.stage.mouseX, e.ILaya.stage.mouseY);
      e.ILaya.timer.clear(this, this.tweenMove);
      e.Tween.clearTween(this);
      e.ILaya.stage.once(e.Event.MOUSE_UP, this, this.onStageMouseUp2);
      e.ILaya.stage.once(e.Event.MOUSE_OUT, this, this.onStageMouseUp2);
      e.ILaya.timer.frameLoop(1, this, this.loop);
    }
    cancelDragOp() {
      e.ILaya.stage.off(e.Event.MOUSE_UP, this, this.onStageMouseUp2);
      e.ILaya.stage.off(e.Event.MOUSE_OUT, this, this.onStageMouseUp2);
      e.ILaya.timer.clear(this, this.tweenMove);
      e.ILaya.timer.clear(this, this.loop);
      this._target.mouseEnabled = !0;
    }
    checkTriggers(t = !1) {
      return this.value >= 0 && this.value - this._lastOffset <= 0 && this.triggerDownDragLimit && this.triggerDownDragLimit(t) ? (this.cancelDragOp(), this.value = 0, !0) : !!(this.value <= this.max && this.value - this._lastOffset >= this.max && this.triggerUpDragLimit && this.triggerUpDragLimit(t)) && (this.cancelDragOp(), this.value = this.max, !0);
    }
    get lastOffset() {
      return this._lastOffset;
    }
    startTweenMoveForce(t) {
      this._lastOffset = t;
      e.ILaya.timer.frameLoop(1, this, this.tweenMove, [200]);
    }
    loop() {
      var t = e.ILaya.stage.mouseY;
      var s = e.ILaya.stage.mouseX;
      this._lastOffset = this.isVertical ? t - this._lastPoint.y : s - this._lastPoint.x;
      if (this._clickOnly) {
        if (!(Math.abs(this._lastOffset * (this.isVertical ? e.ILaya.stage._canvasTransform.getScaleY() : e.ILaya.stage._canvasTransform.getScaleX())) > 1)) {
          return;
        }
        this._clickOnly = !1;
        if (this.checkTriggers()) {
          return;
        }
        this._offsets || (this._offsets = []);
        this._offsets.length = 0;
        this._target.mouseEnabled = !1;
        !this.hide && this.autoHide && (this.alpha = 1, this.visible = !0);
        this.event(e.Event.START);
      } else {
        if (this.checkTriggers()) {
          return;
        }
      }
      this._offsets.push(this._lastOffset);
      this._lastPoint.x = s;
      this._lastPoint.y = t;
      0 !== this._lastOffset && (this._checkElastic || (this.elasticDistance > 0 ? this._checkElastic || 0 == this._lastOffset || (this._lastOffset > 0 && this._value <= this.min || this._lastOffset < 0 && this._value >= this.max ? (this._isElastic = !0, this._checkElastic = !0) : this._isElastic = !1) : this._checkElastic = !0), this._isElastic ? this._value <= this.min ? this._lastOffset > 0 ? this.value -= this._lastOffset * Math.max(0, 1 - (this.min - this._value) / this.elasticDistance) : (this.value -= .5 * this._lastOffset, this._value >= this.min && (this._checkElastic = !1)) : this._value >= this.max && (this._lastOffset < 0 ? this.value -= this._lastOffset * Math.max(0, 1 - (this._value - this.max) / this.elasticDistance) : (this.value -= .5 * this._lastOffset, this._value <= this.max && (this._checkElastic = !1))) : this.value -= this._lastOffset);
    }
    onStageMouseUp2(t) {
      e.ILaya.stage.off(e.Event.MOUSE_UP, this, this.onStageMouseUp2);
      e.ILaya.stage.off(e.Event.MOUSE_OUT, this, this.onStageMouseUp2);
      e.ILaya.timer.clear(this, this.loop);
      if (!(this._clickOnly && this._value >= this.min && this._value <= this.max)) {
        this._target.mouseEnabled = !0;
        if (this._isElastic) {
          this._value < this.min ? e.Tween.to(this, {
            value: this.min
          }, this.elasticBackTime, e.Ease.sineOut, e.Handler.create(this, this.elasticOver)) : this._value > this.max && e.Tween.to(this, {
            value: this.max
          }, this.elasticBackTime, e.Ease.sineOut, e.Handler.create(this, this.elasticOver));
        } else {
          if (!this._offsets) {
            return;
          }
          this._offsets.length < 1 && (this._offsets[0] = this.isVertical ? e.ILaya.stage.mouseY - this._lastPoint.y : e.ILaya.stage.mouseX - this._lastPoint.x);
          for (var s = 0, i = Math.min(this._offsets.length, 3), h = 0; h < i; h++) {
            s += this._offsets[this._offsets.length - 1 - h];
          }
          this._lastOffset = s / i;
          if ((s = Math.abs(this._lastOffset)) < 2) {
            return void this.event(e.Event.END);
          }
          s > 250 && (this._lastOffset = this._lastOffset > 0 ? 250 : -250);
          var a = Math.round(Math.abs(this.elasticDistance * (this._lastOffset / 150)));
          e.ILaya.timer.frameLoop(1, this, this.tweenMove, [a]);
        }
      }
    }
    elasticOver() {
      this._isElastic = !1;
      !this.hide && this.autoHide && e.Tween.to(this, {
        alpha: 0
      }, 500);
      this.event(e.Event.END);
    }
    tweenMove(t) {
      var s;
      if ((this._lastOffset *= this.rollRatio, !this.checkTriggers(!0)) && (t > 0 && (this._lastOffset > 0 && this.value <= this.min ? (this._isElastic = !0, s = .5 * -(this.min - t - this.value), this._lastOffset > s && (this._lastOffset = s)) : this._lastOffset < 0 && this.value >= this.max && (this._isElastic = !0, s = .5 * -(this.max + t - this.value), this._lastOffset < s && (this._lastOffset = s))), this.value -= this._lastOffset, Math.abs(this._lastOffset) < .1)) {
        e.ILaya.timer.clear(this, this.tweenMove);
        if (this._isElastic) {
          return void (this._value < this.min ? e.Tween.to(this, {
            value: this.min
          }, this.elasticBackTime, e.Ease.sineOut, e.Handler.create(this, this.elasticOver)) : this._value > this.max ? e.Tween.to(this, {
            value: this.max
          }, this.elasticBackTime, e.Ease.sineOut, e.Handler.create(this, this.elasticOver)) : this.elasticOver());
        }
        this.event(e.Event.END);
        !this.hide && this.autoHide && e.Tween.to(this, {
          alpha: 0
        }, 500);
      }
    }
    stopScroll() {
      this.onStageMouseUp2(null);
      e.ILaya.timer.clear(this, this.tweenMove);
      e.Tween.clearTween(this);
    }
    get tick() {
      return this.slider.tick;
    }
    set tick(t) {
      this.slider.tick = t;
    }
  }
  e.ILaya.regClass(m);
  e.ClassUtils.regClass("laya.ui.ScrollBar", m);
  e.ClassUtils.regClass("Laya.ScrollBar", m);
  class f extends m {}
  e.ILaya.regClass(f);
  e.ClassUtils.regClass("laya.ui.VScrollBar", f);
  e.ClassUtils.regClass("Laya.VScrollBar", f);
  class S extends m {
    initialize() {
      super.initialize();
      this.slider.isVertical = !1;
    }
  }
  e.ILaya.regClass(S);
  e.ClassUtils.regClass("laya.ui.HScrollBar", S);
  e.ClassUtils.regClass("Laya.HScrollBar", S);
  class b extends c {
    constructor() {
      super(...arguments);
      this.selectEnable = !1;
      this.totalPage = 0;
      this._$componentType = "List";
      this._repeatX = 0;
      this._repeatY = 0;
      this._repeatX2 = 0;
      this._repeatY2 = 0;
      this._spaceX = 0;
      this._spaceY = 0;
      this._cells = [];
      this._startIndex = 0;
      this._selectedIndex = -1;
      this._page = 0;
      this._isVertical = !0;
      this._cellSize = 20;
      this._cellOffset = 0;
      this._createdLine = 0;
      this._offset = new e.Point();
      this._usedCache = null;
      this._elasticEnabled = !1;
      this._preLen = 0;
    }
    destroy(t = !0) {
      this._content && this._content.destroy(t);
      this._scrollBar && this._scrollBar.destroy(t);
      super.destroy(t);
      this._content = null;
      this._scrollBar = null;
      this._itemRender = null;
      this._cells = null;
      this._array = null;
      this.selectHandler = this.renderHandler = this.mouseHandler = null;
    }
    createChildren() {
      this.addChild(this._content = new c());
    }
    set cacheAs(t) {
      super.cacheAs = t;
      this._scrollBar && (this._usedCache = null, "none" !== t ? this._scrollBar.on(e.Event.START, this, this.onScrollStart) : this._scrollBar.off(e.Event.START, this, this.onScrollStart));
    }
    get cacheAs() {
      return super.cacheAs;
    }
    onScrollStart() {
      this._usedCache || (this._usedCache = super.cacheAs);
      super.cacheAs = "none";
      this._scrollBar.once(e.Event.END, this, this.onScrollEnd);
    }
    onScrollEnd() {
      super.cacheAs = this._usedCache;
    }
    get content() {
      return this._content;
    }
    get vScrollBarSkin() {
      return this._scrollBar ? this._scrollBar.skin : null;
    }
    set vScrollBarSkin(t) {
      this._removePreScrollBar();
      var e = new f();
      e.name = "scrollBar";
      e.right = 0;
      e.skin = t;
      e.elasticDistance = this._elasticEnabled ? 200 : 0;
      this.scrollBar = e;
      this.addChild(e);
      this._setCellChanged();
    }
    _removePreScrollBar() {
      var t = this.removeChildByName("scrollBar");
      t && t.destroy(!0);
    }
    get hScrollBarSkin() {
      return this._scrollBar ? this._scrollBar.skin : null;
    }
    set hScrollBarSkin(t) {
      this._removePreScrollBar();
      var e = new S();
      e.name = "scrollBar";
      e.bottom = 0;
      e.skin = t;
      e.elasticDistance = this._elasticEnabled ? 200 : 0;
      this.scrollBar = e;
      this.addChild(e);
      this._setCellChanged();
    }
    get scrollBar() {
      return this._scrollBar;
    }
    set scrollBar(t) {
      this._scrollBar != t && (this._scrollBar = t, t && (this._isVertical = this._scrollBar.isVertical, this.addChild(this._scrollBar), this._scrollBar.on(e.Event.CHANGE, this, this.onScrollBarChange)));
    }
    get itemRender() {
      return this._itemRender;
    }
    set itemRender(t) {
      if (this._itemRender != t) {
        this._itemRender = t;
        for (var e = this._cells.length - 1; e > -1; e--) {
          this._cells[e].destroy();
        }
        this._cells.length = 0;
        this._setCellChanged();
      }
    }
    set width(t) {
      t != this._width && (super.width = t, this._setCellChanged());
    }
    get width() {
      return super.width;
    }
    set height(t) {
      t != this._height && (super.height = t, this._setCellChanged());
    }
    get height() {
      return super.height;
    }
    get repeatX() {
      return this._repeatX > 0 ? this._repeatX : this._repeatX2 > 0 ? this._repeatX2 : 1;
    }
    set repeatX(t) {
      this._repeatX = t;
      this._setCellChanged();
    }
    get repeatY() {
      return this._repeatY > 0 ? this._repeatY : this._repeatY2 > 0 ? this._repeatY2 : 1;
    }
    set repeatY(t) {
      this._repeatY = t;
      this._setCellChanged();
    }
    get spaceX() {
      return this._spaceX;
    }
    set spaceX(t) {
      this._spaceX = t;
      this._setCellChanged();
    }
    get spaceY() {
      return this._spaceY;
    }
    set spaceY(t) {
      this._spaceY = t;
      this._setCellChanged();
    }
    changeCells() {
      this._cellChanged = !1;
      if (this._itemRender) {
        this.scrollBar = this.getChildByName("scrollBar");
        var t = this._getOneCell();
        var e = t.width + this._spaceX || 1;
        var s = t.height + this._spaceY || 1;
        this._width > 0 && (this._repeatX2 = this._isVertical ? Math.round(this._width / e) : Math.ceil(this._width / e));
        this._height > 0 && (this._repeatY2 = this._isVertical ? Math.ceil(this._height / s) : Math.round(this._height / s));
        var i = this._width ? this._width : e * this.repeatX - this._spaceX;
        var h = this._height ? this._height : s * this.repeatY - this._spaceY;
        this._cellSize = this._isVertical ? s : e;
        this._cellOffset = this._isVertical ? s * Math.max(this._repeatY2, this._repeatY) - h - this._spaceY : e * Math.max(this._repeatX2, this._repeatX) - i - this._spaceX;
        this._isVertical && this.vScrollBarSkin ? this._scrollBar.height = h : !this._isVertical && this.hScrollBarSkin && (this._scrollBar.width = i);
        this.setContentSize(i, h);
        var a = this._isVertical ? this.repeatX : this.repeatY;
        var r = (this._isVertical ? this.repeatY : this.repeatX) + (this._scrollBar ? 1 : 0);
        this._createItems(0, a, r);
        this._createdLine = r;
        this._array && (this.array = this._array, this.runCallLater(this.renderItems));
      }
    }
    _getOneCell() {
      if (0 === this._cells.length) {
        var t = this.createItem();
        this._offset.setTo(t._x, t._y);
        if (this.cacheContent) {
          return t;
        }
        this._cells.push(t);
      }
      return this._cells[0];
    }
    _createItems(t, e, s) {
      var i = this._content;
      var h = this._getOneCell();
      var a = h.width + this._spaceX;
      var r = h.height + this._spaceY;
      if (this.cacheContent) {
        var l = new c();
        l.cacheAs = "normal";
        l.pos((this._isVertical ? 0 : t) * a, (this._isVertical ? t : 0) * r);
        this._content.addChild(l);
        i = l;
      } else {
        for (var n = [], o = this._cells.length - 1; o > -1; o--) {
          var _ = this._cells[o];
          _.removeSelf();
          n.push(_);
        }
        this._cells.length = 0;
      }
      for (var d = t; d < s; d++) {
        for (var u = 0; u < e; u++) {
          (h = n && n.length ? n.pop() : this.createItem()).x = (this._isVertical ? u : d) * a - i._x;
          h.y = (this._isVertical ? d : u) * r - i._y;
          h.name = "item" + (d * e + u);
          i.addChild(h);
          this.addCell(h);
        }
      }
    }
    createItem() {
      var t = [];
      if ("function" == typeof this._itemRender) {
        var s = new this._itemRender();
      } else {
        s = e.SceneUtils.createComp(this._itemRender, null, null, t);
      }
      if (0 == t.length && s._watchMap) {
        var i = s._watchMap;
        for (var h in i) {
          for (var a = i[h], r = 0; r < a.length; r++) {
            var l = a[r];
            t.push(l.comp, l.prop, l.value);
          }
        }
      }
      t.length && (s._$bindData = t);
      return s;
    }
    addCell(t) {
      t.on(e.Event.CLICK, this, this.onCellMouse);
      t.on(e.Event.RIGHT_CLICK, this, this.onCellMouse);
      t.on(e.Event.MOUSE_OVER, this, this.onCellMouse);
      t.on(e.Event.MOUSE_OUT, this, this.onCellMouse);
      t.on(e.Event.MOUSE_DOWN, this, this.onCellMouse);
      t.on(e.Event.MOUSE_UP, this, this.onCellMouse);
      this._cells.push(t);
    }
    _afterInited() {
      this.initItems();
    }
    initItems() {
      if (!this._itemRender && null != this.getChildByName("item0")) {
        var t;
        this.repeatX = 1;
        t = 0;
        for (var e = 0; e < 1e4; e++) {
          var s = this.getChildByName("item" + e);
          if (!s) {
            break;
          }
          this.addCell(s);
          t++;
        }
        this.repeatY = t;
      }
    }
    setContentSize(t, s) {
      this._content.width = t;
      this._content.height = s;
      (this._scrollBar || 0 != this._offset.x || 0 != this._offset.y) && (this._content._style.scrollRect || (this._content.scrollRect = e.Rectangle.create()), this._content._style.scrollRect.setTo(-this._offset.x, -this._offset.y, t, s), this._content.scrollRect = this._content.scrollRect);
      this.event(e.Event.RESIZE);
    }
    onCellMouse(t) {
      t.type === e.Event.MOUSE_DOWN && (this._isMoved = !1);
      var s = t.currentTarget;
      var i = this._startIndex + this._cells.indexOf(s);
      i < 0 || (t.type === e.Event.CLICK || t.type === e.Event.RIGHT_CLICK ? this.selectEnable && !this._isMoved ? this.selectedIndex = i : this.changeCellState(s, !0, 0) : t.type !== e.Event.MOUSE_OVER && t.type !== e.Event.MOUSE_OUT || this._selectedIndex === i || this.changeCellState(s, t.type === e.Event.MOUSE_OVER, 0), this.mouseHandler && this.mouseHandler.runWith([t, i]));
    }
    changeCellState(t, e, s) {
      var i = t.getChildByName("selectBox");
      i && (this.selectEnable = !0, i.visible = e, i.index = s);
    }
    _sizeChanged() {
      super._sizeChanged();
      this.setContentSize(this.width, this.height);
      this._scrollBar && this.callLater(this.onScrollBarChange);
    }
    onScrollBarChange(t = null) {
      this.runCallLater(this.changeCells);
      var e = this._scrollBar.value;
      var s = this._isVertical ? this.repeatX : this.repeatY;
      var i = this._isVertical ? this.repeatY : this.repeatX;
      var h = Math.floor(e / this._cellSize);
      if (this.cacheContent) {
        r = i + 1;
        this._createdLine - h < r && (this._createItems(this._createdLine, s, this._createdLine + r), this.renderItems(this._createdLine * s, 0), this._createdLine += r);
      } else {
        var a = h * s;
        var r = 0;
        if (a > this._startIndex) {
          r = a - this._startIndex;
          var l = !0;
          var n = this._startIndex + s * (i + 1);
          this._isMoved = !0;
        } else {
          a < this._startIndex && (r = this._startIndex - a, l = !1, n = this._startIndex - 1, this._isMoved = !0);
        }
        for (var o = 0; o < r; o++) {
          if (l) {
            var _ = this._cells.shift();
            this._cells[this._cells.length] = _;
            var c = n + o;
          } else {
            _ = this._cells.pop();
            this._cells.unshift(_);
            c = n - o;
          }
          var d = Math.floor(c / s) * this._cellSize;
          this._isVertical ? _.y = d : _.x = d;
          this.renderItem(_, c);
        }
        this._startIndex = a;
        this.changeSelectStatus();
      }
      var u = this._content._style.scrollRect;
      this._isVertical ? (u.y = e - this._offset.y, u.x = -this._offset.x) : (u.y = -this._offset.y, u.x = e - this._offset.x);
      this._content.scrollRect = u;
    }
    posCell(t, e) {
      if (this._scrollBar) {
        var s = this._isVertical ? this.repeatX : this.repeatY;
        this._isVertical ? this.repeatY : this.repeatX;
        var i = Math.floor(e / s) * this._cellSize;
        this._isVertical ? t._y = i : t.x = i;
      }
    }
    get selectedIndex() {
      return this._selectedIndex;
    }
    set selectedIndex(t) {
      this._selectedIndex != t && (this._selectedIndex = t, this.changeSelectStatus(), this.event(e.Event.CHANGE), this.selectHandler && this.selectHandler.runWith(t), this.startIndex = this._startIndex);
    }
    changeSelectStatus() {
      for (var t = 0, e = this._cells.length; t < e; t++) {
        this.changeCellState(this._cells[t], this._selectedIndex === this._startIndex + t, 1);
      }
    }
    get selectedItem() {
      return -1 != this._selectedIndex ? this._array[this._selectedIndex] : null;
    }
    set selectedItem(t) {
      this.selectedIndex = this._array.indexOf(t);
    }
    get selection() {
      return this.getCell(this._selectedIndex);
    }
    set selection(t) {
      this.selectedIndex = this._startIndex + this._cells.indexOf(t);
    }
    get startIndex() {
      return this._startIndex;
    }
    set startIndex(t) {
      this._startIndex = t > 0 ? t : 0;
      this.callLater(this.renderItems);
    }
    renderItems(t = 0, e = 0) {
      for (var s = t, i = e || this._cells.length; s < i; s++) {
        this.renderItem(this._cells[s], this._startIndex + s);
      }
      this.changeSelectStatus();
    }
    renderItem(t, s) {
      this._array && s >= 0 && s < this._array.length ? (t.visible = !0, t._$bindData ? (t._dataSource = this._array[s], this._bindData(t, this._array[s])) : t.dataSource = this._array[s], this.cacheContent || this.posCell(t, s), this.hasListener(e.Event.RENDER) && this.event(e.Event.RENDER, [t, s]), this.renderHandler && this.renderHandler.runWith([t, s])) : (t.visible = !1, t.dataSource = null);
    }
    _bindData(t, e) {
      for (var s = t._$bindData, i = 0, h = s.length; i < h; i++) {
        var a = s[i++];
        var r = s[i++];
        var n = s[i];
        var o = l.getBindFun(n);
        a[r] = o.call(this, e);
      }
    }
    get array() {
      return this._array;
    }
    set array(t) {
      this.runCallLater(this.changeCells);
      this._array = t || [];
      this._preLen = this._array.length;
      var e = this._array.length;
      this.totalPage = Math.ceil(e / (this.repeatX * this.repeatY));
      this._selectedIndex = this._selectedIndex < e ? this._selectedIndex : e - 1;
      this.startIndex = this._startIndex;
      if (this._scrollBar) {
        this._scrollBar.stopScroll();
        var s = this._isVertical ? this.repeatX : this.repeatY;
        var i = this._isVertical ? this.repeatY : this.repeatX;
        var h = Math.ceil(e / s);
        (this._cellOffset > 0 ? this.totalPage + 1 : this.totalPage) > 1 && h >= i ? (this._scrollBar.scrollSize = this._cellSize, this._scrollBar.thumbPercent = i / h, this._scrollBar.setScroll(0, (h - i) * this._cellSize + this._cellOffset, this._scrollBar.value), this._scrollBar.target = this._content) : (this._scrollBar.setScroll(0, 0, 0), this._scrollBar.target = this._content);
      }
    }
    updateArray(t) {
      var e;
      this._array = t;
      this._array && ((e = this._preLen - this._startIndex) >= 0 && this.renderItems(e), this._preLen = this._array.length);
      if (this._scrollBar) {
        var s = t.length;
        var i = this._isVertical ? this.repeatX : this.repeatY;
        var h = this._isVertical ? this.repeatY : this.repeatX;
        var a = Math.ceil(s / i);
        a >= h && (this._scrollBar.thumbPercent = h / a, this._scrollBar.slider._max = (a - h) * this._cellSize + this._cellOffset);
      }
    }
    get page() {
      return this._page;
    }
    set page(t) {
      this._page = t;
      this._array && (this._page = t > 0 ? t : 0, this._page = this._page < this.totalPage ? this._page : this.totalPage - 1, this.startIndex = this._page * this.repeatX * this.repeatY);
    }
    get length() {
      return this._array ? this._array.length : 0;
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.selectedIndex = parseInt(t) : t instanceof Array ? this.array = t : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    get cells() {
      this.runCallLater(this.changeCells);
      return this._cells;
    }
    get elasticEnabled() {
      return this._elasticEnabled;
    }
    set elasticEnabled(t) {
      this._elasticEnabled = t;
      this._scrollBar && (this._scrollBar.elasticDistance = t ? 200 : 0);
    }
    refresh() {
      this.array = this._array;
    }
    getItem(t) {
      return t > -1 && t < this._array.length ? this._array[t] : null;
    }
    changeItem(t, e) {
      t > -1 && t < this._array.length && (this._array[t] = e, t >= this._startIndex && t < this._startIndex + this._cells.length && this.renderItem(this.getCell(t), t));
    }
    setItem(t, e) {
      this.changeItem(t, e);
    }
    addItem(t) {
      this._array.push(t);
      this.array = this._array;
    }
    addItemAt(t, e) {
      this._array.splice(e, 0, t);
      this.array = this._array;
    }
    deleteItem(t) {
      this._array.splice(t, 1);
      this.array = this._array;
    }
    getCell(t) {
      this.runCallLater(this.changeCells);
      return t > -1 && this._cells ? this._cells[(t - this._startIndex) % this._cells.length] : null;
    }
    scrollTo(t) {
      if (this._scrollBar) {
        var e = this._isVertical ? this.repeatX : this.repeatY;
        this._scrollBar.value = Math.floor(t / e) * this._cellSize;
      } else {
        this.startIndex = t;
      }
    }
    tweenTo(t, s = 200, i = null) {
      if (this._scrollBar) {
        this._scrollBar.stopScroll();
        var h = this._isVertical ? this.repeatX : this.repeatY;
        e.Tween.to(this._scrollBar, {
          value: Math.floor(t / h) * this._cellSize
        }, s, null, i, 0, !0);
      } else {
        this.startIndex = t;
        i && i.run();
      }
    }
    _setCellChanged() {
      this._cellChanged || (this._cellChanged = !0, this.callLater(this.changeCells));
    }
    commitMeasure() {
      this.runCallLater(this.changeCells);
    }
  }
  e.ILaya.regClass(b);
  e.ClassUtils.regClass("laya.ui.List", b);
  e.ClassUtils.regClass("Laya.List", b);
  class y extends n {
    constructor(t = null, e = null) {
      super();
      this._visibleNum = 6;
      this._itemColors = i.comboBoxItemColors;
      this._itemSize = 12;
      this._labels = [];
      this._selectedIndex = -1;
      this.itemRender = null;
      this.skin = t;
      this.labels = e;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._button && this._button.destroy(t);
      this._list && this._list.destroy(t);
      this._button = null;
      this._list = null;
      this._itemColors = null;
      this._labels = null;
      this._selectHandler = null;
    }
    createChildren() {
      this.addChild(this._button = new d());
      this._button.text.align = "left";
      this._button.labelPadding = "0,0,0,5";
      this._button.on(e.Event.MOUSE_DOWN, this, this.onButtonMouseDown);
    }
    _createList() {
      this._list = new b();
      this._scrollBarSkin && (this._list.vScrollBarSkin = this._scrollBarSkin);
      this._setListEvent(this._list);
    }
    _setListEvent(t) {
      this._list.selectEnable = !0;
      this._list.on(e.Event.MOUSE_DOWN, this, this.onListDown);
      this._list.mouseHandler = e.Handler.create(this, this.onlistItemMouse, null, !1);
      this._list.scrollBar && this._list.scrollBar.on(e.Event.MOUSE_DOWN, this, this.onScrollBarDown);
    }
    onListDown(t) {
      t.stopPropagation();
    }
    onScrollBarDown(t) {
      t.stopPropagation();
    }
    onButtonMouseDown(t) {
      this.callLater(this.switchTo, [!this._isOpen]);
    }
    get skin() {
      return this._button.skin;
    }
    set skin(t) {
      this._button.skin != t && (this._button.skin = t, this._listChanged = !0);
    }
    measureWidth() {
      return this._button.width;
    }
    measureHeight() {
      return this._button.height;
    }
    changeList() {
      this._listChanged = !1;
      var t = this.width - 2;
      var e = this._itemColors[2];
      this._itemHeight = this._itemSize + 6;
      this._list.itemRender = this.itemRender || {
        type: "Box",
        child: [{
          type: "Label",
          props: {
            name: "label",
            x: 1,
            padding: "3,3,3,3",
            width: t,
            height: this._itemHeight,
            fontSize: this._itemSize,
            color: e
          }
        }]
      };
      this._list.repeatY = this._visibleNum;
      this._list.refresh();
    }
    onlistItemMouse(t, s) {
      var i = t.type;
      if (i === e.Event.MOUSE_OVER || i === e.Event.MOUSE_OUT) {
        if (this._isCustomList) {
          return;
        }
        var h = this._list.getCell(s);
        if (!h) {
          return;
        }
        var a = h.getChildByName("label");
        a && (i === e.Event.ROLL_OVER ? (a.bgColor = this._itemColors[0], a.color = this._itemColors[1]) : (a.bgColor = null, a.color = this._itemColors[2]));
      } else {
        i === e.Event.CLICK && (this.selectedIndex = s, this.isOpen = !1);
      }
    }
    switchTo(t) {
      this.isOpen = t;
    }
    changeOpen() {
      this.isOpen = !this._isOpen;
    }
    set width(t) {
      super.width = t;
      this._button.width = this._width;
      this._itemChanged = !0;
      this._listChanged = !0;
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._button.height = this._height;
    }
    get height() {
      return super.height;
    }
    get labels() {
      return this._labels.join(",");
    }
    set labels(t) {
      this._labels.length > 0 && (this.selectedIndex = -1);
      t ? this._labels = t.split(",") : this._labels.length = 0;
      this._itemChanged = !0;
    }
    changeItem() {
      this._itemChanged = !1;
      this._listHeight = this._labels.length > 0 ? Math.min(this._visibleNum, this._labels.length) * this._itemHeight : this._itemHeight;
      if (!this._isCustomList) {
        var t = this._list.graphics;
        t.clear(!0);
        t.drawRect(0, 0, this.width - 1, this._listHeight, this._itemColors[4], this._itemColors[3]);
      }
      var e = this._list.array || [];
      e.length = 0;
      for (var s = 0, i = this._labels.length; s < i; s++) {
        e.push({
          label: this._labels[s]
        });
      }
      this._list.height = this._listHeight;
      this._list.array = e;
    }
    get selectedIndex() {
      return this._selectedIndex;
    }
    set selectedIndex(t) {
      this._selectedIndex != t && (this._selectedIndex = t, this._labels.length > 0 ? this.changeSelected() : this.callLater(this.changeSelected), this.event(e.Event.CHANGE, [e.Event.EMPTY.setTo(e.Event.CHANGE, this, this)]), this._selectHandler && this._selectHandler.runWith(this._selectedIndex));
    }
    changeSelected() {
      this._button.label = this.selectedLabel;
    }
    get selectHandler() {
      return this._selectHandler;
    }
    set selectHandler(t) {
      this._selectHandler = t;
    }
    get selectedLabel() {
      return this._selectedIndex > -1 && this._selectedIndex < this._labels.length ? this._labels[this._selectedIndex] : null;
    }
    set selectedLabel(t) {
      this.selectedIndex = this._labels.indexOf(t);
    }
    get visibleNum() {
      return this._visibleNum;
    }
    set visibleNum(t) {
      this._visibleNum = t;
      this._listChanged = !0;
    }
    get itemColors() {
      return String(this._itemColors);
    }
    set itemColors(t) {
      this._itemColors = l.fillArray(this._itemColors, t, String);
      this._listChanged = !0;
    }
    get itemSize() {
      return this._itemSize;
    }
    set itemSize(t) {
      this._itemSize = t;
      this._listChanged = !0;
    }
    get isOpen() {
      return this._isOpen;
    }
    set isOpen(t) {
      if (this._isOpen != t) {
        this._isOpen = t;
        this._button.selected = this._isOpen;
        if (this._isOpen) {
          this._list || this._createList();
          this._listChanged && !this._isCustomList && this.changeList();
          this._itemChanged && this.changeItem();
          var s = this.localToGlobal(e.Point.TEMP.setTo(0, 0));
          var i = s.y + this._button.height;
          i = i + this._listHeight <= e.ILaya.stage.height ? i : s.y - this._listHeight;
          this._list.pos(s.x, i);
          this._list.zOrder = 1001;
          e.ILaya.stage.addChild(this._list);
          e.ILaya.stage.once(e.Event.MOUSE_DOWN, this, this.removeList);
          e.ILaya.stage.on(e.Event.MOUSE_WHEEL, this, this._onStageMouseWheel);
          this._list.selectedIndex = this._selectedIndex;
        } else {
          this._list && this._list.removeSelf();
        }
      }
    }
    _onStageMouseWheel(t) {
      this._list && !this._list.contains(t.target) && this.removeList(null);
    }
    removeList(t) {
      e.ILaya.stage.off(e.Event.MOUSE_DOWN, this, this.removeList);
      e.ILaya.stage.off(e.Event.MOUSE_WHEEL, this, this._onStageMouseWheel);
      this.isOpen = !1;
    }
    get scrollBarSkin() {
      return this._scrollBarSkin;
    }
    set scrollBarSkin(t) {
      this._scrollBarSkin = t;
    }
    get sizeGrid() {
      return this._button.sizeGrid;
    }
    set sizeGrid(t) {
      this._button.sizeGrid = t;
    }
    get scrollBar() {
      return this.list.scrollBar;
    }
    get button() {
      return this._button;
    }
    get list() {
      this._list || this._createList();
      return this._list;
    }
    set list(t) {
      t && (t.removeSelf(), this._isCustomList = !0, this._list = t, this._setListEvent(t), this._itemHeight = t.getCell(0).height + t.spaceY);
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.selectedIndex = parseInt(t) : t instanceof Array ? this.labels = t.join(",") : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    get labelColors() {
      return this._button.labelColors;
    }
    set labelColors(t) {
      this._button.labelColors != t && (this._button.labelColors = t);
    }
    get labelPadding() {
      return this._button.text.padding.join(",");
    }
    set labelPadding(t) {
      this._button.text.padding = l.fillArray(i.labelPadding, t, Number);
    }
    get labelSize() {
      return this._button.text.fontSize;
    }
    set labelSize(t) {
      this._button.text.fontSize = t;
    }
    get labelBold() {
      return this._button.text.bold;
    }
    set labelBold(t) {
      this._button.text.bold = t;
    }
    get labelFont() {
      return this._button.text.font;
    }
    set labelFont(t) {
      this._button.text.font = t;
    }
    get stateNum() {
      return this._button.stateNum;
    }
    set stateNum(t) {
      this._button.stateNum = t;
    }
  }
  e.ILaya.regClass(y);
  e.ClassUtils.regClass("laya.ui.ComboBox", y);
  e.ClassUtils.regClass("Laya.ComboBox", y);
  class w extends n {
    constructor(t = null) {
      super();
      this._value = .5;
      this.skin = t;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._bg && this._bg.destroy(t);
      this._bar && this._bar.destroy(t);
      this._bg = this._bar = null;
      this.changeHandler = null;
    }
    createChildren() {
      this.addChild(this._bg = new o());
      this.addChild(this._bar = new o());
      this._bar._bitmap.autoCacheCmd = !1;
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      this._skin != t && (this._skin = t, this._skin && !e.Loader.getRes(this._skin) ? e.ILaya.loader.load(this._skin, e.Handler.create(this, this._skinLoaded), null, e.Loader.IMAGE, 1) : this._skinLoaded());
    }
    _skinLoaded() {
      this._bg.skin = this._skin;
      this._bar.skin = this._skin.replace(".png", "$bar.png");
      this.callLater(this.changeValue);
      this._sizeChanged();
      this.event(e.Event.LOADED);
    }
    measureWidth() {
      return this._bg.width;
    }
    measureHeight() {
      return this._bg.height;
    }
    get value() {
      return this._value;
    }
    set value(t) {
      this._value != t && (t = t > 1 ? 1 : t < 0 ? 0 : t, this._value = t, this.callLater(this.changeValue), this.event(e.Event.CHANGE), this.changeHandler && this.changeHandler.runWith(t));
    }
    changeValue() {
      if (this.sizeGrid) {
        var t = this.sizeGrid.split(",");
        var e = Number(t[3]);
        var s = Number(t[1]);
        var i = (this.width - e - s) * this._value;
        this._bar.width = e + s + i;
        this._bar.visible = this._bar.width > e + s;
      } else {
        this._bar.width = this.width * this._value;
      }
    }
    get bar() {
      return this._bar;
    }
    get bg() {
      return this._bg;
    }
    get sizeGrid() {
      return this._bg.sizeGrid;
    }
    set sizeGrid(t) {
      this._bg.sizeGrid = this._bar.sizeGrid = t;
    }
    set width(t) {
      super.width = t;
      this._bg.width = this._width;
      this.callLater(this.changeValue);
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._bg.height = this._height;
      this._bar.height = this._height;
    }
    get height() {
      return super.height;
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.value = Number(t) : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
  }
  e.ILaya.regClass(w);
  e.ClassUtils.regClass("laya.ui.ProgressBar", w);
  e.ClassUtils.regClass("Laya.ProgressBar", w);
  class x extends d {
    constructor(t = null, e = "") {
      super(t, e);
      this.toggle = !1;
      this._autoSize = !1;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._value = null;
    }
    preinitialize() {
      super.preinitialize();
      this.toggle = !1;
      this._autoSize = !1;
    }
    initialize() {
      super.initialize();
      this.createText();
      this._text.align = "left";
      this._text.valign = "top";
      this._text.width = 0;
      this.on(e.Event.CLICK, this, this.onClick);
    }
    onClick(t) {
      this.selected = !0;
    }
    get value() {
      return null != this._value ? this._value : this.label;
    }
    set value(t) {
      this._value = t;
    }
  }
  e.ILaya.regClass(x);
  e.ClassUtils.regClass("laya.ui.Radio", x);
  e.ClassUtils.regClass("Laya.Radio", x);
  class L extends c {
    constructor(t = null, e = null) {
      super();
      this._selectedIndex = -1;
      this._direction = "horizontal";
      this._space = 0;
      this.skin = e;
      this.labels = t;
    }
    preinitialize() {
      this.mouseEnabled = !0;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._items && (this._items.length = 0);
      this._items = null;
      this.selectHandler = null;
    }
    addItem(t, e = !0) {
      var s = t;
      var i = this._items.length;
      s.name = "item" + i;
      this.addChild(s);
      this.initItems();
      if (e && i > 0) {
        var h = this._items[i - 1];
        "horizontal" == this._direction ? s.x = h._x + h.width + this._space : s.y = h._y + h.height + this._space;
      } else {
        e && (s.x = 0, s.y = 0);
      }
      return i;
    }
    delItem(t, e = !0) {
      var s = this._items.indexOf(t);
      if (-1 != s) {
        var i;
        var h = t;
        this.removeChild(h);
        for (var a = s + 1, r = this._items.length; a < r; a++) {
          var l = this._items[a];
          l.name = "item" + (a - 1);
          e && ("horizontal" == this._direction ? l.x -= h.width + this._space : l.y -= h.height + this._space);
        }
        this.initItems();
        if (this._selectedIndex > -1) {
          i = this._selectedIndex < this._items.length ? this._selectedIndex : this._selectedIndex - 1;
          this._selectedIndex = -1;
          this.selectedIndex = i;
        }
      }
    }
    _afterInited() {
      this.initItems();
    }
    initItems() {
      this._items || (this._items = []);
      this._items.length = 0;
      for (var t = 0; t < 1e4; t++) {
        var s = this.getChildByName("item" + t);
        if (null == s) {
          break;
        }
        this._items.push(s);
        s.selected = t === this._selectedIndex;
        s.clickHandler = e.Handler.create(this, this.itemClick, [t], !1);
      }
    }
    itemClick(t) {
      this.selectedIndex = t;
    }
    get selectedIndex() {
      return this._selectedIndex;
    }
    set selectedIndex(t) {
      this._selectedIndex != t && (this.setSelect(this._selectedIndex, !1), this._selectedIndex = t, this.setSelect(t, !0), this.event(e.Event.CHANGE), this.selectHandler && this.selectHandler.runWith(this._selectedIndex));
    }
    setSelect(t, e) {
      this._items && t > -1 && t < this._items.length && (this._items[t].selected = e);
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      this._skin != t && (this._skin = t, this._skin && !e.Loader.getRes(this._skin) ? e.ILaya.loader.load(this._skin, e.Handler.create(this, this._skinLoaded), null, e.Loader.IMAGE, 1) : this._skinLoaded());
    }
    _skinLoaded() {
      this._setLabelChanged();
      this.event(e.Event.LOADED);
    }
    get labels() {
      return this._labels;
    }
    set labels(t) {
      if (this._labels != t) {
        this._labels = t;
        this.removeChildren();
        this._setLabelChanged();
        if (this._labels) {
          for (var e = this._labels.split(","), s = 0, i = e.length; s < i; s++) {
            var h = this.createItem(this._skin, e[s]);
            h.name = "item" + s;
            this.addChild(h);
          }
        }
        this.initItems();
      }
    }
    createItem(t, e) {
      return null;
    }
    get labelColors() {
      return this._labelColors;
    }
    set labelColors(t) {
      this._labelColors != t && (this._labelColors = t, this._setLabelChanged());
    }
    get labelStroke() {
      return this._labelStroke;
    }
    set labelStroke(t) {
      this._labelStroke != t && (this._labelStroke = t, this._setLabelChanged());
    }
    get labelStrokeColor() {
      return this._labelStrokeColor;
    }
    set labelStrokeColor(t) {
      this._labelStrokeColor != t && (this._labelStrokeColor = t, this._setLabelChanged());
    }
    get strokeColors() {
      return this._strokeColors;
    }
    set strokeColors(t) {
      this._strokeColors != t && (this._strokeColors = t, this._setLabelChanged());
    }
    get labelSize() {
      return this._labelSize;
    }
    set labelSize(t) {
      this._labelSize != t && (this._labelSize = t, this._setLabelChanged());
    }
    get stateNum() {
      return this._stateNum;
    }
    set stateNum(t) {
      this._stateNum != t && (this._stateNum = t, this._setLabelChanged());
    }
    get labelBold() {
      return this._labelBold;
    }
    set labelBold(t) {
      this._labelBold != t && (this._labelBold = t, this._setLabelChanged());
    }
    get labelFont() {
      return this._labelFont;
    }
    set labelFont(t) {
      this._labelFont != t && (this._labelFont = t, this._setLabelChanged());
    }
    get labelPadding() {
      return this._labelPadding;
    }
    set labelPadding(t) {
      this._labelPadding != t && (this._labelPadding = t, this._setLabelChanged());
    }
    get direction() {
      return this._direction;
    }
    set direction(t) {
      this._direction = t;
      this._setLabelChanged();
    }
    get space() {
      return this._space;
    }
    set space(t) {
      this._space = t;
      this._setLabelChanged();
    }
    changeLabels() {
      this._labelChanged = !1;
      if (this._items) {
        for (var t = 0, e = 0, s = this._items.length; e < s; e++) {
          var i = this._items[e];
          this._skin && (i.skin = this._skin);
          this._labelColors && (i.labelColors = this._labelColors);
          this._labelSize && (i.labelSize = this._labelSize);
          this._labelStroke && (i.labelStroke = this._labelStroke);
          this._labelStrokeColor && (i.labelStrokeColor = this._labelStrokeColor);
          this._strokeColors && (i.strokeColors = this._strokeColors);
          this._labelBold && (i.labelBold = this._labelBold);
          this._labelPadding && (i.labelPadding = this._labelPadding);
          this._labelAlign && (i.labelAlign = this._labelAlign);
          this._stateNum && (i.stateNum = this._stateNum);
          this._labelFont && (i.labelFont = this._labelFont);
          "horizontal" === this._direction ? (i.y = 0, i.x = t, t += i.width + this._space) : (i.x = 0, i.y = t, t += i.height + this._space);
        }
      }
      this._sizeChanged();
    }
    commitMeasure() {
      this.runCallLater(this.changeLabels);
    }
    get items() {
      return this._items;
    }
    get selection() {
      return this._selectedIndex > -1 && this._selectedIndex < this._items.length ? this._items[this._selectedIndex] : null;
    }
    set selection(t) {
      this.selectedIndex = this._items.indexOf(t);
    }
    set dataSource(t) {
      this._dataSource = t;
      "number" == typeof t || "string" == typeof t ? this.selectedIndex = parseInt(t) : t instanceof Array ? this.labels = t.join(",") : super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    _setLabelChanged() {
      this._labelChanged || (this._labelChanged = !0, this.callLater(this.changeLabels));
    }
  }
  e.ILaya.regClass(L);
  e.ClassUtils.regClass("laya.ui.UIGroup", L);
  e.ClassUtils.regClass("Laya.UIGroup", L);
  class E extends L {
    createItem(t, e) {
      return new x(t, e);
    }
  }
  e.ILaya.regClass(E);
  e.ClassUtils.regClass("laya.ui.RadioGroup", E);
  e.ClassUtils.regClass("Laya.RadioGroup", E);
  class I extends L {
    createItem(t, e) {
      return new d(t, e);
    }
  }
  e.ILaya.regClass(I);
  e.ClassUtils.regClass("laya.ui.Tab", I);
  e.ClassUtils.regClass("Laya.Tab", I);
  class B extends c {
    constructor() {
      super(...arguments);
      this._setIndexHandler = e.Handler.create(this, this.setIndex, null, !1);
    }
    setItems(t) {
      this.removeChildren();
      for (var e = 0, s = 0, i = t.length; s < i; s++) {
        var h = t[s];
        h && (h.name = "item" + e, this.addChild(h), e++);
      }
      this.initItems();
    }
    addItem(t) {
      t.name = "item" + this._items.length;
      this.addChild(t);
      this.initItems();
    }
    _afterInited() {
      this.initItems();
    }
    initItems() {
      this._items = [];
      for (var t = 0; t < 1e4; t++) {
        var e = this.getChildByName("item" + t);
        if (null == e) {
          break;
        }
        this._items.push(e);
        e.visible = t == this._selectedIndex;
      }
    }
    get selectedIndex() {
      return this._selectedIndex;
    }
    set selectedIndex(t) {
      this._selectedIndex != t && (this.setSelect(this._selectedIndex, !1), this._selectedIndex = t, this.setSelect(this._selectedIndex, !0));
    }
    setSelect(t, e) {
      this._items && t > -1 && t < this._items.length && (this._items[t].visible = e);
    }
    get selection() {
      return this._selectedIndex > -1 && this._selectedIndex < this._items.length ? this._items[this._selectedIndex] : null;
    }
    set selection(t) {
      this.selectedIndex = this._items.indexOf(t);
    }
    get setIndexHandler() {
      return this._setIndexHandler;
    }
    set setIndexHandler(t) {
      this._setIndexHandler = t;
    }
    setIndex(t) {
      this.selectedIndex = t;
    }
    get items() {
      return this._items;
    }
    set dataSource(t) {
      this._dataSource = t;
      if ("number" == typeof t || "string" == typeof t) {
        this.selectedIndex = parseInt(t);
      } else {
        for (var e in this._dataSource) {
          e in this && (this[e] = this._dataSource[e]);
        }
      }
    }
    get dataSource() {
      return super.dataSource;
    }
  }
  e.ILaya.regClass(B);
  e.ClassUtils.regClass("laya.ui.ViewStack", B);
  e.ClassUtils.regClass("Laya.ViewStack", B);
  class k extends C {
    constructor(t = "") {
      super();
      this.text = t;
      this.skin = this.skin;
    }
    preinitialize() {
      this.mouseEnabled = !0;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._bg && this._bg.destroy();
      this._bg = null;
    }
    createChildren() {
      this.addChild(this._tf = new e.Input());
      this._tf.padding = i.inputLabelPadding;
      this._tf.on(e.Event.INPUT, this, this._onInput);
      this._tf.on(e.Event.ENTER, this, this._onEnter);
      this._tf.on(e.Event.BLUR, this, this._onBlur);
      this._tf.on(e.Event.FOCUS, this, this._onFocus);
    }
    _onFocus() {
      this.event(e.Event.FOCUS, this);
    }
    _onBlur() {
      this.event(e.Event.BLUR, this);
    }
    _onInput() {
      this.event(e.Event.INPUT, this);
    }
    _onEnter() {
      this.event(e.Event.ENTER, this);
    }
    initialize() {
      this.width = 128;
      this.height = 22;
    }
    get bg() {
      return this._bg;
    }
    set bg(t) {
      this.graphics = this._bg = t;
    }
    get skin() {
      return this._skin;
    }
    set skin(t) {
      this._skin != t && (this._skin = t, this._skin && !e.Loader.getRes(this._skin) ? e.ILaya.loader.load(this._skin, e.Handler.create(this, this._skinLoaded), null, e.Loader.IMAGE, 1) : this._skinLoaded());
    }
    _skinLoaded() {
      this._bg || (this.graphics = this._bg = new h());
      this._bg.source = e.Loader.getRes(this._skin);
      this._width && (this._bg.width = this._width);
      this._height && (this._bg.height = this._height);
      this._sizeChanged();
      this.event(e.Event.LOADED);
    }
    get sizeGrid() {
      return this._bg && this._bg.sizeGrid ? this._bg.sizeGrid.join(",") : null;
    }
    set sizeGrid(t) {
      this._bg || (this.graphics = this._bg = new h());
      this._bg.sizeGrid = l.fillArray(i.defaultSizeGrid, t, Number);
    }
    set text(t) {
      this._tf.text != t && (t += "", this._tf.text = t, this.event(e.Event.CHANGE));
    }
    get text() {
      return super.text;
    }
    set width(t) {
      super.width = t;
      this._bg && (this._bg.width = t);
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._bg && (this._bg.height = t);
    }
    get height() {
      return super.height;
    }
    get multiline() {
      return this._tf.multiline;
    }
    set multiline(t) {
      this._tf.multiline = t;
    }
    set editable(t) {
      this._tf.editable = t;
    }
    get editable() {
      return this._tf.editable;
    }
    select() {
      this._tf.select();
    }
    get restrict() {
      return this._tf.restrict;
    }
    set restrict(t) {
      this._tf.restrict = t;
    }
    get prompt() {
      return this._tf.prompt;
    }
    set prompt(t) {
      this._tf.prompt = t;
    }
    get promptColor() {
      return this._tf.promptColor;
    }
    set promptColor(t) {
      this._tf.promptColor = t;
    }
    get maxChars() {
      return this._tf.maxChars;
    }
    set maxChars(t) {
      this._tf.maxChars = t;
    }
    get focus() {
      return this._tf.focus;
    }
    set focus(t) {
      this._tf.focus = t;
    }
    get type() {
      return this._tf.type;
    }
    set type(t) {
      this._tf.type = t;
    }
    setSelection(t, e) {
      this._tf.setSelection(t, e);
    }
  }
  e.ILaya.regClass(k);
  e.ClassUtils.regClass("laya.ui.TextInput", k);
  e.ClassUtils.regClass("Laya.TextInput", k);
  class M extends k {
    constructor(t = "") {
      super(t);
      this.on(e.Event.CHANGE, this, this._onTextChange);
    }
    _onTextChange() {
      this.callLater(this.changeScroll);
    }
    destroy(t = !0) {
      this._vScrollBar && this._vScrollBar.destroy();
      this._hScrollBar && this._hScrollBar.destroy();
      this._vScrollBar = null;
      this._hScrollBar = null;
      super.destroy(t);
    }
    initialize() {
      this.width = 180;
      this.height = 150;
      this._tf.wordWrap = !0;
      this.multiline = !0;
    }
    set width(t) {
      super.width = t;
      this.callLater(this.changeScroll);
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this.callLater(this.changeScroll);
    }
    get height() {
      return super.height;
    }
    get vScrollBarSkin() {
      return this._vScrollBar ? this._vScrollBar.skin : null;
    }
    set vScrollBarSkin(t) {
      null == this._vScrollBar && (this.addChild(this._vScrollBar = new f()), this._vScrollBar.on(e.Event.CHANGE, this, this.onVBarChanged), this._vScrollBar.target = this._tf, this.callLater(this.changeScroll));
      this._vScrollBar.skin = t;
    }
    get hScrollBarSkin() {
      return this._hScrollBar ? this._hScrollBar.skin : null;
    }
    set hScrollBarSkin(t) {
      null == this._hScrollBar && (this.addChild(this._hScrollBar = new S()), this._hScrollBar.on(e.Event.CHANGE, this, this.onHBarChanged), this._hScrollBar.mouseWheelEnable = !1, this._hScrollBar.target = this._tf, this.callLater(this.changeScroll));
      this._hScrollBar.skin = t;
    }
    onVBarChanged(t) {
      this._tf.scrollY != this._vScrollBar.value && (this._tf.scrollY = this._vScrollBar.value);
    }
    onHBarChanged(t) {
      this._tf.scrollX != this._hScrollBar.value && (this._tf.scrollX = this._hScrollBar.value);
    }
    get vScrollBar() {
      return this._vScrollBar;
    }
    get hScrollBar() {
      return this._hScrollBar;
    }
    get maxScrollY() {
      return this._tf.maxScrollY;
    }
    get scrollY() {
      return this._tf.scrollY;
    }
    get maxScrollX() {
      return this._tf.maxScrollX;
    }
    get scrollX() {
      return this._tf.scrollX;
    }
    changeScroll() {
      var t = this._vScrollBar && this._tf.maxScrollY > 0;
      var e = this._hScrollBar && this._tf.maxScrollX > 0;
      var s = t ? this._width - this._vScrollBar.width : this._width;
      var h = e ? this._height - this._hScrollBar.height : this._height;
      var a = this._tf.padding || i.labelPadding;
      this._tf.width = s;
      this._tf.height = h;
      this._vScrollBar && (this._vScrollBar.x = this._width - this._vScrollBar.width - a[2], this._vScrollBar.y = a[1], this._vScrollBar.height = this._height - (e ? this._hScrollBar.height : 0) - a[1] - a[3], this._vScrollBar.scrollSize = 1, this._vScrollBar.thumbPercent = h / Math.max(this._tf.textHeight, h), this._vScrollBar.setScroll(1, this._tf.maxScrollY, this._tf.scrollY), this._vScrollBar.visible = t);
      this._hScrollBar && (this._hScrollBar.x = a[0], this._hScrollBar.y = this._height - this._hScrollBar.height - a[3], this._hScrollBar.width = this._width - (t ? this._vScrollBar.width : 0) - a[0] - a[2], this._hScrollBar.scrollSize = Math.max(.033 * s, 1), this._hScrollBar.thumbPercent = s / Math.max(this._tf.textWidth, s), this._hScrollBar.setScroll(0, this.maxScrollX, this.scrollX), this._hScrollBar.visible = e);
    }
    scrollTo(t) {
      this.commitMeasure();
      this._tf.scrollY = t;
    }
  }
  e.ILaya.regClass(M);
  e.ClassUtils.regClass("laya.ui.TextArea", M);
  e.ClassUtils.regClass("Laya.TextArea", M);
  class O extends c {
    constructor() {
      super(...arguments);
      this._oldW = 0;
      this._oldH = 0;
    }
    onEnable() {
      e.ILaya.stage.on("resize", this, this.onResize);
      this.onResize();
    }
    onDisable() {
      e.ILaya.stage.off("resize", this, this.onResize);
    }
    onResize() {
      let t = e.ILaya.stage;
      if (this.width > 0 && this.height > 0) {
        var s = Math.min(t.width / this._oldW, t.height / this._oldH);
        super.width = t.width;
        super.height = t.height;
        this.scale(s, s);
      }
    }
    set width(t) {
      super.width = t;
      this._oldW = t;
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._oldH = t;
    }
    get height() {
      return super.height;
    }
  }
  e.ILaya.regClass(O);
  e.ClassUtils.regClass("laya.ui.ScaleBox", O);
  e.ClassUtils.regClass("Laya.ScaleBox", O);
  class T extends v {
    constructor(t = null) {
      super(t);
      this.isVertical = !1;
    }
  }
  e.ILaya.regClass(T);
  e.ClassUtils.regClass("laya.ui.HSlider", T);
  e.ClassUtils.regClass("Laya.HSlider", T);
  class z extends c {
    constructor() {
      super();
      this._usedCache = null;
      this._elasticEnabled = !1;
      this.width = this.height = 100;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._content && this._content.destroy(t);
      this._vScrollBar && this._vScrollBar.destroy(t);
      this._hScrollBar && this._hScrollBar.destroy(t);
      this._vScrollBar = null;
      this._hScrollBar = null;
      this._content = null;
    }
    destroyChildren() {
      this._content.destroyChildren();
    }
    createChildren() {
      super.addChild(this._content = new c());
    }
    addChild(t) {
      t.on(e.Event.RESIZE, this, this.onResize);
      this._setScrollChanged();
      return this._content.addChild(t);
    }
    onResize() {
      this._setScrollChanged();
    }
    addChildAt(t, s) {
      t.on(e.Event.RESIZE, this, this.onResize);
      this._setScrollChanged();
      return this._content.addChildAt(t, s);
    }
    removeChild(t) {
      t.off(e.Event.RESIZE, this, this.onResize);
      this._setScrollChanged();
      return this._content.removeChild(t);
    }
    removeChildAt(t) {
      this.getChildAt(t).off(e.Event.RESIZE, this, this.onResize);
      this._setScrollChanged();
      return this._content.removeChildAt(t);
    }
    removeChildren(t = 0, e = 2147483647) {
      this._content.removeChildren(t, e);
      this._setScrollChanged();
      return this;
    }
    getChildAt(t) {
      return this._content.getChildAt(t);
    }
    getChildByName(t) {
      return this._content.getChildByName(t);
    }
    getChildIndex(t) {
      return this._content.getChildIndex(t);
    }
    get numChildren() {
      return this._content.numChildren;
    }
    changeScroll() {
      this._scrollChanged = !1;
      var t = this.contentWidth || 1;
      var e = this.contentHeight || 1;
      var s = this._vScrollBar;
      var i = this._hScrollBar;
      var h = s && e > this._height;
      var a = i && t > this._width;
      var r = h ? this._width - s.width : this._width;
      var l = a ? this._height - i.height : this._height;
      s && (s.x = this._width - s.width, s.y = 0, s.height = this._height - (a ? i.height : 0), s.scrollSize = Math.max(.033 * this._height, 1), s.thumbPercent = l / e, s.setScroll(0, e - l, s.value));
      i && (i.x = 0, i.y = this._height - i.height, i.width = this._width - (h ? s.width : 0), i.scrollSize = Math.max(.033 * this._width, 1), i.thumbPercent = r / t, i.setScroll(0, t - r, i.value));
    }
    _sizeChanged() {
      super._sizeChanged();
      this.setContentSize(this._width, this._height);
    }
    get contentWidth() {
      for (var t = 0, e = this._content.numChildren - 1; e > -1; e--) {
        var s = this._content.getChildAt(e);
        t = Math.max(s._x + s.width * s.scaleX - s.pivotX, t);
      }
      return t;
    }
    get contentHeight() {
      for (var t = 0, e = this._content.numChildren - 1; e > -1; e--) {
        var s = this._content.getChildAt(e);
        t = Math.max(s._y + s.height * s.scaleY - s.pivotY, t);
      }
      return t;
    }
    setContentSize(t, s) {
      var i = this._content;
      i.width = t;
      i.height = s;
      i._style.scrollRect || (i.scrollRect = e.Rectangle.create());
      i._style.scrollRect.setTo(0, 0, t, s);
      i.scrollRect = i.scrollRect;
    }
    set width(t) {
      super.width = t;
      this._setScrollChanged();
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._setScrollChanged();
    }
    get height() {
      return super.height;
    }
    get vScrollBarSkin() {
      return this._vScrollBar ? this._vScrollBar.skin : null;
    }
    set vScrollBarSkin(t) {
      null == this._vScrollBar && (super.addChild(this._vScrollBar = new f()), this._vScrollBar.on(e.Event.CHANGE, this, this.onScrollBarChange, [this._vScrollBar]), this._vScrollBar.target = this._content, this._vScrollBar.elasticDistance = this._elasticEnabled ? 200 : 0, this._setScrollChanged());
      this._vScrollBar.skin = t;
    }
    get hScrollBarSkin() {
      return this._hScrollBar ? this._hScrollBar.skin : null;
    }
    set hScrollBarSkin(t) {
      null == this._hScrollBar && (super.addChild(this._hScrollBar = new S()), this._hScrollBar.on(e.Event.CHANGE, this, this.onScrollBarChange, [this._hScrollBar]), this._hScrollBar.target = this._content, this._hScrollBar.elasticDistance = this._elasticEnabled ? 200 : 0, this._setScrollChanged());
      this._hScrollBar.skin = t;
    }
    get vScrollBar() {
      return this._vScrollBar;
    }
    get hScrollBar() {
      return this._hScrollBar;
    }
    get content() {
      return this._content;
    }
    onScrollBarChange(t) {
      var e = this._content._style.scrollRect;
      if (e) {
        var s = Math.round(t.value);
        t.isVertical ? e.y = s : e.x = s;
        this._content.scrollRect = e;
      }
    }
    scrollTo(t = 0, e = 0) {
      this.vScrollBar && (this.vScrollBar.value = e);
      this.hScrollBar && (this.hScrollBar.value = t);
    }
    refresh() {
      this.changeScroll();
    }
    set cacheAs(t) {
      super.cacheAs = t;
      this._usedCache = null;
      "none" !== t ? (this._hScrollBar && this._hScrollBar.on(e.Event.START, this, this.onScrollStart), this._vScrollBar && this._vScrollBar.on(e.Event.START, this, this.onScrollStart)) : (this._hScrollBar && this._hScrollBar.off(e.Event.START, this, this.onScrollStart), this._vScrollBar && this._vScrollBar.off(e.Event.START, this, this.onScrollStart));
    }
    get cacheAs() {
      return super.cacheAs;
    }
    get elasticEnabled() {
      return this._elasticEnabled;
    }
    set elasticEnabled(t) {
      this._elasticEnabled = t;
      this._vScrollBar && (this._vScrollBar.elasticDistance = t ? 200 : 0);
      this._hScrollBar && (this._hScrollBar.elasticDistance = t ? 200 : 0);
    }
    onScrollStart() {
      this._usedCache || (this._usedCache = super.cacheAs);
      super.cacheAs = "none";
      this._hScrollBar && this._hScrollBar.once(e.Event.END, this, this.onScrollEnd);
      this._vScrollBar && this._vScrollBar.once(e.Event.END, this, this.onScrollEnd);
    }
    onScrollEnd() {
      super.cacheAs = this._usedCache;
    }
    _setScrollChanged() {
      this._scrollChanged || (this._scrollChanged = !0, this.callLater(this.changeScroll));
    }
  }
  e.ILaya.regClass(z);
  e.ClassUtils.regClass("laya.ui.Panel", z);
  e.ClassUtils.regClass("Laya.Panel", z);
  class U extends v {}
  e.ILaya.regClass(U);
  e.ClassUtils.regClass("laya.ui.VSlider", U);
  e.ClassUtils.regClass("Laya.VSlider", U);
  class D extends c {
    constructor() {
      super();
      this._spaceLeft = 10;
      this._spaceBottom = 0;
      this._keepStatus = !0;
      this.width = this.height = 200;
    }
    destroy(t = !0) {
      super.destroy(t);
      this._list && this._list.destroy(t);
      this._list = null;
      this._source = null;
      this._renderHandler = null;
    }
    createChildren() {
      this.addChild(this._list = new b());
      this._list.renderHandler = e.Handler.create(this, this.renderItem, null, !1);
      this._list.repeatX = 1;
      this._list.on(e.Event.CHANGE, this, this.onListChange);
    }
    onListChange(t = null) {
      this.event(e.Event.CHANGE);
    }
    get keepStatus() {
      return this._keepStatus;
    }
    set keepStatus(t) {
      this._keepStatus = t;
    }
    get array() {
      return this._list.array;
    }
    set array(t) {
      this._keepStatus && this._list.array && t && this.parseOpenStatus(this._list.array, t);
      this._source = t;
      this._list.array = this.getArray();
    }
    get source() {
      return this._source;
    }
    get list() {
      return this._list;
    }
    get itemRender() {
      return this._list.itemRender;
    }
    set itemRender(t) {
      this._list.itemRender = t;
    }
    get scrollBarSkin() {
      return this._list.vScrollBarSkin;
    }
    set scrollBarSkin(t) {
      this._list.vScrollBarSkin = t;
    }
    get scrollBar() {
      return this._list.scrollBar;
    }
    get mouseHandler() {
      return this._list.mouseHandler;
    }
    set mouseHandler(t) {
      this._list.mouseHandler = t;
    }
    get renderHandler() {
      return this._renderHandler;
    }
    set renderHandler(t) {
      this._renderHandler = t;
    }
    get spaceLeft() {
      return this._spaceLeft;
    }
    set spaceLeft(t) {
      this._spaceLeft = t;
    }
    get spaceBottom() {
      return this._list.spaceY;
    }
    set spaceBottom(t) {
      this._list.spaceY = t;
    }
    get selectedIndex() {
      return this._list.selectedIndex;
    }
    set selectedIndex(t) {
      this._list.selectedIndex = t;
    }
    get selectedItem() {
      return this._list.selectedItem;
    }
    set selectedItem(t) {
      this._list.selectedItem = t;
    }
    set width(t) {
      super.width = t;
      this._list.width = t;
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this._list.height = t;
    }
    get height() {
      return super.height;
    }
    getArray() {
      var t = [];
      for (let e in this._source) {
        let s = this._source[e];
        this.getParentOpenStatus(s) && (s.x = this._spaceLeft * this.getDepth(s), t.push(s));
      }
      return t;
    }
    getDepth(t, e = 0) {
      return null == t.nodeParent ? e : this.getDepth(t.nodeParent, e + 1);
    }
    getParentOpenStatus(t) {
      var e = t.nodeParent;
      return null == e || !!e.isOpen && (null == e.nodeParent || this.getParentOpenStatus(e));
    }
    renderItem(t, s) {
      var i = t.dataSource;
      if (i) {
        t.left = i.x;
        var h = t.getChildByName("arrow");
        h && (i.hasChild ? (h.visible = !0, h.index = i.isOpen ? 1 : 0, h.tag = s, h.off(e.Event.CLICK, this, this.onArrowClick), h.on(e.Event.CLICK, this, this.onArrowClick)) : h.visible = !1);
        var a = t.getChildByName("folder");
        a && (2 == a.clipY ? a.index = i.isDirectory ? 0 : 1 : a.index = i.isDirectory ? i.isOpen ? 1 : 0 : 2);
        this._renderHandler && this._renderHandler.runWith([t, s]);
      }
    }
    onArrowClick(t) {
      var s = t.currentTarget.tag;
      this._list.array[s].isOpen = !this._list.array[s].isOpen;
      this.event(e.Event.OPEN);
      this._list.array = this.getArray();
    }
    setItemState(t, e) {
      this._list.array[t] && (this._list.array[t].isOpen = e, this._list.array = this.getArray());
    }
    fresh() {
      this._list.array = this.getArray();
      this.repaint();
    }
    set dataSource(t) {
      this._dataSource = t;
      super.dataSource = t;
    }
    get dataSource() {
      return super.dataSource;
    }
    set xml(t) {
      var e = [];
      this.parseXml(t.childNodes[0], e, null, !0);
      this.array = e;
    }
    parseXml(t, e, s, i) {
      var h;
      var a = t.childNodes;
      var r = a.length;
      if (!i) {
        h = {};
        var l = t.attributes;
        for (let t in l) {
          var n = l[t];
          var o = n.nodeName;
          var _ = n.nodeValue;
          h[o] = "true" == _ || "false" != _ && _;
        }
        h.nodeParent = s;
        r > 0 && (h.isDirectory = !0);
        h.hasChild = r > 0;
        e.push(h);
      }
      for (var c = 0; c < r; c++) {
        var d = a[c];
        this.parseXml(d, e, h, !1);
      }
    }
    parseOpenStatus(t, e) {
      for (var s = 0, i = e.length; s < i; s++) {
        var h = e[s];
        if (h.isDirectory) {
          for (var a = 0, r = t.length; a < r; a++) {
            var l = t[a];
            if (l.isDirectory && this.isSameParent(l, h) && h.label == l.label) {
              h.isOpen = l.isOpen;
              break;
            }
          }
        }
      }
    }
    isSameParent(t, e) {
      return null == t.nodeParent && null == e.nodeParent || null != t.nodeParent && null != e.nodeParent && t.nodeParent.label == e.nodeParent.label && this.isSameParent(t.nodeParent, e.nodeParent);
    }
    get selectedPath() {
      return this._list.selectedItem ? this._list.selectedItem.path : null;
    }
    filter(t) {
      if (Boolean(t)) {
        var e = [];
        this.getFilterSource(this._source, e, t);
        this._list.array = e;
      } else {
        this._list.array = this.getArray();
      }
    }
    getFilterSource(t, e, s) {
      s = s.toLocaleLowerCase();
      for (let i of t) {
        !i.isDirectory && String(i.label).toLowerCase().indexOf(s) > -1 && (i.x = 0, e.push(i));
        i.child && i.child.length > 0 && this.getFilterSource(i.child, e, s);
      }
    }
  }
  e.ILaya.regClass(D);
  e.ClassUtils.regClass("laya.ui.Tree", D);
  e.ClassUtils.regClass("Laya.Tree", D);
  class A extends c {
    constructor() {
      super(...arguments);
      this._space = 0;
      this._align = "none";
      this._itemChanged = !1;
    }
    addChild(t) {
      t.on(e.Event.RESIZE, this, this.onResize);
      this._setItemChanged();
      return super.addChild(t);
    }
    onResize(t) {
      this._setItemChanged();
    }
    addChildAt(t, s) {
      t.on(e.Event.RESIZE, this, this.onResize);
      this._setItemChanged();
      return super.addChildAt(t, s);
    }
    removeChildAt(t) {
      this.getChildAt(t).off(e.Event.RESIZE, this, this.onResize);
      this._setItemChanged();
      return super.removeChildAt(t);
    }
    refresh() {
      this._setItemChanged();
    }
    changeItems() {
      this._itemChanged = !1;
    }
    get space() {
      return this._space;
    }
    set space(t) {
      this._space = t;
      this._setItemChanged();
    }
    get align() {
      return this._align;
    }
    set align(t) {
      this._align = t;
      this._setItemChanged();
    }
    sortItem(t) {
      t && t.sort(function (t, e) {
        return t.y - e.y;
      });
    }
    _setItemChanged() {
      this._itemChanged || (this._itemChanged = !0, this.callLater(this.changeItems));
    }
  }
  e.ILaya.regClass(A);
  e.ClassUtils.regClass("laya.ui.LayoutBox", A);
  e.ClassUtils.regClass("Laya.LayoutBox", A);
  class H extends A {
    sortItem(t) {
      t && t.sort(function (t, e) {
        return t.x - e.x;
      });
    }
    set height(t) {
      this._height != t && (super.height = t, this.callLater(this.changeItems));
    }
    get height() {
      return super.height;
    }
    changeItems() {
      this._itemChanged = !1;
      for (var t = [], e = 0, s = 0, i = this.numChildren; s < i; s++) {
        var h = this.getChildAt(s);
        h && (t.push(h), e = this._height ? this._height : Math.max(e, h.height * h.scaleY));
      }
      this.sortItem(t);
      var a = 0;
      s = 0;
      i = t.length;
      for (; s < i; s++) {
        (h = t[s]).x = a;
        a += h.width * h.scaleX + this._space;
        this._align == H.TOP ? h.y = 0 : this._align == H.MIDDLE ? h.y = .5 * (e - h.height * h.scaleY) : this._align == H.BOTTOM && (h.y = e - h.height * h.scaleY);
      }
      this._sizeChanged();
    }
  }
  H.NONE = "none";
  H.TOP = "top";
  H.MIDDLE = "middle";
  H.BOTTOM = "bottom";
  e.ILaya.regClass(H);
  e.ClassUtils.regClass("laya.ui.HBox", H);
  e.ClassUtils.regClass("Laya.HBox", H);
  class N extends A {
    set width(t) {
      this._width != t && (super.width = t, this.callLater(this.changeItems));
    }
    get width() {
      return super.width;
    }
    changeItems() {
      this._itemChanged = !1;
      for (var t = [], e = 0, s = 0, i = this.numChildren; s < i; s++) {
        var h = this.getChildAt(s);
        h && (t.push(h), e = this._width ? this._width : Math.max(e, h.width * h.scaleX));
      }
      this.sortItem(t);
      var a = 0;
      s = 0;
      i = t.length;
      for (; s < i; s++) {
        (h = t[s]).y = a;
        a += h.height * h.scaleY + this._space;
        this._align == N.LEFT ? h.x = 0 : this._align == N.CENTER ? h.x = .5 * (e - h.width * h.scaleX) : this._align == N.RIGHT && (h.x = e - h.width * h.scaleX);
      }
      this._sizeChanged();
    }
  }
  N.NONE = "none";
  N.LEFT = "left";
  N.CENTER = "center";
  N.RIGHT = "right";
  e.ILaya.regClass(N);
  e.ClassUtils.regClass("laya.ui.VBox", N);
  e.ClassUtils.regClass("Laya.VBox", N);
  class P extends g {
    constructor(t = null, e = null) {
      super();
      this._valueArr = "";
      this._indexMap = null;
      this._sheet = null;
      this._direction = "horizontal";
      this._spaceX = 0;
      this._spaceY = 0;
      this._align = "left";
      this._wordsW = 0;
      this._wordsH = 0;
      t && (this.skin = t);
      e && (this.sheet = e);
    }
    createChildren() {
      this._bitmap = new h();
      this.on(e.Event.LOADED, this, this._onClipLoaded);
    }
    _onClipLoaded() {
      this.callLater(this.changeValue);
    }
    get sheet() {
      return this._sheet;
    }
    set sheet(t) {
      t += "";
      this._sheet = t;
      var e = t.split(" ");
      this._clipX = String(e[0]).length;
      this.clipY = e.length;
      this._indexMap = {};
      for (var s = 0; s < this._clipY; s++) {
        for (var i = e[s].split(""), h = 0, a = i.length; h < a; h++) {
          this._indexMap[i[h]] = s * this._clipX + h;
        }
      }
    }
    get value() {
      return this._valueArr ? this._valueArr : "";
    }
    set value(t) {
      t += "";
      this._valueArr = t;
      this.callLater(this.changeValue);
    }
    get direction() {
      return this._direction;
    }
    set direction(t) {
      this._direction = t;
      this.callLater(this.changeValue);
    }
    get spaceX() {
      return this._spaceX;
    }
    set spaceX(t) {
      this._spaceX = t;
      "horizontal" === this._direction && this.callLater(this.changeValue);
    }
    get spaceY() {
      return this._spaceY;
    }
    set spaceY(t) {
      this._spaceY = t;
      "horizontal" !== this._direction && this.callLater(this.changeValue);
    }
    set align(t) {
      this._align = t;
      this.callLater(this.changeValue);
    }
    get align() {
      return this._align;
    }
    changeValue() {
      var t;
      if (this._sources && this._valueArr && (this.graphics.clear(!0), t = this._sources[0])) {
        var e = "horizontal" === this._direction;
        e ? (this._wordsW = this._valueArr.length * (t.sourceWidth + this.spaceX), this._wordsH = t.sourceHeight) : (this._wordsW = t.sourceWidth, this._wordsH = (t.sourceHeight + this.spaceY) * this._valueArr.length);
        var s = 0;
        if (this._width) {
          switch (this._align) {
            case "center":
              s = .5 * (this._width - this._wordsW);
              break;
            case "right":
              s = this._width - this._wordsW;
              break;
            default:
              s = 0;
          }
        }
        for (var i = 0, h = this._valueArr.length; i < h; i++) {
          var a = this._indexMap[this._valueArr.charAt(i)];
          this.sources[a] && (t = this.sources[a], e ? this.graphics.drawImage(t, s + i * (t.sourceWidth + this.spaceX), 0, t.sourceWidth, t.sourceHeight) : this.graphics.drawImage(t, 0 + s, i * (t.sourceHeight + this.spaceY), t.sourceWidth, t.sourceHeight));
        }
        this._width || (this._widget.resetLayoutX(), this.callLater(this._sizeChanged));
        this._height || (this._widget.resetLayoutY(), this.callLater(this._sizeChanged));
      }
    }
    set width(t) {
      super.width = t;
      this.callLater(this.changeValue);
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      this.callLater(this.changeValue);
    }
    get height() {
      return super.height;
    }
    measureWidth() {
      return this._wordsW;
    }
    measureHeight() {
      return this._wordsH;
    }
    destroy(t = !0) {
      this._valueArr = null;
      this._indexMap = null;
      this.graphics.clear(!0);
      this.removeSelf();
      this.off(e.Event.LOADED, this, this._onClipLoaded);
      super.destroy(t);
    }
  }
  e.ILaya.regClass(P);
  e.ClassUtils.regClass("laya.ui.FontClip", P);
  e.ClassUtils.regClass("Laya.FontClip", P);
  class Y extends e.Scene {
    constructor() {
      super(!1);
      this._watchMap = {};
      this._anchorX = NaN;
      this._anchorY = NaN;
      this._widget = a.EMPTY;
      this.createChildren();
    }
    static __init__() {
      e.ILaya.ClassUtils.regShortClassName([B, d, M, p, c, O, u, g, y, n, S, T, o, C, b, z, w, x, E, m, v, I, k, Y, f, U, D, H, N, e.Animation, e.Text, P]);
    }
    static regComponent(t, s) {
      e.ILaya.ClassUtils.regClass(t, s);
    }
    static regViewRuntime(t, s) {
      e.ILaya.ClassUtils.regClass(t, s);
    }
    static regUI(t, s) {
      e.ILaya.loader.cacheRes(t, s);
    }
    destroy(t = !0) {
      this._watchMap = null;
      super.destroy(t);
    }
    changeData(t) {
      var e = this._watchMap[t];
      if (e) {
        for (var s = 0, i = e.length; s < i; s++) {
          e[s].exe(this);
        }
      }
    }
    get top() {
      return this._widget.top;
    }
    set top(t) {
      t != this._widget.top && (this._getWidget().top = t);
    }
    get bottom() {
      return this._widget.bottom;
    }
    set bottom(t) {
      t != this._widget.bottom && (this._getWidget().bottom = t);
    }
    get left() {
      return this._widget.left;
    }
    set left(t) {
      t != this._widget.left && (this._getWidget().left = t);
    }
    get right() {
      return this._widget.right;
    }
    set right(t) {
      t != this._widget.right && (this._getWidget().right = t);
    }
    get centerX() {
      return this._widget.centerX;
    }
    set centerX(t) {
      t != this._widget.centerX && (this._getWidget().centerX = t);
    }
    get centerY() {
      return this._widget.centerY;
    }
    set centerY(t) {
      t != this._widget.centerY && (this._getWidget().centerY = t);
    }
    get anchorX() {
      return this._anchorX;
    }
    set anchorX(t) {
      this._anchorX != t && (this._anchorX = t, this.callLater(this._sizeChanged));
    }
    get anchorY() {
      return this._anchorY;
    }
    set anchorY(t) {
      this._anchorY != t && (this._anchorY = t, this.callLater(this._sizeChanged));
    }
    _sizeChanged() {
      isNaN(this._anchorX) || (this.pivotX = this.anchorX * this.width);
      isNaN(this._anchorY) || (this.pivotY = this.anchorY * this.height);
      this.event(e.Event.RESIZE);
    }
    _getWidget() {
      this._widget === a.EMPTY && (this._widget = this.addComponent(a));
      return this._widget;
    }
    loadUI(t) {
      var e = Y.uiMap[t];
      Y.uiMap && this.createView(e);
    }
    get dataSource() {
      return this._dataSource;
    }
    set dataSource(t) {
      this._dataSource = t;
      for (var e in t) {
        var s = this.getChildByName(e);
        s instanceof n ? s.dataSource = t[e] : e in this && !(this[e] instanceof Function) && (this[e] = t[e]);
      }
    }
  }
  Y.uiMap = {};
  e.ILaya.regClass(Y);
  e.ClassUtils.regClass("laya.ui.View", Y);
  e.ClassUtils.regClass("Laya.View", Y);
  class R {}
  R.Dialog = null;
  class X extends e.Sprite {
    constructor() {
      super();
      this.maskLayer = new e.Sprite();
      this.popupEffect = t => {
        t.scale(1, 1);
        t._effectTween = e.Tween.from(t, {
          x: e.ILaya.stage.width / 2,
          y: e.ILaya.stage.height / 2,
          scaleX: 0,
          scaleY: 0
        }, 300, e.Ease.backOut, e.Handler.create(this, this.doOpen, [t]), 0, !1, !1);
      };
      this.closeEffect = t => {
        t._effectTween = e.Tween.to(t, {
          x: e.ILaya.stage.width / 2,
          y: e.ILaya.stage.height / 2,
          scaleX: 0,
          scaleY: 0
        }, 300, e.Ease.strongOut, e.Handler.create(this, this.doClose, [t]), 0, !1, !1);
      };
      this.popupEffectHandler = new e.Handler(this, this.popupEffect);
      this.closeEffectHandler = new e.Handler(this, this.closeEffect);
      this.mouseEnabled = this.maskLayer.mouseEnabled = !0;
      this.zOrder = 1e3;
      e.ILaya.stage.addChild(this);
      e.ILaya.stage.on(e.Event.RESIZE, this, this._onResize);
      s.closeDialogOnSide && this.maskLayer.on("click", this, this._closeOnSide);
      this._onResize(null);
    }
    _closeOnSide() {
      var t = this.getChildAt(this.numChildren - 1);
      t instanceof R.Dialog && t.close();
    }
    setLockView(t) {
      this.lockLayer || (this.lockLayer = new c(), this.lockLayer.mouseEnabled = !0, this.lockLayer.size(e.ILaya.stage.width, e.ILaya.stage.height));
      this.lockLayer.removeChildren();
      t && (t.centerX = t.centerY = 0, this.lockLayer.addChild(t));
    }
    _onResize(t = null) {
      var i = this.maskLayer.width = e.ILaya.stage.width;
      var h = this.maskLayer.height = e.ILaya.stage.height;
      this.lockLayer && this.lockLayer.size(i, h);
      this.maskLayer.graphics.clear(!0);
      this.maskLayer.graphics.drawRect(0, 0, i, h, s.popupBgColor);
      this.maskLayer.alpha = s.popupBgAlpha;
      for (var a = this.numChildren - 1; a > -1; a--) {
        var r = this.getChildAt(a);
        r.isPopupCenter && this._centerDialog(r);
      }
    }
    _centerDialog(t) {
      t.x = Math.round((e.ILaya.stage.width - t.width >> 1) + t.pivotX);
      t.y = Math.round((e.ILaya.stage.height - t.height >> 1) + t.pivotY);
    }
    open(t, s = !1, i = !1) {
      s && this._closeAll();
      this._clearDialogEffect(t);
      t.isPopupCenter && this._centerDialog(t);
      this.addChild(t);
      (t.isModal || this._getBit(e.Const.HAS_ZORDER)) && e.ILaya.timer.callLater(this, this._checkMask);
      i && null != t.popupEffect ? t.popupEffect.runWith(t) : this.doOpen(t);
      this.event(e.Event.OPEN);
    }
    _clearDialogEffect(t) {
      t._effectTween && (e.Tween.clear(t._effectTween), t._effectTween = null);
    }
    doOpen(t) {
      t.onOpened(t._param);
    }
    lock(t) {
      this.lockLayer && (t ? this.addChild(this.lockLayer) : this.lockLayer.removeSelf());
    }
    close(t) {
      this._clearDialogEffect(t);
      t.isShowEffect && null != t.closeEffect ? t.closeEffect.runWith([t]) : this.doClose(t);
      this.event(e.Event.CLOSE);
    }
    doClose(t) {
      t.removeSelf();
      t.isModal && this._checkMask();
      t.closeHandler && t.closeHandler.runWith(t.closeType);
      t.onClosed(t.closeType);
      t.autoDestroyAtClosed && t.destroy();
    }
    closeAll() {
      this._closeAll();
      this.event(e.Event.CLOSE);
    }
    _closeAll() {
      for (var t = this.numChildren - 1; t > -1; t--) {
        var e = this.getChildAt(t);
        e && null != e.close && this.doClose(e);
      }
    }
    getDialogsByGroup(t) {
      for (var e = [], s = this.numChildren - 1; s > -1; s--) {
        var i = this.getChildAt(s);
        i && i.group === t && e.push(i);
      }
      return e;
    }
    closeByGroup(t) {
      for (var e = [], s = this.numChildren - 1; s > -1; s--) {
        var i = this.getChildAt(s);
        i && i.group === t && (i.close(), e.push(i));
      }
      return e;
    }
    _checkMask() {
      this.maskLayer.removeSelf();
      for (var t = this.numChildren - 1; t > -1; t--) {
        var e = this.getChildAt(t);
        if (e && e.isModal) {
          return void this.addChildAt(this.maskLayer, t);
        }
      }
    }
  }
  e.ClassUtils.regClass("laya.ui.DialogManager", X);
  e.ClassUtils.regClass("Laya.DialogManager", X);
  class G extends Y {
    constructor() {
      super();
      this.isShowEffect = !0;
      this.isPopupCenter = !0;
      this.popupEffect = G.manager.popupEffectHandler;
      this.closeEffect = G.manager.closeEffectHandler;
      this._dealDragArea();
      this.on(e.Event.CLICK, this, this._onClick);
    }
    static get manager() {
      return G._manager = G._manager || new X();
    }
    static set manager(t) {
      G._manager = t;
    }
    _dealDragArea() {
      var t = this.getChildByName("drag");
      t && (this.dragArea = t._x + "," + t._y + "," + t.width + "," + t.height, t.removeSelf());
    }
    get dragArea() {
      return this._dragArea ? this._dragArea.toString() : null;
    }
    set dragArea(t) {
      if (t) {
        var s = l.fillArray([0, 0, 0, 0], t, Number);
        this._dragArea = new e.Rectangle(s[0], s[1], s[2], s[3]);
        this.on(e.Event.MOUSE_DOWN, this, this._onMouseDown);
      } else {
        this._dragArea = null;
        this.off(e.Event.MOUSE_DOWN, this, this._onMouseDown);
      }
    }
    _onMouseDown(t) {
      var e = this.getMousePoint();
      this._dragArea.contains(e.x, e.y) ? this.startDrag() : this.stopDrag();
    }
    _onClick(t) {
      var e = t.target;
      if (e) {
        switch (e.name) {
          case G.CLOSE:
          case G.CANCEL:
          case G.SURE:
          case G.NO:
          case G.OK:
          case G.YES:
            return void this.close(e.name);
        }
      }
    }
    open(t = !0, e = null) {
      this._dealDragArea();
      this._param = e;
      G.manager.open(this, t, this.isShowEffect);
      G.manager.lock(!1);
    }
    close(t = null) {
      this.closeType = t;
      G.manager.close(this);
    }
    destroy(t = !0) {
      this.closeHandler = null;
      this.popupEffect = null;
      this.closeEffect = null;
      this._dragArea = null;
      super.destroy(t);
    }
    show(t = !1, e = !0) {
      this._open(!1, t, e);
    }
    popup(t = !1, e = !0) {
      this._open(!0, t, e);
    }
    _open(t, e, s) {
      this.isModal = t;
      this.isShowEffect = s;
      G.manager.lock(!0);
      this.open(e);
    }
    get isPopup() {
      return null != this.parent;
    }
    set zOrder(t) {
      super.zOrder = t;
      G.manager._checkMask();
    }
    get zOrder() {
      return super.zOrder;
    }
    static setLockView(t) {
      G.manager.setLockView(t);
    }
    static lock(t) {
      G.manager.lock(t);
    }
    static closeAll() {
      G.manager.closeAll();
    }
    static getDialogsByGroup(t) {
      return G.manager.getDialogsByGroup(t);
    }
    static closeByGroup(t) {
      return G.manager.closeByGroup(t);
    }
  }
  G.CLOSE = "close";
  G.CANCEL = "cancel";
  G.SURE = "sure";
  G.NO = "no";
  G.YES = "yes";
  G.OK = "ok";
  R.Dialog = G;
  e.ILaya.regClass(G);
  e.ClassUtils.regClass("laya.ui.Dialog", G);
  e.ClassUtils.regClass("Laya.Dialog", G);
  class W extends n {
    constructor() {
      super();
      this._tipBox = new n();
      this._tipBox.addChild(this._tipText = new e.Text());
      this._tipText.x = this._tipText.y = 5;
      this._tipText.color = W.tipTextColor;
      this._defaultTipHandler = this._showDefaultTip;
      e.ILaya.stage.on(r.SHOW_TIP, this, this._onStageShowTip);
      e.ILaya.stage.on(r.HIDE_TIP, this, this._onStageHideTip);
      this.zOrder = 1100;
    }
    _onStageHideTip(t) {
      e.ILaya.timer.clear(this, this._showTip);
      this.closeAll();
      this.removeSelf();
    }
    _onStageShowTip(t) {
      e.ILaya.timer.once(W.tipDelay, this, this._showTip, [t], !0);
    }
    _showTip(t) {
      if ("string" == typeof t) {
        var s = String(t);
        Boolean(s) && this._defaultTipHandler(s);
      } else {
        t instanceof e.Handler ? t.run() : t instanceof Function && t.apply();
      }
      e.ILaya.stage.on(e.Event.MOUSE_MOVE, this, this._onStageMouseMove);
      e.ILaya.stage.on(e.Event.MOUSE_DOWN, this, this._onStageMouseDown);
      this._onStageMouseMove(null);
    }
    _onStageMouseDown(t) {
      this.closeAll();
    }
    _onStageMouseMove(t) {
      this._showToStage(this, W.offsetX, W.offsetY);
    }
    _showToStage(t, s = 0, i = 0) {
      var h = t.getBounds();
      t.x = e.ILaya.stage.mouseX + s;
      t.y = e.ILaya.stage.mouseY + i;
      t._x + h.width > e.ILaya.stage.width && (t.x -= h.width + s);
      t._y + h.height > e.ILaya.stage.height && (t.y -= h.height + i);
    }
    closeAll() {
      e.ILaya.timer.clear(this, this._showTip);
      e.ILaya.stage.off(e.Event.MOUSE_MOVE, this, this._onStageMouseMove);
      e.ILaya.stage.off(e.Event.MOUSE_DOWN, this, this._onStageMouseDown);
      this.removeChildren();
    }
    showDislayTip(t) {
      this.addChild(t);
      this._showToStage(this);
      e.ILaya.stage.addChild(this);
    }
    _showDefaultTip(t) {
      this._tipText.text = t;
      var s = this._tipBox.graphics;
      s.clear(!0);
      s.drawRect(0, 0, this._tipText.width + 10, this._tipText.height + 10, W.tipBackColor);
      this.addChild(this._tipBox);
      this._showToStage(this);
      e.ILaya.stage.addChild(this);
    }
    get defaultTipHandler() {
      return this._defaultTipHandler;
    }
    set defaultTipHandler(t) {
      this._defaultTipHandler = t;
    }
  }
  W.offsetX = 10;
  W.offsetY = 15;
  W.tipTextColor = "#ffffff";
  W.tipBackColor = "#111111";
  W.tipDelay = 200;
  e.ILaya.regClass(W);
  e.ClassUtils.regClass("laya.ui.TipManager", W);
  e.ClassUtils.regClass("Laya.TipManager", W);
  class V extends n {
    constructor() {
      super();
      this._width = this._height = 200;
      var t = new e.Texture();
      t.bitmap = new e.Texture2D();
      this.texture = t;
    }
    onEnable() {
      this.postMsg({
        type: "display",
        rate: e.Laya.stage.frameRate
      });
      window.wx && window.sharedCanvas && e.Laya.timer.frameLoop(1, this, this._onLoop);
    }
    onDisable() {
      this.postMsg({
        type: "undisplay"
      });
      e.Laya.timer.clear(this, this._onLoop);
    }
    _onLoop() {
      this.texture.bitmap.loadImageSource(window.sharedCanvas);
    }
    set width(t) {
      super.width = t;
      window.sharedCanvas && (window.sharedCanvas.width = t);
      this.callLater(this._postMsg);
    }
    get width() {
      return super.width;
    }
    set height(t) {
      super.height = t;
      window.sharedCanvas && (window.sharedCanvas.height = t);
      this.callLater(this._postMsg);
    }
    get height() {
      return super.height;
    }
    set x(t) {
      super.x = t;
      this.callLater(this._postMsg);
    }
    get x() {
      return super.x;
    }
    set y(t) {
      super.y = t;
      this.callLater(this._postMsg);
    }
    get y() {
      return super.y;
    }
    _postMsg() {
      var t = new e.Matrix();
      t.translate(this.x, this.y);
      var s = e.Laya.stage;
      t.scale(s._canvasTransform.getScaleX() * this.globalScaleX * s.transform.getScaleX(), s._canvasTransform.getScaleY() * this.globalScaleY * s.transform.getScaleY());
      this.postMsg({
        type: "changeMatrix",
        a: t.a,
        b: t.b,
        c: t.c,
        d: t.d,
        tx: t.tx,
        ty: t.ty,
        w: this.width,
        h: this.height
      });
    }
    postMsg(t) {
      window.wx && window.wx.getOpenDataContext && window.wx.getOpenDataContext().postMessage(t);
    }
  }
  e.ILaya.regClass(V);
  e.ClassUtils.regClass("laya.ui.WXOpenDataViewer", V);
  e.ClassUtils.regClass("Laya.WXOpenDataViewer", V);
  t.AdvImage = _;
  t.AutoBitmap = h;
  t.Box = c;
  t.Button = d;
  t.CheckBox = u;
  t.Clip = g;
  t.ColorPicker = p;
  t.ComboBox = y;
  t.Dialog = G;
  t.DialogManager = X;
  t.FontClip = P;
  t.HBox = H;
  t.HScrollBar = S;
  t.HSlider = T;
  t.IUI = R;
  t.Image = o;
  t.Label = C;
  t.LayoutBox = A;
  t.List = b;
  t.Panel = z;
  t.ProgressBar = w;
  t.Radio = x;
  t.RadioGroup = E;
  t.ScaleBox = O;
  t.ScrollBar = m;
  t.Slider = v;
  t.Styles = i;
  t.Tab = I;
  t.TextArea = M;
  t.TextInput = k;
  t.TipManager = W;
  t.Tree = D;
  t.UIComponent = n;
  t.UIConfig = s;
  t.UIEvent = r;
  t.UIGroup = L;
  t.UILib = class {
    static __init__() {}
  };
  t.UIUtils = l;
  t.VBox = N;
  t.VScrollBar = f;
  t.VSlider = U;
  t.View = Y;
  t.ViewStack = B;
  t.WXOpenDataViewer = V;
  t.Widget = a;
}(window.Laya = window.Laya || {}, Laya);