@aurelia-mdc-web/all 9.3.6-au2 → 9.3.8-au2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -402,7 +402,7 @@ let MdcLookup = (() => {
|
|
|
402
402
|
}
|
|
403
403
|
onBodyMousedown(evt) {
|
|
404
404
|
// this is needed to prevent text field label jumping
|
|
405
|
-
if (closest(evt.target, 'mdc-menu')) {
|
|
405
|
+
if (closest(evt.target, 'mdc-menu') === this.menu.root) {
|
|
406
406
|
evt.preventDefault();
|
|
407
407
|
}
|
|
408
408
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-lookup.js","sourceRoot":"","sources":["../../src/lookup/mdc-lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, inject, bindable, BindingMode, CustomElement } from 'aurelia';\nimport { DiscardablePromise } from './discardable-promise';\nimport { IValidatedElement, IError, booleanAttr, number } from '../base';\nimport { closest } from '@material/dom/ponyfill';\nimport template from './mdc-lookup.html?raw';\nimport { MdcMenuSurface } from '../menu-surface/mdc-menu-surface';\nimport { MdcMenu, IMdcMenuItemComponentEvent } from '../menu/mdc-menu';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nconst inputEvents = ['click', 'input', 'keydown', 'blur'];\nconst bodyEvents = ['touchstart', 'mousedown', 'click'];\n\n/**\n * @selector mdc-lookup\n */\n@inject(Element, MdcConfiguration)\n@customElement({ name: 'mdc-lookup', template })\nexport class MdcLookup implements EventListenerObject {\n constructor(private root: HTMLElement, private configuration: MdcConfiguration) {\n this.debounce = this.configuration.lookup.debounce;\n defineMdcLookupElementApis(this.root);\n }\n\n private menuSurface: MdcMenuSurface;\n public isWrapperOpen: boolean = false;\n public optionsArray?: unknown[];\n public focusedOption: unknown = undefined;\n public searching: boolean = false;\n public errorMessage: string | undefined = undefined;\n public notFound: boolean = false;\n public menu: MdcMenu;\n\n /** Reference to the input */\n @bindable()\n public input?: HTMLInputElement & { isFocused: boolean };\n\n /** Sets the menu list to have two lines */\n @bindable({ set: booleanAttr })\n twoLine: boolean;\n\n /**\n * Sets the way an option is displayed in the input element.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the display string.\n * When undefined, an option.toString() is used.\n */\n @bindable()\n displayField: string | undefined | ((option: unknown) => string);\n displayFieldChanged() {\n if (this.displayField instanceof Function) {\n this.getDisplay = this.displayField;\n } else if (typeof this.displayField === 'string') {\n this.getDisplay = option => (option as Record<string, string>)[this.displayField as string];\n } else {\n this.getDisplay = option => (option as Record<string, unknown>)?.toString() ?? '';\n }\n }\n\n getDisplay: (option: unknown) => string = option => (option as Record<string, unknown>)?.toString() ?? '';\n\n /**\n * Sets the way a value is set.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the value.\n * When undefined, an option is used as a value.\n */\n @bindable()\n valueField: string | undefined | ((option: unknown) => unknown);\n valueFieldChanged() {\n if (this.valueField instanceof Function) {\n this.getValue = this.valueField;\n } else if (typeof this.valueField === 'string') {\n this.getValue = option => option !== undefined ? (option as Record<string, unknown>)[this.valueField as string] : undefined;\n } else {\n this.getValue = option => option;\n }\n }\n\n getValue: (option: unknown) => unknown = option => option;\n\n /**\n * Sets the array of options to display.\n * Can be an async function which returns an array.\n */\n @bindable()\n options: unknown[] | undefined | ((filter: string, value: unknown) => Promise<unknown[]>);\n optionsChanged() {\n const shouldRefresh = this.getOptions !== undefined;\n this.setGetOptions();\n if (shouldRefresh) {\n this.optionsArray = undefined;\n this.value = undefined;\n if (this.preloadOptions) {\n this.loadOptions(false);\n }\n }\n }\n\n setGetOptions() {\n if (this.options instanceof Function) {\n this.getOptions = this.options;\n } else {\n this.getOptions = this.getOptionsDefault;\n }\n }\n\n /** Hoists the menu to document body */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n hoistToBody: boolean;\n\n /** Sets the menu width to fit content */\n @bindable({ set: booleanAttr })\n naturalWidth: boolean;\n\n /** The CSS class to set on the menu. Helps styling body hoisted menus */\n @bindable()\n menuClass: string;\n\n getOptions: (filter: string | undefined, value: unknown) => Promise<unknown[]>;\n\n async getOptionsDefault(filter: string, value: unknown): Promise<unknown[]> {\n const options = this.options as unknown[];\n if (value !== undefined) {\n return Promise.resolve([options.find(x => this.getValue(x) === value)]);\n } else {\n return Promise.resolve(options.filter(x => this.getDisplay(x).toUpperCase().includes((filter || '').toUpperCase())));\n }\n }\n\n /** The selected value */\n @bindable({ mode: BindingMode.twoWay })\n value: unknown;\n suppressValueChanged: boolean;\n async valueChanged() {\n if (this.suppressValueChanged) {\n this.suppressValueChanged = false;\n return;\n }\n await this.updateFilterBasedOnValue();\n this.root.dispatchEvent(new CustomEvent('change', { bubbles: true, detail: { value: this.value } }));\n }\n setValue(value: unknown) {\n if (this.value === value) {\n return;\n }\n this.suppressValueChanged = true;\n this.value = value;\n }\n\n /** Sets debounce in milliseconds */\n @bindable({ set: number })\n debounce: number;\n\n /** Loads the options to the menu when attached */\n @bindable({ set: booleanAttr })\n preloadOptions: boolean;\n\n /** Enables a first option select on blur */\n @bindable({ set: booleanAttr })\n selectOnBlur: boolean;\n\n /** Enables an item selection on Tab press */\n @bindable({ set: booleanAttr })\n selectOnTab: boolean;\n\n /** TODO: Enables the options list virtualisation */\n @bindable({ set: booleanAttr })\n virtual: boolean;\n\n bound() {\n this.valueFieldChanged();\n this.displayFieldChanged();\n this.setGetOptions();\n }\n\n async attached() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.addEventListener(x, this));\n }\n await this.updateFilterBasedOnValue();\n if (!this.value && this.preloadOptions) {\n await this.loadOptions(false);\n }\n bodyEvents.forEach(x => document.body.addEventListener(x, this));\n }\n\n detaching() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.removeEventListener(x, this));\n }\n bodyEvents.forEach(x => document.body.removeEventListener(x, this));\n }\n\n /** Opens lookup menu */\n open() {\n if (this.input?.disabled || this.input?.readOnly || this.menu.open || this.optionsArray === undefined && !this.searching && !this.errorMessage) {\n return;\n }\n if (!this.naturalWidth) {\n this.menu.root.style.width = `${this.input?.clientWidth}px`;\n }\n this.menu.open = true;\n }\n\n /** Closes lookup menu */\n close() {\n this.menu.open = false;\n }\n\n handleEvent(evt: Event): void {\n switch (evt.currentTarget) {\n case this.input:\n switch (evt.type) {\n case 'click': this.open(); break;\n case 'input': this.filterChanged(); break;\n case 'keydown': this.onInputKeydown(evt as KeyboardEvent); break;\n case 'blur': this.onBlur(); break;\n }\n break;\n case document.body:\n switch (evt.type) {\n case 'mousedown': this.onBodyMousedown(evt as MouseEvent); break;\n case 'touchstart': this.onBodyMousedown(evt as TouchEvent); break;\n case 'click': this.handleBodyClick(evt as MouseEvent); break;\n }\n break;\n }\n }\n\n debouncePromise: DiscardablePromise<void>;\n searchPromise: DiscardablePromise<unknown[]>;\n async filterChanged() {\n this.debouncePromise?.discard();\n this.debouncePromise = new DiscardablePromise(new Promise(r => setTimeout(() => r(), this.debounce ?? 0)));\n try {\n await this.debouncePromise;\n } catch (e) {\n return;\n }\n this.setValue(undefined);\n this.searchPromise?.discard();\n await this.loadOptions(this.input?.isFocused === true);\n }\n\n async loadOptions(open: boolean) {\n this.searching = true;\n this.errorMessage = undefined;\n if (open) {\n this.open();\n }\n this.optionsArray = undefined;\n try {\n this.searchPromise = new DiscardablePromise(this.getOptions(this.input?.value, undefined));\n this.optionsArray = await this.searchPromise;\n if (this.optionsArray === undefined) {\n this.close();\n }\n } catch (e) {\n if (e !== DiscardablePromise.discarded) {\n this.errorMessage = e.message;\n this.optionsArray = undefined;\n }\n } finally {\n this.searching = false;\n }\n }\n\n setFilter(filter: string | undefined) {\n if (!this.input || this.input.value === filter) {\n return;\n }\n this.input.value = filter ?? '';\n }\n\n async updateFilterBasedOnValue() {\n if (this.value !== undefined) {\n this.optionsArray = await this.getOptions(undefined, this.value);\n } else {\n this.optionsArray = undefined;\n }\n if (this.optionsArray?.length) {\n this.setFilter(this.getDisplay(this.optionsArray[0]));\n } else {\n this.setFilter(undefined);\n }\n }\n\n handleMenuItemAction(evt: IMdcMenuItemComponentEvent) {\n this.select(evt.detail.data);\n }\n\n select(option: unknown) {\n this.value = this.getValue(option);\n this.close();\n this.input?.focus();\n }\n\n suppressBlur: boolean;\n async onBlur() {\n if (this.suppressBlur) {\n this.suppressBlur = false;\n return;\n }\n if (this.selectOnBlur && this.optionsArray?.length && this.input?.value && this.value === undefined) {\n this.value = this.getValue(this.optionsArray[0]);\n }\n this.close();\n // re-emit on root\n if (this.debouncePromise !== undefined) {\n await this.debouncePromise;\n }\n this.root.dispatchEvent(new CustomEvent('blur'));\n this.root.dispatchEvent(new CustomEvent('focusout'));\n }\n\n onInputKeydown(evt: KeyboardEvent) {\n switch (evt.code) {\n case 'ArrowDown': if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusFirstElement();\n break;\n case 'ArrowUp':\n if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusLastElement();\n break;\n case 'Space':\n if (evt.ctrlKey) {\n if (this.menu.open) {\n this.close();\n } else {\n this.loadOptions(true);\n }\n }\n break;\n }\n }\n\n onBodyMousedown(evt: MouseEvent | TouchEvent) {\n // this is needed to prevent text field label jumping\n if (closest(evt.target as HTMLElement, 'mdc-menu')) {\n evt.preventDefault();\n }\n return true;\n }\n\n handleBodyClick(evt: MouseEvent) {\n if (!closest(evt.target as HTMLElement, 'mdc-menu') && !(evt.target as HTMLElement).classList.contains('mdc-text-field') && !(evt.target as HTMLElement).classList.contains('mdc-text-field__input')) {\n this.menuSurface.foundation?.handleBodyClick(evt);\n }\n }\n\n handleMenuKeydown(event: KeyboardEvent) {\n if (this.hoistToBody && (event.key === 'Tab' || event.keyCode === 9)) {\n this.input?.focus();\n }\n return true;\n }\n\n addError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).addError(error);\n }\n }\n\n removeError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).removeError(error);\n }\n }\n\n renderErrors() {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'renderErrors')) {\n (this.input as HTMLElement as IValidatedElement).renderErrors();\n }\n }\n}\n\n/** @hidden */\nexport interface IMdcLookupElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcLookup;\n };\n };\n}\n\nfunction defineMdcLookupElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n addError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcLookupElement): void {\n CustomElement.for<MdcLookup>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mdc-lookup.js","sourceRoot":"","sources":["../../src/lookup/mdc-lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, inject, bindable, BindingMode, CustomElement } from 'aurelia';\nimport { DiscardablePromise } from './discardable-promise';\nimport { IValidatedElement, IError, booleanAttr, number } from '../base';\nimport { closest } from '@material/dom/ponyfill';\nimport template from './mdc-lookup.html?raw';\nimport { MdcMenuSurface } from '../menu-surface/mdc-menu-surface';\nimport { MdcMenu, IMdcMenuItemComponentEvent } from '../menu/mdc-menu';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nconst inputEvents = ['click', 'input', 'keydown', 'blur'];\nconst bodyEvents = ['touchstart', 'mousedown', 'click'];\n\n/**\n * @selector mdc-lookup\n */\n@inject(Element, MdcConfiguration)\n@customElement({ name: 'mdc-lookup', template })\nexport class MdcLookup implements EventListenerObject {\n constructor(private root: HTMLElement, private configuration: MdcConfiguration) {\n this.debounce = this.configuration.lookup.debounce;\n defineMdcLookupElementApis(this.root);\n }\n\n private menuSurface: MdcMenuSurface;\n public isWrapperOpen: boolean = false;\n public optionsArray?: unknown[];\n public focusedOption: unknown = undefined;\n public searching: boolean = false;\n public errorMessage: string | undefined = undefined;\n public notFound: boolean = false;\n public menu: MdcMenu;\n\n /** Reference to the input */\n @bindable()\n public input?: HTMLInputElement & { isFocused: boolean };\n\n /** Sets the menu list to have two lines */\n @bindable({ set: booleanAttr })\n twoLine: boolean;\n\n /**\n * Sets the way an option is displayed in the input element.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the display string.\n * When undefined, an option.toString() is used.\n */\n @bindable()\n displayField: string | undefined | ((option: unknown) => string);\n displayFieldChanged() {\n if (this.displayField instanceof Function) {\n this.getDisplay = this.displayField;\n } else if (typeof this.displayField === 'string') {\n this.getDisplay = option => (option as Record<string, string>)[this.displayField as string];\n } else {\n this.getDisplay = option => (option as Record<string, unknown>)?.toString() ?? '';\n }\n }\n\n getDisplay: (option: unknown) => string = option => (option as Record<string, unknown>)?.toString() ?? '';\n\n /**\n * Sets the way a value is set.\n * When set to a string, the object property with such name is used.\n * When set to a function, it is called with an option as a parameter to retrieve the value.\n * When undefined, an option is used as a value.\n */\n @bindable()\n valueField: string | undefined | ((option: unknown) => unknown);\n valueFieldChanged() {\n if (this.valueField instanceof Function) {\n this.getValue = this.valueField;\n } else if (typeof this.valueField === 'string') {\n this.getValue = option => option !== undefined ? (option as Record<string, unknown>)[this.valueField as string] : undefined;\n } else {\n this.getValue = option => option;\n }\n }\n\n getValue: (option: unknown) => unknown = option => option;\n\n /**\n * Sets the array of options to display.\n * Can be an async function which returns an array.\n */\n @bindable()\n options: unknown[] | undefined | ((filter: string, value: unknown) => Promise<unknown[]>);\n optionsChanged() {\n const shouldRefresh = this.getOptions !== undefined;\n this.setGetOptions();\n if (shouldRefresh) {\n this.optionsArray = undefined;\n this.value = undefined;\n if (this.preloadOptions) {\n this.loadOptions(false);\n }\n }\n }\n\n setGetOptions() {\n if (this.options instanceof Function) {\n this.getOptions = this.options;\n } else {\n this.getOptions = this.getOptionsDefault;\n }\n }\n\n /** Hoists the menu to document body */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n hoistToBody: boolean;\n\n /** Sets the menu width to fit content */\n @bindable({ set: booleanAttr })\n naturalWidth: boolean;\n\n /** The CSS class to set on the menu. Helps styling body hoisted menus */\n @bindable()\n menuClass: string;\n\n getOptions: (filter: string | undefined, value: unknown) => Promise<unknown[]>;\n\n async getOptionsDefault(filter: string, value: unknown): Promise<unknown[]> {\n const options = this.options as unknown[];\n if (value !== undefined) {\n return Promise.resolve([options.find(x => this.getValue(x) === value)]);\n } else {\n return Promise.resolve(options.filter(x => this.getDisplay(x).toUpperCase().includes((filter || '').toUpperCase())));\n }\n }\n\n /** The selected value */\n @bindable({ mode: BindingMode.twoWay })\n value: unknown;\n suppressValueChanged: boolean;\n async valueChanged() {\n if (this.suppressValueChanged) {\n this.suppressValueChanged = false;\n return;\n }\n await this.updateFilterBasedOnValue();\n this.root.dispatchEvent(new CustomEvent('change', { bubbles: true, detail: { value: this.value } }));\n }\n setValue(value: unknown) {\n if (this.value === value) {\n return;\n }\n this.suppressValueChanged = true;\n this.value = value;\n }\n\n /** Sets debounce in milliseconds */\n @bindable({ set: number })\n debounce: number;\n\n /** Loads the options to the menu when attached */\n @bindable({ set: booleanAttr })\n preloadOptions: boolean;\n\n /** Enables a first option select on blur */\n @bindable({ set: booleanAttr })\n selectOnBlur: boolean;\n\n /** Enables an item selection on Tab press */\n @bindable({ set: booleanAttr })\n selectOnTab: boolean;\n\n /** TODO: Enables the options list virtualisation */\n @bindable({ set: booleanAttr })\n virtual: boolean;\n\n bound() {\n this.valueFieldChanged();\n this.displayFieldChanged();\n this.setGetOptions();\n }\n\n async attached() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.addEventListener(x, this));\n }\n await this.updateFilterBasedOnValue();\n if (!this.value && this.preloadOptions) {\n await this.loadOptions(false);\n }\n bodyEvents.forEach(x => document.body.addEventListener(x, this));\n }\n\n detaching() {\n if (this.input) {\n inputEvents.forEach(x => this.input!.removeEventListener(x, this));\n }\n bodyEvents.forEach(x => document.body.removeEventListener(x, this));\n }\n\n /** Opens lookup menu */\n open() {\n if (this.input?.disabled || this.input?.readOnly || this.menu.open || this.optionsArray === undefined && !this.searching && !this.errorMessage) {\n return;\n }\n if (!this.naturalWidth) {\n this.menu.root.style.width = `${this.input?.clientWidth}px`;\n }\n this.menu.open = true;\n }\n\n /** Closes lookup menu */\n close() {\n this.menu.open = false;\n }\n\n handleEvent(evt: Event): void {\n switch (evt.currentTarget) {\n case this.input:\n switch (evt.type) {\n case 'click': this.open(); break;\n case 'input': this.filterChanged(); break;\n case 'keydown': this.onInputKeydown(evt as KeyboardEvent); break;\n case 'blur': this.onBlur(); break;\n }\n break;\n case document.body:\n switch (evt.type) {\n case 'mousedown': this.onBodyMousedown(evt as MouseEvent); break;\n case 'touchstart': this.onBodyMousedown(evt as TouchEvent); break;\n case 'click': this.handleBodyClick(evt as MouseEvent); break;\n }\n break;\n }\n }\n\n debouncePromise: DiscardablePromise<void>;\n searchPromise: DiscardablePromise<unknown[]>;\n async filterChanged() {\n this.debouncePromise?.discard();\n this.debouncePromise = new DiscardablePromise(new Promise(r => setTimeout(() => r(), this.debounce ?? 0)));\n try {\n await this.debouncePromise;\n } catch (e) {\n return;\n }\n this.setValue(undefined);\n this.searchPromise?.discard();\n await this.loadOptions(this.input?.isFocused === true);\n }\n\n async loadOptions(open: boolean) {\n this.searching = true;\n this.errorMessage = undefined;\n if (open) {\n this.open();\n }\n this.optionsArray = undefined;\n try {\n this.searchPromise = new DiscardablePromise(this.getOptions(this.input?.value, undefined));\n this.optionsArray = await this.searchPromise;\n if (this.optionsArray === undefined) {\n this.close();\n }\n } catch (e) {\n if (e !== DiscardablePromise.discarded) {\n this.errorMessage = e.message;\n this.optionsArray = undefined;\n }\n } finally {\n this.searching = false;\n }\n }\n\n setFilter(filter: string | undefined) {\n if (!this.input || this.input.value === filter) {\n return;\n }\n this.input.value = filter ?? '';\n }\n\n async updateFilterBasedOnValue() {\n if (this.value !== undefined) {\n this.optionsArray = await this.getOptions(undefined, this.value);\n } else {\n this.optionsArray = undefined;\n }\n if (this.optionsArray?.length) {\n this.setFilter(this.getDisplay(this.optionsArray[0]));\n } else {\n this.setFilter(undefined);\n }\n }\n\n handleMenuItemAction(evt: IMdcMenuItemComponentEvent) {\n this.select(evt.detail.data);\n }\n\n select(option: unknown) {\n this.value = this.getValue(option);\n this.close();\n this.input?.focus();\n }\n\n suppressBlur: boolean;\n async onBlur() {\n if (this.suppressBlur) {\n this.suppressBlur = false;\n return;\n }\n if (this.selectOnBlur && this.optionsArray?.length && this.input?.value && this.value === undefined) {\n this.value = this.getValue(this.optionsArray[0]);\n }\n this.close();\n // re-emit on root\n if (this.debouncePromise !== undefined) {\n await this.debouncePromise;\n }\n this.root.dispatchEvent(new CustomEvent('blur'));\n this.root.dispatchEvent(new CustomEvent('focusout'));\n }\n\n onInputKeydown(evt: KeyboardEvent) {\n switch (evt.code) {\n case 'ArrowDown': if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusFirstElement();\n break;\n case 'ArrowUp':\n if (!this.menu.open) {\n this.open();\n }\n this.suppressBlur = true;\n this.menu.list_?.foundation?.focusLastElement();\n break;\n case 'Space':\n if (evt.ctrlKey) {\n if (this.menu.open) {\n this.close();\n } else {\n this.loadOptions(true);\n }\n }\n break;\n }\n }\n\n onBodyMousedown(evt: MouseEvent | TouchEvent) {\n // this is needed to prevent text field label jumping\n if (closest(evt.target as HTMLElement, 'mdc-menu') === this.menu.root) {\n evt.preventDefault();\n }\n return true;\n }\n\n handleBodyClick(evt: MouseEvent) {\n if (!closest(evt.target as HTMLElement, 'mdc-menu') && !(evt.target as HTMLElement).classList.contains('mdc-text-field') && !(evt.target as HTMLElement).classList.contains('mdc-text-field__input')) {\n this.menuSurface.foundation?.handleBodyClick(evt);\n }\n }\n\n handleMenuKeydown(event: KeyboardEvent) {\n if (this.hoistToBody && (event.key === 'Tab' || event.keyCode === 9)) {\n this.input?.focus();\n }\n return true;\n }\n\n addError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).addError(error);\n }\n }\n\n removeError(error: IError) {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'addError')) {\n (this.input as HTMLElement as IValidatedElement).removeError(error);\n }\n }\n\n renderErrors() {\n if (this.input && Object.getOwnPropertyDescriptor(this.input, 'renderErrors')) {\n (this.input as HTMLElement as IValidatedElement).renderErrors();\n }\n }\n}\n\n/** @hidden */\nexport interface IMdcLookupElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcLookup;\n };\n };\n}\n\nfunction defineMdcLookupElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n addError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcLookupElement, error: IError) {\n CustomElement.for<MdcLookup>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcLookupElement): void {\n CustomElement.for<MdcLookup>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aurelia-mdc-web/all",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.8-au2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"@material/tooltip": "^14.0.0",
|
|
91
91
|
"@material/top-app-bar": "^14.0.0",
|
|
92
92
|
"@material/typography": "^14.0.0",
|
|
93
|
-
"aurelia": "2.0.0-beta.
|
|
93
|
+
"aurelia": "2.0.0-beta.25",
|
|
94
94
|
"rxjs": "^7.8.2",
|
|
95
95
|
"tslib": "^2.8.1"
|
|
96
96
|
}
|
package/src/lookup/mdc-lookup.ts
CHANGED
|
@@ -342,7 +342,7 @@ export class MdcLookup implements EventListenerObject {
|
|
|
342
342
|
|
|
343
343
|
onBodyMousedown(evt: MouseEvent | TouchEvent) {
|
|
344
344
|
// this is needed to prevent text field label jumping
|
|
345
|
-
if (closest(evt.target as HTMLElement, 'mdc-menu')) {
|
|
345
|
+
if (closest(evt.target as HTMLElement, 'mdc-menu') === this.menu.root) {
|
|
346
346
|
evt.preventDefault();
|
|
347
347
|
}
|
|
348
348
|
return true;
|