{{! template-lint-configure simple-unless "warn" }}
<Toolbar>
  {{#unless (and (eq @mode "show") @isWriteWithoutRead)}}
    <ToolbarFilters>
      <Toggle
        @name="json"
        @status="success"
        @size="small"
        @disabled={{and (eq @mode "show") @secretDataIsAdvanced}}
        @checked={{@showAdvancedMode}}
        @onChange={{action @editActions.toggleAdvanced}}
      >
        <span class="has-text-grey">JSON</span>
      </Toggle>
    </ToolbarFilters>
  {{/unless}}
  <ToolbarActions>
    {{#if (eq @mode "show")}}
      <SecretDeleteMenu
        @modelForData={{@modelForData}}
        @model={{@model}}
        @isV2={{@isV2}}
        @refresh={{action @editActions.refresh}}
        @canReadSecretMetadata={{@canReadSecretMetadata}}
      />
    {{/if}}
    {{#if (and (eq @mode "show") @canUpdateSecretData)}}
      {{#unless (and @isV2 (or @isWriteWithoutRead @modelForData.destroyed @modelForData.deleted))}}
        <BasicDropdown
          @class="popup-menu"
          @horizontalPosition="auto-right"
          @verticalPosition="below"
          @onClose={{action "clearWrappedData"}}
          as |D|
        >
          <D.Trigger
            data-test-popup-menu-trigger="true"
            class={{concat "toolbar-link" (if D.isOpen " is-active")}}
            @htmlTag="button"
          >
            Copy
            <Chevron @direction="down" @isButton={{true}} />
          </D.Trigger>
          <D.Content @defaultClass="popup-menu-content is-wide">
            <nav class="box menu">
              <ul class="menu-list">
                <li class="action">
                  <CopyButton
                    @class="link link-plain has-text-weight-semibold is-ghost"
                    @clipboardText={{stringify @modelForData.secretData}}
                    @success={{action (set-flash-message "JSON Copied!")}}
                    data-test-copy-button
                  >
                    Copy JSON
                  </CopyButton>
                </li>
                <li class="action">
                  {{#if this.showWrapButton}}
                    <button
                      class="link link-plain has-text-weight-semibold is-ghost {{if this.isWrapping 'is-loading'}}"
                      type="button"
                      {{on "click" this.handleWrapClick}}
                      data-test-wrap-button
                      disabled={{this.isWrapping}}
                    >
                      Wrap secret
                    </button>
                  {{else}}
                    <MaskedInput
                      @class="has-padding"
                      @displayOnly={{true}}
                      @allowCopy={{true}}
                      @value={{this.wrappedData}}
                    />
                  {{/if}}
                </li>
              </ul>
            </nav>
          </D.Content>
        </BasicDropdown>
      {{/unless}}
    {{/if}}

    {{#if (and (eq @mode "show") @isV2 (not @model.failedServerRead))}}
      <SecretVersionMenu @version={{@modelForData}} @onRefresh={{action @editActions.refresh}} @model={{@model}} />
    {{/if}}

    {{#if (and (eq @mode "show") @canUpdateSecretData)}}
      {{#let (concat "vault.cluster.secrets.backend." (if (eq @mode "show") "edit" "show")) as |targetRoute|}}
        {{#if @isV2}}
          <ToolbarLink
            {{! Always create new version from latest if no metadata read access }}
            @route={{targetRoute}}
            @model={{@model.id}}
            @query={{hash version=(if @model.canReadMetadata @modelForData.version "")}}
            @replace={{true}}
            @type="add"
            data-test-secret-edit="true"
          >
            Create new version
          </ToolbarLink>
        {{else}}
          <ToolbarLink @route={{targetRoute}} @model={{@model.id}} @replace={{true}} data-test-secret-edit="true">
            Edit secret
          </ToolbarLink>
        {{/if}}
      {{/let}}
    {{/if}}
  </ToolbarActions>
</Toolbar>