// Generated by CoffeeScript 1.12.7
var ExampleTrayApp,
  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleTrayApp = (function(superClass) {
  extend(ExampleTrayApp, superClass);

  function ExampleTrayApp() {
    this.getDisplay = bind(this.getDisplay, this);
    this.is_allowed = bind(this.is_allowed, this);
    return ExampleTrayApp.__super__.constructor.apply(this, arguments);
  }

  ExampleTrayApp.prototype.is_allowed = function() {
    return true;
  };

  ExampleTrayApp.prototype.getDisplay = function() {
    var button;
    ExampleTrayApp.__super__.getDisplay.call(this);
    button = new LocaButton({
      loca_key: "example.tray.app.button",
      onClick: (function(_this) {
        return function() {
          return CUI.alert({
            text: $$("example.tray.app.thank_you.md"),
            markdown: true
          });
        };
      })(this)
    });
    return CUI.dom.append(this.display, button);
  };

  return ExampleTrayApp;

})(TrayApp);

ez5.session_ready(function() {
  return ez5.tray.registerApp(new ExampleTrayApp());
});
// Generated by CoffeeScript 1.12.7
var ExampleBaseConfig,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleBaseConfig = (function(superClass) {
  extend(ExampleBaseConfig, superClass);

  function ExampleBaseConfig() {
    return ExampleBaseConfig.__super__.constructor.apply(this, arguments);
  }

  ExampleBaseConfig.prototype.getFieldDefFromParm = function(baseConfig, pname, def, parent_def) {
    var field;
    if (def.plugin_type !== "example-base-config") {
      return;
    }
    field = {
      type: CUI.Form,
      name: "example_base_config",
      fields: [
        {
          type: CUI.Select,
          name: "select",
          options: [
            {
              value: "a"
            }, {
              value: "b"
            }
          ]
        }, {
          type: CUI.Input,
          name: "input"
        }
      ]
    };
    return field;
  };

  return ExampleBaseConfig;

})(BaseConfigPlugin);

CUI.ready((function(_this) {
  return function() {
    return BaseConfig.registerPlugin(new ExampleBaseConfig());
  };
})(this));
// Generated by CoffeeScript 1.12.7
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ez5.ExamplePoolPlugin = (function(superClass) {
  extend(ExamplePoolPlugin, superClass);

  function ExamplePoolPlugin() {
    return ExamplePoolPlugin.__super__.constructor.apply(this, arguments);
  }

  ExamplePoolPlugin.prototype.getTabs = function(tabs) {
    tabs.push({
      name: "example-pool",
      text: "Example Add-On",
      content: (function(_this) {
        return function() {
          var form;
          form = new CUI.Form({
            data: _this._pool.data.pool,
            name: "custom_data",
            fields: [
              {
                type: CUI.Input,
                textarea: true,
                name: "example_add_on",
                form: {
                  label: "Add-On Info",
                  hint: "Add some info here."
                }
              }
            ]
          });
          return form.start();
        };
      })(this)
    });
    return tabs;
  };

  ExamplePoolPlugin.prototype.getInfoDivRows = function(rows) {
    var add_on_info;
    add_on_info = this._pool.data.pool.custom_data.example_add_on;
    if (add_on_info) {
      rows.push({
        key: "Add-On Info",
        value: add_on_info
      });
    }
  };

  ExamplePoolPlugin.prototype.getInfoDiv = function(nodes) {
    nodes.push(new CUI.Label({
      padded: true,
      text: "The ExamplePoolPlugin is **active**.",
      markdown: true,
      multiline: true
    }));
  };

  ExamplePoolPlugin.prototype.getSaveData = function(save_data) {
    save_data.pool.custom_data.example_add_on = this._pool.data.pool.custom_data.example_add_on;
  };

  return ExamplePoolPlugin;

})(ez5.PoolPlugin);

