{{!
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: BUSL-1.1
~}}

<PageHeader as |p|>
  <p.levelLeft>
    <h1 class="title is-3">
      Wrap Data
    </h1>
  </p.levelLeft>
</PageHeader>

{{#if this.token}}
  <div class="box is-sideless is-fullwidth is-marginless">
    <div class="field">
      <label for="wrap-info" class="is-label">Wrapped token</label>
      <Hds::Copy::Snippet
        @textToCopy={{this.token}}
        @color="secondary"
        data-test-tools-input="wrapping-token"
        @onError={{fn (set-flash-message "Clipboard copy failed. The Clipboard API requires a secure context." "danger")}}
      />
    </div>
  </div>
  <div class="field is-grouped box is-fullwidth is-bottomless">
    <Hds::ButtonSet>
      <Hds::Button
        @icon="arrow-left"
        @text="Back"
        @color="tertiary"
        {{on "click" (fn this.reset false)}}
        data-test-button="Back"
      />
      <Hds::Button @text="Done" @color="secondary" {{on "click" this.reset}} data-test-button="Done" />
    </Hds::ButtonSet>
  </div>
{{else}}
  <form {{on "submit" this.handleSubmit}}>
    <div class="box is-sideless is-fullwidth is-marginless">
      <NamespaceReminder @mode="perform" @noun="wrap" />
      <MessageError @errorMessage={{this.errorMessage}} />
      <div class="field">
        <div class="control">
          <JsonEditor
            @title="Data to wrap"
            @subTitle="json-formatted"
            @value={{this.wrapData}}
            @valueUpdated={{this.codemirrorUpdated}}
          />
        </div>
      </div>
      <TtlPicker
        @label="Wrap TTL"
        @initialValue="30m"
        @onChange={{this.updateTtl}}
        @helperTextDisabled="Vault will use the default (30m)"
        @helperTextEnabled="Wrap will expire after"
        @changeOnInit={{true}}
      />
    </div>
    <div class="field is-grouped box is-fullwidth is-bottomless">
      <div class="control">
        <Hds::Button @text="Wrap data" type="submit" disabled={{this.buttonDisabled}} data-test-tools-submit />
      </div>
    </div>
  </form>
{{/if}}