{{#app-view class="kv list" loading=isLoading}} {{#block-slot name='notification' as |status type|}} {{partial 'dc/kv/notifications'}} {{/block-slot}} {{#block-slot name='breadcrumbs'}}
    {{#if (not-eq parent.Key '/') }}
  1. Key / Values
  2. {{/if}} {{#each (slice 0 -2 (split parent.Key '/')) as |breadcrumb index|}}
  3. {{breadcrumb}}
  4. {{/each}}
{{/block-slot}} {{#block-slot name='header'}}

{{#if (eq parent.Key '/') }} Key / Value {{else}} {{ take 1 (drop 1 (reverse (split parent.Key '/'))) }} {{/if}}

{{/block-slot}} {{#block-slot name='toolbar'}} {{#if (gt items.length 0) }}
{{freetext-filter searchable=searchable value=s placeholder="Search by name"}}
{{/if}} {{/block-slot}} {{#block-slot name='actions'}} {{#if (not-eq parent.Key '/') }} Create {{else}} Create {{/if}} {{/block-slot}} {{#block-slot name='content'}} {{#changeable-set dispatcher=searchable}} {{#block-slot name='set' as |filtered|}} {{#tabular-collection items=(sort-by 'isFolder:desc' 'Key:asc' filtered) as |item index| }} {{#block-slot name='header'}} Name {{/block-slot}} {{#block-slot name='row'}} {{right-trim (left-trim item.Key parent.Key) '/'}} {{/block-slot}} {{#block-slot name='actions' as |index change checked|}} {{#confirmation-dialog confirming=false index=index message='Are you sure you want to delete this key?'}} {{#block-slot name='action' as |confirm|}} {{#action-group index=index onchange=(action change) checked=(if (eq checked index) 'checked')}} {{/action-group}} {{/block-slot}} {{#block-slot name='dialog' as |execute cancel message|}} {{delete-confirmation message=message execute=execute cancel=cancel}} {{/block-slot}} {{/confirmation-dialog}} {{/block-slot}} {{/tabular-collection}} {{/block-slot}} {{#block-slot name='empty'}}

There are no Key / Value pairs.

{{/block-slot}} {{/changeable-set}} {{/block-slot}} {{/app-view}}