Pool.plugins.registerPlugin(ez5.ExamplePoolPlugin);
// Generated by CoffeeScript 1.12.7
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ez5.ExampleUserPlugin = (function(superClass) {
  extend(ExampleUserPlugin, superClass);

  function ExampleUserPlugin() {
    return ExampleUserPlugin.__super__.constructor.apply(this, arguments);
  }

  ExampleUserPlugin.prototype.getTabs = function(tabs) {
    tabs.push({
      name: "example",
      text: "Example",
      content: (function(_this) {
        return function() {
          var form;
          form = new CUI.Form({
            data: _this._user.data.user,
            name: "custom_data",
            fields: [
              {
                type: CUI.Input,
                name: "my_field",
                form: {
                  label: "My field",
                  hint: "Write some data! This is a hint"
                }
              }
            ]
          });
          return form.start();
        };
      })(this)
    });
  };

  ExampleUserPlugin.prototype.getSaveData = function(saveData) {
    saveData.user.custom_data.my_field = this._user.data.user.custom_data.my_field;
  };

  ExampleUserPlugin.prototype.isAllowed = function() {
    var ref;
    return (ref = this._user.data.user.type) === "easydb" || ref === "system";
  };

  return ExampleUserPlugin;

})(ez5.UserPlugin);

User.plugins.registerPlugin(ez5.ExampleUserPlugin);
// Generated by CoffeeScript 1.12.7
var ExampleAssetDetail3D,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleAssetDetail3D = (function(superClass) {
  extend(ExampleAssetDetail3D, superClass);

  function ExampleAssetDetail3D() {
    return ExampleAssetDetail3D.__super__.constructor.apply(this, arguments);
  }

  ExampleAssetDetail3D.prototype.getButtonLocaKey = function(asset) {
    var huge;
    console.debug("class extension", asset.value.class_extension);
    if (asset.value.class_extension !== "image.jpg") {
      return;
    }
    huge = asset.value.versions.huge;
    if ((huge != null ? huge.status : void 0) !== "done") {
      return;
    }
    return "example.asset.detail.360degrees";
  };

  ExampleAssetDetail3D.prototype.createMarkup = function() {
    var huge, obj, obj2;
    ExampleAssetDetail3D.__super__.createMarkup.call(this);
    huge = this.asset.value.versions.huge;
    obj = CUI.dom.element("A-SCENE", {
      embedded: true,
      "class": "ez5-ascene"
    });
    obj2 = CUI.dom.element("A-SKY", {
      src: ez5.getAbsoluteURL(huge.url)
    });
    obj.appendChild(obj2);
    CUI.dom.append(this.outerDiv, obj);
    return console.debug("asset button", this, this.asset, obj, obj2);
  };

  return ExampleAssetDetail3D;

})(AssetDetail);

ez5.session_ready((function(_this) {
  return function() {};
})(this));
// Generated by CoffeeScript 1.12.7
var ExampleCustomDataType,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleCustomDataType = (function(superClass) {
  extend(ExampleCustomDataType, superClass);

  function ExampleCustomDataType() {
    return ExampleCustomDataType.__super__.constructor.apply(this, arguments);
  }

  ExampleCustomDataType.prototype.getCustomDataTypeName = function() {
    return "custom:base.example-plugin.slider";
  };

  ExampleCustomDataType.prototype.getCustomDataOptionsInDatamodelInfo = function(custom_settings) {
    if (custom_settings.range) {
      return [
        $$("example.custom.data.type.datamodel_info", {
          from: custom_settings.range.from,
          to: custom_settings.range.to
        })
      ];
    } else {
      return [];
    }
  };

  ExampleCustomDataType.prototype.initData = function(data) {
    if (!data[this.name()]) {
      return data[this.name()] = {};
    }
  };

  ExampleCustomDataType.prototype.renderDetailOutput = function(data, top_level_data, opts) {
    var cdata;
    cdata = data[this.name()];
    return new CUI.Label({
      "class": this.__getClass(),
      text: cdata.value + " [" + cdata.description + "]"
    });
  };

  ExampleCustomDataType.prototype.__getClass = function() {
    var mask_settings, ref;
    mask_settings = this.getCustomMaskSettings();
    return ["ez5-example-custom-data-type", "ez5-example-custom-data-type--" + (((ref = mask_settings.appearance) != null ? ref.color : void 0) || "red")].join(" ");
  };

  ExampleCustomDataType.prototype.renderEditorInput = function(data, top_level_data, opts) {
    var cdata, custom_settings, form, mask_settings;
    custom_settings = this.getCustomSchemaSettings();
    mask_settings = this.getCustomMaskSettings();
    console.debug("mask settings:", this.__getClass(), mask_settings);
    this.initData(data);
    cdata = data[this.name()];
    form = new CUI.Form({
      data: cdata,
      "class": this.__getClass(),
      fields: [
        {
          form: {
            label: $$("example.custom.data.type.input.value")
          },
          type: CUI.Slider,
          name: "value"
        }, {
          type: CUI.Input,
          name: "description"
        }
      ],
      onDataChanged: (function(_this) {
        return function() {
          return CUI.Events.trigger({
            node: form,
            type: "editor-changed"
          });
        };
      })(this)
    }).start();
    return form;
  };

  ExampleCustomDataType.prototype.getSaveData = function(data, save_data, opts) {
    var cdata, ref;
    cdata = data[this.name()] || ((ref = data._template) != null ? ref[this.name()] : void 0);
    save_data[this.name()] = CUI.util.copyObject(cdata, true);
  };

  return ExampleCustomDataType;

})(CustomDataType);

