UNPKG

@material/floating-label

Version:
121 lines 5.37 kB
/** * @license * Copyright 2016 Google Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ import { __assign, __extends } from "tslib"; import { MDCFoundation } from '@material/base/foundation'; import { cssClasses } from './constants'; var MDCFloatingLabelFoundation = /** @class */ (function (_super) { __extends(MDCFloatingLabelFoundation, _super); function MDCFloatingLabelFoundation(adapter) { var _this = _super.call(this, __assign(__assign({}, MDCFloatingLabelFoundation.defaultAdapter), adapter)) || this; _this.shakeAnimationEndHandler = function () { _this.handleShakeAnimationEnd(); }; return _this; } Object.defineProperty(MDCFloatingLabelFoundation, "cssClasses", { get: function () { return cssClasses; }, enumerable: false, configurable: true }); Object.defineProperty(MDCFloatingLabelFoundation, "defaultAdapter", { /** * See {@link MDCFloatingLabelAdapter} for typing information on parameters and return types. */ get: function () { // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface. return { addClass: function () { return undefined; }, removeClass: function () { return undefined; }, getWidth: function () { return 0; }, registerInteractionHandler: function () { return undefined; }, deregisterInteractionHandler: function () { return undefined; }, }; // tslint:enable:object-literal-sort-keys }, enumerable: false, configurable: true }); MDCFloatingLabelFoundation.prototype.init = function () { this.adapter.registerInteractionHandler('animationend', this.shakeAnimationEndHandler); }; MDCFloatingLabelFoundation.prototype.destroy = function () { this.adapter.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler); }; /** * Returns the width of the label element. */ MDCFloatingLabelFoundation.prototype.getWidth = function () { return this.adapter.getWidth(); }; /** * Styles the label to produce a shake animation to indicate an error. * @param shouldShake If true, adds the shake CSS class; otherwise, removes shake class. */ MDCFloatingLabelFoundation.prototype.shake = function (shouldShake) { var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE; if (shouldShake) { this.adapter.addClass(LABEL_SHAKE); } else { this.adapter.removeClass(LABEL_SHAKE); } }; /** * Styles the label to float or dock. * @param shouldFloat If true, adds the float CSS class; otherwise, removes float and shake classes to dock the label. */ MDCFloatingLabelFoundation.prototype.float = function (shouldFloat) { var _a = MDCFloatingLabelFoundation.cssClasses, LABEL_FLOAT_ABOVE = _a.LABEL_FLOAT_ABOVE, LABEL_SHAKE = _a.LABEL_SHAKE; if (shouldFloat) { this.adapter.addClass(LABEL_FLOAT_ABOVE); } else { this.adapter.removeClass(LABEL_FLOAT_ABOVE); this.adapter.removeClass(LABEL_SHAKE); } }; /** * Styles the label as required. * @param isRequired If true, adds an asterisk to the label, indicating that it is required. */ MDCFloatingLabelFoundation.prototype.setRequired = function (isRequired) { var LABEL_REQUIRED = MDCFloatingLabelFoundation.cssClasses.LABEL_REQUIRED; if (isRequired) { this.adapter.addClass(LABEL_REQUIRED); } else { this.adapter.removeClass(LABEL_REQUIRED); } }; MDCFloatingLabelFoundation.prototype.handleShakeAnimationEnd = function () { var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE; this.adapter.removeClass(LABEL_SHAKE); }; return MDCFloatingLabelFoundation; }(MDCFoundation)); export { MDCFloatingLabelFoundation }; // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier. export default MDCFloatingLabelFoundation; //# sourceMappingURL=foundation.js.map