'use strict';

function _jade_template_fn(locals) {
  locals = locals || {};;;
  var result_of_with = function ($attrs, $helpers, Array, Object, String, activeBookmark, confirmDeleteBookmark, createMode, filterText, filteredBookmarks, open, saving, showUpsellModal) {
    var h = require('panel').h;
    var jade_mixins = {};
    jade_mixins['list-item'] = function (bookmark) {
      var block = this && this.block,
          attributes = this && this.attributes || {};

      return function () {
        var __jade_nodes = [];
        __jade_nodes = __jade_nodes.concat(h("mp-list-item", {
          "attrs": {
            active: activeBookmark && activeBookmark.id === bookmark.id
          },
          "on": {
            click: function click() {
              return $helpers.selectBookmark(bookmark);
            },
            mouseover: function mouseover() {
              return $helpers.activateBookmark(bookmark);
            },
            mouseleave: function mouseleave() {
              return $helpers.activateBookmark(null);
            }
          }
        }, function () {
          var __jade_nodes = [];
          __jade_nodes = __jade_nodes.concat(h("div", {
            "class": {
              'mp-bm-menu-bookmark-row': true
            }
          }, function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("div", {
              "class": {
                'mp-bm-menu-bookmark-details': true
              }
            }, function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("div", {
                "attrs": {
                  title: bookmark.name
                },
                "class": {
                  'mp-bm-menu-name': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(function () {
                  var $$obj = $helpers.stringFilterMatches(bookmark.name, filterText);
                  var $$eachNodes;
                  var $$iterated = false;
                  if (Array.isArray($$obj)) {
                    $$eachNodes = $$obj.reduce(function ($$eachNodes, token, pos) {
                      $$iterated = true;
                      return $$eachNodes.concat(function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat(pos % 2 === 1 ? function () {
                          var __jade_nodes = [];
                          __jade_nodes = __jade_nodes.concat(h("span", [__vjadeSafeCode($helpers.truncateMiddle(token, 40))]));;
                          return __jade_nodes;
                        }.call(this) : function () {
                          var __jade_nodes = [];
                          __jade_nodes = __jade_nodes.concat(h("b", [__vjadeSafeCode(token)]));;
                          return __jade_nodes;
                        }.call(this));;
                        return __jade_nodes;
                      }.call(this));
                    }, []);
                  } else {
                    $$eachNodes = [];
                    for (var $$objKey in $$obj) {
                      (function () {
                        var pos = $$objKey;
                        if ($$obj.hasOwnProperty(pos)) {
                          $$iterated = true;
                          var token = $$obj[pos];
                          $$eachNodes = $$eachNodes.concat(function () {
                            var __jade_nodes = [];
                            __jade_nodes = __jade_nodes.concat(pos % 2 === 1 ? function () {
                              var __jade_nodes = [];
                              __jade_nodes = __jade_nodes.concat(h("span", [__vjadeSafeCode($helpers.truncateMiddle(token, 40))]));;
                              return __jade_nodes;
                            }.call(this) : function () {
                              var __jade_nodes = [];
                              __jade_nodes = __jade_nodes.concat(h("b", [__vjadeSafeCode(token)]));;
                              return __jade_nodes;
                            }.call(this));;
                            return __jade_nodes;
                          }.call(this));
                        }
                      })();
                    }
                  }

                  return $$eachNodes;
                }());;
                return __jade_nodes;
              }.call(this).filter(Boolean)));
              __jade_nodes = __jade_nodes.concat(h("div", {
                "class": {
                  'mp-bm-menu-creator': true
                }
              }, [__vjadeSafeCode(bookmark.user)]));;
              return __jade_nodes;
            }.call(this).filter(Boolean)));
            __jade_nodes = __jade_nodes.concat($attrs['has-write-permissions'] ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("div", {
                "on": {
                  click: function click(e) {
                    return $helpers.openConfirmDeleteDialog(e, bookmark);
                  }
                },
                "class": {
                  'mp-bm-menu-delete-button': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("svg-icon", {
                  "attrs": {
                    icon: 'trashcan'
                  }
                }));;
                return __jade_nodes;
              }.call(this).filter(Boolean)));;
              return __jade_nodes;
            }.call(this) : undefined);;
            return __jade_nodes;
          }.call(this).filter(Boolean)));;
          return __jade_nodes;
        }.call(this).filter(Boolean)));;
        return __jade_nodes;
      }.call(this);
    };

    var __vjadeSafeCode = function __vjadeSafeCode(code) {
      return code || String(code);
    };
    return {
      value: h("div", {
        "on": {
          scroll: $helpers.stopPropagation
        },
        "class": {
          'mp-bm-container': true
        }
      }, function () {
        var __jade_nodes = [];
        __jade_nodes = __jade_nodes.concat(h("mp-upsell-popup", {
          "attrs": {
            open: showUpsellModal,
            feature: 'bookmark-maximum'
          },
          "on": {
            change: $helpers.closeUpsellModal
          }
        }));
        __jade_nodes = __jade_nodes.concat(h("div", {
          "on": {
            click: $helpers.toggleBookmarksMenu
          },
          "class": {
            'mp-bm-btn': true
          }
        }, function () {
          var __jade_nodes = [];
          __jade_nodes = __jade_nodes.concat(h("div", {
            "class": {
              'mp-bm-btn-icon': true
            }
          }, function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("svg-icon", {
              "attrs": {
                icon: 'bookmarks'
              }
            }));;
            return __jade_nodes;
          }.call(this).filter(Boolean)));
          __jade_nodes = __jade_nodes.concat(h("span", function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat("Bookmarks");;
            return __jade_nodes;
          }.call(this).filter(Boolean)));;
          return __jade_nodes;
        }.call(this).filter(Boolean)));
        __jade_nodes = __jade_nodes.concat(h("div", {
          "attrs": {
            tabindex: 0
          },
          "class": {
            'mp-bm-menu': true
          }
        }, function () {
          var __jade_nodes = [];
          __jade_nodes = __jade_nodes.concat(h("mp-drop-menu", {
            "attrs": {
              open: open
            },
            "on": {
              change: $helpers.handleDropMenuChange
            }
          }, function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("div", {
              "attrs": {
                'slot-body': true
              },
              "class": {
                'mp-bm-menu-container': true
              }
            }, function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("mp-icon-input", {
                "attrs": {
                  icon: 'search',
                  placeholder: 'Search bookmarks...'
                },
                "on": {
                  change: $helpers.stopPropagation,
                  input: $helpers.setFilterText
                },
                "class": {
                  'mp-bm-menu-search': true
                }
              }));
              __jade_nodes = __jade_nodes.concat(h("div", {
                "class": {
                  'mp-bm-menu-list': true
                }
              }, function () {
                var __jade_nodes = [];
                var numBookmarkSections = Object.keys(filteredBookmarks).length;
                __jade_nodes = __jade_nodes.concat(numBookmarkSections === 0 ? function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(h("mp-list-item", {
                    "attrs": {
                      static: true
                    }
                  }, function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(h("div", {
                      "class": {
                        'mp-bm-menu-empty': true
                      }
                    }, function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat("No bookmarks found, try creating a bookmark.");;
                      return __jade_nodes;
                    }.call(this).filter(Boolean)));;
                    return __jade_nodes;
                  }.call(this).filter(Boolean)));;
                  return __jade_nodes;
                }.call(this) : numBookmarkSections === 1 ? function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(function () {
                    var $$obj = Object.values(filteredBookmarks)[0];
                    var $$eachNodes;
                    var $$iterated = false;
                    if (Array.isArray($$obj)) {
                      $$eachNodes = $$obj.reduce(function ($$eachNodes, bookmark, $index) {
                        $$iterated = true;
                        return $$eachNodes.concat(function () {
                          var __jade_nodes = [];
                          __jade_nodes = __jade_nodes.concat(jade_mixins['list-item'].call(this, bookmark));;
                          return __jade_nodes;
                        }.call(this));
                      }, []);
                    } else {
                      $$eachNodes = [];
                      for (var $$objKey in $$obj) {
                        (function () {
                          var $index = $$objKey;
                          if ($$obj.hasOwnProperty($index)) {
                            $$iterated = true;
                            var bookmark = $$obj[$index];
                            $$eachNodes = $$eachNodes.concat(function () {
                              var __jade_nodes = [];
                              __jade_nodes = __jade_nodes.concat(jade_mixins['list-item'].call(this, bookmark));;
                              return __jade_nodes;
                            }.call(this));
                          }
                        })();
                      }
                    }

                    return $$eachNodes;
                  }());;
                  return __jade_nodes;
                }.call(this) : function () {
                  var __jade_nodes = [];
                  var sectionIdx = 0;
                  __jade_nodes = __jade_nodes.concat(function () {
                    var $$obj = filteredBookmarks;
                    var $$eachNodes;
                    var $$iterated = false;
                    if (Array.isArray($$obj)) {
                      $$eachNodes = $$obj.reduce(function ($$eachNodes, bookmarks, sectionName) {
                        $$iterated = true;
                        return $$eachNodes.concat(function () {
                          var __jade_nodes = [];
                          __jade_nodes = __jade_nodes.concat(h("mp-list-item", {
                            "attrs": {
                              static: true
                            }
                          }, function () {
                            var __jade_nodes = [];
                            __jade_nodes = __jade_nodes.concat(h("div", {
                              "class": {
                                'mp-bm-menu-section-header': true
                              }
                            }, [__vjadeSafeCode(sectionName)]));;
                            return __jade_nodes;
                          }.call(this).filter(Boolean)));
                          __jade_nodes = __jade_nodes.concat(function () {
                            var $$obj = bookmarks;
                            var $$eachNodes;
                            var $$iterated = false;
                            if (Array.isArray($$obj)) {
                              $$eachNodes = $$obj.reduce(function ($$eachNodes, bookmark, $index) {
                                $$iterated = true;
                                return $$eachNodes.concat(function () {
                                  var __jade_nodes = [];
                                  __jade_nodes = __jade_nodes.concat(jade_mixins['list-item'].call(this, bookmark));;
                                  return __jade_nodes;
                                }.call(this));
                              }, []);
                            } else {
                              $$eachNodes = [];
                              for (var $$objKey in $$obj) {
                                (function () {
                                  var $index = $$objKey;
                                  if ($$obj.hasOwnProperty($index)) {
                                    $$iterated = true;
                                    var bookmark = $$obj[$index];
                                    $$eachNodes = $$eachNodes.concat(function () {
                                      var __jade_nodes = [];
                                      __jade_nodes = __jade_nodes.concat(jade_mixins['list-item'].call(this, bookmark));;
                                      return __jade_nodes;
                                    }.call(this));
                                  }
                                })();
                              }
                            }

                            return $$eachNodes;
                          }());
                          __jade_nodes = __jade_nodes.concat(++sectionIdx < numBookmarkSections ? function () {
                            var __jade_nodes = [];
                            __jade_nodes = __jade_nodes.concat(h("div", {
                              "class": {
                                'mp-bm-menu-list-item-divider': true
                              }
                            }));;
                            return __jade_nodes;
                          }.call(this) : undefined);;
                          return __jade_nodes;
                        }.call(this));
                      }, []);
                    } else {
                      $$eachNodes = [];
                      for (var $$objKey in $$obj) {
                        (function () {
                          var sectionName = $$objKey;
                          if ($$obj.hasOwnProperty(sectionName)) {
                            $$iterated = true;
                            var bookmarks = $$obj[sectionName];
                            $$eachNodes = $$eachNodes.concat(function () {
                              var __jade_nodes = [];
                              __jade_nodes = __jade_nodes.concat(h("mp-list-item", {
                                "attrs": {
                                  static: true
                                }
                              }, function () {
                                var __jade_nodes = [];
                                __jade_nodes = __jade_nodes.concat(h("div", {
                                  "class": {
                                    'mp-bm-menu-section-header': true
                                  }
                                }, [__vjadeSafeCode(sectionName)]));;
                                return __jade_nodes;
                              }.call(this).filter(Boolean)));
                              __jade_nodes = __jade_nodes.concat(function () {
                                var $$obj = bookmarks;
                                var $$eachNodes;
                                var $$iterated = false;
                                if (Array.isArray($$obj)) {
                                  $$eachNodes = $$obj.reduce(function ($$eachNodes, bookmark, $index) {
                                    $$iterated = true;
                                    return $$eachNodes.concat(function () {
                                      var __jade_nodes = [];
                                      __jade_nodes = __jade_nodes.concat(jade_mixins['list-item'].call(this, bookmark));;
                                      return __jade_nodes;
                                    }.call(this));
                                  }, []);
                                } else {
                                  $$eachNodes = [];
                                  for (var $$objKey in $$obj) {
                                    (function () {
                                      var $index = $$objKey;
                                      if ($$obj.hasOwnProperty($index)) {
                                        $$iterated = true;
                                        var bookmark = $$obj[$index];
                                        $$eachNodes = $$eachNodes.concat(function () {
                                          var __jade_nodes = [];
                                          __jade_nodes = __jade_nodes.concat(jade_mixins['list-item'].call(this, bookmark));;
                                          return __jade_nodes;
                                        }.call(this));
                                      }
                                    })();
                                  }
                                }

                                return $$eachNodes;
                              }());
                              __jade_nodes = __jade_nodes.concat(++sectionIdx < numBookmarkSections ? function () {
                                var __jade_nodes = [];
                                __jade_nodes = __jade_nodes.concat(h("div", {
                                  "class": {
                                    'mp-bm-menu-list-item-divider': true
                                  }
                                }));;
                                return __jade_nodes;
                              }.call(this) : undefined);;
                              return __jade_nodes;
                            }.call(this));
                          }
                        })();
                      }
                    }

                    return $$eachNodes;
                  }());;
                  return __jade_nodes;
                }.call(this));;
                return __jade_nodes;
              }.call(this).filter(Boolean)));
              __jade_nodes = __jade_nodes.concat($attrs['has-write-permissions'] && !$attrs['hide-create'] ? function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("div", {
                  "class": {
                    'mp-bm-menu-add': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(!$attrs['create-disabled'] && (createMode || saving) ? function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(h("mp-input-group", {
                      "attrs": {
                        autofocus: true,
                        placeholder: 'Name your bookmark',
                        busy: saving
                      },
                      "on": {
                        keydown: $helpers.stopPropagation,
                        change: $helpers.stopPropagation,
                        input: $helpers.setName,
                        submit: $helpers.createBookmark
                      }
                    }));;
                    return __jade_nodes;
                  }.call(this) : function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(h("mp-button-bar", {
                      "attrs": {
                        disabled: $attrs['create-disabled']
                      },
                      "on": {
                        click: $attrs['over-free-limit'] ? $helpers.openUpsellModal : $helpers.goToCreateMode
                      },
                      "class": {
                        'mp-button-bar-secondary': true
                      }
                    }, function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat(h("div", {
                        "class": Object.assign({}, {
                          'mp-bm-menu-over-free-text': $attrs['over-free-limit']
                        }, {
                          'mp-bm-menu-button-bar-text': true
                        })
                      }, function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat("Create new bookmark");;
                        return __jade_nodes;
                      }.call(this).filter(Boolean)));;
                      return __jade_nodes;
                    }.call(this).filter(Boolean)));
                    __jade_nodes = __jade_nodes.concat($attrs['over-free-limit'] ? function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat(h("div", {
                        "class": {
                          'mp-bm-menu-upsell-icon': true
                        }
                      }, function () {
                        var __jade_nodes = [];
                        __jade_nodes = __jade_nodes.concat(h("svg-icon", {
                          "attrs": {
                            icon: 'lightning-bolt'
                          }
                        }));;
                        return __jade_nodes;
                      }.call(this).filter(Boolean)));;
                      return __jade_nodes;
                    }.call(this) : undefined);;
                    return __jade_nodes;
                  }.call(this));;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));;
                return __jade_nodes;
              }.call(this) : undefined);;
              return __jade_nodes;
            }.call(this).filter(Boolean)));;
            return __jade_nodes;
          }.call(this).filter(Boolean)));;
          return __jade_nodes;
        }.call(this).filter(Boolean)));
        __jade_nodes = __jade_nodes.concat(confirmDeleteBookmark ? function () {
          var __jade_nodes = [];
          __jade_nodes = __jade_nodes.concat(h("mp-confirm-delete", {
            "attrs": {
              closeable: true,
              open: true
            },
            "on": {
              change: $helpers.handleConfirmModalChange,
              submit: $helpers.handleConfirmSubmit
            }
          }, function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("div", {
              "attrs": {
                'slot-body': true
              },
              "class": {
                'mp-bm-menu-confirm-delete-container': true
              }
            }, function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("div", {
                "class": {
                  'mp-confirm-delete-title': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat("Delete bookmark");;
                return __jade_nodes;
              }.call(this).filter(Boolean)));
              __jade_nodes = __jade_nodes.concat(confirmDeleteBookmark.include_in_dashboard ? function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("div", {
                  "class": {
                    'mp-confirm-delete-description': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat("Are you sure you want to delete the bookmark named \"" + confirmDeleteBookmark.name + "\"?");
                  __jade_nodes = __jade_nodes.concat(h("br"));
                  __jade_nodes = __jade_nodes.concat(h("br"));
                  __jade_nodes = __jade_nodes.concat("Deleting it will also remove it from all dashboards.");;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));;
                return __jade_nodes;
              }.call(this) : function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("div", {
                  "class": {
                    'mp-confirm-delete-description': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat("Are you sure you want to delete the bookmark named \"" + confirmDeleteBookmark.name + "\"?");;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));;
                return __jade_nodes;
              }.call(this));;
              return __jade_nodes;
            }.call(this).filter(Boolean)));;
            return __jade_nodes;
          }.call(this).filter(Boolean)));;
          return __jade_nodes;
        }.call(this) : undefined);;
        return __jade_nodes;
      }.call(this).filter(Boolean))
    };
  }.call(this, "$attrs" in locals ? locals.$attrs : typeof $attrs !== "undefined" ? $attrs : undefined, "$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, "activeBookmark" in locals ? locals.activeBookmark : typeof activeBookmark !== "undefined" ? activeBookmark : undefined, "confirmDeleteBookmark" in locals ? locals.confirmDeleteBookmark : typeof confirmDeleteBookmark !== "undefined" ? confirmDeleteBookmark : undefined, "createMode" in locals ? locals.createMode : typeof createMode !== "undefined" ? createMode : undefined, "filterText" in locals ? locals.filterText : typeof filterText !== "undefined" ? filterText : undefined, "filteredBookmarks" in locals ? locals.filteredBookmarks : typeof filteredBookmarks !== "undefined" ? filteredBookmarks : undefined, "open" in locals ? locals.open : typeof open !== "undefined" ? open : undefined, "saving" in locals ? locals.saving : typeof saving !== "undefined" ? saving : undefined, "showUpsellModal" in locals ? locals.showUpsellModal : typeof showUpsellModal !== "undefined" ? showUpsellModal : undefined);
  if (result_of_with) return result_of_with.value;
}
module.exports = _jade_template_fn;