CustomDataType.register(ExampleCustomDataType);
// Generated by CoffeeScript 1.12.7
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ez5.ExampleMaskSplitterSimple = (function(superClass) {
  extend(ExampleMaskSplitterSimple, superClass);

  function ExampleMaskSplitterSimple() {
    return ExampleMaskSplitterSimple.__super__.constructor.apply(this, arguments);
  }

  ExampleMaskSplitterSimple.prototype.isSimpleSplit = function() {
    return true;
  };

  ExampleMaskSplitterSimple.prototype.getOptions = function() {
    return [
      {
        form: {
          label: "Splitter Title"
        },
        type: CUI.Input,
        name: "title"
      }
    ];
  };

  ExampleMaskSplitterSimple.prototype.renderField = function(opts) {
    return new CUI.Label({
      appearance: "title",
      text: this.getDataOptions().title || "<no title>"
    });
  };

  ExampleMaskSplitterSimple.prototype.isEnabledForNested = function() {
    return true;
  };

  return ExampleMaskSplitterSimple;

})(CustomMaskSplitter);

MaskSplitter.plugins.registerPlugin(ez5.ExampleMaskSplitterSimple);
// Generated by CoffeeScript 1.12.7
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ez5.ExampleMaskSplitterBlock = (function(superClass) {
  extend(ExampleMaskSplitterBlock, superClass);

  function ExampleMaskSplitterBlock() {
    return ExampleMaskSplitterBlock.__super__.constructor.apply(this, arguments);
  }

  ExampleMaskSplitterBlock.prototype.isSimpleSplit = function() {
    return false;
  };

  ExampleMaskSplitterBlock.prototype.getOptions = function() {
    return [
      {
        form: {
          label: "Color"
        },
        type: CUI.Select,
        options: [
          {
            value: "black"
          }, {
            value: "red"
          }, {
            value: "green"
          }, {
            value: "yellow"
          }
        ],
        name: "color"
      }, {
        form: {
          label: "Style"
        },
        type: CUI.Select,
        options: [
          {
            value: "solid"
          }, {
            value: "dotted"
          }, {
            value: "dashed"
          }
        ],
        name: "style"
      }
    ];
  };

  ExampleMaskSplitterBlock.prototype.getDefaultOptions = function() {
    return {
      color: "black",
      style: "solid"
    };
  };

  ExampleMaskSplitterBlock.prototype.renderField = function(opts) {
    var color, div, innerFields, style;
    color = this.getDataOptions().color;
    style = this.getDataOptions().style;
    console.debug(this, "ExampleMaskSplitterBlock.renderField", opts, color, style);
    div = CUI.dom.element("div", {
      "class": "ez5-example-mask-splitter"
    });
    CUI.dom.setStyle(div, {
      border: "4px " + style + " " + color
    });
    innerFields = this.renderInnerFields(opts);
    if ((innerFields != null ? innerFields.length : void 0) > 0 || opts.mode === "editor") {
      return CUI.dom.append(div, this.renderInnerFields(opts));
    }
  };

  ExampleMaskSplitterBlock.prototype.isEnabledForNested = function() {
    return true;
  };

  return ExampleMaskSplitterBlock;

})(CustomMaskSplitter);

