"use strict";

function _jade_template_fn(locals) {
  locals = locals || {};;;
  var result_of_with = function ($attrs, $component, $helpers, Array, JSON, Object, String, allTags, countryCode, editing, inputValue, isFile, isSwitch, localPhoneNumber, password1, password2, removable, saveDisabled, saving, selectItems, selectMenuOpen, selectTagOpen, selectedTags, selectedValue, switchOn, uploading, validationError) {
    var h = require('panel').h;
    var __vjadeSafeCode = function __vjadeSafeCode(code) {
      return code || String(code);
    };
    var disabled = $attrs["disabled"];
    var saveableInput = true;
    var emptiable = false;
    return {
      value: h("div", {
        "class": Object.assign({}, {
          'mp-settings-li-disabled': disabled,
          'mp-settings-li-editing': editing,
          'mp-settings-li-select': $component.isSelect,
          'mp-settings-li-uploading': uploading
        }, {
          'mp-settings-li': true
        })
      }, function () {
        var __jade_nodes = [];
        __jade_nodes = __jade_nodes.concat(h("div", {
          "class": {
            'mp-settings-li-label': true
          }
        }, [__vjadeSafeCode($helpers.label())]));
        __jade_nodes = __jade_nodes.concat(h("div", {
          "class": {
            'mp-settings-li-value-cont': true
          }
        }, function () {
          var __jade_nodes = [];
          __jade_nodes = __jade_nodes.concat($helpers.inputType() == "text" ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("input", {
              "attrs": {
                disabled: disabled || !editing || saving,
                placeholder: $attrs["placeholder"],
                type: "text"
              },
              "props": {
                value: inputValue
              },
              "on": {
                input: $helpers.inputUpdated,
                keydown: $helpers.handleKeydown
              },
              "hook": {
                insert: $helpers.inputInserted
              },
              "class": {
                'remove-chrome-form-style': true
              }
            }));
            __jade_nodes = __jade_nodes.concat(validationError ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("mp-tooltip", {
                "attrs": {
                  'always-show': true,
                  style: "error"
                }
              }, [__vjadeSafeCode(validationError)]));;
              return __jade_nodes;
            }.call(this) : undefined);
            emptiable = $attrs["emptiable"];;
            saveableInput = !!inputValue || emptiable;;;
            return __jade_nodes;
          }.call(this) : $helpers.inputType() == "password" ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("input", {
              "attrs": {
                disabled: disabled || !editing || saving,
                placeholder: "New password",
                type: "password"
              },
              "props": {
                value: editing ? password1 : inputValue
              },
              "on": {
                input: function input(ev) {
                  return $helpers.passwordUpdated(1, ev);
                }
              },
              "hook": {
                insert: $helpers.inputInserted
              },
              "class": {
                'remove-chrome-form-style': true
              }
            }));
            __jade_nodes = __jade_nodes.concat(editing ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("input", {
                "attrs": {
                  disabled: disabled || saving,
                  placeholder: "Confirm password",
                  type: "password"
                },
                "props": {
                  value: password2
                },
                "on": {
                  input: function input(ev) {
                    return $helpers.passwordUpdated(2, ev);
                  }
                },
                "class": {
                  'remove-chrome-form-style': true
                }
              }));;
              return __jade_nodes;
            }.call(this) : undefined);
            saveableInput = !!password1 && password1 === password2;;;
            return __jade_nodes;
          }.call(this) : $helpers.inputType() == "tag" ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(editing || saving ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("div", {
                "class": {
                  'mp-settings-li-menu': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("div", {
                  "class": {
                    'mp-settings-li-menu-container': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(h("mp-drop-menu", {
                    "attrs": {
                      open: selectTagOpen
                    },
                    "on": {
                      change: $helpers.handleTagMenuChange
                    }
                  }, function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(h("mp-tag-selector", {
                      "attrs": {
                        'selected-tags': JSON.stringify(selectedTags),
                        'all-tags': JSON.stringify(allTags),
                        'saving': saving,
                        'input-text': JSON.stringify({
                          search: 'Search tags...',
                          empty: 'No tags found',
                          create: 'Create new tag:'
                        }),
                        'min-tags': 0
                      },
                      "on": {
                        save: $helpers.clickedSave,
                        change: $helpers.tagSelectorChanged
                      },
                      "hook": {
                        insert: $helpers.inputInserted
                      }
                    }));;
                    return __jade_nodes;
                  }.call(this).filter(Boolean)));;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));;
                return __jade_nodes;
              }.call(this).filter(Boolean)));;
              return __jade_nodes;
            }.call(this) : function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(function () {
                var $$obj = Array.from(selectedTags);
                var $$eachNodes;
                var $$iterated = false;
                if (Array.isArray($$obj)) {
                  $$eachNodes = $$obj.reduce(function ($$eachNodes, tagName, $index) {
                    $$iterated = true;
                    return $$eachNodes.concat(function () {
                      var __jade_nodes = [];
                      __jade_nodes = __jade_nodes.concat(h("mp-tag", {
                        "attrs": {
                          'tag-name': tagName,
                          clickable: false,
                          removable: false
                        }
                      }));;
                      return __jade_nodes;
                    }.call(this));
                  }, []);
                } else {
                  $$eachNodes = [];
                  for (var $$objKey in $$obj) {
                    (function () {
                      var $index = $$objKey;
                      if ($$obj.hasOwnProperty($index)) {
                        $$iterated = true;
                        var tagName = $$obj[$index];
                        $$eachNodes = $$eachNodes.concat(function () {
                          var __jade_nodes = [];
                          __jade_nodes = __jade_nodes.concat(h("mp-tag", {
                            "attrs": {
                              'tag-name': tagName,
                              clickable: false,
                              removable: false
                            }
                          }));;
                          return __jade_nodes;
                        }.call(this));
                      }
                    })();
                  }
                }

                return $$eachNodes;
              }());;
              return __jade_nodes;
            }.call(this));;
            return __jade_nodes;
          }.call(this) : $helpers.inputType() == "select" ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(editing || saving ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("div", {
                "class": {
                  'mp-settings-li-menu': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("mp-button", {
                  "attrs": {
                    size: "small"
                  },
                  "on": {
                    click: $helpers.toggleSelectMenu
                  },
                  "class": {
                    'mp-button-secondary': true,
                    'settings-li-select-button': true
                  }
                }, [__vjadeSafeCode(selectedValue.label)]));
                __jade_nodes = __jade_nodes.concat(h("div", {
                  "class": {
                    'mp-settings-li-menu-container': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(h("mp-drop-menu", {
                    "attrs": {
                      open: selectMenuOpen
                    },
                    "on": {
                      change: $helpers.handleSelectMenuChange
                    }
                  }, function () {
                    var __jade_nodes = [];
                    __jade_nodes = __jade_nodes.concat(h("mp-items-menu", {
                      "attrs": {
                        sections: JSON.stringify([{
                          items: selectItems
                        }])
                      },
                      "on": {
                        clickItem: $helpers.selectItem
                      },
                      "class": {
                        'mp-settings-li-menu-list': true
                      }
                    }));;
                    return __jade_nodes;
                  }.call(this).filter(Boolean)));;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));;
                return __jade_nodes;
              }.call(this).filter(Boolean)));;
              return __jade_nodes;
            }.call(this) : function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("input", {
                "attrs": {
                  disabled: true,
                  type: "text"
                },
                "props": {
                  value: selectedValue.label
                },
                "hook": {
                  insert: $helpers.inputInserted
                },
                "class": {
                  'remove-chrome-form-style': true
                }
              }));;
              return __jade_nodes;
            }.call(this));;
            return __jade_nodes;
          }.call(this) : $helpers.inputType() == "file" ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("input", {
              "attrs": {
                disabled: true,
                type: "text"
              },
              "props": {
                value: inputValue
              },
              "class": {
                'remove-chrome-form-style': true
              }
            }));;
            return __jade_nodes;
          }.call(this) : $helpers.inputType() == "phone-number" ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("input", {
              "attrs": {
                disabled: disabled || !editing || saving,
                placeholder: editing ? "+1" : "+1 (415) 123-1322",
                type: "text",
                name: editing ? "country-code" : "formatted-phone"
              },
              "props": {
                value: editing ? $helpers.parsePhoneNumber(inputValue).countryCode : inputValue
              },
              "on": {
                input: function input(ev) {
                  return $helpers.phoneNumberUpdated(ev);
                }
              },
              "hook": {
                insert: $helpers.inputInserted
              },
              "class": {
                'remove-chrome-form-style': true
              }
            }));
            __jade_nodes = __jade_nodes.concat(editing ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("input", {
                "attrs": {
                  disabled: disabled || saving,
                  placeholder: "(415) 123-1322",
                  type: "text",
                  name: "local-phone-number"
                },
                "props": {
                  value: $helpers.parsePhoneNumber(inputValue).localPhoneNumber
                },
                "on": {
                  input: function input(ev) {
                    return $helpers.phoneNumberUpdated(ev);
                  }
                },
                "class": {
                  'remove-chrome-form-style': true
                }
              }));;
              return __jade_nodes;
            }.call(this) : undefined);
            __jade_nodes = __jade_nodes.concat(validationError ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("mp-tooltip", {
                "attrs": {
                  'always-show': true,
                  style: "error"
                }
              }, [__vjadeSafeCode(validationError)]));;
              return __jade_nodes;
            }.call(this) : undefined);
            saveableInput = !!localPhoneNumber && !!countryCode;;;
            return __jade_nodes;
          }.call(this) : $helpers.inputType() == "slot" ? function () {
            var __jade_nodes = [];
            __jade_nodes = __jade_nodes.concat(h("slot"));;
            return __jade_nodes;
          }.call(this) : undefined);
          __jade_nodes = __jade_nodes.concat(h("div", {
            "class": {
              'mp-settings-li-button': true
            }
          }, function () {
            var __jade_nodes = [];
            var buttonText = $attrs["button"];;
            var isDeleteButton = $attrs["delete-button"];;
            __jade_nodes = __jade_nodes.concat(isSwitch ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("mp-switch", {
                "attrs": {
                  on: switchOn
                },
                "on": {
                  change: $helpers.switchChanged
                }
              }));;
              return __jade_nodes;
            }.call(this) : isFile ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(uploading ? function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(removable ? function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(h("div", {
                    "on": {
                      click: $helpers.clickedRemove
                    },
                    "class": {
                      'trash': true,
                      'mp-settings-li-icon-btn': 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);
                __jade_nodes = __jade_nodes.concat(h("mp-button", {
                  "attrs": {
                    size: "small",
                    disabled: saving
                  },
                  "on": {
                    click: $helpers.stopUploading
                  },
                  "class": {
                    'mp-button-secondary': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat("Cancel");;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));
                __jade_nodes = __jade_nodes.concat(h("mp-button", {
                  "attrs": {
                    size: "small",
                    disabled: saving
                  },
                  "on": {
                    click: $helpers.clickedUpload
                  },
                  "class": {
                    'mp-button-primary': true,
                    'mp-settings-li-file-save-button': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat("" + $attrs["buttontext"] + "");;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));
                __jade_nodes = __jade_nodes.concat(h("input", {
                  "attrs": {
                    type: "file",
                    accept: $attrs["fileaccept"]
                  },
                  "on": {
                    change: $helpers.fileDialogEnded
                  },
                  "hook": {
                    insert: $helpers.fileInserted
                  },
                  "class": {
                    'mp-settings-li-hidden': true
                  }
                }));;
                return __jade_nodes;
              }.call(this) : function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("div", {
                  "on": {
                    click: $helpers.uploadFile
                  },
                  "class": {
                    'mp-settings-li-icon-btn': true
                  }
                }, function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(h("svg-icon", {
                    "attrs": {
                      icon: "edit"
                    }
                  }));;
                  return __jade_nodes;
                }.call(this).filter(Boolean)));;
                return __jade_nodes;
              }.call(this));;
              return __jade_nodes;
            }.call(this) : editing && !$attrs["hide-buttons"] ? function () {
              var __jade_nodes = [];
              var saveHandler = $attrs["custom-handling"] ? $helpers.customSave : $helpers.clickedSave;;
              var cancelHandler = $attrs["custom-handling"] ? $helpers.customCancel : $helpers.stopEditing;;
              __jade_nodes = __jade_nodes.concat(h("mp-button", {
                "attrs": {
                  size: "small",
                  disabled: saving
                },
                "on": {
                  click: cancelHandler
                },
                "class": {
                  'mp-button-secondary': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat("Cancel");;
                return __jade_nodes;
              }.call(this).filter(Boolean)));
              __jade_nodes = __jade_nodes.concat(h("mp-button", {
                "attrs": {
                  size: "small",
                  disabled: saving || !saveableInput || saveDisabled
                },
                "on": {
                  click: saveHandler
                },
                "class": {
                  'mp-button-primary': true,
                  'mp-settings-li-save-button': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(saving ? function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat(h("mp-spinner", {
                    "attrs": {
                      color: "white"
                    }
                  }));;
                  return __jade_nodes;
                }.call(this) : function () {
                  var __jade_nodes = [];
                  __jade_nodes = __jade_nodes.concat("Save");;
                  return __jade_nodes;
                }.call(this));;
                return __jade_nodes;
              }.call(this).filter(Boolean)));;
              return __jade_nodes;
            }.call(this) : !editing && $attrs["editable"] ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("div", {
                "on": {
                  click: $helpers.startEditing
                },
                "class": {
                  'mp-settings-li-icon-btn': true
                }
              }, function () {
                var __jade_nodes = [];
                __jade_nodes = __jade_nodes.concat(h("svg-icon", {
                  "attrs": {
                    icon: "edit"
                  }
                }));;
                return __jade_nodes;
              }.call(this).filter(Boolean)));;
              return __jade_nodes;
            }.call(this) : buttonText ? function () {
              var __jade_nodes = [];
              __jade_nodes = __jade_nodes.concat(h("mp-button", {
                "attrs": {
                  disabled: disabled,
                  icon: isDeleteButton ? "trashcan" : "",
                  size: "small"
                },
                "on": {
                  click: $helpers.clickedButton
                },
                "class": {
                  'mp-button-red': isDeleteButton,
                  'mp-button-secondary': !isDeleteButton
                }
              }, [__vjadeSafeCode(buttonText)]));;
              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))
    };
  }.call(this, "$attrs" in locals ? locals.$attrs : typeof $attrs !== "undefined" ? $attrs : undefined, "$component" in locals ? locals.$component : typeof $component !== "undefined" ? $component : undefined, "$helpers" in locals ? locals.$helpers : typeof $helpers !== "undefined" ? $helpers : undefined, "Array" in locals ? locals.Array : typeof Array !== "undefined" ? Array : undefined, "JSON" in locals ? locals.JSON : typeof JSON !== "undefined" ? JSON : undefined, "Object" in locals ? locals.Object : typeof Object !== "undefined" ? Object : undefined, "String" in locals ? locals.String : typeof String !== "undefined" ? String : undefined, "allTags" in locals ? locals.allTags : typeof allTags !== "undefined" ? allTags : undefined, "countryCode" in locals ? locals.countryCode : typeof countryCode !== "undefined" ? countryCode : undefined, "editing" in locals ? locals.editing : typeof editing !== "undefined" ? editing : undefined, "inputValue" in locals ? locals.inputValue : typeof inputValue !== "undefined" ? inputValue : undefined, "isFile" in locals ? locals.isFile : typeof isFile !== "undefined" ? isFile : undefined, "isSwitch" in locals ? locals.isSwitch : typeof isSwitch !== "undefined" ? isSwitch : undefined, "localPhoneNumber" in locals ? locals.localPhoneNumber : typeof localPhoneNumber !== "undefined" ? localPhoneNumber : undefined, "password1" in locals ? locals.password1 : typeof password1 !== "undefined" ? password1 : undefined, "password2" in locals ? locals.password2 : typeof password2 !== "undefined" ? password2 : undefined, "removable" in locals ? locals.removable : typeof removable !== "undefined" ? removable : undefined, "saveDisabled" in locals ? locals.saveDisabled : typeof saveDisabled !== "undefined" ? saveDisabled : undefined, "saving" in locals ? locals.saving : typeof saving !== "undefined" ? saving : undefined, "selectItems" in locals ? locals.selectItems : typeof selectItems !== "undefined" ? selectItems : undefined, "selectMenuOpen" in locals ? locals.selectMenuOpen : typeof selectMenuOpen !== "undefined" ? selectMenuOpen : undefined, "selectTagOpen" in locals ? locals.selectTagOpen : typeof selectTagOpen !== "undefined" ? selectTagOpen : undefined, "selectedTags" in locals ? locals.selectedTags : typeof selectedTags !== "undefined" ? selectedTags : undefined, "selectedValue" in locals ? locals.selectedValue : typeof selectedValue !== "undefined" ? selectedValue : undefined, "switchOn" in locals ? locals.switchOn : typeof switchOn !== "undefined" ? switchOn : undefined, "uploading" in locals ? locals.uploading : typeof uploading !== "undefined" ? uploading : undefined, "validationError" in locals ? locals.validationError : typeof validationError !== "undefined" ? validationError : undefined);
  if (result_of_with) return result_of_with.value;
}
module.exports = _jade_template_fn;