| <style include="cr-shared-style settings-shared"> | |
| :host { | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| #newWord { | |
| width: 100%; | |
| --cr-input-width: var(--settings-input-max-width); | |
| } | |
| #newWord::part(row-container) { | |
| justify-content: normal; | |
| } | |
| iron-list .word { | |
| flex: 1; | |
| } | |
| </style> | |
| <div class="cr-row first"> | |
| <iron-a11y-keys id="keys" keys="enter esc" | |
| on-keys-pressed="onKeysPress_"></iron-a11y-keys> | |
| <cr-input id="newWord" value="{{newWordValue_}}" | |
| placeholder="$i18n{addDictionaryWordLabel}" | |
| invalid="[[isWordInvalid_(newWordValue_, words_.*)]]" | |
| error-message="[[getErrorMessage_(newWordValue_, words_.*)]]" | |
| spellcheck="false"> | |
| <cr-button on-click="onAddWordTap_" id="addWord" slot="suffix" | |
| disabled$="[[disableAddButton_(newWordValue_, words_.*)]]"> | |
| $i18n{addDictionaryWordButton} | |
| </cr-button> | |
| </cr-input> | |
| </div> | |
| <div class="cr-row continuation"> | |
| <h2>$i18n{customDictionaryWords}</h2> | |
| </div> | |
| <div class="list-frame"> | |
| <template is="dom-if" if="[[hasWords_]]"> | |
| <iron-list id="list" items="[[words_]]" preserve-focus | |
| scroll-target="[[subpageScrollTarget]]" risk-selection> | |
| <template> | |
| <div class="list-item"> | |
| <div id$="word[[index]]" class="word text-elide">[[item]]</div> | |
| <cr-icon-button class="icon-clear" on-click="onRemoveWordTap_" | |
| tabindex$="[[tabIndex]]" | |
| title="$i18n{deleteDictionaryWordButton}" | |
| aria-describedby$="word[[index]]"> | |
| </cr-icon-button> | |
| </div> | |
| </template> | |
| </iron-list> | |
| </template> | |
| <div id="noWordsLabel" class="list-item" hidden$="[[hasWords_]]"> | |
| $i18n{noCustomDictionaryWordsFound} | |
| </div> | |
| </div> |