MaskSplitter.plugins.registerPlugin(ez5.ExampleMaskSplitterBlock);
// Generated by CoffeeScript 1.12.7
var ExampleDetailSidebarPlugin,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleDetailSidebarPlugin = (function(superClass) {
  extend(ExampleDetailSidebarPlugin, superClass);

  function ExampleDetailSidebarPlugin() {
    return ExampleDetailSidebarPlugin.__super__.constructor.apply(this, arguments);
  }

  ExampleDetailSidebarPlugin.prototype.prefName = function() {
    return "example_detail_sidebar_plugin";
  };

  ExampleDetailSidebarPlugin.prototype.getPane = function() {
    return "top";
  };

  ExampleDetailSidebarPlugin.prototype.getButtonLocaKey = function() {
    return "example.detail.sidebar.plugin.button";
  };

  ExampleDetailSidebarPlugin.prototype.render = function() {
    return console.info("ExampleDetailSidebarPlugin.render():", this._detailSidebar);
  };

  ExampleDetailSidebarPlugin.prototype.renderObject = function() {
    return console.info("ExampleDetailSidebarPlugin.renderObject():", this._detailSidebar, this.__currentObject);
  };

  ExampleDetailSidebarPlugin.prototype.isAvailable = function() {
    return true;
  };

  ExampleDetailSidebarPlugin.prototype.hideDetail = function() {
    return this._detailSidebar.mainPane.empty("top");
  };

  ExampleDetailSidebarPlugin.prototype.renderObjectDetailSidebar = function() {
    return this.getButton().addClass("ez5-example-detail-sidebar-plugin-btn-red");
  };

  ExampleDetailSidebarPlugin.prototype.showDetail = function() {
    var field, i, len, obj, od, ref, ref1;
    obj = this._detailSidebar.object;
    ref = obj.mask.getFields("all");
    for (i = 0, len = ref.length; i < len; i++) {
      field = ref[i];
      console.debug("Field:", field.fullName(), field, "custom settings:", (ref1 = field.FieldSchema) != null ? ref1.custom_settings : void 0);
    }
    od = new CUI.ObjectDumper({
      object: obj.getData()
    });
    this._detailSidebar.mainPane.replace([
      new CUI.Label({
        text: "More info dumped to console!"
      }), od
    ], "top");
    return this;
  };

  return ExampleDetailSidebarPlugin;

})(DetailSidebarPlugin);

ez5.session_ready((function(_this) {
  return function() {
    return DetailSidebar.plugins.registerPlugin(ExampleDetailSidebarPlugin);
  };
})(this));
// Generated by CoffeeScript 1.12.7
var ExampleExportManagerPlugin,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleExportManagerPlugin = (function(superClass) {
  extend(ExampleExportManagerPlugin, superClass);

  function ExampleExportManagerPlugin() {
    return ExampleExportManagerPlugin.__super__.constructor.apply(this, arguments);
  }

  ExampleExportManagerPlugin.prototype.name = function() {
    return "example_export";
  };

  ExampleExportManagerPlugin.prototype.nameLocalized = function() {
    return $$("example.export.manager.plugin.name");
  };

  ExampleExportManagerPlugin.prototype.getExportData = function() {
    var exportData;
    exportData = ExampleExportManagerPlugin.__super__.getExportData.call(this);
    if (!exportData.produce_options) {
      exportData.produce_options = {};
    }
    exportData.produce_options.with_tags = this.__data.with_tags;
    exportData.json = this.__data.type === "json";
    exportData.xml = this.__data.type === "xml";
    return exportData;
  };

  ExampleExportManagerPlugin.prototype.renderForm = function() {
    var form;
    this.__data = this.__initData();
    form = new CUI.Form({
      data: this.__data,
      "class": "ez5-example-export-form",
      fields: [
        {
          type: CUI.Select,
          name: "type",
          form: {
            label: $$("example.export.manager.form.type.label")
          },
          text: $$("example.export.manager.form.type.text"),
          options: [
            {
              value: "json"
            }, {
              value: "xml"
            }
          ]
        }, {
          type: CUI.Checkbox,
          name: "with_tags",
          form: {
            label: $$("example.export.manager.form.with_tags.label")
          },
          text: $$("example.export.manager.form.with_tags.text")
        }
      ]
    });
    return form.start();
  };

  ExampleExportManagerPlugin.prototype.saveAllowed = function() {
    return true;
  };

  ExampleExportManagerPlugin.prototype.__initData = function() {
    var data, exportData, ref, ref1;
    data = {
      with_tags: false,
      type: "json"
    };
    exportData = (ref = this._export.data) != null ? ref["export"] : void 0;
    if (exportData) {
      data.with_tags = (ref1 = exportData.produce_options) != null ? ref1.with_tags : void 0;
      if (exportData.xml) {
        data.type = "xml";
      }
    }
    return data;
  };

  return ExampleExportManagerPlugin;

})(ExportManagerPlugin);

