mirror of
https://github.com/mdbootstrap/mdb-ui-kit.git
synced 2024-12-04 23:43:45 +03:00
ece12ebe34
generated from commit 6821b53b3a
1 line
146 KiB
Plaintext
1 line
146 KiB
Plaintext
{"version":3,"file":"bootstrap-material-design.js","sources":["../../rollupPluginBabelHelpers","../../js/util.js","../../js/base.js","../../js/baseInput.js","../../js/baseSelection.js","../../js/checkbox.js","../../js/checkboxInline.js","../../js/collapseInline.js","../../js/file.js","../../js/radio.js","../../js/radioInline.js","../../js/baseFormControl.js","../../js/select.js","../../js/switch.js","../../js/text.js","../../js/textarea.js","../../js/dropdown.js","../../js/baseLayout.js","../../js/drawer.js","../../js/ripples.js","../../js/autofill.js","../../js/bootstrapMaterialDesign.js","../../js/index.js"],"sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","const Util = (() => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transitionEnd = false;\n let transitionEndSelector = \"\";\n\n const TransitionEndEvent = {\n WebkitTransition: \"webkitTransitionEnd\",\n MozTransition: \"transitionend\",\n OTransition: \"oTransitionEnd otransitionend\",\n transition: \"transitionend\"\n };\n\n function transitionEndTest() {\n if (window.QUnit) {\n return false;\n }\n\n let el = document.createElement(\"bmd\");\n\n for (let name in TransitionEndEvent) {\n if (el.style[name] !== undefined) {\n return TransitionEndEvent[name]; // { end: TransitionEndEvent[name] }\n }\n }\n\n return false;\n }\n\n function setTransitionEndSupport() {\n transitionEnd = transitionEndTest();\n\n // generate a concatenated transition end event selector\n for (let name in TransitionEndEvent) {\n transitionEndSelector += ` ${TransitionEndEvent[name]}`;\n }\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n let Util = {\n transitionEndSupported() {\n return transitionEnd;\n },\n\n transitionEndSelector() {\n return transitionEndSelector;\n },\n\n isChar(event) {\n if (typeof event.which === \"undefined\") {\n return true;\n } else if (typeof event.which === \"number\" && event.which > 0) {\n return (\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey &&\n event.which !== 8 && // backspace\n event.which !== 9 && // tab\n event.which !== 13 && // enter\n event.which !== 16 && // shift\n event.which !== 17 && // ctrl\n event.which !== 20 && // caps lock\n event.which !== 27 // escape\n );\n }\n return false;\n },\n\n assert($element, invalidTest, message) {\n if (invalidTest) {\n if (!$element === undefined) {\n $element.css(\"border\", \"1px solid red\");\n }\n console.error(message, $element); // eslint-disable-line no-console\n throw message;\n }\n },\n\n describe($element) {\n if ($element === undefined) {\n return \"undefined\";\n } else if ($element.length === 0) {\n return \"(no matching elements)\";\n }\n return `${$element[0].outerHTML.split(\">\")[0]}>`;\n }\n };\n\n setTransitionEndSupport();\n return Util;\n})(jQuery);\n\nexport default Util;\n","import Util from \"./util\";\n\nconst Base = ($ => {\n const ClassName = {\n BMD_FORM_GROUP: \"bmd-form-group\",\n IS_FILLED: \"is-filled\",\n IS_FOCUSED: \"is-focused\"\n };\n\n const Selector = {\n BMD_FORM_GROUP: `.${ClassName.BMD_FORM_GROUP}`\n };\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Base {\n /**\n *\n * @param element\n * @param config\n * @param properties - anything that needs to be set as this[key] = value. Works around the need to call `super` before using `this`\n */\n constructor($element, config, properties = {}) {\n this.$element = $element;\n this.config = $.extend(true, {}, Default, config);\n\n // set properties for use in the constructor initialization\n for (let key in properties) {\n this[key] = properties[key];\n }\n }\n\n dispose(dataKey) {\n this.$element.data(dataKey, null);\n this.$element = null;\n this.config = null;\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n addFormGroupFocus() {\n if (!this.$element.prop(\"disabled\")) {\n this.$bmdFormGroup.addClass(ClassName.IS_FOCUSED);\n }\n }\n\n removeFormGroupFocus() {\n this.$bmdFormGroup.removeClass(ClassName.IS_FOCUSED);\n }\n\n removeIsFilled() {\n this.$bmdFormGroup.removeClass(ClassName.IS_FILLED);\n }\n\n addIsFilled() {\n this.$bmdFormGroup.addClass(ClassName.IS_FILLED);\n }\n\n // Find bmd-form-group\n findMdbFormGroup(raiseError = true) {\n let mfg = this.$element.closest(Selector.BMD_FORM_GROUP);\n if (mfg.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.BMD_FORM_GROUP} for ${Util.describe(\n this.$element\n )}`\n );\n }\n return mfg;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n }\n\n return Base;\n})(jQuery);\n\nexport default Base;\n","import Base from \"./base\";\nimport Util from \"./util\";\n\nconst BaseInput = ($ => {\n const ClassName = {\n FORM_GROUP: \"form-group\",\n BMD_FORM_GROUP: \"bmd-form-group\",\n BMD_LABEL: \"bmd-label\",\n BMD_LABEL_STATIC: \"bmd-label-static\",\n BMD_LABEL_PLACEHOLDER: \"bmd-label-placeholder\",\n BMD_LABEL_FLOATING: \"bmd-label-floating\",\n HAS_DANGER: \"has-danger\",\n IS_FILLED: \"is-filled\",\n IS_FOCUSED: \"is-focused\",\n INPUT_GROUP: \"input-group\"\n };\n\n const Selector = {\n FORM_GROUP: `.${ClassName.FORM_GROUP}`,\n BMD_FORM_GROUP: `.${ClassName.BMD_FORM_GROUP}`,\n BMD_LABEL_WILDCARD: `label[class^='${ClassName.BMD_LABEL}'], label[class*=' ${ClassName.BMD_LABEL}']` // match any label variant if specified\n };\n\n const Default = {\n validate: false,\n formGroup: {\n required: false\n },\n bmdFormGroup: {\n template: `<span class='${ClassName.BMD_FORM_GROUP}'></span>`,\n create: true, // create a wrapper if form-group not found\n required: true // not recommended to turn this off, only used for inline components\n },\n label: {\n required: false,\n\n // Prioritized find order for resolving the label to be used as an bmd-label if not specified in the markup\n // - a function(thisComponent); or\n // - a string selector used like $bmdFormGroup.find(selector)\n //\n // Note this only runs if $bmdFormGroup.find(Selector.BMD_LABEL_WILDCARD) fails to find a label (as authored in the markup)\n //\n selectors: [\n `.form-control-label`, // in the case of horizontal or inline forms, this will be marked\n `> label` // usual case for text inputs, first child. Deeper would find toggle labels so don't do that.\n ],\n className: ClassName.BMD_LABEL_STATIC\n },\n requiredClasses: [],\n invalidComponentMatches: [],\n convertInputSizeVariations: true\n };\n\n const FormControlSizeMarkers = {\n \"form-control-lg\": \"bmd-form-group-lg\",\n \"form-control-sm\": \"bmd-form-group-sm\"\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseInput extends Base {\n /**\n *\n * @param element\n * @param config\n * @param properties - anything that needs to be set as this[key] = value. Works around the need to call `super` before using `this`\n */\n constructor($element, config, properties = {}) {\n super($element, $.extend(true, {}, Default, config), properties);\n\n // Enforce no overlap between components to prevent side effects\n this._rejectInvalidComponentMatches();\n\n // Enforce expected structure (if any)\n this.rejectWithoutRequiredStructure();\n\n // Enforce required classes for a consistent rendering\n this._rejectWithoutRequiredClasses();\n\n // Resolve the form-group first, it will be used for bmd-form-group if possible\n // note: different components have different rules\n this.$formGroup = this.findFormGroup(this.config.formGroup.required);\n\n // Will add bmd-form-group to form-group or create an bmd-form-group\n // Performance Note: for those forms that are really performance driven, create the markup with the .bmd-form-group to avoid\n // rendering changes once added.\n this.$bmdFormGroup = this.resolveMdbFormGroup();\n\n // Resolve and mark the bmdLabel if necessary as defined by the config\n this.$bmdLabel = this.resolveMdbLabel();\n\n // Signal to the bmd-form-group that a form-control-* variation is being used\n this.resolveMdbFormGroupSizing();\n\n this.addFocusListener();\n this.addChangeListener();\n\n if (this.$element.val() != \"\") {\n this.addIsFilled();\n }\n }\n\n dispose(dataKey) {\n super.dispose(dataKey);\n this.$bmdFormGroup = null;\n this.$formGroup = null;\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n rejectWithoutRequiredStructure() {\n // implement\n }\n\n addFocusListener() {\n this.$element\n .on(\"focus\", () => {\n this.addFormGroupFocus();\n })\n .on(\"blur\", () => {\n this.removeFormGroupFocus();\n });\n }\n\n addChangeListener() {\n this.$element\n .on(\"keydown paste\", event => {\n if (Util.isChar(event)) {\n this.addIsFilled();\n }\n })\n .on(\"keyup change\", () => {\n // make sure empty is added back when there is a programmatic value change.\n // NOTE: programmatic changing of value using $.val() must trigger the change event i.e. $.val('x').trigger('change')\n if (this.isEmpty()) {\n this.removeIsFilled();\n } else {\n this.addIsFilled();\n }\n\n if (this.config.validate) {\n // Validation events do not bubble, so they must be attached directly to the text: http://jsfiddle.net/PEpRM/1/\n // Further, even the bind method is being caught, but since we are already calling #checkValidity here, just alter\n // the form-group on change.\n //\n // NOTE: I'm not sure we should be intervening regarding validation, this seems better as a README and snippet of code.\n // BUT, I've left it here for backwards compatibility.\n let isValid =\n typeof this.$element[0].checkValidity === \"undefined\" ||\n this.$element[0].checkValidity();\n if (isValid) {\n this.removeHasDanger();\n } else {\n this.addHasDanger();\n }\n }\n });\n }\n\n addHasDanger() {\n this.$bmdFormGroup.addClass(ClassName.HAS_DANGER);\n }\n\n removeHasDanger() {\n this.$bmdFormGroup.removeClass(ClassName.HAS_DANGER);\n }\n\n isEmpty() {\n return (\n this.$element.val() === null ||\n this.$element.val() === undefined ||\n this.$element.val() === \"\"\n );\n }\n\n // Will add bmd-form-group to form-group or create a bmd-form-group if necessary\n resolveMdbFormGroup() {\n let mfg = this.findMdbFormGroup(false);\n if (mfg === undefined || mfg.length === 0) {\n if (\n this.config.bmdFormGroup.create &&\n (this.$formGroup === undefined || this.$formGroup.length === 0)\n ) {\n // If a form-group doesn't exist (not recommended), take a guess and wrap the element (assuming no label).\n // note: it's possible to make this smarter, but I need to see valid cases before adding any complexity.\n\n // this may be an input-group, wrap that instead\n if (this.outerElement().parent().hasClass(ClassName.INPUT_GROUP)) {\n this.outerElement()\n .parent()\n .wrap(this.config.bmdFormGroup.template);\n } else {\n this.outerElement().wrap(this.config.bmdFormGroup.template);\n }\n } else {\n // a form-group does exist, add our marker class to it\n this.$formGroup.addClass(ClassName.BMD_FORM_GROUP);\n\n // OLD: may want to implement this after all, see how the styling turns out, but using an existing form-group is less manipulation of the dom and therefore preferable\n // A form-group does exist, so add an bmd-form-group wrapping it's internal contents\n //fg.wrapInner(this.config.bmdFormGroup.template)\n }\n\n mfg = this.findMdbFormGroup(this.config.bmdFormGroup.required);\n }\n\n return mfg;\n }\n\n // Demarcation element (e.g. first child of a form-group)\n // Subclasses such as file inputs may have different structures\n outerElement() {\n return this.$element;\n }\n\n // Will add bmd-label to bmd-form-group if not already specified\n resolveMdbLabel() {\n let label = this.$bmdFormGroup.find(Selector.BMD_LABEL_WILDCARD);\n if (label === undefined || label.length === 0) {\n // we need to find it based on the configured selectors\n label = this.findMdbLabel(this.config.label.required);\n\n if (label === undefined || label.length === 0) {\n // no label found, and finder did not require one\n } else {\n // a candidate label was found, add the configured default class name\n label.addClass(this.config.label.className);\n }\n }\n\n return label;\n }\n\n // Find bmd-label variant based on the config selectors\n findMdbLabel(raiseError = true) {\n let label = null;\n\n // use the specified selector order\n for (let selector of this.config.label.selectors) {\n if ($.isFunction(selector)) {\n label = selector(this);\n } else {\n label = this.$bmdFormGroup.find(selector);\n }\n\n if (label !== undefined && label.length > 0) {\n break;\n }\n }\n\n if (label.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.BMD_LABEL_WILDCARD} within form-group for ${Util.describe(\n this.$element\n )}`\n );\n }\n return label;\n }\n\n // Find bmd-form-group\n findFormGroup(raiseError = true) {\n let fg = this.$element.closest(Selector.FORM_GROUP);\n if (fg.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.FORM_GROUP} for ${Util.describe(\n this.$element\n )}`\n );\n }\n return fg;\n }\n\n // Due to the interconnected nature of labels/inputs/help-blocks, signal the bmd-form-group-* size variation based on\n // a found form-control-* size\n resolveMdbFormGroupSizing() {\n if (!this.config.convertInputSizeVariations) {\n return;\n }\n\n // Modification - Change text-sm/lg to form-group-sm/lg instead (preferred standard and simpler css/less variants)\n for (let inputSize in FormControlSizeMarkers) {\n if (this.$element.hasClass(inputSize)) {\n //this.$element.removeClass(inputSize)\n this.$bmdFormGroup.addClass(FormControlSizeMarkers[inputSize]);\n }\n }\n }\n\n // ------------------------------------------------------------------------\n // private\n _rejectInvalidComponentMatches() {\n for (let otherComponent of this.config.invalidComponentMatches) {\n otherComponent.rejectMatch(this.constructor.name, this.$element);\n }\n }\n\n _rejectWithoutRequiredClasses() {\n for (let requiredClass of this.config.requiredClasses) {\n let found = false;\n // allow one of several classes to be passed in x||y\n if (requiredClass.indexOf(\"||\") !== -1) {\n let oneOf = requiredClass.split(\"||\");\n for (let requiredClass of oneOf) {\n if (this.$element.hasClass(requiredClass)) {\n found = true;\n break;\n }\n }\n } else if (this.$element.hasClass(requiredClass)) {\n found = true;\n }\n }\n }\n\n // ------------------------------------------------------------------------\n // static\n }\n\n return BaseInput;\n})(jQuery);\n\nexport default BaseInput;\n","import BaseInput from \"./baseInput\";\nimport Util from \"./util\";\n\nconst BaseSelection = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const Default = {\n label: {\n required: false\n\n // Prioritized find order for resolving the label to be used as an bmd-label if not specified in the markup\n // - a function(thisComponent); or\n // - a string selector used like $bmdFormGroup.find(selector)\n //\n // Note this only runs if $bmdFormGroup.find(Selector.BMD_LABEL_WILDCARD) fails to find a label (as authored in the markup)\n //\n //selectors: [\n // `.form-control-label`, // in the case of horizontal or inline forms, this will be marked\n // `> label` // usual case for text inputs\n //]\n }\n };\n\n const Selector = {\n LABEL: \"label\"\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseSelection extends BaseInput {\n constructor($element, config, properties) {\n // properties = {inputType: checkbox, outerClass: checkbox-inline}\n // '.checkbox|switch|radio > label > input[type=checkbox|radio]'\n // '.${this.outerClass} > label > input[type=${this.inputType}]'\n\n super($element, $.extend(true, {}, Default, config), properties);\n this.decorateMarkup();\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n decorateMarkup() {\n const $decorator = $(this.config.template);\n this.$element.after($decorator);\n\n // initialize ripples after decorator has been inserted into DOM\n if (this.config.ripples !== false) {\n $decorator.bmdRipples();\n }\n }\n\n // Demarcation element (e.g. first child of a form-group)\n outerElement() {\n // .checkbox|switch|radio > label > input[type=checkbox|radio]\n // label.checkbox-inline > input[type=checkbox|radio]\n // .${this.outerClass} > label > input[type=${this.inputType}]\n return this.$element.parent().closest(`.${this.outerClass}`);\n }\n\n rejectWithoutRequiredStructure() {\n // '.checkbox|switch|radio > label > input[type=checkbox|radio]'\n // '.${this.outerClass} > label > input[type=${this.inputType}]'\n Util.assert(\n this.$element,\n !this.$element.parent().prop(\"tagName\") === \"label\",\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} parent element should be <label>.`\n );\n Util.assert(\n this.$element,\n !this.outerElement().hasClass(this.outerClass),\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} outer element should have class ${this.outerClass}.`\n );\n }\n\n addFocusListener() {\n // checkboxes didn't appear to bubble to the document, so we'll bind these directly\n this.$element.closest(Selector.LABEL).hover(\n () => {\n this.addFormGroupFocus();\n },\n () => {\n this.removeFormGroupFocus();\n }\n );\n }\n\n addChangeListener() {\n this.$element.change(() => {\n this.$element.blur();\n });\n }\n\n // ------------------------------------------------------------------------\n // private\n }\n\n return BaseSelection;\n})(jQuery);\n\nexport default BaseSelection;\n","import BaseSelection from \"./baseSelection\";\n//import Text from './text'\n//import File from './file'\n//import Radio from './radio'\n//import Textarea from './textarea'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst Checkbox = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"checkbox\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n template: `<span class='checkbox-decorator'><span class='check'></span></span>`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Checkbox extends BaseSelection {\n constructor(\n $element,\n config,\n properties = { inputType: NAME, outerClass: NAME }\n ) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [File, Radio, Text, Textarea, Select]},\n Default,\n config\n ),\n properties\n );\n }\n\n dispose(dataKey = DATA_KEY) {\n super.dispose(dataKey);\n }\n\n static matches($element) {\n // '.checkbox > label > input[type=checkbox]'\n if ($element.attr(\"type\") === \"checkbox\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='checkbox'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Checkbox($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Checkbox._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Checkbox;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Checkbox._jQueryInterface;\n };\n\n return Checkbox;\n})(jQuery);\n\nexport default Checkbox;\n","import Checkbox from \"./checkbox\";\n\nconst CheckboxInline = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"checkboxInline\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n bmdFormGroup: {\n create: false, // no bmd-form-group creation if form-group not present. It messes with the layout.\n required: false\n }\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class CheckboxInline extends Checkbox {\n constructor(\n $element,\n config,\n properties = { inputType: \"checkbox\", outerClass: \"checkbox-inline\" }\n ) {\n super($element, $.extend(true, {}, Default, config), properties);\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n //static matches($element) {\n // // '.checkbox-inline > input[type=checkbox]'\n // if ($element.attr('type') === 'checkbox') {\n // return true\n // }\n // return false\n //}\n //\n //static rejectMatch(component, $element) {\n // Util.assert(this.$element, this.matches($element), `${component} component element ${Util.describe($element)} is invalid for type='checkbox'.`)\n //}\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new CheckboxInline($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = CheckboxInline._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = CheckboxInline;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return CheckboxInline._jQueryInterface;\n };\n\n return CheckboxInline;\n})(jQuery);\n\nexport default CheckboxInline;\n","import Base from \"./base\";\nimport Util from \"./util\";\n\nconst CollapseInline = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"collapseInline\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Selector = {\n ANY_INPUT: \"input, select, textarea\"\n };\n\n const ClassName = {\n IN: \"in\",\n COLLAPSE: \"collapse\",\n COLLAPSING: \"collapsing\",\n COLLAPSED: \"collapsed\",\n WIDTH: \"width\"\n };\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class CollapseInline extends Base {\n // $element is expected to be the trigger\n // i.e. <button class=\"btn bmd-btn-icon\" for=\"search\" data-toggle=\"collapse\" data-target=\"#search-field\" aria-expanded=\"false\" aria-controls=\"search-field\">\n constructor($element, config) {\n super($element, $.extend(true, {}, Default, config));\n this.$bmdFormGroup = this.findMdbFormGroup(true);\n\n let collapseSelector = $element.data(\"target\");\n this.$collapse = $(collapseSelector);\n\n Util.assert(\n $element,\n this.$collapse.length === 0,\n `Cannot find collapse target for ${Util.describe($element)}`\n );\n Util.assert(\n this.$collapse,\n !this.$collapse.hasClass(ClassName.COLLAPSE),\n `${Util.describe(\n this.$collapse\n )} is expected to have the '${ClassName.COLLAPSE}' class. It is being targeted by ${Util.describe(\n $element\n )}`\n );\n\n // find the first input for focusing\n let $inputs = this.$bmdFormGroup.find(Selector.ANY_INPUT);\n if ($inputs.length > 0) {\n this.$input = $inputs.first();\n }\n\n // automatically add the marker class to collapse width instead of height - nice convenience because it is easily forgotten\n if (!this.$collapse.hasClass(ClassName.WIDTH)) {\n this.$collapse.addClass(ClassName.WIDTH);\n }\n\n if (this.$input) {\n // add a listener to set focus\n this.$collapse.on(\"shown.bs.collapse\", () => {\n this.$input.focus();\n });\n\n // add a listener to collapse field\n this.$input.blur(() => {\n this.$collapse.collapse(\"hide\");\n });\n }\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n this.$bmdFormGroup = null;\n this.$collapse = null;\n this.$input = null;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new CollapseInline($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = CollapseInline._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = CollapseInline;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return CollapseInline._jQueryInterface;\n };\n\n return CollapseInline;\n})(jQuery);\n\nexport default CollapseInline;\n","import BaseInput from \"./baseInput\";\n//import Checkbox from './checkbox'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Text from './text'\n//import Textarea from './textarea'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst File = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"file\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n const ClassName = {\n FILE: NAME,\n IS_FILE: \"is-file\"\n };\n\n const Selector = {\n FILENAMES: \"input.form-control[readonly]\"\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class File extends BaseInput {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, Radio, Text, Textarea, Select, Switch]},\n Default,\n config\n )\n );\n\n this.$bmdFormGroup.addClass(ClassName.IS_FILE);\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n static matches($element) {\n if ($element.attr(\"type\") === \"file\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='file'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // Demarcation element (e.g. first child of a form-group)\n outerElement() {\n // label.file > input[type=file]\n return this.$element.parent().closest(`.${ClassName.FILE}`);\n }\n\n rejectWithoutRequiredStructure() {\n // label.file > input[type=file]\n Util.assert(\n this.$element,\n !this.outerElement().prop(\"tagName\") === \"label\",\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} parent element ${Util.describe(\n this.outerElement()\n )} should be <label>.`\n );\n Util.assert(\n this.$element,\n !this.outerElement().hasClass(ClassName.FILE),\n `${this.constructor.name}'s ${Util.describe(\n this.$element\n )} parent element ${Util.describe(\n this.outerElement()\n )} should have class .${ClassName.FILE}.`\n );\n }\n\n addFocusListener() {\n this.$bmdFormGroup\n .on(\"focus\", () => {\n this.addFormGroupFocus();\n })\n .on(\"blur\", () => {\n this.removeFormGroupFocus();\n });\n }\n\n addChangeListener() {\n // set the fileinput readonly field with the name of the file\n this.$element.on(\"change\", () => {\n let value = \"\";\n $.each(this.$element.files, (i, file) => {\n value += `${file.name} , `;\n });\n value = value.substring(0, value.length - 2);\n if (value) {\n this.addIsFilled();\n } else {\n this.removeIsFilled();\n }\n this.$bmdFormGroup.find(Selector.FILENAMES).val(value);\n });\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new File($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = File._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = File;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return File._jQueryInterface;\n };\n\n return File;\n})(jQuery);\n\nexport default File;\n","import BaseSelection from \"./baseSelection\";\n//import Text from './text'\n//import File from './file'\n//import Checkbox from './checkbox'\n//import Switch from './switch'\nimport Util from \"./util\";\n\nconst Radio = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"radio\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n template: `<span class='bmd-radio'></span>`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Radio extends BaseSelection {\n constructor(\n $element,\n config,\n properties = { inputType: NAME, outerClass: NAME }\n ) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Switch, Text]},\n Default,\n config\n ),\n properties\n );\n }\n\n dispose(dataKey = DATA_KEY) {\n super.dispose(dataKey);\n }\n\n static matches($element) {\n // '.radio > label > input[type=radio]'\n if ($element.attr(\"type\") === \"radio\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='radio'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n //decorateMarkup() {\n // this.$element.after(this.config.template)\n //}\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Radio($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Radio._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Radio;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Radio._jQueryInterface;\n };\n\n return Radio;\n})(jQuery);\n\nexport default Radio;\n","import Radio from \"./radio\";\n\nconst RadioInline = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"radioInline\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n bmdFormGroup: {\n create: false, // no bmd-form-group creation if form-group not present. It messes with the layout.\n required: false\n }\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class RadioInline extends Radio {\n constructor(\n $element,\n config,\n properties = { inputType: \"radio\", outerClass: \"radio-inline\" }\n ) {\n super($element, $.extend(true, {}, Default, config), properties);\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new RadioInline($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = RadioInline._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = RadioInline;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return RadioInline._jQueryInterface;\n };\n\n return RadioInline;\n})(jQuery);\n\nexport default RadioInline;\n","import BaseInput from \"./baseInput\";\n\nconst BaseFormControl = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const Default = {\n requiredClasses: [\"form-control\"]\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseFormControl extends BaseInput {\n constructor($element, config) {\n super($element, $.extend(true, Default, config));\n\n // Initially mark as empty\n if (this.isEmpty()) {\n this.removeIsFilled();\n }\n }\n }\n\n return BaseFormControl;\n})(jQuery);\n\nexport default BaseFormControl;\n","import BaseFormControl from \"./baseFormControl\";\n//import Checkbox from './checkbox'\n//import File from './file'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Text from './text'\n//import Textarea from './textarea'\nimport Util from \"./util\";\n\nconst Select = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"select\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n requiredClasses: [\"form-control||custom-select\"]\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Select extends BaseFormControl {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Radio, Switch, Text, Textarea]},\n Default,\n config\n )\n );\n\n // floating labels will cover the options, so trigger them to be above (if used)\n this.addIsFilled();\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n static matches($element) {\n if ($element.prop(\"tagName\") === \"select\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for <select>.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Select($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Select._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Select;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Select._jQueryInterface;\n };\n\n return Select;\n})(jQuery);\n\nexport default Select;\n","import Checkbox from \"./checkbox\";\n\nconst Switch = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"switch\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {\n template: `<span class='bmd-switch-track'></span>`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Switch extends Checkbox {\n constructor(\n $element,\n config,\n properties = { inputType: \"checkbox\", outerClass: \"switch\" }\n ) {\n super($element, $.extend(true, {}, Default, config), properties);\n // selector: '.switch > label > input[type=checkbox]'\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Switch($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Switch._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Switch;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Switch._jQueryInterface;\n };\n\n return Switch;\n})(jQuery);\n\nexport default Switch;\n","import BaseFormControl from \"./baseFormControl\";\n//import Checkbox from './checkbox'\n//import File from './file'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Textarea from './textarea'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst Text = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"text\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Text extends BaseFormControl {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Radio, Switch, Select, Textarea]},\n Default,\n config\n )\n );\n }\n\n dispose(dataKey = DATA_KEY) {\n super.dispose(dataKey);\n }\n\n static matches($element) {\n if ($element.attr(\"type\") === \"text\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for type='text'.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Text($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Text._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Text;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Text._jQueryInterface;\n };\n\n return Text;\n})(jQuery);\n\nexport default Text;\n","import BaseFormControl from \"./baseFormControl\";\n//import Checkbox from './checkbox'\n//import File from './file'\n//import Radio from './radio'\n//import Switch from './switch'\n//import Text from './text'\n//import Select from './select'\nimport Util from \"./util\";\n\nconst Textarea = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"textarea\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Textarea extends BaseFormControl {\n constructor($element, config) {\n super(\n $element,\n $.extend(\n true,\n //{invalidComponentMatches: [Checkbox, File, Radio, Text, Select, Switch]},\n Default,\n config\n )\n );\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n static matches($element) {\n if ($element.prop(\"tagName\") === \"textarea\") {\n return true;\n }\n return false;\n }\n\n static rejectMatch(component, $element) {\n Util.assert(\n this.$element,\n this.matches($element),\n `${component} component element ${Util.describe(\n $element\n )} is invalid for <textarea>.`\n );\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Textarea($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Textarea._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Textarea;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Textarea._jQueryInterface;\n };\n\n return Textarea;\n})(jQuery);\n\nexport default Textarea;\n","/* global Popper */\n\n/**\n * This is a copy of the Bootstrap's original dropdown.js, with the only addition\n * of two new classes: 'showing' and 'hiding', used to handle animaitons.\n */\n\nimport Util from 'bootstrap/js/src/util';\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`,\n TRANSITION_END : 'transitionend webkitTransitionEnd oTransitionEnd animationend webkitAnimationEnd oAnimationEnd',\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n SHOWING : 'showing',\n HIDING : 'hiding',\n DROPUP : 'dropup',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end'\n }\n\n const Default = {\n placement : AttachmentMap.BOTTOM,\n offset : 0,\n flip : true\n }\n\n const DefaultType = {\n placement : 'string',\n offset : '(number|string)',\n flip : 'boolean'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget : this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n let element = this._element\n // for dropup with alignment we use the parent as popper container\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent\n }\n }\n this._popper = new Popper(element, this._menu, this._getPopperConfig())\n\n // if this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !$(parent).closest(Selector.NAVBAR_NAV).length) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).one(Event.TRANSITION_END, () => {\n $(parent).trigger($.Event(Event.SHOWN, relatedTarget))\n $(this._menu).removeClass(ClassName.SHOWING)\n })\n\n $(this._menu).addClass(`${ClassName.SHOW} ${ClassName.SHOWING}`)\n $(parent).addClass(ClassName.SHOW)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n this._popper = null\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n const elementData = $(this._element).data()\n if (elementData.placement !== undefined) {\n elementData.placement = AttachmentMap[elementData.placement.toUpperCase()]\n }\n\n config = $.extend(\n {},\n this.constructor.Default,\n $(this._element).data(),\n config\n )\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = this._config.placement\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP) || this._config.placement === AttachmentMap.TOP) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement : this._getPlacement(),\n modifiers : {\n offset : {\n offset : this._config.offset\n },\n flip : {\n enabled : this._config.flip\n }\n }\n }\n\n // Disable Popper.js for Dropdown in Navbar\n if (this._inNavbar) {\n popperConfig.modifiers.applyStyle = {\n enabled: !this._inNavbar\n }\n }\n return popperConfig\n }\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget : toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n && $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // if this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu)\n .addClass(ClassName.HIDING)\n .removeClass(ClassName.SHOW)\n $(parent).removeClass(ClassName.SHOW)\n\n $(dropdownMenu).one(Event.TRANSITION_END, function() {\n $(parent).trigger($.Event(Event.HIDDEN, relatedTarget))\n $(dropdownMenu).removeClass(ClassName.HIDING)\n })\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n /input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n\n})(jQuery)\n\nexport default Dropdown\n","import Base from \"./base\";\nimport Util from \"./util\";\n\nconst BaseLayout = ($ => {\n const ClassName = {\n CANVAS: \"bmd-layout-canvas\",\n CONTAINER: \"bmd-layout-container\",\n BACKDROP: `bmd-layout-backdrop`\n };\n\n const Selector = {\n CANVAS: `.${ClassName.CANVAS}`,\n CONTAINER: `.${ClassName.CONTAINER}`,\n BACKDROP: `.${ClassName.BACKDROP}`\n };\n\n const Default = {\n canvas: {\n create: true,\n required: true,\n template: `<div class=\"${ClassName.CANVAS}\"></div>`\n },\n backdrop: {\n create: true,\n required: true,\n template: `<div class=\"${ClassName.BACKDROP}\"></div>`\n }\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BaseLayout extends Base {\n constructor($element, config, properties = {}) {\n super($element, $.extend(true, {}, Default, config), properties);\n\n this.$container = this.findContainer(true);\n this.$backdrop = this.resolveBackdrop();\n this.resolveCanvas();\n }\n\n dispose(dataKey) {\n super.dispose(dataKey);\n this.$container = null;\n this.$backdrop = null;\n }\n\n // ------------------------------------------------------------------------\n // protected\n\n // Will wrap container in bmd-layout-canvas if necessary\n resolveCanvas() {\n let bd = this.findCanvas(false);\n if (bd === undefined || bd.length === 0) {\n if (this.config.canvas.create) {\n this.$container.wrap(this.config.canvas.template);\n }\n\n bd = this.findCanvas(this.config.canvas.required);\n }\n\n return bd;\n }\n\n // Find closest bmd-layout-container based on the given context\n findCanvas(raiseError = true, context = this.$container) {\n let canvas = context.closest(Selector.CANVAS);\n if (canvas.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.CANVAS} for ${Util.describe(context)}`\n );\n }\n return canvas;\n }\n\n // Will add bmd-layout-backdrop to bmd-layout-container if necessary\n resolveBackdrop() {\n let bd = this.findBackdrop(false);\n if (bd === undefined || bd.length === 0) {\n if (this.config.backdrop.create) {\n this.$container.append(this.config.backdrop.template);\n }\n\n bd = this.findBackdrop(this.config.backdrop.required);\n }\n\n return bd;\n }\n\n // Find closest bmd-layout-container based on the given context\n findBackdrop(raiseError = true, context = this.$container) {\n let backdrop = context.find(`> ${Selector.BACKDROP}`);\n if (backdrop.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.BACKDROP} for ${Util.describe(context)}`\n );\n }\n return backdrop;\n }\n\n // Find closest bmd-layout-container based on the given context\n findContainer(raiseError = true, context = this.$element) {\n let container = context.closest(Selector.CONTAINER);\n if (container.length === 0 && raiseError) {\n $.error(\n `Failed to find ${Selector.CONTAINER} for ${Util.describe(context)}`\n );\n }\n return container;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n // ------------------------------------------------------------------------\n // static\n }\n\n return BaseLayout;\n})(jQuery);\n\nexport default BaseLayout;\n","import BaseLayout from \"./baseLayout\";\n\nconst Drawer = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"drawer\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Keycodes = {\n ESCAPE: 27\n //ENTER: 13,\n //SPACE: 32\n };\n\n const ClassName = {\n IN: \"in\",\n DRAWER_IN: `bmd-drawer-in`,\n DRAWER_OUT: `bmd-drawer-out`,\n DRAWER: \"bmd-layout-drawer\",\n CONTAINER: \"bmd-layout-container\"\n };\n\n const Default = {\n focusSelector: `a, button, input`\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Drawer extends BaseLayout {\n // $element is expected to be the trigger\n // i.e. <button class=\"btn bmd-btn-icon\" for=\"search\" data-toggle=\"drawer\" data-target=\"#my-side-nav-drawer\" aria-expanded=\"false\" aria-controls=\"my-side-nav-drawer\">\n constructor($element, config) {\n super($element, $.extend(true, {}, Default, config));\n\n this.$toggles = $(\n `[data-toggle=\"drawer\"][href=\"#${this.$element[0]\n .id}\"], [data-toggle=\"drawer\"][data-target=\"#${this.$element[0].id}\"]`\n );\n\n this._addAria();\n\n // click or escape on the backdrop closes the drawer\n this.$backdrop\n .keydown(ev => {\n if (ev.which === Keycodes.ESCAPE) {\n this.hide();\n }\n })\n .click(() => {\n this.hide();\n });\n\n // escape on the drawer closes it\n this.$element.keydown(ev => {\n if (ev.which === Keycodes.ESCAPE) {\n this.hide();\n }\n });\n\n // any toggle button clicks\n this.$toggles.click(() => {\n this.toggle();\n });\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n this.$toggles = null;\n }\n\n toggle() {\n if (this._isOpen()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n show() {\n if (this._isForcedClosed() || this._isOpen()) {\n return;\n }\n\n this.$toggles.attr(\"aria-expanded\", true);\n this.$element.attr(\"aria-expanded\", true);\n this.$element.attr(\"aria-hidden\", false);\n\n // focus on the first focusable item\n let $focusOn = this.$element.find(this.config.focusSelector);\n if ($focusOn.length > 0) {\n $focusOn.first().focus();\n }\n\n this.$container.addClass(ClassName.DRAWER_IN);\n // backdrop is responsively styled based on bmd-drawer-overlay, therefore style is none of our concern, simply add the marker class and let the scss determine if it should be displayed or not.\n this.$backdrop.addClass(ClassName.IN);\n }\n\n hide() {\n if (!this._isOpen()) {\n return;\n }\n\n this.$toggles.attr(\"aria-expanded\", false);\n this.$element.attr(\"aria-expanded\", false);\n this.$element.attr(\"aria-hidden\", true);\n\n this.$container.removeClass(ClassName.DRAWER_IN);\n this.$backdrop.removeClass(ClassName.IN);\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _isOpen() {\n return this.$container.hasClass(ClassName.DRAWER_IN);\n }\n\n _isForcedClosed() {\n return this.$container.hasClass(ClassName.DRAWER_OUT);\n }\n\n _addAria() {\n let isOpen = this._isOpen();\n this.$element.attr(\"aria-expanded\", isOpen);\n this.$element.attr(\"aria-hidden\", isOpen);\n\n if (this.$toggles.length) {\n this.$toggles.attr(\"aria-expanded\", isOpen);\n }\n }\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Drawer($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Drawer._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Drawer;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Drawer._jQueryInterface;\n };\n\n return Drawer;\n})(jQuery);\n\nexport default Drawer;\n","import Util from \"./util\";\n\nconst Ripples = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"ripples\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const ClassName = {\n CONTAINER: \"ripple-container\",\n DECORATOR: \"ripple-decorator\"\n };\n\n const Selector = {\n CONTAINER: `.${ClassName.CONTAINER}`,\n DECORATOR: `.${ClassName.DECORATOR}` //,\n };\n\n const Default = {\n container: {\n template: `<div class='${ClassName.CONTAINER}'></div>`\n },\n decorator: {\n template: `<div class='${ClassName.DECORATOR}'></div>`\n },\n trigger: {\n start: \"mousedown touchstart\",\n end: \"mouseup mouseleave touchend\"\n },\n touchUserAgentRegex: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i,\n duration: 500\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Ripples {\n constructor($element, config) {\n this.$element = $element;\n\n // console.log(`Adding ripples to ${Util.describe(this.$element)}`) // eslint-disable-line no-console\n this.config = $.extend(true, {}, Default, config);\n\n // attach initial listener\n this.$element.on(this.config.trigger.start, event => {\n this._onStartRipple(event);\n });\n }\n\n dispose() {\n this.$element.data(DATA_KEY, null);\n this.$element = null;\n this.$container = null;\n this.$decorator = null;\n this.config = null;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _onStartRipple(event) {\n // Verify if the user is just touching on a device and return if so\n if (this._isTouch() && event.type === \"mousedown\") {\n return;\n }\n\n // Find or create the ripple container element\n this._findOrCreateContainer();\n\n // Get relY and relX positions of the container element\n let relY = this._getRelY(event);\n let relX = this._getRelX(event);\n\n // If relY and/or relX are false, return the event\n if (!relY && !relX) {\n return;\n }\n\n // set the location and color each time (even if element is cached)\n this.$decorator.css({\n left: relX,\n top: relY,\n \"background-color\": this._getRipplesColor()\n });\n\n // Make sure the ripple has the styles applied (ugly hack but it works)\n this._forceStyleApplication();\n\n // Turn on the ripple animation\n this.rippleOn();\n\n // Call the rippleEnd function when the transition 'on' ends\n setTimeout(() => {\n this.rippleEnd();\n }, this.config.duration);\n\n // Detect when the user leaves the element to cleanup if not already done?\n this.$element.on(this.config.trigger.end, () => {\n if (this.$decorator) {\n // guard against race condition/mouse attack\n this.$decorator.data(\"mousedown\", \"off\");\n\n if (this.$decorator.data(\"animating\") === \"off\") {\n this.rippleOut();\n }\n }\n });\n }\n\n _findOrCreateContainer() {\n if (!this.$container || !this.$container.length > 0) {\n this.$element.append(this.config.container.template);\n this.$container = this.$element.find(Selector.CONTAINER);\n }\n\n // always add the rippleElement, it is always removed\n this.$container.append(this.config.decorator.template);\n this.$decorator = this.$container.find(Selector.DECORATOR);\n }\n\n // Make sure the ripple has the styles applied (ugly hack but it works)\n _forceStyleApplication() {\n return window.getComputedStyle(this.$decorator[0]).opacity;\n }\n\n /**\n * Get the relX\n */\n _getRelX(event) {\n let wrapperOffset = this.$container.offset();\n\n let result = null;\n if (!this._isTouch()) {\n // Get the mouse position relative to the ripple wrapper\n result = event.pageX - wrapperOffset.left;\n } else {\n // Make sure the user is using only one finger and then get the touch\n // position relative to the ripple wrapper\n event = event.originalEvent;\n\n if (event.touches.length === 1) {\n result = event.touches[0].pageX - wrapperOffset.left;\n } else {\n result = false;\n }\n }\n\n return result;\n }\n\n /**\n * Get the relY\n */\n _getRelY(event) {\n let containerOffset = this.$container.offset();\n let result = null;\n\n if (!this._isTouch()) {\n /**\n * Get the mouse position relative to the ripple wrapper\n */\n result = event.pageY - containerOffset.top;\n } else {\n /**\n * Make sure the user is using only one finger and then get the touch\n * position relative to the ripple wrapper\n */\n event = event.originalEvent;\n\n if (event.touches.length === 1) {\n result = event.touches[0].pageY - containerOffset.top;\n } else {\n result = false;\n }\n }\n\n return result;\n }\n\n /**\n * Get the ripple color\n */\n _getRipplesColor() {\n let color = this.$element.data(\"ripple-color\")\n ? this.$element.data(\"ripple-color\")\n : window.getComputedStyle(this.$element[0]).color;\n return color;\n }\n\n /**\n * Verify if the client is using a mobile device\n */\n _isTouch() {\n return this.config.touchUserAgentRegex.test(navigator.userAgent);\n }\n\n /**\n * End the animation of the ripple\n */\n rippleEnd() {\n if (this.$decorator) {\n // guard against race condition/mouse attack\n this.$decorator.data(\"animating\", \"off\");\n\n if (this.$decorator.data(\"mousedown\") === \"off\") {\n this.rippleOut(this.$decorator);\n }\n }\n }\n\n /**\n * Turn off the ripple effect\n */\n rippleOut() {\n this.$decorator.off();\n\n if (Util.transitionEndSupported()) {\n this.$decorator.addClass(\"ripple-out\");\n } else {\n this.$decorator.animate({ opacity: 0 }, 100, () => {\n this.$decorator.trigger(\"transitionend\");\n });\n }\n\n this.$decorator.on(Util.transitionEndSelector(), () => {\n if (this.$decorator) {\n this.$decorator.remove();\n this.$decorator = null;\n }\n });\n }\n\n /**\n * Turn on the ripple effect\n */\n rippleOn() {\n let size = this._getNewSize();\n\n if (Util.transitionEndSupported()) {\n this.$decorator\n .css({\n \"-ms-transform\": `scale(${size})`,\n \"-moz-transform\": `scale(${size})`,\n \"-webkit-transform\": `scale(${size})`,\n transform: `scale(${size})`\n })\n .addClass(\"ripple-on\")\n .data(\"animating\", \"on\")\n .data(\"mousedown\", \"on\");\n } else {\n this.$decorator.animate(\n {\n width:\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * 2,\n height:\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * 2,\n \"margin-left\":\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * -1,\n \"margin-top\":\n Math.max(\n this.$element.outerWidth(),\n this.$element.outerHeight()\n ) * -1,\n opacity: 0.2\n },\n this.config.duration,\n () => {\n this.$decorator.trigger(\"transitionend\");\n }\n );\n }\n }\n\n /**\n * Get the new size based on the element height/width and the ripple width\n */\n _getNewSize() {\n return (\n Math.max(this.$element.outerWidth(), this.$element.outerHeight()) /\n this.$decorator.outerWidth() *\n 2.5\n );\n }\n\n // ------------------------------------------------------------------------\n // static\n\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Ripples($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Ripples._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Ripples;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Ripples._jQueryInterface;\n };\n\n return Ripples;\n})(jQuery);\n\nexport default Ripples;\n","import Base from \"./base\";\n\nconst Autofill = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"autofill\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}`;\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n const Default = {};\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class Autofill extends Base {\n constructor($element, config) {\n super($element, $.extend(true, {}, Default, config));\n\n this._watchLoading();\n this._attachEventHandlers();\n }\n\n dispose() {\n super.dispose(DATA_KEY);\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _watchLoading() {\n // After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them\n setTimeout(() => {\n clearInterval(this._onLoading);\n }, 10000);\n }\n\n // This part of code will detect autofill when the page is loading (username and password inputs for example)\n _onLoading() {\n setInterval(() => {\n $(\"input[type!=checkbox]\").each((index, element) => {\n let $element = $(element);\n if ($element.val() && $element.val() !== $element.attr(\"value\")) {\n $element.trigger(\"change\");\n }\n });\n }, 100);\n }\n\n _attachEventHandlers() {\n // Listen on inputs of the focused form\n // (because user can select from the autofill dropdown only when the input has focus)\n let focused = null;\n $(document)\n .on(\"focus\", \"input\", event => {\n let $inputs = $(event.currentTarget)\n .closest(\"form\")\n .find(\"input\")\n .not(\"[type=file]\");\n focused = setInterval(() => {\n $inputs.each((index, element) => {\n let $element = $(element);\n if ($element.val() !== $element.attr(\"value\")) {\n $element.trigger(\"change\");\n }\n });\n }, 100);\n })\n .on(\"blur\", \".form-group input\", () => {\n clearInterval(focused);\n });\n }\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Autofill($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = Autofill._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = Autofill;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return Autofill._jQueryInterface;\n };\n\n return Autofill;\n})(jQuery);\n\nexport default Autofill;\n","/* globals Popper */\nPopper.Defaults.modifiers.computeStyle.gpuAcceleration = false\n\n/**\n * $.bootstrapMaterialDesign(config) is a macro class to configure the components generally\n * used in Material Design for Bootstrap. You may pass overrides to the configurations\n * which will be passed into each component, or you may omit use of this class and\n * configure each component separately.\n */\nconst BootstrapMaterialDesign = ($ => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n const NAME = \"bootstrapMaterialDesign\";\n const DATA_KEY = `bmd.${NAME}`;\n const JQUERY_NAME = NAME; // retain this full name since it is long enough not to conflict\n const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME];\n\n /**\n * Global configuration:\n * The global configuration hash will be mixed in to each components' config.\n * e.g. calling $.bootstrapMaterialDesign({global: { validate: true } }) would pass `validate:true` to every component\n *\n *\n * Component configuration:\n * - selector: may be a string or an array. Any array will be joined with a comma to generate the selector\n * - disable any component by defining it as false with an override. e.g. $.bootstrapMaterialDesign({ autofill: false })\n *\n * @see each individual component for more configuration settings.\n */\n const Default = {\n global: {\n validate: false,\n label: {\n className: \"bmd-label-static\" // default style of label to be used if not specified in the html markup\n }\n },\n autofill: {\n selector: \"body\"\n },\n checkbox: {\n selector: \".checkbox > label > input[type=checkbox]\"\n },\n checkboxInline: {\n selector: \"label.checkbox-inline > input[type=checkbox]\"\n },\n collapseInline: {\n selector: '.bmd-collapse-inline [data-toggle=\"collapse\"]'\n },\n drawer: {\n selector: \".bmd-layout-drawer\"\n },\n file: {\n selector: \"input[type=file]\"\n },\n radio: {\n selector: \".radio > label > input[type=radio]\"\n },\n radioInline: {\n selector: \"label.radio-inline > input[type=radio]\"\n },\n ripples: {\n //selector: ['.btn:not(.btn-link):not(.ripple-none)'] // testing only\n selector: [\n \".btn:not(.btn-link):not(.ripple-none)\",\n \".card-image:not(.ripple-none)\",\n \".navbar a:not(.ripple-none)\",\n \".dropdown-menu a:not(.ripple-none)\",\n \".nav-tabs a:not(.ripple-none)\",\n \".pagination li:not(.active):not(.disabled) a:not(.ripple-none)\",\n \".ripple\" // generic marker class to add ripple to elements\n ]\n },\n select: {\n selector: [\"select\"]\n },\n switch: {\n selector: \".switch > label > input[type=checkbox]\"\n },\n text: {\n // omit inputs we have specialized components to handle - we need to match text, email, etc. The easiest way to do this appears to be just omit the ones we don't want to match and let the rest fall through to this.\n selector: [\n `input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset])`\n ]\n },\n textarea: {\n selector: [\"textarea\"]\n },\n arrive: true,\n // create an ordered component list for instantiation\n instantiation: [\n \"ripples\",\n \"checkbox\",\n \"checkboxInline\",\n \"collapseInline\",\n \"drawer\",\n //'file',\n \"radio\",\n \"radioInline\",\n \"switch\",\n \"text\",\n \"textarea\",\n \"select\",\n \"autofill\"\n ]\n };\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n class BootstrapMaterialDesign {\n constructor($element, config) {\n this.$element = $element;\n this.config = $.extend(true, {}, Default, config);\n let $document = $(document);\n\n for (let component of this.config.instantiation) {\n // the component's config fragment is passed in directly, allowing users to override\n let componentConfig = this.config[component];\n\n // check to make sure component config is enabled (not `false`)\n if (componentConfig) {\n // assemble the selector as it may be an array\n let selector = this._resolveSelector(componentConfig);\n\n // mix in global options\n componentConfig = $.extend(\n true,\n {},\n this.config.global,\n componentConfig\n );\n\n // create the jquery fn name e.g. 'bmdText' for 'text'\n let componentName = `${component.charAt(0).toUpperCase() +\n component.slice(1)}`;\n let jqueryFn = `bmd${componentName}`;\n\n try {\n // safely instantiate component on selector elements with config, report errors and move on.\n // console.debug(`instantiating: $('${selector}')[${jqueryFn}](${componentConfig})`) // eslint-disable-line no-console\n $(selector)[jqueryFn](componentConfig);\n\n // add to arrive if present and enabled\n if (document.arrive && this.config.arrive) {\n $document.arrive(selector, function() {\n // eslint-disable-line no-loop-func\n $(this)[jqueryFn](componentConfig);\n });\n }\n } catch (e) {\n let message = `Failed to instantiate component: $('${selector}')[${jqueryFn}](${componentConfig})`;\n console.error(message, e, `\\nSelected elements: `, $(selector)); // eslint-disable-line no-console\n throw e;\n }\n }\n }\n }\n\n dispose() {\n this.$element.data(DATA_KEY, null);\n this.$element = null;\n this.config = null;\n }\n\n // ------------------------------------------------------------------------\n // private\n\n _resolveSelector(componentConfig) {\n let selector = componentConfig.selector;\n if (Array.isArray(selector)) {\n selector = selector.join(\", \");\n }\n\n return selector;\n }\n\n // ------------------------------------------------------------------------\n // static\n static _jQueryInterface(config) {\n return this.each(function() {\n let $element = $(this);\n let data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new BootstrapMaterialDesign($element, config);\n $element.data(DATA_KEY, data);\n }\n });\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n $.fn[JQUERY_NAME] = BootstrapMaterialDesign._jQueryInterface;\n $.fn[JQUERY_NAME].Constructor = BootstrapMaterialDesign;\n $.fn[JQUERY_NAME].noConflict = () => {\n $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT;\n return BootstrapMaterialDesign._jQueryInterface;\n };\n\n return BootstrapMaterialDesign;\n})(jQuery);\n\nexport default BootstrapMaterialDesign;\n","/*\n * This is the main entry point.\n *\n * You can import other modules here, including external packages. When bundling using rollup you can mark those modules as external and have them excluded or, if they have a jsnext:main entry in their package.json (like this package does), let rollup bundle them into your dist file.\n *\n * at your application entry point. This is necessary for browsers that do not yet support some ES2015 runtime necessities such as Symbol. We do this in `index-iife.js` for our iife rollup bundle.\n */\n\n// Bootstrap components\nimport \"bootstrap/js/src/alert\";\nimport \"bootstrap/js/src/button\";\nimport \"bootstrap/js/src/carousel\";\nimport \"bootstrap/js/src/collapse\";\nimport \"bootstrap/js/src/modal\";\nimport \"bootstrap/js/src/popover\";\nimport \"bootstrap/js/src/scrollspy\";\nimport \"bootstrap/js/src/tab\";\nimport \"bootstrap/js/src/tooltip\";\nimport \"bootstrap/js/src/util\";\n\n// invalidComponentMatches is currently disabled due to https://github.com/rollup/rollup/issues/428#issuecomment-170066452\nimport \"./checkbox\";\nimport \"./checkboxInline\";\nimport \"./collapseInline\";\nimport \"./file\";\nimport \"./radio\";\nimport \"./radioInline\";\nimport \"./select\";\nimport \"./switch\";\nimport \"./text\";\nimport \"./textarea\";\nimport \"./dropdown\";\n\nimport \"./drawer\";\n\nimport \"./ripples\";\nimport \"./autofill\";\nimport \"./bootstrapMaterialDesign\";\n"],"names":["Util","transitionEnd","transitionEndSelector","TransitionEndEvent","transitionEndTest","window","QUnit","el","document","createElement","name","style","undefined","setTransitionEndSupport","event","which","ctrlKey","metaKey","altKey","$element","invalidTest","message","css","error","length","outerHTML","split","jQuery","Base","ClassName","Selector","BMD_FORM_GROUP","Default","config","properties","$","extend","key","dispose","dataKey","data","addFormGroupFocus","prop","$bmdFormGroup","addClass","IS_FOCUSED","removeFormGroupFocus","removeClass","removeIsFilled","IS_FILLED","addIsFilled","findMdbFormGroup","raiseError","mfg","closest","describe","BaseInput","FORM_GROUP","BMD_LABEL","BMD_LABEL_STATIC","FormControlSizeMarkers","_rejectInvalidComponentMatches","rejectWithoutRequiredStructure","_rejectWithoutRequiredClasses","$formGroup","findFormGroup","formGroup","required","resolveMdbFormGroup","$bmdLabel","resolveMdbLabel","resolveMdbFormGroupSizing","addFocusListener","addChangeListener","val","on","isChar","isEmpty","validate","isValid","checkValidity","removeHasDanger","addHasDanger","HAS_DANGER","bmdFormGroup","create","outerElement","parent","hasClass","INPUT_GROUP","wrap","template","label","find","BMD_LABEL_WILDCARD","findMdbLabel","className","selectors","selector","isFunction","fg","convertInputSizeVariations","inputSize","invalidComponentMatches","otherComponent","rejectMatch","constructor","requiredClasses","requiredClass","indexOf","oneOf","BaseSelection","decorateMarkup","$decorator","after","ripples","bmdRipples","outerClass","assert","LABEL","hover","change","blur","Checkbox","NAME","DATA_KEY","JQUERY_NAME","charAt","toUpperCase","slice","JQUERY_NO_CONFLICT","fn","matches","attr","component","_jQueryInterface","each","Constructor","noConflict","CheckboxInline","CollapseInline","collapseSelector","$collapse","COLLAPSE","$inputs","ANY_INPUT","$input","first","WIDTH","focus","collapse","File","IS_FILE","FILE","value","files","i","file","substring","FILENAMES","Radio","RadioInline","BaseFormControl","Select","Switch","Text","Textarea","Dropdown","Popper","Error","VERSION","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","Event","AttachmentMap","BOTTOM","DefaultType","element","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","DISABLED","_getParentFromElement","isActive","SHOW","_clearMenus","relatedTarget","showEvent","trigger","isDefaultPrevented","DROPUP","MENULEFT","MENURIGHT","_getPopperConfig","documentElement","NAVBAR_NAV","children","noop","setAttribute","one","TRANSITION_END","SHOWN","SHOWING","removeData","off","destroy","update","scheduleUpdate","CLICK","preventDefault","stopPropagation","elementData","placement","typeCheckConfig","MENU","_getPlacement","$parentDropdown","TOP","TOPEND","BOTTOMEND","popperConfig","offset","flip","modifiers","applyStyle","type","toggles","makeArray","DATA_TOGGLE","context","dropdownMenu","test","target","tagName","contains","hideEvent","HIDE","HIDING","HIDDEN","getSelectorFromElement","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","index","KEYDOWN_DATA_API","CLICK_DATA_API","KEYUP_DATA_API","call","FORM_CHILD","e","BaseLayout","CANVAS","CONTAINER","BACKDROP","$container","findContainer","$backdrop","resolveBackdrop","resolveCanvas","bd","findCanvas","canvas","findBackdrop","backdrop","append","container","Drawer","Keycodes","$toggles","id","_addAria","keydown","ev","ESCAPE","hide","click","_isOpen","show","_isForcedClosed","$focusOn","focusSelector","DRAWER_IN","IN","DRAWER_OUT","isOpen","Ripples","DECORATOR","start","_onStartRipple","_isTouch","_findOrCreateContainer","relY","_getRelY","relX","_getRelX","_getRipplesColor","_forceStyleApplication","rippleOn","rippleEnd","duration","end","rippleOut","decorator","getComputedStyle","opacity","wrapperOffset","result","pageX","left","originalEvent","touches","containerOffset","pageY","top","color","touchUserAgentRegex","navigator","userAgent","transitionEndSupported","animate","remove","size","_getNewSize","Math","max","outerWidth","outerHeight","Autofill","_watchLoading","_attachEventHandlers","_onLoading","focused","currentTarget","not","setInterval","Defaults","computeStyle","gpuAcceleration","BootstrapMaterialDesign","$document","componentConfig","_resolveSelector","global","componentName","jqueryFn","arrive","instantiation","Array","isArray","join"],"mappings":"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"} |