Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (iconElements.length > 1) { // Has both icons.
this.leadingIcon_ = iconFactory(iconElements[0]);
this.trailingIcon_ = iconFactory(iconElements[1]);
} else {
if (this.root_.classList.contains(cssClasses.WITH_LEADING_ICON)) {
this.leadingIcon_ = iconFactory(iconElements[0]);
} else {
this.trailingIcon_ = iconFactory(iconElements[0]);
}
}
}
this.ripple = null;
if (!this.root_.classList.contains(cssClasses.TEXTAREA) && !this.root_.classList.contains(cssClasses.OUTLINED)) {
const adapter =
Object.assign(MDCRipple.createAdapter(/** @type {!RippleCapableSurface} */ (this)), {
isSurfaceActive: () => matches(/** @type {!Element} */ (this.input_), ':active'),
registerInteractionHandler: (type, handler) => this.input_.addEventListener(type, handler),
deregisterInteractionHandler: (type, handler) => this.input_.removeEventListener(type, handler),
});
const foundation = new MDCRippleFoundation(adapter);
this.ripple = rippleFactory(this.root_, foundation);
}
}
initialize() {
this.leadingIcon_ = this.root_.querySelector(strings.LEADING_ICON_SELECTOR);
// Adjust ripple size for chips with animated growing width. This applies when filter chips without
// a leading icon are selected, and a leading checkmark will cause the chip width to expand.
const checkmarkEl = this.root_.querySelector(strings.CHECKMARK_SELECTOR);
if (checkmarkEl && !this.leadingIcon_) {
const adapter = Object.assign(MDCRipple.createAdapter(this), {
computeBoundingRect: () => {
const height = this.root_.getBoundingClientRect().height;
// The checkmark's width is initially set to 0, so use the checkmark's height as a proxy since the
// checkmark should always be square.
const width = this.root_.getBoundingClientRect().width + checkmarkEl.getBoundingClientRect().height;
return {height, width};
},
});
this.ripple_ = new MDCRipple(this.root_, new MDCRippleFoundation(adapter));
} else {
this.ripple_ = new MDCRipple(this.root_);
}
}
initRipple_() {
const adapter = Object.assign(MDCRipple.createAdapter(this), {
isUnbounded: () => true,
// Radio buttons technically go "active" whenever there is *any* keyboard interaction. This is not the
// UI we desire.
isSurfaceActive: () => false,
registerInteractionHandler: (type, handler) => this.nativeControl_.addEventListener(type, handler),
deregisterInteractionHandler: (type, handler) => this.nativeControl_.removeEventListener(type, handler),
});
const foundation = new MDCRippleFoundation(adapter);
return new MDCRipple(this.root_, foundation);
}
initRipple_() {
const adapter = Object.assign(MDCRipple.createAdapter(this), {
isUnbounded: () => true,
isSurfaceActive: () => this.foundation_.isKeyboardActivated(),
});
const foundation = new MDCRippleFoundation(adapter);
return new MDCRipple(this.root_, foundation);
}
initRipple_() {
const MATCHES = getMatchesProperty(HTMLElement.prototype);
const adapter = Object.assign(MDCRipple.createAdapter(this), {
isUnbounded: () => true,
isSurfaceActive: () => this.nativeCb_[MATCHES](':active'),
registerInteractionHandler: (type, handler) => this.nativeCb_.addEventListener(type, handler),
deregisterInteractionHandler: (type, handler) => this.nativeCb_.removeEventListener(type, handler),
});
const foundation = new MDCRippleFoundation(adapter);
return new MDCRipple(this.root_, foundation);
}
initRipple_() {
const element = this.nativeControl_ ? this.nativeControl_ : this.selectedText_;
const adapter = Object.assign(MDCRipple.createAdapter(this), {
registerInteractionHandler: (type, handler) => element.addEventListener(type, handler),
deregisterInteractionHandler: (type, handler) => element.removeEventListener(type, handler),
});
const foundation = new MDCRippleFoundation(adapter);
return new MDCRipple(this.root_, foundation);
}
initRipple_() {
const MATCHES = getMatchesProperty(HTMLElement.prototype);
const adapter = Object.assign(MDCRipple.createAdapter(this), {
isUnbounded: () => true,
isSurfaceActive: () => this.nativeCb_[MATCHES](':active'),
registerInteractionHandler: (type, handler) => this.nativeCb_.addEventListener(type, handler),
deregisterInteractionHandler: (type, handler) => this.nativeCb_.removeEventListener(type, handler),
});
const foundation = new MDCRippleFoundation(adapter);
return new MDCRipple(this.root_, foundation);
}