ez5.session_ready(function() {
  return ExportManager.registerPlugin(new ExampleExportManagerPlugin());
});
// Generated by CoffeeScript 1.12.7
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

if (ez5.PdfCreator) {
  ez5.ExamplePdfCreatorNode = (function(superClass) {
    extend(ExamplePdfCreatorNode, superClass);

    function ExamplePdfCreatorNode() {
      return ExamplePdfCreatorNode.__super__.constructor.apply(this, arguments);
    }

    ExamplePdfCreatorNode.getName = function() {
      return "an-example-node";
    };

    ExamplePdfCreatorNode.prototype.__renderPdfContent = function(opts) {
      var content, data, object;
      object = opts.object;
      if (!object) {
        return;
      }
      data = this.getData();
      content = new CUI.VerticalLayout({
        top: {
          content: new CUI.Label({
            text: data.title
          })
        },
        center: {
          content: new CUI.MultilineLabel({
            text: CUI.util.dump(object)
          })
        }
      });
      return content;
    };

    ExamplePdfCreatorNode.prototype.__getSettingsFields = function() {
      var fields;
      fields = [
        {
          type: CUI.Input,
          name: "title",
          form: {
            label: $$("pdf-creator.node.an-example-node.settings.title")
          }
        }
      ];
      return fields;
    };

    ExamplePdfCreatorNode.prototype.__getStyleSettings = function() {
      return ["class-name", "background", "color"];
    };

    return ExamplePdfCreatorNode;

  })(ez5.PdfCreator.Node);
  ez5.PdfCreator.plugins.registerPlugin(ez5.ExamplePdfCreatorNode);
}
// Generated by CoffeeScript 1.12.7
var ExampleRootApp,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleRootApp = (function(superClass) {
  extend(ExampleRootApp, superClass);

  function ExampleRootApp() {
    return ExampleRootApp.__super__.constructor.apply(this, arguments);
  }

  ExampleRootApp.is_allowed = function() {
    return true;
  };

  ExampleRootApp.group = function() {
    return "zzz_zexample";
  };

  ExampleRootApp.label = function() {
    return "example.app.label";
  };

  ExampleRootApp.isStartApp = function() {
    return false;
  };

  ExampleRootApp.path = function() {
    return ["example"];
  };

  ExampleRootApp.prototype.allow_unload = function() {
    return CUI.confirm({
      text: "Leave?"
    });
  };

  ExampleRootApp.prototype.unload = function() {
    ez5.rootLayout.empty("center");
    delete this.__plugin;
    return ExampleRootApp.__super__.unload.call(this);
  };

  ExampleRootApp.prototype.load = function() {
    var il;
    ExampleRootApp.__super__.load.call(this);
    this.__plugin = ez5.pluginManager.getPlugin("example-plugin");
    console.debug("plugin:", this.__plugin);
    this.__plugin_url = this.__plugin.getPluginURL();
    il = new CUI.ItemList({
      items: [
        {
          active: true,
          loca_key: "example.root.app.button.base_config",
          onClick: (function(_this) {
            return function() {
              return _this.showBaseConfig();
            };
          })(this)
        }, {
          loca_key: "example.root.app.button.system_right",
          onClick: (function(_this) {
            return function() {
              return _this.showSystemRight();
            };
          })(this)
        }, {
          loca_key: "example.root.app.button.server_echo",
          onClick: (function(_this) {
            return function() {
              return _this.server("echo", "text");
            };
          })(this)
        }, {
          loca_key: "example.root.app.button.server_config",
          onClick: (function(_this) {
            return function() {
              return _this.server("config");
            };
          })(this)
        }, {
          loca_key: "example.root.app.button.server_session",
          onClick: (function(_this) {
            return function() {
              return _this.server("session");
            };
          })(this)
        }, {
          loca_key: "example.root.app.button.server_tmp",
          onClick: (function(_this) {
            return function() {
              return _this.server("tmp", "text");
            };
          })(this)
        }, {
          loca_key: "example.root.app.button.server_instance",
          onClick: (function(_this) {
            return function() {
              return _this.server("instance");
            };
          })(this)
        }
      ]
    });
    il.render();
    this.__hl = new CUI.HorizontalLayout({
      left: {
        "class": "ez5-example-plugin-hl-left",
        content: il
      }
    });
    ez5.rootLayout.replace(this.__hl, "center");
    this.showBaseConfig();
    return CUI.resolvedPromise();
  };

  ExampleRootApp.prototype.showBaseConfig = function() {
    var baseConfig, od;
    baseConfig = ez5.session.getBaseConfig("plugin", "example-plugin");
    baseConfig = baseConfig.system || baseConfig;
    od = new CUI.ObjectDumper({
      parse_json: true,
      object: baseConfig.example_plugin
    });
    return this.__hl.replace(od, "center");
  };

  ExampleRootApp.prototype.showSystemRight = function() {
    var od;
    od = new CUI.ObjectDumper({
      object: ez5.session.system_rights
    });
    return this.__hl.replace(od, "center");
  };

  ExampleRootApp.prototype.server = function(call, type) {
    var dataType;
    if (type == null) {
      type = "json";
    }
    switch (type) {
      case "json":
        dataType = void 0;
        break;
      case "text":
        dataType = "";
    }
    return ez5.server({
      dataType: dataType,
      local_url: this.__plugin_url + "/" + call
    }).done((function(_this) {
      return function(result, status, xhr) {
        var content;
        if (CUI.isString(result)) {
          content = new CUI.Label({
            multiline: true,
            text: result
          });
        } else {
          content = new CUI.ObjectDumper({
            object: result
          });
        }
        return _this.__hl.replace(content, "center");
      };
    })(this));
  };

  return ExampleRootApp;

})(RootMenuApp);

