"use strict";

function _jade_template_fn(locals) {
  locals = locals || {};;;
  var result_of_with = function ($helpers, Array, Object, String, focusedItemIndex, numColumns, showSelectAll) {
    var h = require('panel').h;
    var __vjadeSafeCode = function __vjadeSafeCode(code) {
      return code || String(code);
    };
    return {
      value: h("ul", {
        "attrs": {
          tabindex: 0
        },
        "hook": {
          postpatch: $helpers.handlePostPatch
        },
        "class": {
          'mp-checkbox-list-list': true
        }
      }, function () {
        var __jade_nodes = [];
        var allSelected = $helpers.allSelected();
        var checkboxItems = $helpers.getItems();
        __jade_nodes = __jade_nodes.concat(checkboxItems.length ? function () {
          var __jade_nodes = [];
          __jade_nodes = __jade_nodes.concat(showSelectAll ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("li", {
              "on": {
                click: $helpers.toggleSelectAll
              },
              "class": Object.assign({}, {
                'mp-checkbox-list-two-columns': numColumns === 2,
                'mp-checkbox-list-three-columns': numColumns === 3,
                'mp-checkbox-list-four-columns': numColumns === 4
              }, {
                'mp-checkbox-list-checkbox-item': true,
                'mp-checkbox-list-checkbox-select-all': true
              })
            }, function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("div", {
                "class": Object.assign({}, {
                  'mp-checkbox-list-checkbox-dash': !allSelected
                }, {
                  'mp-checkbox-list-checkbox-select-icon': true
                })
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("svg-icon", {
                  "attrs": {
                    icon: allSelected ? 'check-checkbox' : 'dash'
                  }
                }));;
                return __jade_nodes;
              }.call(this).filter(Boolean)));
              __jade_nodes = __jade_nodes.concat(h("div", {
                "class": {
                  'mp-checkbox-list-checkbox-label': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat("Select all");;
                return __jade_nodes;
              }.call(this).filter(Boolean)));;
              return __jade_nodes;
            }.call(this).filter(Boolean)));;
            return __jade_nodes;
          }.call(this) : undefined);
          __jade_nodes = __jade_nodes.concat(function () {
            var $$obj = checkboxItems;
            var $$eachNodes;
            var $$iterated = false;
            if (Array.isArray($$obj)) {
              $$eachNodes = $$obj.reduce(function ($$eachNodes, item, $index) {
                $$iterated = true;
                return $$eachNodes.concat(function () {
                  var __jade_nodes = [];
                  var isFocused = focusedItemIndex === item.index;
                  var isSelected = item.isSelected;
                  __jade_nodes = __jade_nodes.concat(h("li", {
                    "on": {
                      click: function click() {
                        return $helpers.handleClickItem(item);
                      },
                      mouseenter: function mouseenter() {
                        return $helpers.handleMouseenterItem(item);
                      }
                    },
                    "class": Object.assign({}, {
                      'mp-checkbox-list-focused': isFocused,
                      'mp-checkbox-list-two-columns': numColumns === 2,
                      'mp-checkbox-list-three-columns': numColumns === 3,
                      'mp-checkbox-list-four-columns': numColumns === 4
                    }, {
                      'mp-checkbox-list-checkbox-item': true
                    })
                  }, function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(h("div", {
                      "class": Object.assign({}, {
                        'mp-checkbox-list-colored': isSelected
                      }, {
                        'mp-checkbox-list-checkbox-select-icon': true
                      })
                    }, function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat(h("svg-icon", {
                        "attrs": {
                          icon: 'check-checkbox',
                          empty: !isSelected
                        }
                      }));;
                      return __jade_nodes;
                    }.call(this).filter(Boolean)));
                    __jade_nodes = __jade_nodes.concat(h("div", {
                      "class": {
                        'mp-checkbox-list-checkbox-label': true
                      }
                    }, function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat(item.matches ? function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat(function () {
                          var $$obj = item.matches;
                          var $$eachNodes;
                          var $$iterated = false;
                          if (Array.isArray($$obj)) {
                            $$eachNodes = $$obj.reduce(function ($$eachNodes, substr, si) {
                              $$iterated = true;
                              return $$eachNodes.concat(function () {
                                var __jade_nodes = [];
                                __jade_nodes = __jade_nodes.concat(h("span", {
                                  "class": Object.assign({}, {
                                    'matches-search': !(si % 2)
                                  }, {
                                    'substr': true
                                  })
                                }, [__vjadeSafeCode(substr)]));;
                                return __jade_nodes;
                              }.call(this));
                            }, []);
                          } else {
                            $$eachNodes = [];
                            for (var $$objKey in $$obj) {
                              (function () {
                                var si = $$objKey;
                                if ($$obj.hasOwnProperty(si)) {
                                  $$iterated = true;
                                  var substr = $$obj[si];
                                  $$eachNodes = $$eachNodes.concat(function () {
                                    var __jade_nodes = [];
                                    __jade_nodes = __jade_nodes.concat(h("span", {
                                      "class": Object.assign({}, {
                                        'matches-search': !(si % 2)
                                      }, {
                                        'substr': true
                                      })
                                    }, [__vjadeSafeCode(substr)]));;
                                    return __jade_nodes;
                                  }.call(this));
                                }
                              })();
                            }
                          }

                          return $$eachNodes;
                        }());;
                        return __jade_nodes;
                      }.call(this) : function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat(h("span", {
                          "class": {
                            'label': true
                          }
                        }, [__vjadeSafeCode(item.label)]));;
                        return __jade_nodes;
                      }.call(this));;
                      return __jade_nodes;
                    }.call(this).filter(Boolean)));;
                    return __jade_nodes;
                  }.call(this).filter(Boolean)));;
                  return __jade_nodes;
                }.call(this));
              }, []);
            } else {
              $$eachNodes = [];
              for (var $$objKey in $$obj) {
                (function () {
                  var $index = $$objKey;
                  if ($$obj.hasOwnProperty($index)) {
                    $$iterated = true;
                    var item = $$obj[$index];
                    $$eachNodes = $$eachNodes.concat(function () {
                      var __jade_nodes = [];
                      var isFocused = focusedItemIndex === item.index;
                      var isSelected = item.isSelected;
                      __jade_nodes = __jade_nodes.concat(h("li", {
                        "on": {
                          click: function click() {
                            return $helpers.handleClickItem(item);
                          },
                          mouseenter: function mouseenter() {
                            return $helpers.handleMouseenterItem(item);
                          }
                        },
                        "class": Object.assign({}, {
                          'mp-checkbox-list-focused': isFocused,
                          'mp-checkbox-list-two-columns': numColumns === 2,
                          'mp-checkbox-list-three-columns': numColumns === 3,
                          'mp-checkbox-list-four-columns': numColumns === 4
                        }, {
                          'mp-checkbox-list-checkbox-item': true
                        })
                      }, function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat(h("div", {
                          "class": Object.assign({}, {
                            'mp-checkbox-list-colored': isSelected
                          }, {
                            'mp-checkbox-list-checkbox-select-icon': true
                          })
                        }, function () {
                          var __jade_nodes = [];
                          __jade_nodes = __jade_nodes.concat(h("svg-icon", {
                            "attrs": {
                              icon: 'check-checkbox',
                              empty: !isSelected
                            }
                          }));;
                          return __jade_nodes;
                        }.call(this).filter(Boolean)));
                        __jade_nodes = __jade_nodes.concat(h("div", {
                          "class": {
                            'mp-checkbox-list-checkbox-label': true
                          }
                        }, function () {
                          var __jade_nodes = [];
                          __jade_nodes = __jade_nodes.concat(item.matches ? function () {
                            var __jade_nodes = [];
                            __jade_nodes = __jade_nodes.concat(function () {
                              var $$obj = item.matches;
                              var $$eachNodes;
                              var $$iterated = false;
                              if (Array.isArray($$obj)) {
                                $$eachNodes = $$obj.reduce(function ($$eachNodes, substr, si) {
                                  $$iterated = true;
                                  return $$eachNodes.concat(function () {
                                    var __jade_nodes = [];
                                    __jade_nodes = __jade_nodes.concat(h("span", {
                                      "class": Object.assign({}, {
                                        'matches-search': !(si % 2)
                                      }, {
                                        'substr': true
                                      })
                                    }, [__vjadeSafeCode(substr)]));;
                                    return __jade_nodes;
                                  }.call(this));
                                }, []);
                              } else {
                                $$eachNodes = [];
                                for (var $$objKey in $$obj) {
                                  (function () {
                                    var si = $$objKey;
                                    if ($$obj.hasOwnProperty(si)) {
                                      $$iterated = true;
                                      var substr = $$obj[si];
                                      $$eachNodes = $$eachNodes.concat(function () {
                                        var __jade_nodes = [];
                                        __jade_nodes = __jade_nodes.concat(h("span", {
                                          "class": Object.assign({}, {
                                            'matches-search': !(si % 2)
                                          }, {
                                            'substr': true
                                          })
                                        }, [__vjadeSafeCode(substr)]));;
                                        return __jade_nodes;
                                      }.call(this));
                                    }
                                  })();
                                }
                              }

                              return $$eachNodes;
                            }());;
                            return __jade_nodes;
                          }.call(this) : function () {
                            var __jade_nodes = [];
                            __jade_nodes = __jade_nodes.concat(h("span", {
                              "class": {
                                'label': true
                              }
                            }, [__vjadeSafeCode(item.label)]));;
                            return __jade_nodes;
                          }.call(this));;
                          return __jade_nodes;
                        }.call(this).filter(Boolean)));;
                        return __jade_nodes;
                      }.call(this).filter(Boolean)));;
                      return __jade_nodes;
                    }.call(this));
                  }
                })();
              }
            }

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