From 5b5c1e16deaa3a9d6d0ed1ffca390655ed103df7 Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 14 七月 2023 14:56:14 +0800 Subject: [PATCH] lex community --- force-app/main/default/lwc/lexLookup/lexLookup.html | 218 ++++++++++++------------------------------------------ 1 files changed, 50 insertions(+), 168 deletions(-) diff --git a/force-app/main/default/lwc/lexLookup/lexLookup.html b/force-app/main/default/lwc/lexLookup/lexLookup.html index a251f05..0a059dd 100644 --- a/force-app/main/default/lwc/lexLookup/lexLookup.html +++ b/force-app/main/default/lwc/lexLookup/lexLookup.html @@ -1,139 +1,67 @@ <template> <div class={getFormElementClass}> <label lwc:if={label} class={getLabelClass} for="combobox"> - <abbr lwc:if={required} title="required" class="slds-required" - >*</abbr - > + <abbr lwc:if={required} title="required" class="slds-required">*</abbr> {label} </label> <div class="slds-form-element__control"> <div class={getContainerClass}> - <div - class={getDropdownClass} - aria-expanded={isListboxOpen} - aria-haspopup="listbox" - aria-owns="listbox" - role="combobox" - > + <div class={getDropdownClass} aria-expanded={isListboxOpen} aria-haspopup="listbox" aria-owns="listbox" + role="combobox"> <!-- Search input start --> <div class={getComboboxClass} role="none"> <template lwc:if={isSingleEntry}> - <lightning-icon - icon-name={getSelectIconName} - size="small" - alternative-text="Selected item icon" - class={getSelectIconClass} - > + <lightning-icon icon-name={getSelectIconName} size="small" + alternative-text="Selected item icon" class={getSelectIconClass}> </lightning-icon> </template> <!-- Text input --> - <input - type="text" - class={getInputClass} - aria-autocomplete="list" - aria-controls="listbox" - aria-activedescendant={_focusedResultIndex} - autocomplete="off" - role="textbox" - id="combobox" - placeholder={placeholder} - value={getInputValue} - title={getInputTitle} - readonly={isInputReadonly} - disabled={disabled} - onfocus={handleFocus} - onblur={handleBlur} - oninput={handleInput} - onkeydown={handleKeyDown} - /> + <input type="text" class={getInputClass} aria-autocomplete="list" aria-controls="listbox" + aria-activedescendant={_focusedResultIndex} autocomplete="off" role="textbox" id="combobox" + placeholder={placeholder} value={getInputValue} title={getInputTitle} + readonly={isInputReadonly} disabled={disabled} onfocus={handleFocus} onblur={handleBlur} + oninput={handleInput} onkeydown={handleKeyDown} /> <!-- Search icon --> - <lightning-icon - icon-name="utility:search" - size="x-small" - alternative-text="Search icon" - class={getSearchIconClass} - ></lightning-icon> + <lightning-icon icon-name="utility:search" size="x-small" alternative-text="Search icon" + class={getSearchIconClass}></lightning-icon> <!-- Clear selection button icon for single entry lookups --> <template lwc:if={isSingleEntry}> - <button - title="Remove selected option" - type="button" - onclick={handleClearSelection} - class={getClearSelectionButtonClass} - disabled={disabled} - > - <lightning-icon - icon-name="utility:close" - size="x-small" + <button title="Remove selected option" type="button" onclick={handleClearSelection} + class={getClearSelectionButtonClass} disabled={disabled}> + <lightning-icon icon-name="utility:close" size="x-small" alternative-text="Remove selected option" - class="slds-button__icon" - ></lightning-icon> + class="slds-button__icon"></lightning-icon> </button> </template> </div> <!-- Search input end --> <!-- Result list box start --> - <div - id="listbox" - role="listbox" - aria-label={label} - onmousedown={handleComboboxMouseDown} - onmouseup={handleComboboxMouseUp} - class={getListboxClass} - > - <ul - class="slds-listbox slds-listbox_vertical" - role="presentation" - > + <div id="listbox" role="listbox" aria-label={label} onmousedown={handleComboboxMouseDown} + onmouseup={handleComboboxMouseUp} class={getListboxClass}> + <ul class="slds-listbox slds-listbox_vertical" role="presentation"> <!-- Spinner to display when waiting for results of search --> <div lwc:if={loading}> - <lightning-spinner - alternative-text="Loading" - size="small" - ></lightning-spinner> + <lightning-spinner alternative-text="Loading" size="small"></lightning-spinner> </div> <!-- Result list start --> - <template - for:each={searchResultsLocalState} - for:item="item" - for:index="index" - lwc:if={hasResults} - > - <li - key={item.result.id} - role="presentation" - class="slds-listbox__item" - > - <div - class={item.classes} - role="option" - id={index} - aria-label={item.result.title} - onclick={handleResultClick} - data-recordid={item.result.id} - > - <span - class="slds-media__figure slds-listbox__option-icon" - > - <lightning-icon - icon-name={item.result.icon} - size="small" - alternative-text="Result item icon" - ></lightning-icon> + <template for:each={searchResultsLocalState} for:item="item" for:index="index" + lwc:if={hasResults}> + <li key={item.result.id} role="presentation" class="slds-listbox__item"> + <div class={item.classes} role="option" id={index} aria-label={item.result.title} + onclick={handleResultClick} data-recordid={item.result.id}> + <span class="slds-media__figure slds-listbox__option-icon"> + <lightning-icon icon-name={item.result.icon} size="small" + alternative-text="Result item icon"></lightning-icon> </span> <span class="slds-media__body"> - <span - class="slds-listbox__option-text slds-listbox__option-text_entity" - > - <lightning-formatted-rich-text - value={item.result.titleFormatted} - disable-linkify - > + <span class="slds-listbox__option-text slds-listbox__option-text_entity"> + <lightning-formatted-rich-text value={item.result.titleFormatted} + disable-linkify> </lightning-formatted-rich-text> </span> <!-- <span lwc:if={item.result.subtitleFormatted} @@ -151,53 +79,25 @@ <!-- No results start --> <template lwc:else> <li role="presentation"> - <span - class="slds-media slds-listbox__option_entity" - role="option" - > - <span - lwc:if={loading} - class="slds-media__body" - >Loading...</span - > - <span lwc:else class="slds-media__body" - >No results.</span - > + <span class="slds-media slds-listbox__option_entity" role="option"> + <span lwc:if={loading} class="slds-media__body">Loading...</span> + <span lwc:else class="slds-media__body">No results.</span> </span> </li> </template> <!-- No results end --> <!-- Create new records --> - <template - for:each={newRecordOptions} - for:item="newRecord" - > - <li - key={newRecord.value} - role="presentation" - class="slds-listbox__item" - > - <div - class="slds-media slds-media_center slds-listbox__option slds-listbox__option_entity" - onclick={handleNewRecordClick} - data-sobject={newRecord.value} - role="option" - > - <span - class="slds-media__figure slds-listbox__option-icon" - > - <lightning-icon - icon-name="utility:add" - size="small" - alternative-text={newRecord.label} - ></lightning-icon> + <template for:each={newRecordOptions} for:item="newRecord"> + <li key={newRecord.value} role="presentation" class="slds-listbox__item"> + <div class="slds-media slds-media_center slds-listbox__option slds-listbox__option_entity" + onclick={handleNewRecordClick} data-sobject={newRecord.value} role="option"> + <span class="slds-media__figure slds-listbox__option-icon"> + <lightning-icon icon-name="utility:add" size="small" + alternative-text={newRecord.label}></lightning-icon> </span> <span class="slds-media__body"> - <span - class="slds-listbox__option-text" - >{newRecord.label}</span - > + <span class="slds-listbox__option-text">{newRecord.label}</span> </span> </div> </li> @@ -211,28 +111,14 @@ <!-- Multi-selection start --> <template lwc:if={isMultiEntry}> - <div - id="selection" - role="listbox" - aria-label={label} - aria-orientation="horizontal" - > - <ul - class="slds-listbox slds-listbox_inline slds-var-p-top_xxx-small" - role="group" - aria-label="Selected options" - > + <div id="selection" role="listbox" aria-label={label} aria-orientation="horizontal"> + <ul class="slds-listbox slds-listbox_inline slds-var-p-top_xxx-small" role="group" + aria-label="Selected options"> <template for:each={selection} for:item="item"> <li key={item.id} role="presentation"> - <lightning-pill - label={item.title} - title={item.title} - onremove={handleRemoveSelectedItem} - name={item.id} - > - <lightning-icon - icon-name={item.icon} - ></lightning-icon> + <lightning-pill label={item.title} title={item.title} + onremove={handleRemoveSelectedItem} name={item.id}> + <lightning-icon icon-name={item.icon}></lightning-icon> </lightning-pill> </li> </template> @@ -243,15 +129,11 @@ <!-- Errors start --> <template for:each={_errors} for:item="error"> - <div - key={error.id} - role="alert" - class="slds-form-element__label slds-var-m-top_xx-small form-error" - > + <div key={error.id} role="alert" class="slds-form-element__label slds-var-m-top_xx-small form-error"> {error.message} </div> </template> <!-- Errors end --> </div> </div> -</template> +</template> \ No newline at end of file -- Gitblit v1.9.1