@aurelia-mdc-web/all 9.3.7-au2 → 9.3.9-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.
- package/dist/expandable/mdc-expandable.js +3 -5
- package/dist/expandable/mdc-expandable.js.map +1 -1
- package/dist/lookup/mdc-lookup.js +1 -1
- package/dist/lookup/mdc-lookup.js.map +1 -1
- package/dist/select/mdc-select.js +5 -7
- package/dist/select/mdc-select.js.map +1 -1
- package/dist/text-field/mdc-text-field.js +3 -5
- package/dist/text-field/mdc-text-field.js.map +1 -1
- package/dist/types/expandable/mdc-expandable.d.ts +1 -3
- package/dist/types/select/mdc-select.d.ts +1 -3
- package/dist/types/text-field/mdc-text-field.d.ts +1 -3
- package/package.json +2 -2
- package/src/expandable/mdc-expandable.ts +104 -104
- package/src/lookup/mdc-lookup.ts +1 -1
- package/src/select/mdc-select.ts +5 -5
- package/src/text-field/mdc-text-field.ts +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import { customElement, inject, bindable, IPlatform } from 'aurelia';
|
|
2
|
+
import { customElement, inject, bindable, IPlatform, queueTask } from 'aurelia';
|
|
3
3
|
import { booleanAttr } from '../base';
|
|
4
4
|
import { CustomElement } from '@aurelia/runtime-html';
|
|
5
5
|
import template from './mdc-expandable.html?raw';
|
|
@@ -32,11 +32,9 @@ let MdcExpandable = (() => {
|
|
|
32
32
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
33
33
|
}
|
|
34
34
|
element;
|
|
35
|
-
|
|
36
|
-
constructor(element, platform) {
|
|
35
|
+
constructor(element) {
|
|
37
36
|
__runInitializers(this, _accordion_extraInitializers);
|
|
38
37
|
this.element = element;
|
|
39
|
-
this.platform = platform;
|
|
40
38
|
}
|
|
41
39
|
header = undefined;
|
|
42
40
|
content = undefined;
|
|
@@ -74,7 +72,7 @@ let MdcExpandable = (() => {
|
|
|
74
72
|
else {
|
|
75
73
|
// the following line is needed because height has been restored to auto'
|
|
76
74
|
this.contentContainer.style.height = `${this.content.clientHeight}px`;
|
|
77
|
-
|
|
75
|
+
queueTask(() => {
|
|
78
76
|
this.contentContainer.style.overflow = 'hidden';
|
|
79
77
|
this.contentContainer.style.height = '0';
|
|
80
78
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-expandable.js","sourceRoot":"","sources":["../../src/expandable/mdc-expandable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"mdc-expandable.js","sourceRoot":"","sources":["../../src/expandable/mdc-expandable.ts"],"names":[],"mappings":"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","sourcesContent":["import { customElement, inject, bindable, IPlatform, queueTask } from 'aurelia';\nimport { booleanAttr } from '../base';\nimport { CustomElement } from '@aurelia/runtime-html';\nimport template from './mdc-expandable.html?raw';\n\nconst OPEN_CHANGED_EVENT = 'mdcexpandable:open-changed';\nconst ENTER = 13;\nconst SPACE = 32;\n\n/** @selector mdc-expandable */\n@inject(Element, IPlatform)\n@customElement({ name: 'mdc-expandable', template })\nexport class MdcExpandable {\n constructor(public element: HTMLElement) { }\n\n header?: HTMLElement = undefined;\n content?: HTMLElement = undefined;\n contentContainer?: HTMLElement = undefined;\n focused: boolean;\n\n /** Toggles the expandable open and closed */\n @bindable({ set: booleanAttr })\n open: boolean;\n openChanged() {\n this.updateContainerHeight();\n this.element.dispatchEvent(new CustomEvent(\n OPEN_CHANGED_EVENT,\n { detail: { component: this, open: this.open } }\n ));\n }\n\n /** Set the expandable to be in an accordion group */\n @bindable()\n accordion?: string;\n\n handleEvent(e: Event) {\n switch (e.type) {\n case 'transitionend':\n this.setContentContainerHeightToAuto();\n break;\n }\n }\n\n setContentContainerHeightToAuto() {\n this.contentContainer!.style.overflow = 'visible';\n this.contentContainer!.style.height = 'auto';\n this.contentContainer!.removeEventListener('transitionend', this);\n }\n\n attached() {\n this.openChanged();\n }\n\n updateContainerHeight() {\n if (this.open) {\n // after transition set body height to auto so that expandable children are visible\n this.contentContainer!.addEventListener('transitionend', this);\n this.contentContainer!.style.height = `${this.content!.clientHeight}px`;\n } else {\n // the following line is needed because height has been restored to auto'\n this.contentContainer!.style.height = `${this.content!.clientHeight}px`;\n queueTask(() => {\n this.contentContainer!.style.overflow = 'hidden';\n this.contentContainer!.style.height = '0';\n });\n }\n }\n\n /** Toggles the expandable open and closed */\n toggle() {\n if (!this.open && this.accordion !== undefined) {\n const otherAccordions = Array.from(this.element.parentElement!.querySelectorAll(`.mdc-expandable--accordion__${this.accordion}.mdc-expandable--open`));\n otherAccordions.filter(x => x !== this.element)\n .map(x => CustomElement.for<MdcExpandable>(x).viewModel)\n .forEach(x => x.toggle());\n }\n this.open = !this.open;\n }\n\n handleFocus() {\n this.focused = true;\n }\n\n handleBlur() {\n this.focused = false;\n }\n\n handleKeydown(evt: KeyboardEvent) {\n if ((evt.keyCode === ENTER || evt.keyCode === SPACE)) {\n this.toggle();\n }\n return true;\n }\n}\n\n/** @hidden */\nexport interface IMdcExpandableElement extends HTMLElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcExpandable;\n };\n };\n}\n\n"]}
|
|
@@ -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"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { MdcComponent, booleanAttr } from '../base';
|
|
3
3
|
import { cssClasses, strings } from '@material/select';
|
|
4
|
-
import { inject, customElement, IPlatform, bindable } from 'aurelia';
|
|
4
|
+
import { inject, customElement, IPlatform, bindable, queueTask } from 'aurelia';
|
|
5
5
|
import { mdcIconStrings } from './mdc-select-icon';
|
|
6
6
|
import { mdcHelperTextCssClasses } from './mdc-select-helper-text/mdc-select-helper-text';
|
|
7
7
|
import { MDCSelectFoundationAurelia } from './mdc-select-foundation-aurelia';
|
|
@@ -87,11 +87,9 @@ let MdcSelect = (() => {
|
|
|
87
87
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
88
88
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
89
89
|
}
|
|
90
|
-
platform;
|
|
91
90
|
configuration;
|
|
92
|
-
constructor(root,
|
|
91
|
+
constructor(root, configuration) {
|
|
93
92
|
super(root);
|
|
94
|
-
this.platform = platform;
|
|
95
93
|
this.configuration = configuration;
|
|
96
94
|
this.outlined = this.configuration.select.outlined;
|
|
97
95
|
defineMdcSelectElementApis(this.root);
|
|
@@ -114,12 +112,12 @@ let MdcSelect = (() => {
|
|
|
114
112
|
/** Sets the select label */
|
|
115
113
|
label = __runInitializers(this, _label_initializers, void 0);
|
|
116
114
|
labelChanged() {
|
|
117
|
-
|
|
115
|
+
queueTask(() => this.foundation?.layout());
|
|
118
116
|
}
|
|
119
117
|
/** Styles the select as an outlined select */
|
|
120
118
|
outlined = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _outlined_initializers, void 0));
|
|
121
119
|
outlinedChanged() {
|
|
122
|
-
|
|
120
|
+
queueTask(() => this.foundation?.layout());
|
|
123
121
|
}
|
|
124
122
|
/** Makes the value required */
|
|
125
123
|
required = (__runInitializers(this, _outlined_extraInitializers), __runInitializers(this, _required_initializers, void 0));
|
|
@@ -131,7 +129,7 @@ let MdcSelect = (() => {
|
|
|
131
129
|
this.selectAnchor?.removeAttribute('aria-required');
|
|
132
130
|
}
|
|
133
131
|
this.foundation?.setRequired(this.required ?? false);
|
|
134
|
-
|
|
132
|
+
queueTask(() => this.foundation?.layout());
|
|
135
133
|
}
|
|
136
134
|
/** Enables/disables the select */
|
|
137
135
|
disabled = (__runInitializers(this, _required_extraInitializers), __runInitializers(this, _disabled_initializers, void 0));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-select.js","sourceRoot":"","sources":["../../src/select/mdc-select.ts"],"names":[],"mappings":"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","sourcesContent":["import { MdcComponent, IValidatedElement, IError, booleanAttr } from '../base';\nimport { cssClasses, MDCSelectFoundationMap, MDCSelectEventDetail, strings } from '@material/select';\nimport { inject, customElement, INode, IPlatform, bindable } from 'aurelia';\nimport { MdcSelectIcon, IMdcSelectIconElement, mdcIconStrings } from './mdc-select-icon';\nimport { MdcSelectHelperText, mdcHelperTextCssClasses } from './mdc-select-helper-text/mdc-select-helper-text';\nimport { MDCNotchedOutline } from '@material/notched-outline';\nimport { MDCMenuItemEvent, Corner } from '@material/menu';\nimport { MDCSelectFoundationAurelia } from './mdc-select-foundation-aurelia';\nimport { MDCSelectAdapterAurelia } from './mdc-select-adapter-aurelia';\nimport { MDCMenuDistance } from '@material/menu-surface';\nimport { processContent, BindingMode, CustomElement, CustomAttribute } from '@aurelia/runtime-html';\nimport template from './mdc-select.html?raw';\nimport { MdcFloatingLabel } from '../floating-label/mdc-floating-label';\nimport { MdcLineRipple } from '../line-ripple/mdc-line-ripple';\nimport { MdcListItem } from '../list/mdc-list-item/mdc-list-item';\nimport { MdcMenu } from '../menu/mdc-menu';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nstrings.CHANGE_EVENT = strings.CHANGE_EVENT.toLowerCase();\n\nlet selectId = 0;\n\n/**\n * @selector mdc-select\n * @emits mdcselect:change | Emitted if user changed the value\n */\n@inject(Element, IPlatform, MdcConfiguration)\n@customElement({ name: 'mdc-select', template })\n@processContent(function processContent(node: INode, platform: IPlatform) {\n const el = node as Element;\n\n const leadingIcon = el.querySelector(`[${mdcIconStrings.ATTRIBUTE}]`);\n leadingIcon?.remove();\n\n const template = platform.document.createElement('template');\n template.setAttribute('au-slot', '');\n template.innerHTML = el.innerHTML;\n el.innerHTML = '';\n el.appendChild(template);\n\n // move icon to the slot - this allows omitting slot specification\n if (leadingIcon) {\n const div = platform.document.createElement('div');\n div.appendChild(leadingIcon);\n const iconTemplate = platform.document.createElement('template');\n iconTemplate.setAttribute('au-slot', 'leading-icon');\n iconTemplate.innerHTML = div.innerHTML;\n el.appendChild(iconTemplate);\n }\n}\n)\nexport class MdcSelect extends MdcComponent<MDCSelectFoundationAurelia> {\n constructor(root: HTMLElement, private platform: IPlatform, private configuration: MdcConfiguration) {\n super(root);\n this.outlined = this.configuration.select.outlined;\n defineMdcSelectElementApis(this.root);\n this.root.id = this.id;\n }\n\n id: string = `mdc-select-${++selectId}`;\n public menu: MdcMenu;\n private selectAnchor: HTMLElement;\n private selectedText: HTMLElement;\n\n private menuElement?: Element;\n\n get items(): MdcListItem[] | undefined {\n return this.menu.list_?.items;\n }\n\n private leadingIcon?: MdcSelectIcon;\n\n private helperText?: MdcSelectHelperText;\n private lineRipple?: MdcLineRipple;\n private mdcLabel: MdcFloatingLabel;\n private outline?: MDCNotchedOutline;\n errors = new Map<IError, boolean>();\n\n /** Sets the select label */\n @bindable()\n label: string;\n labelChanged() {\n this.platform.domQueue.queueTask(() => this.foundation?.layout());\n }\n\n /** Styles the select as an outlined select */\n @bindable({ set: booleanAttr })\n outlined?: boolean;\n outlinedChanged() {\n this.platform.domQueue.queueTask(() => this.foundation?.layout());\n }\n\n /** Makes the value required */\n @bindable({ set: booleanAttr })\n required: boolean;\n requiredChanged() {\n if (this.required) {\n this.selectAnchor?.setAttribute('aria-required', 'true');\n } else {\n this.selectAnchor?.removeAttribute('aria-required');\n }\n this.foundation?.setRequired(this.required ?? false);\n this.platform.domWriteQueue.queueTask(() => this.foundation?.layout());\n }\n\n /** Enables/disables the select */\n @bindable({ set: booleanAttr })\n disabled?: boolean;\n disabledChanged() {\n if (this.disabled !== undefined) {\n this.foundation?.setDisabled(this.disabled);\n }\n }\n\n /** Hoists the select DOM to document.body */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n hoistToBody: boolean;\n\n /** Sets the select DOM position to fixed */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n fixed: boolean;\n\n /** Sets the margin between the select input and the dropdown */\n @bindable()\n anchorMargin: Partial<MDCMenuDistance>;\n\n /** Sets the select dropdown width to match content */\n @bindable({ set: booleanAttr })\n naturalWidth: boolean;\n\n private _value: unknown;\n get value(): unknown {\n if (this.foundation) {\n return this.foundation.getValue();\n } else {\n return this._value;\n }\n }\n\n set value(value: unknown) {\n this.setValue(value);\n }\n\n setValue(value: unknown, skipNotify: boolean = false) {\n this._value = value;\n if (this.foundation) {\n this.foundation.setValue(value, skipNotify);\n this.foundation.layout();\n }\n }\n\n get valid(): boolean {\n return this.foundation?.isValid() ?? true;\n }\n\n set valid(value: boolean) {\n this.foundation?.setValid(value);\n }\n\n get selectedIndex(): number {\n return this.foundation!.getSelectedIndex();\n }\n\n set selectedIndex(selectedIndex: number) {\n this.foundation?.setSelectedIndex(selectedIndex, /** closeMenu */ true);\n }\n\n addError(error: IError) {\n this.errors.set(error, true);\n this.valid = false;\n }\n\n removeError(error: IError) {\n this.errors.delete(error);\n this.valid = this.errors.size === 0;\n }\n\n renderErrors() {\n if (this.helperText) {\n this.helperText.errors = Array.from(this.errors.keys()).filter(x => x.message !== null).map(x => x.message!);\n }\n }\n\n async attaching() {\n const nextSibling = this.root.nextElementSibling;\n if (nextSibling?.tagName === mdcHelperTextCssClasses.ROOT.toUpperCase()) {\n this.helperText = CustomElement.for<MdcSelectHelperText>(nextSibling).viewModel;\n await this.helperText.initialised;\n }\n }\n\n beforeFoundationCreated() {\n const leadingIconEl = this.root.querySelector<IMdcSelectIconElement>(`${strings.LEADING_ICON_SELECTOR}`);\n if (leadingIconEl) {\n this.leadingIcon = CustomAttribute.for<MdcSelectIcon>(leadingIconEl, mdcIconStrings.ATTRIBUTE)?.viewModel;\n }\n this.menu.list_!.singleSelection = true;\n }\n\n initialSyncWithDOM() {\n // set initial value without emitting change events\n this.foundation?.setValue(this._value, true);\n this.foundation?.layout();\n this.errors = new Map<IError, boolean>();\n this.valid = true;\n\n this.labelChanged();\n this.disabledChanged();\n this.outlinedChanged();\n this.requiredChanged();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCSelectAdapterAurelia = {\n ...this.getSelectAdapterMethods(),\n ...this.getCommonAdapterMethods(),\n ...this.getOutlineAdapterMethods(),\n ...this.getLabelAdapterMethods(),\n };\n return new MDCSelectFoundationAurelia(adapter, this.getFoundationMap());\n }\n\n private getSelectAdapterMethods() {\n return {\n setSelectedText: (text: string) => {\n this.selectedText.textContent = text;\n },\n isSelectAnchorFocused: () => document.activeElement === this.selectAnchor,\n getSelectAnchorAttr: (attr: string) => this.selectAnchor.getAttribute(attr),\n setSelectAnchorAttr: (attr: string, value: string) => {\n this.selectAnchor.setAttribute(attr, value);\n },\n removeSelectAnchorAttr: (attr: string) => {\n this.selectAnchor.removeAttribute(attr);\n },\n addMenuClass: (className: string) => {\n this.menuElement?.classList.add(className);\n },\n removeMenuClass: (className: string) => {\n this.menuElement?.classList.remove(className);\n },\n openMenu: () => {\n this.menu.open = true;\n this.menu.root.style.minWidth = this.menu.root.style.maxWidth = (this.hoistToBody || this.fixed) && !this.naturalWidth\n ? `${this.root.clientWidth}px`\n : '';\n },\n closeMenu: () => { this.menu.open = false; },\n getAnchorElement: () => this.root.querySelector(strings.SELECT_ANCHOR_SELECTOR)!,\n setMenuAnchorElement: (anchorEl: HTMLElement) => {\n this.menu.anchor = anchorEl;\n },\n setMenuAnchorCorner: (anchorCorner: Corner) => {\n this.menu.setAnchorCorner(anchorCorner);\n },\n setMenuWrapFocus: (wrapFocus: boolean) => {\n this.menu.wrapFocus = wrapFocus;\n },\n getSelectedIndex: () => {\n const index = this.menu.selectedIndex;\n return index instanceof Array ? index[0] : index;\n },\n setSelectedIndex: (index: number) => {\n this.menu.selectedIndex = index;\n },\n removeAttributeAtIndex: (index: number, attributeName: string) => {\n this.menu.items[index].removeAttribute(attributeName);\n },\n focusMenuItemAtIndex: (index: number) => {\n (this.menu.items[index] as HTMLElement).focus();\n },\n getMenuItemCount: () => this.menu.items.length,\n getMenuItemValues: () => this.menu.items.map(x => CustomElement.for<MdcListItem>(x).viewModel.value),\n getMenuItemTextAtIndex: (index: number) => this.menu.getPrimaryTextAtIndex(index),\n isTypeaheadInProgress: () => this.menu.typeaheadInProgress,\n typeaheadMatchItem: (nextChar: string, startingIndex: number) => this.menu.typeaheadMatchItem(nextChar, startingIndex),\n };\n }\n\n private getCommonAdapterMethods() {\n return {\n addClass: (className: string) => {\n this.root.classList.add(className);\n },\n removeClass: (className: string) => {\n this.root.classList.remove(className);\n },\n hasClass: (className: string) => this.root.classList.contains(className),\n setRippleCenter: (normalizedX: number) => this.lineRipple?.setRippleCenter(normalizedX),\n activateBottomLine: () => this.lineRipple?.activate(),\n deactivateBottomLine: () => this.lineRipple?.deactivate(),\n notifyChange: (value: string) => {\n const index = this.selectedIndex;\n this.emit<MDCSelectEventDetail>(strings.CHANGE_EVENT, { value, index }, true /* shouldBubble */);\n this.emit<MDCSelectEventDetail>('change', { value, index }, true /* shouldBubble */);\n },\n };\n }\n\n private getOutlineAdapterMethods() {\n return {\n hasOutline: () => Boolean(this.outline),\n notchOutline: (labelWidth: number) => this.outline?.notch(labelWidth),\n closeOutline: () => this.outline?.closeNotch(),\n };\n }\n\n private getLabelAdapterMethods() {\n return {\n hasLabel: () => !!this.mdcLabel,\n floatLabel: (shouldFloat: boolean) => this.mdcLabel?.float(shouldFloat),\n getLabelWidth: () => this.mdcLabel ? this.mdcLabel.getWidth() : 0,\n setLabelRequired: (isRequired: boolean) => this.mdcLabel?.setRequired(isRequired),\n };\n }\n\n handleChange() {\n this.foundation?.handleChange();\n this.emit('change', {}, true);\n }\n\n handleFocus() {\n this.foundation?.handleFocus();\n }\n\n handleBlur() {\n this.foundation?.handleBlur();\n // if class is set it means the menu is open,\n // do not emit blur since \"conceptually\" the element is still active\n if (!this.root.classList.contains(cssClasses.FOCUSED)) {\n this.emit('blur', {}, true);\n }\n }\n\n handleClick(evt: MouseEvent) {\n this.selectAnchor.focus();\n this.foundation?.handleClick(this.getNormalizedXCoordinate(evt));\n }\n\n handleKeydown(evt: KeyboardEvent) {\n this.foundation?.handleKeydown(evt);\n return true;\n }\n\n handleMenuItemAction(evt: MDCMenuItemEvent) {\n this.foundation?.handleMenuItemAction(evt.detail.index);\n }\n\n handleMenuOpened() {\n this.foundation?.handleMenuOpened();\n }\n\n handleMenuClosed() {\n this.foundation?.handleMenuClosed();\n if (!this.root.classList.contains(cssClasses.FOCUSED)) {\n this.emit('blur', {}, true);\n }\n }\n\n handleItemsChanged() {\n this.foundation?.layoutOptions();\n this.foundation?.layout();\n }\n\n focus() {\n this.selectAnchor.focus();\n }\n\n blur() {\n this.selectAnchor.blur();\n }\n\n /**\n * @hidden\n * Calculates where the line ripple should start based on the x coordinate within the component.\n */\n private getNormalizedXCoordinate(evt: MouseEvent | TouchEvent): number {\n const targetClientRect = (evt.target as Element).getBoundingClientRect();\n const xCoordinate =\n this.isTouchEvent(evt) ? evt.touches[0].clientX : evt.clientX;\n return xCoordinate - targetClientRect.left;\n }\n\n private isTouchEvent(evt: MouseEvent | TouchEvent): evt is TouchEvent {\n return Boolean((evt as TouchEvent).touches);\n }\n\n /**\n * @hidden\n * Returns a map of all subcomponents to subfoundations.\n */\n private getFoundationMap(): Partial<MDCSelectFoundationMap> {\n return {\n helperText: this.helperText?.foundation,\n leadingIcon: this.leadingIcon?.foundation\n };\n }\n}\n\n/** @hidden */\nexport interface IMdcSelectElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcSelect;\n };\n };\n value: unknown;\n}\n\nfunction defineMdcSelectElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n value: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.value;\n },\n set(this: IMdcSelectElement, value: unknown) {\n // aurelia binding converts \"undefined\" and \"null\" into empty string\n // this does not translate well into \"empty\" menu items when several selects are bound to the same field\n CustomElement.for<MdcSelect>(this).viewModel.value = value === '' ? undefined : value;\n },\n configurable: true\n },\n options: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.root.querySelectorAll('.mdc-list-item');\n },\n configurable: true\n },\n selectedIndex: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.selectedIndex;\n },\n set(this: IMdcSelectElement, value: number) {\n CustomElement.for<MdcSelect>(this).viewModel.selectedIndex = value;\n },\n configurable: true\n },\n valid: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.valid;\n },\n set(this: IMdcSelectElement, value: boolean) {\n CustomElement.for<MdcSelect>(this).viewModel.valid = value;\n },\n configurable: true\n },\n addError: {\n value(this: IMdcSelectElement, error: IError) {\n CustomElement.for<MdcSelect>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcSelectElement, error: IError) {\n CustomElement.for<MdcSelect>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcSelectElement): void {\n CustomElement.for<MdcSelect>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n focus: {\n value(this: IMdcSelectElement) {\n CustomElement.for<MdcSelect>(this).viewModel.focus();\n },\n configurable: true\n },\n blur: {\n value(this: IMdcSelectElement) {\n CustomElement.for<MdcSelect>(this).viewModel.blur();\n },\n configurable: true\n }\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mdc-select.js","sourceRoot":"","sources":["../../src/select/mdc-select.ts"],"names":[],"mappings":"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","sourcesContent":["import { MdcComponent, IValidatedElement, IError, booleanAttr } from '../base';\nimport { cssClasses, MDCSelectFoundationMap, MDCSelectEventDetail, strings } from '@material/select';\nimport { inject, customElement, INode, IPlatform, bindable, queueTask } from 'aurelia';\nimport { MdcSelectIcon, IMdcSelectIconElement, mdcIconStrings } from './mdc-select-icon';\nimport { MdcSelectHelperText, mdcHelperTextCssClasses } from './mdc-select-helper-text/mdc-select-helper-text';\nimport { MDCNotchedOutline } from '@material/notched-outline';\nimport { MDCMenuItemEvent, Corner } from '@material/menu';\nimport { MDCSelectFoundationAurelia } from './mdc-select-foundation-aurelia';\nimport { MDCSelectAdapterAurelia } from './mdc-select-adapter-aurelia';\nimport { MDCMenuDistance } from '@material/menu-surface';\nimport { processContent, BindingMode, CustomElement, CustomAttribute } from '@aurelia/runtime-html';\nimport template from './mdc-select.html?raw';\nimport { MdcFloatingLabel } from '../floating-label/mdc-floating-label';\nimport { MdcLineRipple } from '../line-ripple/mdc-line-ripple';\nimport { MdcListItem } from '../list/mdc-list-item/mdc-list-item';\nimport { MdcMenu } from '../menu/mdc-menu';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nstrings.CHANGE_EVENT = strings.CHANGE_EVENT.toLowerCase();\n\nlet selectId = 0;\n\n/**\n * @selector mdc-select\n * @emits mdcselect:change | Emitted if user changed the value\n */\n@inject(Element, IPlatform, MdcConfiguration)\n@customElement({ name: 'mdc-select', template })\n@processContent(function processContent(node: INode, platform: IPlatform) {\n const el = node as Element;\n\n const leadingIcon = el.querySelector(`[${mdcIconStrings.ATTRIBUTE}]`);\n leadingIcon?.remove();\n\n const template = platform.document.createElement('template');\n template.setAttribute('au-slot', '');\n template.innerHTML = el.innerHTML;\n el.innerHTML = '';\n el.appendChild(template);\n\n // move icon to the slot - this allows omitting slot specification\n if (leadingIcon) {\n const div = platform.document.createElement('div');\n div.appendChild(leadingIcon);\n const iconTemplate = platform.document.createElement('template');\n iconTemplate.setAttribute('au-slot', 'leading-icon');\n iconTemplate.innerHTML = div.innerHTML;\n el.appendChild(iconTemplate);\n }\n}\n)\nexport class MdcSelect extends MdcComponent<MDCSelectFoundationAurelia> {\n constructor(root: HTMLElement, private configuration: MdcConfiguration) {\n super(root);\n this.outlined = this.configuration.select.outlined;\n defineMdcSelectElementApis(this.root);\n this.root.id = this.id;\n }\n\n id: string = `mdc-select-${++selectId}`;\n public menu: MdcMenu;\n private selectAnchor: HTMLElement;\n private selectedText: HTMLElement;\n\n private menuElement?: Element;\n\n get items(): MdcListItem[] | undefined {\n return this.menu.list_?.items;\n }\n\n private leadingIcon?: MdcSelectIcon;\n\n private helperText?: MdcSelectHelperText;\n private lineRipple?: MdcLineRipple;\n private mdcLabel: MdcFloatingLabel;\n private outline?: MDCNotchedOutline;\n errors = new Map<IError, boolean>();\n\n /** Sets the select label */\n @bindable()\n label: string;\n labelChanged() {\n queueTask(() => this.foundation?.layout());\n }\n\n /** Styles the select as an outlined select */\n @bindable({ set: booleanAttr })\n outlined?: boolean;\n outlinedChanged() {\n queueTask(() => this.foundation?.layout());\n }\n\n /** Makes the value required */\n @bindable({ set: booleanAttr })\n required: boolean;\n requiredChanged() {\n if (this.required) {\n this.selectAnchor?.setAttribute('aria-required', 'true');\n } else {\n this.selectAnchor?.removeAttribute('aria-required');\n }\n this.foundation?.setRequired(this.required ?? false);\n queueTask(() => this.foundation?.layout());\n }\n\n /** Enables/disables the select */\n @bindable({ set: booleanAttr })\n disabled?: boolean;\n disabledChanged() {\n if (this.disabled !== undefined) {\n this.foundation?.setDisabled(this.disabled);\n }\n }\n\n /** Hoists the select DOM to document.body */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n hoistToBody: boolean;\n\n /** Sets the select DOM position to fixed */\n @bindable({ set: booleanAttr, mode: BindingMode.oneTime })\n fixed: boolean;\n\n /** Sets the margin between the select input and the dropdown */\n @bindable()\n anchorMargin: Partial<MDCMenuDistance>;\n\n /** Sets the select dropdown width to match content */\n @bindable({ set: booleanAttr })\n naturalWidth: boolean;\n\n private _value: unknown;\n get value(): unknown {\n if (this.foundation) {\n return this.foundation.getValue();\n } else {\n return this._value;\n }\n }\n\n set value(value: unknown) {\n this.setValue(value);\n }\n\n setValue(value: unknown, skipNotify: boolean = false) {\n this._value = value;\n if (this.foundation) {\n this.foundation.setValue(value, skipNotify);\n this.foundation.layout();\n }\n }\n\n get valid(): boolean {\n return this.foundation?.isValid() ?? true;\n }\n\n set valid(value: boolean) {\n this.foundation?.setValid(value);\n }\n\n get selectedIndex(): number {\n return this.foundation!.getSelectedIndex();\n }\n\n set selectedIndex(selectedIndex: number) {\n this.foundation?.setSelectedIndex(selectedIndex, /** closeMenu */ true);\n }\n\n addError(error: IError) {\n this.errors.set(error, true);\n this.valid = false;\n }\n\n removeError(error: IError) {\n this.errors.delete(error);\n this.valid = this.errors.size === 0;\n }\n\n renderErrors() {\n if (this.helperText) {\n this.helperText.errors = Array.from(this.errors.keys()).filter(x => x.message !== null).map(x => x.message!);\n }\n }\n\n async attaching() {\n const nextSibling = this.root.nextElementSibling;\n if (nextSibling?.tagName === mdcHelperTextCssClasses.ROOT.toUpperCase()) {\n this.helperText = CustomElement.for<MdcSelectHelperText>(nextSibling).viewModel;\n await this.helperText.initialised;\n }\n }\n\n beforeFoundationCreated() {\n const leadingIconEl = this.root.querySelector<IMdcSelectIconElement>(`${strings.LEADING_ICON_SELECTOR}`);\n if (leadingIconEl) {\n this.leadingIcon = CustomAttribute.for<MdcSelectIcon>(leadingIconEl, mdcIconStrings.ATTRIBUTE)?.viewModel;\n }\n this.menu.list_!.singleSelection = true;\n }\n\n initialSyncWithDOM() {\n // set initial value without emitting change events\n this.foundation?.setValue(this._value, true);\n this.foundation?.layout();\n this.errors = new Map<IError, boolean>();\n this.valid = true;\n\n this.labelChanged();\n this.disabledChanged();\n this.outlinedChanged();\n this.requiredChanged();\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCSelectAdapterAurelia = {\n ...this.getSelectAdapterMethods(),\n ...this.getCommonAdapterMethods(),\n ...this.getOutlineAdapterMethods(),\n ...this.getLabelAdapterMethods(),\n };\n return new MDCSelectFoundationAurelia(adapter, this.getFoundationMap());\n }\n\n private getSelectAdapterMethods() {\n return {\n setSelectedText: (text: string) => {\n this.selectedText.textContent = text;\n },\n isSelectAnchorFocused: () => document.activeElement === this.selectAnchor,\n getSelectAnchorAttr: (attr: string) => this.selectAnchor.getAttribute(attr),\n setSelectAnchorAttr: (attr: string, value: string) => {\n this.selectAnchor.setAttribute(attr, value);\n },\n removeSelectAnchorAttr: (attr: string) => {\n this.selectAnchor.removeAttribute(attr);\n },\n addMenuClass: (className: string) => {\n this.menuElement?.classList.add(className);\n },\n removeMenuClass: (className: string) => {\n this.menuElement?.classList.remove(className);\n },\n openMenu: () => {\n this.menu.open = true;\n this.menu.root.style.minWidth = this.menu.root.style.maxWidth = (this.hoistToBody || this.fixed) && !this.naturalWidth\n ? `${this.root.clientWidth}px`\n : '';\n },\n closeMenu: () => { this.menu.open = false; },\n getAnchorElement: () => this.root.querySelector(strings.SELECT_ANCHOR_SELECTOR)!,\n setMenuAnchorElement: (anchorEl: HTMLElement) => {\n this.menu.anchor = anchorEl;\n },\n setMenuAnchorCorner: (anchorCorner: Corner) => {\n this.menu.setAnchorCorner(anchorCorner);\n },\n setMenuWrapFocus: (wrapFocus: boolean) => {\n this.menu.wrapFocus = wrapFocus;\n },\n getSelectedIndex: () => {\n const index = this.menu.selectedIndex;\n return index instanceof Array ? index[0] : index;\n },\n setSelectedIndex: (index: number) => {\n this.menu.selectedIndex = index;\n },\n removeAttributeAtIndex: (index: number, attributeName: string) => {\n this.menu.items[index].removeAttribute(attributeName);\n },\n focusMenuItemAtIndex: (index: number) => {\n (this.menu.items[index] as HTMLElement).focus();\n },\n getMenuItemCount: () => this.menu.items.length,\n getMenuItemValues: () => this.menu.items.map(x => CustomElement.for<MdcListItem>(x).viewModel.value),\n getMenuItemTextAtIndex: (index: number) => this.menu.getPrimaryTextAtIndex(index),\n isTypeaheadInProgress: () => this.menu.typeaheadInProgress,\n typeaheadMatchItem: (nextChar: string, startingIndex: number) => this.menu.typeaheadMatchItem(nextChar, startingIndex),\n };\n }\n\n private getCommonAdapterMethods() {\n return {\n addClass: (className: string) => {\n this.root.classList.add(className);\n },\n removeClass: (className: string) => {\n this.root.classList.remove(className);\n },\n hasClass: (className: string) => this.root.classList.contains(className),\n setRippleCenter: (normalizedX: number) => this.lineRipple?.setRippleCenter(normalizedX),\n activateBottomLine: () => this.lineRipple?.activate(),\n deactivateBottomLine: () => this.lineRipple?.deactivate(),\n notifyChange: (value: string) => {\n const index = this.selectedIndex;\n this.emit<MDCSelectEventDetail>(strings.CHANGE_EVENT, { value, index }, true /* shouldBubble */);\n this.emit<MDCSelectEventDetail>('change', { value, index }, true /* shouldBubble */);\n },\n };\n }\n\n private getOutlineAdapterMethods() {\n return {\n hasOutline: () => Boolean(this.outline),\n notchOutline: (labelWidth: number) => this.outline?.notch(labelWidth),\n closeOutline: () => this.outline?.closeNotch(),\n };\n }\n\n private getLabelAdapterMethods() {\n return {\n hasLabel: () => !!this.mdcLabel,\n floatLabel: (shouldFloat: boolean) => this.mdcLabel?.float(shouldFloat),\n getLabelWidth: () => this.mdcLabel ? this.mdcLabel.getWidth() : 0,\n setLabelRequired: (isRequired: boolean) => this.mdcLabel?.setRequired(isRequired),\n };\n }\n\n handleChange() {\n this.foundation?.handleChange();\n this.emit('change', {}, true);\n }\n\n handleFocus() {\n this.foundation?.handleFocus();\n }\n\n handleBlur() {\n this.foundation?.handleBlur();\n // if class is set it means the menu is open,\n // do not emit blur since \"conceptually\" the element is still active\n if (!this.root.classList.contains(cssClasses.FOCUSED)) {\n this.emit('blur', {}, true);\n }\n }\n\n handleClick(evt: MouseEvent) {\n this.selectAnchor.focus();\n this.foundation?.handleClick(this.getNormalizedXCoordinate(evt));\n }\n\n handleKeydown(evt: KeyboardEvent) {\n this.foundation?.handleKeydown(evt);\n return true;\n }\n\n handleMenuItemAction(evt: MDCMenuItemEvent) {\n this.foundation?.handleMenuItemAction(evt.detail.index);\n }\n\n handleMenuOpened() {\n this.foundation?.handleMenuOpened();\n }\n\n handleMenuClosed() {\n this.foundation?.handleMenuClosed();\n if (!this.root.classList.contains(cssClasses.FOCUSED)) {\n this.emit('blur', {}, true);\n }\n }\n\n handleItemsChanged() {\n this.foundation?.layoutOptions();\n this.foundation?.layout();\n }\n\n focus() {\n this.selectAnchor.focus();\n }\n\n blur() {\n this.selectAnchor.blur();\n }\n\n /**\n * @hidden\n * Calculates where the line ripple should start based on the x coordinate within the component.\n */\n private getNormalizedXCoordinate(evt: MouseEvent | TouchEvent): number {\n const targetClientRect = (evt.target as Element).getBoundingClientRect();\n const xCoordinate =\n this.isTouchEvent(evt) ? evt.touches[0].clientX : evt.clientX;\n return xCoordinate - targetClientRect.left;\n }\n\n private isTouchEvent(evt: MouseEvent | TouchEvent): evt is TouchEvent {\n return Boolean((evt as TouchEvent).touches);\n }\n\n /**\n * @hidden\n * Returns a map of all subcomponents to subfoundations.\n */\n private getFoundationMap(): Partial<MDCSelectFoundationMap> {\n return {\n helperText: this.helperText?.foundation,\n leadingIcon: this.leadingIcon?.foundation\n };\n }\n}\n\n/** @hidden */\nexport interface IMdcSelectElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcSelect;\n };\n };\n value: unknown;\n}\n\nfunction defineMdcSelectElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n value: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.value;\n },\n set(this: IMdcSelectElement, value: unknown) {\n // aurelia binding converts \"undefined\" and \"null\" into empty string\n // this does not translate well into \"empty\" menu items when several selects are bound to the same field\n CustomElement.for<MdcSelect>(this).viewModel.value = value === '' ? undefined : value;\n },\n configurable: true\n },\n options: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.root.querySelectorAll('.mdc-list-item');\n },\n configurable: true\n },\n selectedIndex: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.selectedIndex;\n },\n set(this: IMdcSelectElement, value: number) {\n CustomElement.for<MdcSelect>(this).viewModel.selectedIndex = value;\n },\n configurable: true\n },\n valid: {\n get(this: IMdcSelectElement) {\n return CustomElement.for<MdcSelect>(this).viewModel.valid;\n },\n set(this: IMdcSelectElement, value: boolean) {\n CustomElement.for<MdcSelect>(this).viewModel.valid = value;\n },\n configurable: true\n },\n addError: {\n value(this: IMdcSelectElement, error: IError) {\n CustomElement.for<MdcSelect>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcSelectElement, error: IError) {\n CustomElement.for<MdcSelect>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcSelectElement): void {\n CustomElement.for<MdcSelect>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n focus: {\n value(this: IMdcSelectElement) {\n CustomElement.for<MdcSelect>(this).viewModel.focus();\n },\n configurable: true\n },\n blur: {\n value(this: IMdcSelectElement) {\n CustomElement.for<MdcSelect>(this).viewModel.blur();\n },\n configurable: true\n }\n });\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import { inject, customElement, bindable } from 'aurelia';
|
|
2
|
+
import { inject, customElement, bindable, queueTask } from 'aurelia';
|
|
3
3
|
import { MDCTextFieldFoundation, cssClasses, helperTextStrings, characterCountStrings } from '@material/textfield';
|
|
4
4
|
import { applyPassive } from '@material/dom/events';
|
|
5
5
|
import { MdcComponent, booleanAttr, number } from '../base';
|
|
@@ -142,11 +142,9 @@ let MdcTextField = (() => {
|
|
|
142
142
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
143
143
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
144
144
|
}
|
|
145
|
-
platform;
|
|
146
145
|
configuration;
|
|
147
|
-
constructor(root,
|
|
146
|
+
constructor(root, configuration) {
|
|
148
147
|
super(root);
|
|
149
|
-
this.platform = platform;
|
|
150
148
|
this.configuration = configuration;
|
|
151
149
|
this.outlined = this.configuration.textField.outlined;
|
|
152
150
|
defineMdcTextFieldElementApis(this.root);
|
|
@@ -165,7 +163,7 @@ let MdcTextField = (() => {
|
|
|
165
163
|
mutationObserver = new MutationObserver(mutations => this.mutated(mutations));
|
|
166
164
|
label = __runInitializers(this, _label_initializers, void 0);
|
|
167
165
|
labelChanged() {
|
|
168
|
-
|
|
166
|
+
queueTask(() => {
|
|
169
167
|
if (this.foundation) {
|
|
170
168
|
const openNotch = this.foundation.shouldFloat;
|
|
171
169
|
this.foundation.notchOutline(openNotch);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-text-field.js","sourceRoot":"","sources":["../../src/text-field/mdc-text-field.ts"],"names":[],"mappings":"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","sourcesContent":["import { inject, customElement, INode, bindable } from 'aurelia';\nimport {\n MDCTextFieldFoundation, MDCTextFieldRootAdapter, MDCTextFieldInputAdapter, MDCTextFieldLabelAdapter, MDCTextFieldAdapter, MDCTextFieldFoundationMap,\n MDCTextFieldLineRippleAdapter, MDCTextFieldOutlineAdapter, cssClasses, helperTextStrings, characterCountStrings\n} from '@material/textfield';\nimport { applyPassive } from '@material/dom/events';\nimport { MdcComponent, IValidatedElement, IError, booleanAttr, number } from '../base';\nimport { MdcTextFieldIcon, mdcIconStrings, IMdcTextFieldIconElement } from './mdc-text-field-icon';\nimport { MdcTextFieldHelperText } from './mdc-text-field-helper-text/mdc-text-field-helper-text';\nimport { MdcTextFieldCharacterCounter } from './mdc-text-field-character-counter';\nimport { MdcTextFieldHelperLine } from './mdc-text-field-helper-line/mdc-text-field-helper-line';\nimport { processContent, IPlatform, CustomAttribute, CustomElement } from '@aurelia/runtime-html';\nimport template from './mdc-text-field.html?raw';\nimport { MdcFloatingLabel } from '../floating-label/mdc-floating-label';\nimport { MdcLineRipple } from '../line-ripple/mdc-line-ripple';\nimport { MdcNotchedOutline } from '../notched-outline/mdc-notched-outline';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nlet textFieldId = 0;\nconst leadingIconSelector = '.mdc-text-field__icon--leading';\nconst trailingIconSelector = '.mdc-text-field__icon--trailing';\n\n@inject(Element, IPlatform, MdcConfiguration)\n@customElement({ name: 'mdc-text-field', template })\n@processContent(function processContent(node: INode) {\n const element = node as HTMLElement;\n // move icons to slots - this allows omitting slot specification\n const leadingIcon = element.querySelector(`[${mdcIconStrings.ATTRIBUTE}][${mdcIconStrings.LEADING}]`);\n leadingIcon?.setAttribute('au-slot', 'leading-icon');\n const trailingIcon = element.querySelector(`[${mdcIconStrings.ATTRIBUTE}][${mdcIconStrings.TRAILING}]`);\n trailingIcon?.setAttribute('au-slot', 'trailing-icon');\n}\n)\nexport class MdcTextField extends MdcComponent<MDCTextFieldFoundation> {\n constructor(root: HTMLElement, private platform: IPlatform, private configuration: MdcConfiguration) {\n super(root);\n this.outlined = this.configuration.textField.outlined;\n defineMdcTextFieldElementApis(this.root);\n }\n\n id: string = `mdc-text-field-${++textFieldId}`;\n id1: string = `mdc-text-field-${textFieldId}`;\n input_: HTMLInputElement;\n label_?: MdcFloatingLabel = undefined;\n lineRipple_: MdcLineRipple;\n outline_!: MdcNotchedOutline | null; // assigned in html\n helperText_: MdcTextFieldHelperText | undefined;\n characterCounter_?: MdcTextFieldCharacterCounter;\n errors = new Map<IError, boolean>();\n leadingIcon_: MdcTextFieldIcon | undefined;\n trailingIcon_: MdcTextFieldIcon | undefined;\n mutationObserver = new MutationObserver(mutations => this.mutated(mutations));\n\n @bindable()\n label: string;\n labelChanged() {\n this.platform.domQueue.queueTask(() => {\n if (this.foundation) {\n const openNotch = this.foundation.shouldFloat;\n this.foundation.notchOutline(openNotch);\n }\n });\n }\n\n @bindable({ set: booleanAttr })\n textarea: boolean;\n\n @bindable({ set: booleanAttr })\n endAligned: boolean;\n\n @bindable({ set: booleanAttr })\n ltrText: boolean;\n\n @bindable({ set: booleanAttr })\n outlined?: boolean;\n\n @bindable()\n prefix: string;\n\n @bindable()\n suffix: string;\n\n @bindable({ set: booleanAttr })\n required?: boolean;\n requiredChanged() {\n if (this.required !== undefined) {\n this.input_.required = this.required;\n this.foundation?.setUseNativeValidation(true);\n }\n }\n\n @bindable({ set: booleanAttr })\n disabled: boolean;\n disabledChanged() {\n this.input_.disabled = this.disabled;\n this.foundation?.setDisabled(this.disabled);\n }\n\n @bindable({ set: booleanAttr })\n readonly: boolean;\n readonlyChanged() {\n this.input_.readOnly = this.readonly;\n }\n\n /** Makes the element blur on Enter key press */\n @bindable({ set: booleanAttr })\n blurOnEnter: boolean;\n\n @bindable()\n maxlength: string;\n maxlengthChanged() {\n if (this.maxlength) {\n this.input_.setAttribute('maxlength', this.maxlength);\n } else {\n this.input_.removeAttribute('maxlength');\n }\n }\n\n @bindable()\n rows: string;\n rowsChanged() {\n if (this.rows) {\n this.input_.setAttribute('rows', this.rows);\n } else {\n this.input_.removeAttribute('rows');\n }\n }\n\n @bindable()\n cols: string;\n colsChanged() {\n if (this.rows) {\n this.input_.setAttribute('cols', this.cols);\n } else {\n this.input_.removeAttribute('cols');\n }\n }\n\n @bindable()\n max: string;\n maxChanged() {\n if (this.max === undefined) {\n this.input_.removeAttribute('max');\n } else {\n this.input_.max = this.max;\n }\n }\n\n @bindable()\n min: string;\n minChanged() {\n if (this.min === undefined) {\n this.input_.removeAttribute('min');\n } else {\n this.input_.min = this.min;\n }\n }\n\n @bindable()\n step: string;\n stepChanged() {\n if (this.step === undefined) {\n this.input_.removeAttribute('step');\n } else {\n this.input_.step = this.step;\n }\n }\n\n @bindable()\n autocomplete: AutoFill;\n autocompleteChanged() {\n if (this.autocomplete === undefined) {\n this.input_.removeAttribute('autocomplete');\n } else {\n this.input_.autocomplete = this.autocomplete;\n }\n }\n\n @bindable({ set: number })\n tabindex: number;\n tabindexChanged() {\n if (isNaN(this.tabindex)) {\n this.input_.removeAttribute('tabindex');\n } else {\n this.input_.tabIndex = this.tabindex;\n }\n }\n\n @bindable()\n type: string;\n typeChanged() {\n if (!this.textarea) {\n if (this.type === undefined) {\n this.input_.removeAttribute('type');\n } else {\n this.input_.type = this.type;\n }\n }\n }\n\n @bindable()\n name: string;\n nameChanged() {\n if (this.name === undefined) {\n this.input_.removeAttribute('name');\n } else {\n this.input_.name = this.name;\n }\n }\n\n @bindable()\n placeholder: string = ' '; // non empty placeholder solves the issue of misplaced labels in Safari\n\n private initialValue: string;\n get value(): string {\n if (this.foundation) {\n return this.foundation.getValue();\n } else {\n return this.initialValue;\n }\n }\n set value(value: string) {\n if (this.foundation) {\n if (this.foundation.getValue() !== value) {\n this.foundation.setValue(value === null || value === undefined ? '' : value.toString());\n }\n } else {\n this.initialValue = value;\n }\n }\n\n addError(error: IError) {\n this.errors.set(error, true);\n this.valid = false;\n }\n\n removeError(error: IError) {\n this.errors.delete(error);\n this.valid = this.errors.size === 0;\n }\n\n get valid(): boolean {\n return this.foundation?.isValid() ?? true;\n }\n\n set valid(value: boolean) {\n this.foundation?.setUseNativeValidation(false);\n this.foundation?.setValid(value);\n }\n\n renderErrors() {\n const helperLine = this.root.nextElementSibling;\n if (helperLine?.tagName === 'MDC-TEXT-FIELD-HELPER-LINE') {\n CustomElement.for<MdcTextFieldHelperLine>(helperLine).viewModel.errors = Array.from(this.errors.keys())\n .filter(x => x.message !== null).map(x => x.message!);\n }\n }\n\n async attaching() {\n const nextSibling = this.root.nextElementSibling;\n if (nextSibling?.tagName === cssClasses.HELPER_LINE.toUpperCase()) {\n await CustomElement.for<MdcTextFieldHelperLine>(nextSibling).viewModel.attachedPromise;\n const helperTextEl = nextSibling.querySelector(helperTextStrings.ROOT_SELECTOR);\n this.helperText_ = helperTextEl ? CustomElement.for<MdcTextFieldHelperText>(nextSibling).viewModel : undefined;\n const characterCounterEl = nextSibling.querySelector(characterCountStrings.ROOT_SELECTOR);\n this.characterCounter_ = characterCounterEl ? CustomElement.for<MdcTextFieldCharacterCounter>(characterCounterEl).viewModel : undefined;\n }\n }\n\n beforeFoundationCreated() {\n this.maxlengthChanged();\n this.typeChanged();\n this.mutationObserver.observe(this.root, { subtree: true, childList: true });\n this.leadingIconChanged();\n this.trailingIconChanged();\n }\n\n mutated(mutations: MutationRecord[]) {\n if (mutations.find(x => [...Array.from(x.addedNodes), ...Array.from(x.removedNodes)].find(y => y instanceof HTMLElement && y.matches(leadingIconSelector)))) {\n this.leadingIconChanged();\n }\n if (mutations.find(x => [...Array.from(x.addedNodes), ...Array.from(x.removedNodes)].find(y => y instanceof HTMLElement && y.matches(trailingIconSelector)))) {\n this.trailingIconChanged();\n }\n }\n\n trailingIconChanged() {\n const el = this.root.querySelector<IMdcTextFieldIconElement>(trailingIconSelector);\n this.trailingIcon_ = el ? CustomAttribute.for<MdcTextFieldIcon>(el, mdcIconStrings.ATTRIBUTE)?.viewModel : undefined;\n }\n\n leadingIconChanged() {\n const el = this.root.querySelector<IMdcTextFieldIconElement>(leadingIconSelector);\n this.leadingIcon_ = el ? CustomAttribute.for<MdcTextFieldIcon>(el, mdcIconStrings.ATTRIBUTE)?.viewModel : undefined;\n }\n\n override destroy() {\n this.mutationObserver.disconnect();\n }\n\n initialSyncWithDOM() {\n this.value = this.initialValue;\n this.errors = new Map<IError, boolean>();\n this.valid = true;\n\n this.requiredChanged();\n this.disabledChanged();\n this.readonlyChanged();\n this.tabindexChanged();\n this.rowsChanged();\n this.colsChanged();\n this.minChanged();\n this.maxChanged();\n this.stepChanged();\n this.autocompleteChanged();\n this.nameChanged();\n // handle the case when attribute value was set, not bound, in html\n if (this.root.hasAttribute('value')) {\n this.value = this.root.getAttribute('value') ?? '';\n }\n }\n\n getDefaultFoundation() {\n const adapter: Partial<MDCTextFieldAdapter> = {\n ...this.getRootAdapterMethods_(),\n ...this.getInputAdapterMethods_(),\n ...this.getLabelAdapterMethods_(),\n ...this.getLineRippleAdapterMethods_(),\n ...this.getOutlineAdapterMethods_(),\n };\n return new MDCTextFieldFoundation(adapter, this.getFoundationMap_());\n }\n\n private getRootAdapterMethods_(): MDCTextFieldRootAdapter {\n return {\n addClass: (className) => this.root.classList.add(className),\n removeClass: (className) => this.root.classList.remove(className),\n hasClass: (className) => this.root.classList.contains(className),\n registerTextFieldInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterTextFieldInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n registerValidationAttributeChangeHandler: (handler) => {\n const getAttributesList = (mutationsList: MutationRecord[]): string[] => {\n return mutationsList\n .map((mutation) => mutation.attributeName)\n .filter((attributeName) => attributeName) as string[];\n };\n const observer = new MutationObserver((mutationsList) => handler(getAttributesList(mutationsList)));\n const config = { attributes: true };\n observer.observe(this.input_, config);\n return observer;\n },\n deregisterValidationAttributeChangeHandler: (observer) => observer.disconnect(),\n };\n }\n\n private getInputAdapterMethods_(): MDCTextFieldInputAdapter {\n return {\n getNativeInput: () => this.input_,\n setInputAttr: (attr, value) => {\n this.input_.setAttribute(attr, value);\n },\n removeInputAttr: (attr) => {\n this.input_.removeAttribute(attr);\n },\n isFocused: () => document.activeElement === this.input_,\n registerInputInteractionHandler: (evtType, handler) => this.input_.addEventListener(evtType, handler, applyPassive()),\n deregisterInputInteractionHandler: (evtType, handler) => this.input_?.removeEventListener(evtType, handler, applyPassive()),\n };\n }\n\n private getLabelAdapterMethods_(): MDCTextFieldLabelAdapter {\n return {\n floatLabel: (shouldFloat) => this.label_?.float(shouldFloat),\n getLabelWidth: () => this.label_ ? this.label_.getWidth() : 0,\n hasLabel: () => Boolean(this.label_),\n shakeLabel: (shouldShake) => this.label_?.shake(shouldShake),\n setLabelRequired: (isRequired) => this.label_?.setRequired(isRequired),\n };\n }\n\n private getLineRippleAdapterMethods_(): MDCTextFieldLineRippleAdapter {\n return {\n activateLineRipple: () => this.lineRipple_?.activate(),\n deactivateLineRipple: () => this.lineRipple_?.deactivate(),\n setLineRippleTransformOrigin: (normalizedX) => this.lineRipple_?.setRippleCenter(normalizedX)\n };\n }\n\n private getOutlineAdapterMethods_(): MDCTextFieldOutlineAdapter {\n return {\n closeOutline: () => this.outline_?.closeNotch(),\n hasOutline: () => Boolean(this.outline_),\n notchOutline: (labelWidth) => this.outline_?.notch(labelWidth),\n };\n }\n\n /**\n * @return A map of all subcomponents to subfoundations.\n */\n private getFoundationMap_(): Partial<MDCTextFieldFoundationMap> {\n return {\n characterCounter: this.characterCounter_ ? this.characterCounter_?.foundationForTextField : undefined,\n helperText: this.helperText_ ? this.helperText_.foundationForTextField : undefined,\n leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundationForTextField : undefined,\n trailingIcon: this.trailingIcon_ ? this.trailingIcon_.foundationForTextField : undefined,\n };\n }\n\n onInput(evt: Event): void {\n const value = (evt.target as HTMLInputElement).value;\n this.value = value;\n }\n\n onFocus() {\n this.foundation?.activateFocus();\n this.emit('focus', {}, true);\n }\n\n onChange(evt: Event): void {\n const value = (evt.target as HTMLInputElement).value;\n this.value = value;\n }\n\n onBlur(): void {\n this.foundation?.deactivateFocus();\n this.emit('blur', {}, true);\n }\n\n focus() {\n this.input_.focus();\n }\n\n blur() {\n this.input_.blur();\n }\n\n onKeyup(e: KeyboardEvent) {\n if (this.blurOnEnter && e.keyCode === 13) {\n this.blur();\n }\n return true;\n }\n}\n\n/** @hidden */\nexport interface IMdcTextFieldElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcTextField;\n };\n };\n value: string;\n}\n\nfunction defineMdcTextFieldElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n tagName: {\n get() {\n return 'MDC-TEXT-FIELD';\n }\n },\n value: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.value;\n },\n set(this: IMdcTextFieldElement, value: string) {\n CustomElement.for<MdcTextField>(this).viewModel.value = value;\n },\n configurable: true\n },\n disabled: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.disabled;\n },\n set(this: IMdcTextFieldElement, value: boolean) {\n CustomElement.for<MdcTextField>(this).viewModel.disabled = value;\n },\n configurable: true\n },\n readOnly: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.readonly;\n },\n set(this: IMdcTextFieldElement, value: boolean) {\n CustomElement.for<MdcTextField>(this).viewModel.readonly = value;\n },\n configurable: true\n },\n valid: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.valid;\n },\n set(this: IMdcTextFieldElement, value: boolean) {\n CustomElement.for<MdcTextField>(this).viewModel.valid = value;\n },\n configurable: true\n },\n addError: {\n value(this: IMdcTextFieldElement, error: IError) {\n CustomElement.for<MdcTextField>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcTextFieldElement, error: IError) {\n CustomElement.for<MdcTextField>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcTextFieldElement): void {\n CustomElement.for<MdcTextField>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n focus: {\n value(this: IMdcTextFieldElement) {\n CustomElement.for<MdcTextField>(this).viewModel.focus();\n },\n configurable: true\n },\n blur: {\n value(this: IMdcTextFieldElement) {\n CustomElement.for<MdcTextField>(this).viewModel.blur();\n },\n configurable: true\n },\n isFocused: {\n get(this: IMdcTextFieldElement) {\n return document.activeElement === CustomElement.for<MdcTextField>(this).viewModel.input_;\n },\n configurable: true\n }\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mdc-text-field.js","sourceRoot":"","sources":["../../src/text-field/mdc-text-field.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAS,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACqC,UAAU,EAAE,iBAAiB,EAAE,qBAAqB,EAChH,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAA6B,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAoB,cAAc,EAA4B,MAAM,uBAAuB,CAAC;AAInG,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AAIjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAC7D,MAAM,oBAAoB,GAAG,iCAAiC,CAAC;IAalD,YAAY;4BAXxB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAC5C,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EACnD,cAAc,CAAC,SAAS,cAAc,CAAC,IAAW;YACjD,MAAM,OAAO,GAAG,IAAmB,CAAC;YACpC,gEAAgE;YAChE,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,SAAS,KAAK,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC;YACtG,WAAW,EAAE,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,SAAS,KAAK,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAC;YACxG,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACzD,CAAC,CACA;;;;sBACiC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAApB,SAAQ,WAAoC;;;;iCAoBnE,QAAQ,EAAE;oCAWV,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;sCAG9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;mCAG9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;oCAG9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;kCAG9B,QAAQ,EAAE;kCAGV,QAAQ,EAAE;oCAGV,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;oCAS9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;oCAO9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;uCAO9B,QAAQ,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;qCAG9B,QAAQ,EAAE;gCAUV,QAAQ,EAAE;gCAUV,QAAQ,EAAE;+BAUV,QAAQ,EAAE;+BAUV,QAAQ,EAAE;gCAUV,QAAQ,EAAE;wCAUV,QAAQ,EAAE;oCAUV,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gCAUzB,QAAQ,EAAE;gCAYV,QAAQ,EAAE;uCAUV,QAAQ,EAAE;YA5JX,iKAAA,KAAK,6BAAL,KAAK,qFAAS;YAWd,0KAAA,QAAQ,6BAAR,QAAQ,2FAAU;YAGlB,gLAAA,UAAU,6BAAV,UAAU,+FAAU;YAGpB,uKAAA,OAAO,6BAAP,OAAO,yFAAU;YAGjB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAW;YAGnB,oKAAA,MAAM,6BAAN,MAAM,uFAAS;YAGf,oKAAA,MAAM,6BAAN,MAAM,uFAAS;YAGf,0KAAA,QAAQ,6BAAR,QAAQ,2FAAW;YASnB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAU;YAOlB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAU;YAOlB,mLAAA,WAAW,6BAAX,WAAW,iGAAU;YAGrB,6KAAA,SAAS,6BAAT,SAAS,6FAAS;YAUlB,8JAAA,IAAI,6BAAJ,IAAI,mFAAS;YAUb,8JAAA,IAAI,6BAAJ,IAAI,mFAAS;YAUb,2JAAA,GAAG,6BAAH,GAAG,iFAAS;YAUZ,2JAAA,GAAG,6BAAH,GAAG,iFAAS;YAUZ,8JAAA,IAAI,6BAAJ,IAAI,mFAAS;YAUb,sLAAA,YAAY,6BAAZ,YAAY,mGAAW;YAUvB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAS;YAUjB,8JAAA,IAAI,6BAAJ,IAAI,mFAAS;YAYb,8JAAA,IAAI,6BAAJ,IAAI,mFAAS;YAUb,mLAAA,WAAW,6BAAX,WAAW,iGAAe;YAlL5B,6KAyZC;;;YAzZY,uDAAY;;QACgB,aAAa;QAApD,YAAY,IAAiB,EAAU,aAA+B;YACpE,KAAK,CAAC,IAAI,CAAC,CAAC;YADyB,kBAAa,GAAb,aAAa,CAAkB;YAEpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC;YACtD,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,EAAE,GAAW,kBAAkB,EAAE,WAAW,EAAE,CAAC;QAC/C,GAAG,GAAW,kBAAkB,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAmB;QACzB,MAAM,GAAsB,SAAS,CAAC;QACtC,WAAW,CAAgB;QAC3B,QAAQ,CAA4B,CAAC,mBAAmB;QACxD,WAAW,CAAqC;QAChD,iBAAiB,CAAgC;QACjD,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;QACpC,YAAY,CAA+B;QAC3C,aAAa,CAA+B;QAC5C,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAG9E,KAAK,wDAAS;QACd,YAAY;YACV,SAAS,CAAC,GAAG,EAAE;gBACb,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,QAAQ,gHAAU;QAGlB,UAAU,qHAAU;QAGpB,OAAO,oHAAU;QAGjB,QAAQ,kHAAW;QAGnB,MAAM,iHAAS;QAGf,MAAM,+GAAS;QAGf,QAAQ,iHAAW;QACnB,eAAe;YACb,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACrC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAGD,QAAQ,mHAAU;QAClB,eAAe;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACrC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAGD,QAAQ,mHAAU;QAClB,eAAe;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvC,CAAC;QAED,gDAAgD;QAEhD,WAAW,sHAAU;QAGrB,SAAS,uHAAS;QAClB,gBAAgB;YACd,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAGD,IAAI,gHAAS;QACb,WAAW;YACT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAGD,IAAI,2GAAS;QACb,WAAW;YACT,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAGD,GAAG,0GAAS;QACZ,UAAU;YACR,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7B,CAAC;QACH,CAAC;QAGD,GAAG,yGAAS;QACZ,UAAU;YACR,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7B,CAAC;QACH,CAAC;QAGD,IAAI,0GAAS;QACb,WAAW;YACT,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;QAGD,YAAY,mHAAW;QACvB,mBAAmB;YACjB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC/C,CAAC;QACH,CAAC;QAGD,QAAQ,uHAAS;QACjB,eAAe;YACb,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvC,CAAC;QACH,CAAC;QAGD,IAAI,+GAAS;QACb,WAAW;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,2GAAS;QACb,WAAW;YACT,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC/B,CAAC;QACH,CAAC;QAGD,WAAW,yGAAW,GAAG,GAAC,CAAC,uEAAuE;QAE1F,YAAY,2DAAS;QAC7B,IAAI,KAAK;YACP,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,YAAY,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,KAAa;YACrB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CAAC;oBACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,KAAa;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,WAAW,CAAC,KAAa;YACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC;QAC5C,CAAC;QAED,IAAI,KAAK,CAAC,KAAc;YACtB,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,YAAY;YACV,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAChD,IAAI,UAAU,EAAE,OAAO,KAAK,4BAA4B,EAAE,CAAC;gBACzD,aAAa,CAAC,GAAG,CAAyB,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;qBACpG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,KAAK,CAAC,SAAS;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACjD,IAAI,WAAW,EAAE,OAAO,KAAK,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBAClE,MAAM,aAAa,CAAC,GAAG,CAAyB,WAAW,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;gBACvF,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBAChF,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAyB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/G,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;gBAC1F,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAA+B,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1I,CAAC;QACH,CAAC;QAED,uBAAuB;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,SAA2B;YACjC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5J,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7J,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,mBAAmB;YACjB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAA2B,oBAAoB,CAAC,CAAC;YACnF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAmB,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACvH,CAAC;QAED,kBAAkB;YAChB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAA2B,mBAAmB,CAAC,CAAC;YAClF,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAmB,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACtH,CAAC;QAEQ,OAAO;YACd,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC;QAED,kBAAkB;YAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAElB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,mEAAmE;YACnE,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACrD,CAAC;QACH,CAAC;QAED,oBAAoB;YAClB,MAAM,OAAO,GAAiC;gBAC5C,GAAG,IAAI,CAAC,sBAAsB,EAAE;gBAChC,GAAG,IAAI,CAAC,uBAAuB,EAAE;gBACjC,GAAG,IAAI,CAAC,uBAAuB,EAAE;gBACjC,GAAG,IAAI,CAAC,4BAA4B,EAAE;gBACtC,GAAG,IAAI,CAAC,yBAAyB,EAAE;aACpC,CAAC;YACF,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvE,CAAC;QAEO,sBAAsB;YAC5B,OAAO;gBACL,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC3D,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;gBACjE,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAChE,mCAAmC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;gBACxF,qCAAqC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC5F,wCAAwC,EAAE,CAAC,OAAO,EAAE,EAAE;oBACpD,MAAM,iBAAiB,GAAG,CAAC,aAA+B,EAAY,EAAE;wBACtE,OAAO,aAAa;6BACjB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;6BACzC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAa,CAAC;oBAC1D,CAAC,CAAC;oBACF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACpG,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;oBACpC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACtC,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,0CAA0C,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE;aAChF,CAAC;QACJ,CAAC;QAEO,uBAAuB;YAC7B,OAAO;gBACL,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;gBACjC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxC,CAAC;gBACD,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;gBACD,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM;gBACvD,+BAA+B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;gBACrH,iCAAiC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;aAC5H,CAAC;QACJ,CAAC;QAEO,uBAAuB;YAC7B,OAAO;gBACL,UAAU,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;gBAC5D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7D,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpC,UAAU,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;gBAC5D,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC;aACvE,CAAC;QACJ,CAAC;QAEO,4BAA4B;YAClC,OAAO;gBACL,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;gBACtD,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;gBAC1D,4BAA4B,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;aAC9F,CAAC;QACJ,CAAC;QAEO,yBAAyB;YAC/B,OAAO;gBACL,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;gBAC/C,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxC,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC;aAC/D,CAAC;QACJ,CAAC;QAED;;WAEG;QACK,iBAAiB;YACvB,OAAO;gBACL,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC,CAAC,SAAS;gBACrG,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;gBAClF,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;gBACrF,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;aACzF,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAU;YAChB,MAAM,KAAK,GAAI,GAAG,CAAC,MAA2B,CAAC,KAAK,CAAC;YACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,OAAO;YACL,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,QAAQ,CAAC,GAAU;YACjB,MAAM,KAAK,GAAI,GAAG,CAAC,MAA2B,CAAC,KAAK,CAAC;YACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,MAAM;YACJ,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAED,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAED,OAAO,CAAC,CAAgB;YACtB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;;;;SAxZU,YAAY;AAqazB,SAAS,6BAA6B,CAAC,OAAoB;IACzD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE;QAC/B,OAAO,EAAE;YACP,GAAG;gBACD,OAAO,gBAAgB,CAAC;YAC1B,CAAC;SACF;QACD,KAAK,EAAE;YACL,GAAG;gBACD,OAAO,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/D,CAAC;YACD,GAAG,CAA6B,KAAa;gBAC3C,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;YAChE,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,QAAQ,EAAE;YACR,GAAG;gBACD,OAAO,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;YAClE,CAAC;YACD,GAAG,CAA6B,KAAc;gBAC5C,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;YACnE,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,QAAQ,EAAE;YACR,GAAG;gBACD,OAAO,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;YAClE,CAAC;YACD,GAAG,CAA6B,KAAc;gBAC5C,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;YACnE,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,KAAK,EAAE;YACL,GAAG;gBACD,OAAO,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/D,CAAC;YACD,GAAG,CAA6B,KAAc;gBAC5C,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;YAChE,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,QAAQ,EAAE;YACR,KAAK,CAA6B,KAAa;gBAC7C,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,WAAW,EAAE;YACX,KAAK,CAA6B,KAAa;gBAC7C,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrE,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,YAAY,EAAE;YACZ,KAAK;gBACH,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YACjE,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,KAAK,EAAE;YACL,KAAK;gBACH,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1D,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,IAAI,EAAE;YACJ,KAAK;gBACH,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACzD,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;QACD,SAAS,EAAE;YACT,GAAG;gBACD,OAAO,QAAQ,CAAC,aAAa,KAAK,aAAa,CAAC,GAAG,CAAe,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;YAC3F,CAAC;YACD,YAAY,EAAE,IAAI;SACnB;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { inject, customElement, INode, bindable, queueTask } from 'aurelia';\nimport {\n MDCTextFieldFoundation, MDCTextFieldRootAdapter, MDCTextFieldInputAdapter, MDCTextFieldLabelAdapter, MDCTextFieldAdapter, MDCTextFieldFoundationMap,\n MDCTextFieldLineRippleAdapter, MDCTextFieldOutlineAdapter, cssClasses, helperTextStrings, characterCountStrings\n} from '@material/textfield';\nimport { applyPassive } from '@material/dom/events';\nimport { MdcComponent, IValidatedElement, IError, booleanAttr, number } from '../base';\nimport { MdcTextFieldIcon, mdcIconStrings, IMdcTextFieldIconElement } from './mdc-text-field-icon';\nimport { MdcTextFieldHelperText } from './mdc-text-field-helper-text/mdc-text-field-helper-text';\nimport { MdcTextFieldCharacterCounter } from './mdc-text-field-character-counter';\nimport { MdcTextFieldHelperLine } from './mdc-text-field-helper-line/mdc-text-field-helper-line';\nimport { processContent, IPlatform, CustomAttribute, CustomElement } from '@aurelia/runtime-html';\nimport template from './mdc-text-field.html?raw';\nimport { MdcFloatingLabel } from '../floating-label/mdc-floating-label';\nimport { MdcLineRipple } from '../line-ripple/mdc-line-ripple';\nimport { MdcNotchedOutline } from '../notched-outline/mdc-notched-outline';\nimport { MdcConfiguration } from '../mdc-configuration';\n\nlet textFieldId = 0;\nconst leadingIconSelector = '.mdc-text-field__icon--leading';\nconst trailingIconSelector = '.mdc-text-field__icon--trailing';\n\n@inject(Element, IPlatform, MdcConfiguration)\n@customElement({ name: 'mdc-text-field', template })\n@processContent(function processContent(node: INode) {\n const element = node as HTMLElement;\n // move icons to slots - this allows omitting slot specification\n const leadingIcon = element.querySelector(`[${mdcIconStrings.ATTRIBUTE}][${mdcIconStrings.LEADING}]`);\n leadingIcon?.setAttribute('au-slot', 'leading-icon');\n const trailingIcon = element.querySelector(`[${mdcIconStrings.ATTRIBUTE}][${mdcIconStrings.TRAILING}]`);\n trailingIcon?.setAttribute('au-slot', 'trailing-icon');\n}\n)\nexport class MdcTextField extends MdcComponent<MDCTextFieldFoundation> {\n constructor(root: HTMLElement, private configuration: MdcConfiguration) {\n super(root);\n this.outlined = this.configuration.textField.outlined;\n defineMdcTextFieldElementApis(this.root);\n }\n\n id: string = `mdc-text-field-${++textFieldId}`;\n id1: string = `mdc-text-field-${textFieldId}`;\n input_: HTMLInputElement;\n label_?: MdcFloatingLabel = undefined;\n lineRipple_: MdcLineRipple;\n outline_!: MdcNotchedOutline | null; // assigned in html\n helperText_: MdcTextFieldHelperText | undefined;\n characterCounter_?: MdcTextFieldCharacterCounter;\n errors = new Map<IError, boolean>();\n leadingIcon_: MdcTextFieldIcon | undefined;\n trailingIcon_: MdcTextFieldIcon | undefined;\n mutationObserver = new MutationObserver(mutations => this.mutated(mutations));\n\n @bindable()\n label: string;\n labelChanged() {\n queueTask(() => {\n if (this.foundation) {\n const openNotch = this.foundation.shouldFloat;\n this.foundation.notchOutline(openNotch);\n }\n });\n }\n\n @bindable({ set: booleanAttr })\n textarea: boolean;\n\n @bindable({ set: booleanAttr })\n endAligned: boolean;\n\n @bindable({ set: booleanAttr })\n ltrText: boolean;\n\n @bindable({ set: booleanAttr })\n outlined?: boolean;\n\n @bindable()\n prefix: string;\n\n @bindable()\n suffix: string;\n\n @bindable({ set: booleanAttr })\n required?: boolean;\n requiredChanged() {\n if (this.required !== undefined) {\n this.input_.required = this.required;\n this.foundation?.setUseNativeValidation(true);\n }\n }\n\n @bindable({ set: booleanAttr })\n disabled: boolean;\n disabledChanged() {\n this.input_.disabled = this.disabled;\n this.foundation?.setDisabled(this.disabled);\n }\n\n @bindable({ set: booleanAttr })\n readonly: boolean;\n readonlyChanged() {\n this.input_.readOnly = this.readonly;\n }\n\n /** Makes the element blur on Enter key press */\n @bindable({ set: booleanAttr })\n blurOnEnter: boolean;\n\n @bindable()\n maxlength: string;\n maxlengthChanged() {\n if (this.maxlength) {\n this.input_.setAttribute('maxlength', this.maxlength);\n } else {\n this.input_.removeAttribute('maxlength');\n }\n }\n\n @bindable()\n rows: string;\n rowsChanged() {\n if (this.rows) {\n this.input_.setAttribute('rows', this.rows);\n } else {\n this.input_.removeAttribute('rows');\n }\n }\n\n @bindable()\n cols: string;\n colsChanged() {\n if (this.rows) {\n this.input_.setAttribute('cols', this.cols);\n } else {\n this.input_.removeAttribute('cols');\n }\n }\n\n @bindable()\n max: string;\n maxChanged() {\n if (this.max === undefined) {\n this.input_.removeAttribute('max');\n } else {\n this.input_.max = this.max;\n }\n }\n\n @bindable()\n min: string;\n minChanged() {\n if (this.min === undefined) {\n this.input_.removeAttribute('min');\n } else {\n this.input_.min = this.min;\n }\n }\n\n @bindable()\n step: string;\n stepChanged() {\n if (this.step === undefined) {\n this.input_.removeAttribute('step');\n } else {\n this.input_.step = this.step;\n }\n }\n\n @bindable()\n autocomplete: AutoFill;\n autocompleteChanged() {\n if (this.autocomplete === undefined) {\n this.input_.removeAttribute('autocomplete');\n } else {\n this.input_.autocomplete = this.autocomplete;\n }\n }\n\n @bindable({ set: number })\n tabindex: number;\n tabindexChanged() {\n if (isNaN(this.tabindex)) {\n this.input_.removeAttribute('tabindex');\n } else {\n this.input_.tabIndex = this.tabindex;\n }\n }\n\n @bindable()\n type: string;\n typeChanged() {\n if (!this.textarea) {\n if (this.type === undefined) {\n this.input_.removeAttribute('type');\n } else {\n this.input_.type = this.type;\n }\n }\n }\n\n @bindable()\n name: string;\n nameChanged() {\n if (this.name === undefined) {\n this.input_.removeAttribute('name');\n } else {\n this.input_.name = this.name;\n }\n }\n\n @bindable()\n placeholder: string = ' '; // non empty placeholder solves the issue of misplaced labels in Safari\n\n private initialValue: string;\n get value(): string {\n if (this.foundation) {\n return this.foundation.getValue();\n } else {\n return this.initialValue;\n }\n }\n set value(value: string) {\n if (this.foundation) {\n if (this.foundation.getValue() !== value) {\n this.foundation.setValue(value === null || value === undefined ? '' : value.toString());\n }\n } else {\n this.initialValue = value;\n }\n }\n\n addError(error: IError) {\n this.errors.set(error, true);\n this.valid = false;\n }\n\n removeError(error: IError) {\n this.errors.delete(error);\n this.valid = this.errors.size === 0;\n }\n\n get valid(): boolean {\n return this.foundation?.isValid() ?? true;\n }\n\n set valid(value: boolean) {\n this.foundation?.setUseNativeValidation(false);\n this.foundation?.setValid(value);\n }\n\n renderErrors() {\n const helperLine = this.root.nextElementSibling;\n if (helperLine?.tagName === 'MDC-TEXT-FIELD-HELPER-LINE') {\n CustomElement.for<MdcTextFieldHelperLine>(helperLine).viewModel.errors = Array.from(this.errors.keys())\n .filter(x => x.message !== null).map(x => x.message!);\n }\n }\n\n async attaching() {\n const nextSibling = this.root.nextElementSibling;\n if (nextSibling?.tagName === cssClasses.HELPER_LINE.toUpperCase()) {\n await CustomElement.for<MdcTextFieldHelperLine>(nextSibling).viewModel.attachedPromise;\n const helperTextEl = nextSibling.querySelector(helperTextStrings.ROOT_SELECTOR);\n this.helperText_ = helperTextEl ? CustomElement.for<MdcTextFieldHelperText>(nextSibling).viewModel : undefined;\n const characterCounterEl = nextSibling.querySelector(characterCountStrings.ROOT_SELECTOR);\n this.characterCounter_ = characterCounterEl ? CustomElement.for<MdcTextFieldCharacterCounter>(characterCounterEl).viewModel : undefined;\n }\n }\n\n beforeFoundationCreated() {\n this.maxlengthChanged();\n this.typeChanged();\n this.mutationObserver.observe(this.root, { subtree: true, childList: true });\n this.leadingIconChanged();\n this.trailingIconChanged();\n }\n\n mutated(mutations: MutationRecord[]) {\n if (mutations.find(x => [...Array.from(x.addedNodes), ...Array.from(x.removedNodes)].find(y => y instanceof HTMLElement && y.matches(leadingIconSelector)))) {\n this.leadingIconChanged();\n }\n if (mutations.find(x => [...Array.from(x.addedNodes), ...Array.from(x.removedNodes)].find(y => y instanceof HTMLElement && y.matches(trailingIconSelector)))) {\n this.trailingIconChanged();\n }\n }\n\n trailingIconChanged() {\n const el = this.root.querySelector<IMdcTextFieldIconElement>(trailingIconSelector);\n this.trailingIcon_ = el ? CustomAttribute.for<MdcTextFieldIcon>(el, mdcIconStrings.ATTRIBUTE)?.viewModel : undefined;\n }\n\n leadingIconChanged() {\n const el = this.root.querySelector<IMdcTextFieldIconElement>(leadingIconSelector);\n this.leadingIcon_ = el ? CustomAttribute.for<MdcTextFieldIcon>(el, mdcIconStrings.ATTRIBUTE)?.viewModel : undefined;\n }\n\n override destroy() {\n this.mutationObserver.disconnect();\n }\n\n initialSyncWithDOM() {\n this.value = this.initialValue;\n this.errors = new Map<IError, boolean>();\n this.valid = true;\n\n this.requiredChanged();\n this.disabledChanged();\n this.readonlyChanged();\n this.tabindexChanged();\n this.rowsChanged();\n this.colsChanged();\n this.minChanged();\n this.maxChanged();\n this.stepChanged();\n this.autocompleteChanged();\n this.nameChanged();\n // handle the case when attribute value was set, not bound, in html\n if (this.root.hasAttribute('value')) {\n this.value = this.root.getAttribute('value') ?? '';\n }\n }\n\n getDefaultFoundation() {\n const adapter: Partial<MDCTextFieldAdapter> = {\n ...this.getRootAdapterMethods_(),\n ...this.getInputAdapterMethods_(),\n ...this.getLabelAdapterMethods_(),\n ...this.getLineRippleAdapterMethods_(),\n ...this.getOutlineAdapterMethods_(),\n };\n return new MDCTextFieldFoundation(adapter, this.getFoundationMap_());\n }\n\n private getRootAdapterMethods_(): MDCTextFieldRootAdapter {\n return {\n addClass: (className) => this.root.classList.add(className),\n removeClass: (className) => this.root.classList.remove(className),\n hasClass: (className) => this.root.classList.contains(className),\n registerTextFieldInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterTextFieldInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n registerValidationAttributeChangeHandler: (handler) => {\n const getAttributesList = (mutationsList: MutationRecord[]): string[] => {\n return mutationsList\n .map((mutation) => mutation.attributeName)\n .filter((attributeName) => attributeName) as string[];\n };\n const observer = new MutationObserver((mutationsList) => handler(getAttributesList(mutationsList)));\n const config = { attributes: true };\n observer.observe(this.input_, config);\n return observer;\n },\n deregisterValidationAttributeChangeHandler: (observer) => observer.disconnect(),\n };\n }\n\n private getInputAdapterMethods_(): MDCTextFieldInputAdapter {\n return {\n getNativeInput: () => this.input_,\n setInputAttr: (attr, value) => {\n this.input_.setAttribute(attr, value);\n },\n removeInputAttr: (attr) => {\n this.input_.removeAttribute(attr);\n },\n isFocused: () => document.activeElement === this.input_,\n registerInputInteractionHandler: (evtType, handler) => this.input_.addEventListener(evtType, handler, applyPassive()),\n deregisterInputInteractionHandler: (evtType, handler) => this.input_?.removeEventListener(evtType, handler, applyPassive()),\n };\n }\n\n private getLabelAdapterMethods_(): MDCTextFieldLabelAdapter {\n return {\n floatLabel: (shouldFloat) => this.label_?.float(shouldFloat),\n getLabelWidth: () => this.label_ ? this.label_.getWidth() : 0,\n hasLabel: () => Boolean(this.label_),\n shakeLabel: (shouldShake) => this.label_?.shake(shouldShake),\n setLabelRequired: (isRequired) => this.label_?.setRequired(isRequired),\n };\n }\n\n private getLineRippleAdapterMethods_(): MDCTextFieldLineRippleAdapter {\n return {\n activateLineRipple: () => this.lineRipple_?.activate(),\n deactivateLineRipple: () => this.lineRipple_?.deactivate(),\n setLineRippleTransformOrigin: (normalizedX) => this.lineRipple_?.setRippleCenter(normalizedX)\n };\n }\n\n private getOutlineAdapterMethods_(): MDCTextFieldOutlineAdapter {\n return {\n closeOutline: () => this.outline_?.closeNotch(),\n hasOutline: () => Boolean(this.outline_),\n notchOutline: (labelWidth) => this.outline_?.notch(labelWidth),\n };\n }\n\n /**\n * @return A map of all subcomponents to subfoundations.\n */\n private getFoundationMap_(): Partial<MDCTextFieldFoundationMap> {\n return {\n characterCounter: this.characterCounter_ ? this.characterCounter_?.foundationForTextField : undefined,\n helperText: this.helperText_ ? this.helperText_.foundationForTextField : undefined,\n leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundationForTextField : undefined,\n trailingIcon: this.trailingIcon_ ? this.trailingIcon_.foundationForTextField : undefined,\n };\n }\n\n onInput(evt: Event): void {\n const value = (evt.target as HTMLInputElement).value;\n this.value = value;\n }\n\n onFocus() {\n this.foundation?.activateFocus();\n this.emit('focus', {}, true);\n }\n\n onChange(evt: Event): void {\n const value = (evt.target as HTMLInputElement).value;\n this.value = value;\n }\n\n onBlur(): void {\n this.foundation?.deactivateFocus();\n this.emit('blur', {}, true);\n }\n\n focus() {\n this.input_.focus();\n }\n\n blur() {\n this.input_.blur();\n }\n\n onKeyup(e: KeyboardEvent) {\n if (this.blurOnEnter && e.keyCode === 13) {\n this.blur();\n }\n return true;\n }\n}\n\n/** @hidden */\nexport interface IMdcTextFieldElement extends IValidatedElement {\n $au: {\n 'au:resource:custom-element': {\n viewModel: MdcTextField;\n };\n };\n value: string;\n}\n\nfunction defineMdcTextFieldElementApis(element: HTMLElement) {\n Object.defineProperties(element, {\n tagName: {\n get() {\n return 'MDC-TEXT-FIELD';\n }\n },\n value: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.value;\n },\n set(this: IMdcTextFieldElement, value: string) {\n CustomElement.for<MdcTextField>(this).viewModel.value = value;\n },\n configurable: true\n },\n disabled: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.disabled;\n },\n set(this: IMdcTextFieldElement, value: boolean) {\n CustomElement.for<MdcTextField>(this).viewModel.disabled = value;\n },\n configurable: true\n },\n readOnly: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.readonly;\n },\n set(this: IMdcTextFieldElement, value: boolean) {\n CustomElement.for<MdcTextField>(this).viewModel.readonly = value;\n },\n configurable: true\n },\n valid: {\n get(this: IMdcTextFieldElement) {\n return CustomElement.for<MdcTextField>(this).viewModel.valid;\n },\n set(this: IMdcTextFieldElement, value: boolean) {\n CustomElement.for<MdcTextField>(this).viewModel.valid = value;\n },\n configurable: true\n },\n addError: {\n value(this: IMdcTextFieldElement, error: IError) {\n CustomElement.for<MdcTextField>(this).viewModel.addError(error);\n },\n configurable: true\n },\n removeError: {\n value(this: IMdcTextFieldElement, error: IError) {\n CustomElement.for<MdcTextField>(this).viewModel.removeError(error);\n },\n configurable: true\n },\n renderErrors: {\n value(this: IMdcTextFieldElement): void {\n CustomElement.for<MdcTextField>(this).viewModel.renderErrors();\n },\n configurable: true\n },\n focus: {\n value(this: IMdcTextFieldElement) {\n CustomElement.for<MdcTextField>(this).viewModel.focus();\n },\n configurable: true\n },\n blur: {\n value(this: IMdcTextFieldElement) {\n CustomElement.for<MdcTextField>(this).viewModel.blur();\n },\n configurable: true\n },\n isFocused: {\n get(this: IMdcTextFieldElement) {\n return document.activeElement === CustomElement.for<MdcTextField>(this).viewModel.input_;\n },\n configurable: true\n }\n });\n}\n"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { IPlatform } from 'aurelia';
|
|
2
1
|
/** @selector mdc-expandable */
|
|
3
2
|
export declare class MdcExpandable {
|
|
4
3
|
element: HTMLElement;
|
|
5
|
-
|
|
6
|
-
constructor(element: HTMLElement, platform: IPlatform);
|
|
4
|
+
constructor(element: HTMLElement);
|
|
7
5
|
header?: HTMLElement;
|
|
8
6
|
content?: HTMLElement;
|
|
9
7
|
contentContainer?: HTMLElement;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MdcComponent, IValidatedElement, IError } from '../base';
|
|
2
|
-
import { IPlatform } from 'aurelia';
|
|
3
2
|
import { MDCMenuItemEvent } from '@material/menu';
|
|
4
3
|
import { MDCSelectFoundationAurelia } from './mdc-select-foundation-aurelia';
|
|
5
4
|
import { MDCMenuDistance } from '@material/menu-surface';
|
|
@@ -11,9 +10,8 @@ import { MdcConfiguration } from '../mdc-configuration';
|
|
|
11
10
|
* @emits mdcselect:change | Emitted if user changed the value
|
|
12
11
|
*/
|
|
13
12
|
export declare class MdcSelect extends MdcComponent<MDCSelectFoundationAurelia> {
|
|
14
|
-
private platform;
|
|
15
13
|
private configuration;
|
|
16
|
-
constructor(root: HTMLElement,
|
|
14
|
+
constructor(root: HTMLElement, configuration: MdcConfiguration);
|
|
17
15
|
id: string;
|
|
18
16
|
menu: MdcMenu;
|
|
19
17
|
private selectAnchor;
|
|
@@ -3,15 +3,13 @@ import { MdcComponent, IValidatedElement, IError } from '../base';
|
|
|
3
3
|
import { MdcTextFieldIcon } from './mdc-text-field-icon';
|
|
4
4
|
import { MdcTextFieldHelperText } from './mdc-text-field-helper-text/mdc-text-field-helper-text';
|
|
5
5
|
import { MdcTextFieldCharacterCounter } from './mdc-text-field-character-counter';
|
|
6
|
-
import { IPlatform } from '@aurelia/runtime-html';
|
|
7
6
|
import { MdcFloatingLabel } from '../floating-label/mdc-floating-label';
|
|
8
7
|
import { MdcLineRipple } from '../line-ripple/mdc-line-ripple';
|
|
9
8
|
import { MdcNotchedOutline } from '../notched-outline/mdc-notched-outline';
|
|
10
9
|
import { MdcConfiguration } from '../mdc-configuration';
|
|
11
10
|
export declare class MdcTextField extends MdcComponent<MDCTextFieldFoundation> {
|
|
12
|
-
private platform;
|
|
13
11
|
private configuration;
|
|
14
|
-
constructor(root: HTMLElement,
|
|
12
|
+
constructor(root: HTMLElement, configuration: MdcConfiguration);
|
|
15
13
|
id: string;
|
|
16
14
|
id1: string;
|
|
17
15
|
input_: HTMLInputElement;
|
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.9-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.27",
|
|
94
94
|
"rxjs": "^7.8.2",
|
|
95
95
|
"tslib": "^2.8.1"
|
|
96
96
|
}
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
import { customElement, inject, bindable, IPlatform } from 'aurelia';
|
|
2
|
-
import { booleanAttr } from '../base';
|
|
3
|
-
import { CustomElement } from '@aurelia/runtime-html';
|
|
4
|
-
import template from './mdc-expandable.html?raw';
|
|
5
|
-
|
|
6
|
-
const OPEN_CHANGED_EVENT = 'mdcexpandable:open-changed';
|
|
7
|
-
const ENTER = 13;
|
|
8
|
-
const SPACE = 32;
|
|
9
|
-
|
|
10
|
-
/** @selector mdc-expandable */
|
|
11
|
-
@inject(Element, IPlatform)
|
|
12
|
-
@customElement({ name: 'mdc-expandable', template })
|
|
13
|
-
export class MdcExpandable {
|
|
14
|
-
constructor(public element: HTMLElement
|
|
15
|
-
|
|
16
|
-
header?: HTMLElement = undefined;
|
|
17
|
-
content?: HTMLElement = undefined;
|
|
18
|
-
contentContainer?: HTMLElement = undefined;
|
|
19
|
-
focused: boolean;
|
|
20
|
-
|
|
21
|
-
/** Toggles the expandable open and closed */
|
|
22
|
-
@bindable({ set: booleanAttr })
|
|
23
|
-
open: boolean;
|
|
24
|
-
openChanged() {
|
|
25
|
-
this.updateContainerHeight();
|
|
26
|
-
this.element.dispatchEvent(new CustomEvent(
|
|
27
|
-
OPEN_CHANGED_EVENT,
|
|
28
|
-
{ detail: { component: this, open: this.open } }
|
|
29
|
-
));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/** Set the expandable to be in an accordion group */
|
|
33
|
-
@bindable()
|
|
34
|
-
accordion?: string;
|
|
35
|
-
|
|
36
|
-
handleEvent(e: Event) {
|
|
37
|
-
switch (e.type) {
|
|
38
|
-
case 'transitionend':
|
|
39
|
-
this.setContentContainerHeightToAuto();
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
setContentContainerHeightToAuto() {
|
|
45
|
-
this.contentContainer!.style.overflow = 'visible';
|
|
46
|
-
this.contentContainer!.style.height = 'auto';
|
|
47
|
-
this.contentContainer!.removeEventListener('transitionend', this);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
attached() {
|
|
51
|
-
this.openChanged();
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
updateContainerHeight() {
|
|
55
|
-
if (this.open) {
|
|
56
|
-
// after transition set body height to auto so that expandable children are visible
|
|
57
|
-
this.contentContainer!.addEventListener('transitionend', this);
|
|
58
|
-
this.contentContainer!.style.height = `${this.content!.clientHeight}px`;
|
|
59
|
-
} else {
|
|
60
|
-
// the following line is needed because height has been restored to auto'
|
|
61
|
-
this.contentContainer!.style.height = `${this.content!.clientHeight}px`;
|
|
62
|
-
|
|
63
|
-
this.contentContainer!.style.overflow = 'hidden';
|
|
64
|
-
this.contentContainer!.style.height = '0';
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/** Toggles the expandable open and closed */
|
|
70
|
-
toggle() {
|
|
71
|
-
if (!this.open && this.accordion !== undefined) {
|
|
72
|
-
const otherAccordions = Array.from(this.element.parentElement!.querySelectorAll(`.mdc-expandable--accordion__${this.accordion}.mdc-expandable--open`));
|
|
73
|
-
otherAccordions.filter(x => x !== this.element)
|
|
74
|
-
.map(x => CustomElement.for<MdcExpandable>(x).viewModel)
|
|
75
|
-
.forEach(x => x.toggle());
|
|
76
|
-
}
|
|
77
|
-
this.open = !this.open;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
handleFocus() {
|
|
81
|
-
this.focused = true;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
handleBlur() {
|
|
85
|
-
this.focused = false;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
handleKeydown(evt: KeyboardEvent) {
|
|
89
|
-
if ((evt.keyCode === ENTER || evt.keyCode === SPACE)) {
|
|
90
|
-
this.toggle();
|
|
91
|
-
}
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/** @hidden */
|
|
97
|
-
export interface IMdcExpandableElement extends HTMLElement {
|
|
98
|
-
$au: {
|
|
99
|
-
'au:resource:custom-element': {
|
|
100
|
-
viewModel: MdcExpandable;
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
|
|
1
|
+
import { customElement, inject, bindable, IPlatform, queueTask } from 'aurelia';
|
|
2
|
+
import { booleanAttr } from '../base';
|
|
3
|
+
import { CustomElement } from '@aurelia/runtime-html';
|
|
4
|
+
import template from './mdc-expandable.html?raw';
|
|
5
|
+
|
|
6
|
+
const OPEN_CHANGED_EVENT = 'mdcexpandable:open-changed';
|
|
7
|
+
const ENTER = 13;
|
|
8
|
+
const SPACE = 32;
|
|
9
|
+
|
|
10
|
+
/** @selector mdc-expandable */
|
|
11
|
+
@inject(Element, IPlatform)
|
|
12
|
+
@customElement({ name: 'mdc-expandable', template })
|
|
13
|
+
export class MdcExpandable {
|
|
14
|
+
constructor(public element: HTMLElement) { }
|
|
15
|
+
|
|
16
|
+
header?: HTMLElement = undefined;
|
|
17
|
+
content?: HTMLElement = undefined;
|
|
18
|
+
contentContainer?: HTMLElement = undefined;
|
|
19
|
+
focused: boolean;
|
|
20
|
+
|
|
21
|
+
/** Toggles the expandable open and closed */
|
|
22
|
+
@bindable({ set: booleanAttr })
|
|
23
|
+
open: boolean;
|
|
24
|
+
openChanged() {
|
|
25
|
+
this.updateContainerHeight();
|
|
26
|
+
this.element.dispatchEvent(new CustomEvent(
|
|
27
|
+
OPEN_CHANGED_EVENT,
|
|
28
|
+
{ detail: { component: this, open: this.open } }
|
|
29
|
+
));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Set the expandable to be in an accordion group */
|
|
33
|
+
@bindable()
|
|
34
|
+
accordion?: string;
|
|
35
|
+
|
|
36
|
+
handleEvent(e: Event) {
|
|
37
|
+
switch (e.type) {
|
|
38
|
+
case 'transitionend':
|
|
39
|
+
this.setContentContainerHeightToAuto();
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
setContentContainerHeightToAuto() {
|
|
45
|
+
this.contentContainer!.style.overflow = 'visible';
|
|
46
|
+
this.contentContainer!.style.height = 'auto';
|
|
47
|
+
this.contentContainer!.removeEventListener('transitionend', this);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
attached() {
|
|
51
|
+
this.openChanged();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
updateContainerHeight() {
|
|
55
|
+
if (this.open) {
|
|
56
|
+
// after transition set body height to auto so that expandable children are visible
|
|
57
|
+
this.contentContainer!.addEventListener('transitionend', this);
|
|
58
|
+
this.contentContainer!.style.height = `${this.content!.clientHeight}px`;
|
|
59
|
+
} else {
|
|
60
|
+
// the following line is needed because height has been restored to auto'
|
|
61
|
+
this.contentContainer!.style.height = `${this.content!.clientHeight}px`;
|
|
62
|
+
queueTask(() => {
|
|
63
|
+
this.contentContainer!.style.overflow = 'hidden';
|
|
64
|
+
this.contentContainer!.style.height = '0';
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Toggles the expandable open and closed */
|
|
70
|
+
toggle() {
|
|
71
|
+
if (!this.open && this.accordion !== undefined) {
|
|
72
|
+
const otherAccordions = Array.from(this.element.parentElement!.querySelectorAll(`.mdc-expandable--accordion__${this.accordion}.mdc-expandable--open`));
|
|
73
|
+
otherAccordions.filter(x => x !== this.element)
|
|
74
|
+
.map(x => CustomElement.for<MdcExpandable>(x).viewModel)
|
|
75
|
+
.forEach(x => x.toggle());
|
|
76
|
+
}
|
|
77
|
+
this.open = !this.open;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
handleFocus() {
|
|
81
|
+
this.focused = true;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
handleBlur() {
|
|
85
|
+
this.focused = false;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
handleKeydown(evt: KeyboardEvent) {
|
|
89
|
+
if ((evt.keyCode === ENTER || evt.keyCode === SPACE)) {
|
|
90
|
+
this.toggle();
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/** @hidden */
|
|
97
|
+
export interface IMdcExpandableElement extends HTMLElement {
|
|
98
|
+
$au: {
|
|
99
|
+
'au:resource:custom-element': {
|
|
100
|
+
viewModel: MdcExpandable;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
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;
|
package/src/select/mdc-select.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MdcComponent, IValidatedElement, IError, booleanAttr } from '../base';
|
|
2
2
|
import { cssClasses, MDCSelectFoundationMap, MDCSelectEventDetail, strings } from '@material/select';
|
|
3
|
-
import { inject, customElement, INode, IPlatform, bindable } from 'aurelia';
|
|
3
|
+
import { inject, customElement, INode, IPlatform, bindable, queueTask } from 'aurelia';
|
|
4
4
|
import { MdcSelectIcon, IMdcSelectIconElement, mdcIconStrings } from './mdc-select-icon';
|
|
5
5
|
import { MdcSelectHelperText, mdcHelperTextCssClasses } from './mdc-select-helper-text/mdc-select-helper-text';
|
|
6
6
|
import { MDCNotchedOutline } from '@material/notched-outline';
|
|
@@ -50,7 +50,7 @@ let selectId = 0;
|
|
|
50
50
|
}
|
|
51
51
|
)
|
|
52
52
|
export class MdcSelect extends MdcComponent<MDCSelectFoundationAurelia> {
|
|
53
|
-
constructor(root: HTMLElement, private
|
|
53
|
+
constructor(root: HTMLElement, private configuration: MdcConfiguration) {
|
|
54
54
|
super(root);
|
|
55
55
|
this.outlined = this.configuration.select.outlined;
|
|
56
56
|
defineMdcSelectElementApis(this.root);
|
|
@@ -80,14 +80,14 @@ export class MdcSelect extends MdcComponent<MDCSelectFoundationAurelia> {
|
|
|
80
80
|
@bindable()
|
|
81
81
|
label: string;
|
|
82
82
|
labelChanged() {
|
|
83
|
-
|
|
83
|
+
queueTask(() => this.foundation?.layout());
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
/** Styles the select as an outlined select */
|
|
87
87
|
@bindable({ set: booleanAttr })
|
|
88
88
|
outlined?: boolean;
|
|
89
89
|
outlinedChanged() {
|
|
90
|
-
|
|
90
|
+
queueTask(() => this.foundation?.layout());
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
/** Makes the value required */
|
|
@@ -100,7 +100,7 @@ export class MdcSelect extends MdcComponent<MDCSelectFoundationAurelia> {
|
|
|
100
100
|
this.selectAnchor?.removeAttribute('aria-required');
|
|
101
101
|
}
|
|
102
102
|
this.foundation?.setRequired(this.required ?? false);
|
|
103
|
-
|
|
103
|
+
queueTask(() => this.foundation?.layout());
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
/** Enables/disables the select */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { inject, customElement, INode, bindable } from 'aurelia';
|
|
1
|
+
import { inject, customElement, INode, bindable, queueTask } from 'aurelia';
|
|
2
2
|
import {
|
|
3
3
|
MDCTextFieldFoundation, MDCTextFieldRootAdapter, MDCTextFieldInputAdapter, MDCTextFieldLabelAdapter, MDCTextFieldAdapter, MDCTextFieldFoundationMap,
|
|
4
4
|
MDCTextFieldLineRippleAdapter, MDCTextFieldOutlineAdapter, cssClasses, helperTextStrings, characterCountStrings
|
|
@@ -32,7 +32,7 @@ const trailingIconSelector = '.mdc-text-field__icon--trailing';
|
|
|
32
32
|
}
|
|
33
33
|
)
|
|
34
34
|
export class MdcTextField extends MdcComponent<MDCTextFieldFoundation> {
|
|
35
|
-
constructor(root: HTMLElement, private
|
|
35
|
+
constructor(root: HTMLElement, private configuration: MdcConfiguration) {
|
|
36
36
|
super(root);
|
|
37
37
|
this.outlined = this.configuration.textField.outlined;
|
|
38
38
|
defineMdcTextFieldElementApis(this.root);
|
|
@@ -54,7 +54,7 @@ export class MdcTextField extends MdcComponent<MDCTextFieldFoundation> {
|
|
|
54
54
|
@bindable()
|
|
55
55
|
label: string;
|
|
56
56
|
labelChanged() {
|
|
57
|
-
|
|
57
|
+
queueTask(() => {
|
|
58
58
|
if (this.foundation) {
|
|
59
59
|
const openNotch = this.foundation.shouldFloat;
|
|
60
60
|
this.foundation.notchOutline(openNotch);
|