@aurelia-mdc-web/all 9.3.9-au2 → 9.3.10-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.
@@ -1,5 +1,5 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { customElement, inject, bindable, IPlatform, queueTask } from 'aurelia';
2
+ import { customElement, inject, bindable, 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';
@@ -8,7 +8,7 @@ const ENTER = 13;
8
8
  const SPACE = 32;
9
9
  /** @selector mdc-expandable */
10
10
  let MdcExpandable = (() => {
11
- let _classDecorators = [inject(Element, IPlatform), customElement({ name: 'mdc-expandable', template })];
11
+ let _classDecorators = [inject(Element), customElement({ name: 'mdc-expandable', template })];
12
12
  let _classDescriptor;
13
13
  let _classExtraInitializers = [];
14
14
  let _classThis;
@@ -1 +1 @@
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"]}
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, 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)\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"]}
@@ -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, queueTask } from 'aurelia';
4
+ import { inject, customElement, 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';
@@ -15,7 +15,7 @@ let selectId = 0;
15
15
  * @emits mdcselect:change | Emitted if user changed the value
16
16
  */
17
17
  let MdcSelect = (() => {
18
- let _classDecorators = [inject(Element, IPlatform, MdcConfiguration), customElement({ name: 'mdc-select', template }), processContent(function processContent(node, platform) {
18
+ let _classDecorators = [inject(Element, MdcConfiguration), customElement({ name: 'mdc-select', template }), processContent(function processContent(node, platform) {
19
19
  const el = node;
20
20
  const leadingIcon = el.querySelector(`[${mdcIconStrings.ATTRIBUTE}]`);
21
21
  leadingIcon?.remove();
@@ -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, 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
+ {"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, 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"]}
@@ -4,14 +4,14 @@ import { MDCTextFieldFoundation, cssClasses, helperTextStrings, characterCountSt
4
4
  import { applyPassive } from '@material/dom/events';
5
5
  import { MdcComponent, booleanAttr, number } from '../base';
6
6
  import { mdcIconStrings } from './mdc-text-field-icon';
7
- import { processContent, IPlatform, CustomAttribute, CustomElement } from '@aurelia/runtime-html';
7
+ import { processContent, CustomAttribute, CustomElement } from '@aurelia/runtime-html';
8
8
  import template from './mdc-text-field.html?raw';
9
9
  import { MdcConfiguration } from '../mdc-configuration';
10
10
  let textFieldId = 0;
11
11
  const leadingIconSelector = '.mdc-text-field__icon--leading';
12
12
  const trailingIconSelector = '.mdc-text-field__icon--trailing';
13
13
  let MdcTextField = (() => {
14
- let _classDecorators = [inject(Element, IPlatform, MdcConfiguration), customElement({ name: 'mdc-text-field', template }), processContent(function processContent(node) {
14
+ let _classDecorators = [inject(Element, MdcConfiguration), customElement({ name: 'mdc-text-field', template }), processContent(function processContent(node) {
15
15
  const element = node;
16
16
  // move icons to slots - this allows omitting slot specification
17
17
  const leadingIcon = element.querySelector(`[${mdcIconStrings.ATTRIBUTE}][${mdcIconStrings.LEADING}]`);
@@ -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, 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
+ {"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, 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, 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, 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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurelia-mdc-web/all",
3
- "version": "9.3.9-au2",
3
+ "version": "9.3.10-au2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,4 +1,4 @@
1
- import { customElement, inject, bindable, IPlatform, queueTask } from 'aurelia';
1
+ import { customElement, inject, bindable, queueTask } from 'aurelia';
2
2
  import { booleanAttr } from '../base';
3
3
  import { CustomElement } from '@aurelia/runtime-html';
4
4
  import template from './mdc-expandable.html?raw';
@@ -8,7 +8,7 @@ const ENTER = 13;
8
8
  const SPACE = 32;
9
9
 
10
10
  /** @selector mdc-expandable */
11
- @inject(Element, IPlatform)
11
+ @inject(Element)
12
12
  @customElement({ name: 'mdc-expandable', template })
13
13
  export class MdcExpandable {
14
14
  constructor(public element: HTMLElement) { }
@@ -24,7 +24,7 @@ let selectId = 0;
24
24
  * @selector mdc-select
25
25
  * @emits mdcselect:change | Emitted if user changed the value
26
26
  */
27
- @inject(Element, IPlatform, MdcConfiguration)
27
+ @inject(Element, MdcConfiguration)
28
28
  @customElement({ name: 'mdc-select', template })
29
29
  @processContent(function processContent(node: INode, platform: IPlatform) {
30
30
  const el = node as Element;
@@ -9,7 +9,7 @@ import { MdcTextFieldIcon, mdcIconStrings, IMdcTextFieldIconElement } from './md
9
9
  import { MdcTextFieldHelperText } from './mdc-text-field-helper-text/mdc-text-field-helper-text';
10
10
  import { MdcTextFieldCharacterCounter } from './mdc-text-field-character-counter';
11
11
  import { MdcTextFieldHelperLine } from './mdc-text-field-helper-line/mdc-text-field-helper-line';
12
- import { processContent, IPlatform, CustomAttribute, CustomElement } from '@aurelia/runtime-html';
12
+ import { processContent, CustomAttribute, CustomElement } from '@aurelia/runtime-html';
13
13
  import template from './mdc-text-field.html?raw';
14
14
  import { MdcFloatingLabel } from '../floating-label/mdc-floating-label';
15
15
  import { MdcLineRipple } from '../line-ripple/mdc-line-ripple';
@@ -20,7 +20,7 @@ let textFieldId = 0;
20
20
  const leadingIconSelector = '.mdc-text-field__icon--leading';
21
21
  const trailingIconSelector = '.mdc-text-field__icon--trailing';
22
22
 
23
- @inject(Element, IPlatform, MdcConfiguration)
23
+ @inject(Element, MdcConfiguration)
24
24
  @customElement({ name: 'mdc-text-field', template })
25
25
  @processContent(function processContent(node: INode) {
26
26
  const element = node as HTMLElement;