@aurelia-mdc-web/all 9.3.8-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 } 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;
@@ -32,11 +32,9 @@ let MdcExpandable = (() => {
32
32
  __runInitializers(_classThis, _classExtraInitializers);
33
33
  }
34
34
  element;
35
- platform;
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
- this.platform.taskQueue.queueTask(() => {
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":"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","sourcesContent":["import { customElement, inject, bindable, IPlatform } from 'aurelia';\r\nimport { booleanAttr } from '../base';\r\nimport { CustomElement } from '@aurelia/runtime-html';\r\nimport template from './mdc-expandable.html?raw';\r\n\r\nconst OPEN_CHANGED_EVENT = 'mdcexpandable:open-changed';\r\nconst ENTER = 13;\r\nconst SPACE = 32;\r\n\r\n/** @selector mdc-expandable */\r\n@inject(Element, IPlatform)\r\n@customElement({ name: 'mdc-expandable', template })\r\nexport class MdcExpandable {\r\n constructor(public element: HTMLElement, private platform: IPlatform) { }\r\n\r\n header?: HTMLElement = undefined;\r\n content?: HTMLElement = undefined;\r\n contentContainer?: HTMLElement = undefined;\r\n focused: boolean;\r\n\r\n /** Toggles the expandable open and closed */\r\n @bindable({ set: booleanAttr })\r\n open: boolean;\r\n openChanged() {\r\n this.updateContainerHeight();\r\n this.element.dispatchEvent(new CustomEvent(\r\n OPEN_CHANGED_EVENT,\r\n { detail: { component: this, open: this.open } }\r\n ));\r\n }\r\n\r\n /** Set the expandable to be in an accordion group */\r\n @bindable()\r\n accordion?: string;\r\n\r\n handleEvent(e: Event) {\r\n switch (e.type) {\r\n case 'transitionend':\r\n this.setContentContainerHeightToAuto();\r\n break;\r\n }\r\n }\r\n\r\n setContentContainerHeightToAuto() {\r\n this.contentContainer!.style.overflow = 'visible';\r\n this.contentContainer!.style.height = 'auto';\r\n this.contentContainer!.removeEventListener('transitionend', this);\r\n }\r\n\r\n attached() {\r\n this.openChanged();\r\n }\r\n\r\n updateContainerHeight() {\r\n if (this.open) {\r\n // after transition set body height to auto so that expandable children are visible\r\n this.contentContainer!.addEventListener('transitionend', this);\r\n this.contentContainer!.style.height = `${this.content!.clientHeight}px`;\r\n } else {\r\n // the following line is needed because height has been restored to auto'\r\n this.contentContainer!.style.height = `${this.content!.clientHeight}px`;\r\n this.platform.taskQueue.queueTask(() => {\r\n this.contentContainer!.style.overflow = 'hidden';\r\n this.contentContainer!.style.height = '0';\r\n });\r\n }\r\n }\r\n\r\n /** Toggles the expandable open and closed */\r\n toggle() {\r\n if (!this.open && this.accordion !== undefined) {\r\n const otherAccordions = Array.from(this.element.parentElement!.querySelectorAll(`.mdc-expandable--accordion__${this.accordion}.mdc-expandable--open`));\r\n otherAccordions.filter(x => x !== this.element)\r\n .map(x => CustomElement.for<MdcExpandable>(x).viewModel)\r\n .forEach(x => x.toggle());\r\n }\r\n this.open = !this.open;\r\n }\r\n\r\n handleFocus() {\r\n this.focused = true;\r\n }\r\n\r\n handleBlur() {\r\n this.focused = false;\r\n }\r\n\r\n handleKeydown(evt: KeyboardEvent) {\r\n if ((evt.keyCode === ENTER || evt.keyCode === SPACE)) {\r\n this.toggle();\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n/** @hidden */\r\nexport interface IMdcExpandableElement extends HTMLElement {\r\n $au: {\r\n 'au:resource:custom-element': {\r\n viewModel: MdcExpandable;\r\n };\r\n };\r\n}\r\n\r\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 } 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();
@@ -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, platform, configuration) {
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
- this.platform.domQueue.queueTask(() => this.foundation?.layout());
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
- this.platform.domQueue.queueTask(() => this.foundation?.layout());
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
- this.platform.domWriteQueue.queueTask(() => this.foundation?.layout());
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, 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,17 +1,17 @@
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';
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}]`);
@@ -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, platform, configuration) {
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
- this.platform.domQueue.queueTask(() => {
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":"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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"]}
@@ -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
- private platform;
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, platform: IPlatform, configuration: MdcConfiguration);
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, platform: IPlatform, configuration: MdcConfiguration);
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.8-au2",
3
+ "version": "9.3.10-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.25",
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, private platform: IPlatform) { }
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
- this.platform.taskQueue.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
-
1
+ import { customElement, inject, bindable, 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)
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
+
@@ -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';
@@ -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;
@@ -50,7 +50,7 @@ let selectId = 0;
50
50
  }
51
51
  )
52
52
  export class MdcSelect extends MdcComponent<MDCSelectFoundationAurelia> {
53
- constructor(root: HTMLElement, private platform: IPlatform, private configuration: MdcConfiguration) {
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
- this.platform.domQueue.queueTask(() => this.foundation?.layout());
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
- this.platform.domQueue.queueTask(() => this.foundation?.layout());
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
- this.platform.domWriteQueue.queueTask(() => this.foundation?.layout());
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
@@ -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;
@@ -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 platform: IPlatform, private configuration: MdcConfiguration) {
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
- this.platform.domQueue.queueTask(() => {
57
+ queueTask(() => {
58
58
  if (this.foundation) {
59
59
  const openNotch = this.foundation.shouldFloat;
60
60
  this.foundation.notchOutline(openNotch);