ez5.session_ready((function(_this) {
  return function() {
    return ez5.rootMenu.registerApp(ExampleRootApp);
  };
})(this));
// Generated by CoffeeScript 1.12.7
var ExampleTransitionAction,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleTransitionAction = (function(superClass) {
  extend(ExampleTransitionAction, superClass);

  function ExampleTransitionAction() {
    return ExampleTransitionAction.__super__.constructor.apply(this, arguments);
  }

  ExampleTransitionAction.prototype.getListViewColumn = function() {
    return {
      type: CUI.Output,
      text: "Example Plugin Action: set timestamp in text field"
    };
  };

  ExampleTransitionAction.prototype.getSaveData = function() {
    var sd;
    return sd = {
      type: ExampleTransitionAction.getType(),
      info: {}
    };
  };

  ExampleTransitionAction.getType = function() {
    return "plugin.base.example-plugin.example_transition_action";
  };

  ExampleTransitionAction.getDisplayName = function() {
    return "Example Plugin Action";
  };

  return ExampleTransitionAction;

})(TransitionActionAction);

TransitionAction.registerAction(ExampleTransitionAction);
// Generated by CoffeeScript 1.12.7
var ExampleDownloadManager, ExampleFilepicker,
  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
  hasProp = {}.hasOwnProperty;

ExampleDownloadManager = (function(superClass) {
  extend(ExampleDownloadManager, superClass);

  function ExampleDownloadManager() {
    return ExampleDownloadManager.__super__.constructor.apply(this, arguments);
  }

  ExampleDownloadManager.prototype.type = function() {
    return 'Examplefilepicker';
  };

  ExampleDownloadManager.prototype.getBaseConfig = function() {
    return ez5.session.getBaseConfig("plugin", 'example-plugin')["ExampleFilepicker"] || {};
  };

  ExampleDownloadManager.prototype.getExportSaveData = function() {
    var data;
    data = ExampleDownloadManager.__super__.getExportSaveData.call(this);
    data["export"].all_languages = true;
    return data;
  };

  ExampleDownloadManager.prototype.getMetadataFieldOptions = function() {
    return [];
  };

  return ExampleDownloadManager;

})(FilepickerDownloadManager);

ExampleFilepicker = (function(superClass) {
  extend(ExampleFilepicker, superClass);

  function ExampleFilepicker() {
    return ExampleFilepicker.__super__.constructor.apply(this, arguments);
  }

  ExampleFilepicker.prototype.readOpts = function() {
    ExampleFilepicker.__super__.readOpts.call(this);
    return this.setDownloadManagerClass(ExampleDownloadManager);
  };

  ExampleFilepicker.prototype.type = function() {
    return 'Examplefilepicker';
  };

  return ExampleFilepicker;

})(Filepicker);

ez5.session_ready(function() {
  return ExampleFilepicker.session_ready('Examplefilepicker', 'example-plugin');
});
