"use strict";

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function _jade_template_fn(locals) {
  locals = locals || {};;;
  var result_of_with = function ($attrs, Array, String) {
    var h = require('panel').h;
    var __vjadeSafeCode = function __vjadeSafeCode(code) {
      return code || String(code);
    };
    return {
      value: h("div", function () {
        var __jade_nodes = [];
        __jade_nodes = __jade_nodes.concat(function () {
          var $$obj = $attrs["parts"];
          var $$eachNodes;
          var $$iterated = false;
          if (Array.isArray($$obj)) {
            $$eachNodes = $$obj.reduce(function ($$eachNodes, part, $index) {
              $$iterated = true;
              return $$eachNodes.concat(function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(typeof part === "object" ? function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(part.class ? function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(h("span", {
                      "class": _defineProperty({}, part.class, true)
                    }, [__vjadeSafeCode(part.text)]));;
                    return __jade_nodes;
                  }.call(this) : function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(part.text);;
                    return __jade_nodes;
                  }.call(this));;
                  return __jade_nodes;
                }.call(this) : function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(part);;
                  return __jade_nodes;
                }.call(this));;
                return __jade_nodes;
              }.call(this));
            }, []);
          } else {
            $$eachNodes = [];
            for (var $$objKey in $$obj) {
              (function () {
                var $index = $$objKey;
                if ($$obj.hasOwnProperty($index)) {
                  $$iterated = true;
                  var part = $$obj[$index];
                  $$eachNodes = $$eachNodes.concat(function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(typeof part === "object" ? function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat(part.class ? function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat(h("span", {
                          "class": _defineProperty({}, part.class, true)
                        }, [__vjadeSafeCode(part.text)]));;
                        return __jade_nodes;
                      }.call(this) : function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat(part.text);;
                        return __jade_nodes;
                      }.call(this));;
                      return __jade_nodes;
                    }.call(this) : function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat(part);;
                      return __jade_nodes;
                    }.call(this));;
                    return __jade_nodes;
                  }.call(this));
                }
              })();
            }
          }

          return $$eachNodes;
        }());;
        return __jade_nodes;
      }.call(this).filter(Boolean))
    };
  }.call(this, "$attrs" in locals ? locals.$attrs : typeof $attrs !== "undefined" ? $attrs : undefined, "Array" in locals ? locals.Array : typeof Array !== "undefined" ? Array : undefined, "String" in locals ? locals.String : typeof String !== "undefined" ? String : undefined);
  if (result_of_with) return result_of_with.value;
}
module.exports = _jade_template_fn;