{"version":3,"file":"core.min.js","mappings":"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zPkB,CAChB,cACA,gBACA,UACA,WACA,UACA,SACA,WACA,YACA,oBACA,sBACA,iBACA,UACA,YACA,UACA,QACA,YACA,UACA,aACA,UACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,WACA,UACA,qBACA,WACA,SACA,SACA,WACA,gBACA,UACA,QACA,aACA,WACA,UACA,SACA,cACA,QACA,QACA,QACA,SACA,YACA,WACA,QACA,kBACA,gBACA,kBACA,aACA,qBACA,OACA,YACA,UACA,WACA,QACA,cACA,yBACA,UACA,WACA,aACA,YACA,UACA,iBACA,UACA,UACA,OACA,YACA,YACA,SACA,QACA,SACA,OACA,UACA,YACA,iCACA,UACA,SACA,aACA,YACA,uCACA,YACA,WACA,SACA,kBACA,QACA,mBACA,eACA,QACA,UACA,WACA,YACA,UACA,QACA,sCACA,gBACA,aACA,gBACA,eACA,cACA,eACA,cACA,gBACA,aACA,eACA,4BACA,yCACA,mDACA,0BACA,iBACA,mCACA,gBACA,mBACA,gBACA,6BACA,gBACA,uBACA,iCACA,6BACA,wBACA,QACA,YACA,MACA,SACA,UACA,WACA,SACA,SACA,UACA,QACA,SACA,WACA,QACA,WACA,QACA,OACA,SACA,SACA,SACA,UACA,QACA,gBACA,WACA,aACA,QACA,kCACA,aACA,UACA,SACA,WACA,OACA,QACA,WACA,YACA,WACA,aACA,UACA,SACA,aACA,aACA,UACA,SACA,WACA,aACA,aACA,SACA,UACA,QACA,QACA,YACA,QACA,UACA,OACA,UACA,iBACA,gBACA,MACA,QACA,SACA,mBACA,YACA,WACA,OACA,qBACA,UACA,aACA,WACA,QACA,cACA,4BACA,iCACA,uBACA,mBACA,UACA,SACA,yCACA,kBACA,8BACA,kBACA,kBACA,aACA,eACA,cACA,iBACA,wBACA,aACA,sBACA,UACA,aACA,SACA,QACA,UACA,YACA,0BACA,cACA,QACA,SACA,QACA,WACA,eACA,YACA,SACA,WACA,wCACA,+BAC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","sources":["webpack://core/webpack/universalModuleDefinition","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://core/./node_modules/@popperjs/core/lib/utils/math.js","webpack://core/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://core/./node_modules/@popperjs/core/lib/enums.js","webpack://core/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://core/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://core/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://core/./node_modules/@popperjs/core/lib/createPopper.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://core/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://core/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://core/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://core/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://core/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://core/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://core/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://core/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://core/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://core/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://core/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://core/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://core/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://core/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://core/./node_modules/@popperjs/core/lib/utils/within.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://core/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://core/./node_modules/@popperjs/core/lib/popper.js","webpack://core/./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack://core/./node_modules/flatpickr/dist/l10n/pt.js","webpack://core/./node_modules/focus-visible/dist/focus-visible.js","webpack://core/./src/components/accordion/accordion.js","webpack://core/./src/components/avatar/avatar.js","webpack://core/./src/components/breadcrumb/breadcrumb.js","webpack://core/./src/components/card/card.js","webpack://core/./src/components/carousel/carousel.js","webpack://core/./src/components/checkbox/checkbox.js","webpack://core/./src/components/cookiebar/cookiebar-data.js","webpack://core/./src/components/cookiebar/cookiebar-labels.js","webpack://core/./src/components/cookiebar/cookiebar-templates.js","webpack://core/./src/components/cookiebar/cookiebar.js","webpack://core/./src/components/cookiebar/selectors.js","webpack://core/./node_modules/flatpickr/dist/esm/types/options.js","webpack://core/./node_modules/flatpickr/dist/esm/l10n/default.js","webpack://core/./node_modules/flatpickr/dist/esm/utils/index.js","webpack://core/./node_modules/flatpickr/dist/esm/utils/dom.js","webpack://core/./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack://core/./node_modules/flatpickr/dist/esm/utils/dates.js","webpack://core/./node_modules/flatpickr/dist/esm/index.js","webpack://core/./src/components/datetimepicker/datetimepicker.js","webpack://core/./src/components/footer/footer.js","webpack://core/./src/components/header/header.js","webpack://core/./src/components/input/input.js","webpack://core/./src/components/item/item.js","webpack://core/./src/components/list/list.js","webpack://core/./src/components/menu/menu.js","webpack://core/./src/components/message/message.js","webpack://core/./src/components/modal/modal.js","webpack://core/./src/components/notification/notification.js","webpack://core/./src/components/pagination/pagination.js","webpack://core/./src/components/scrim/scrim.js","webpack://core/./src/components/select/select.js","webpack://core/./src/components/step/step.js","webpack://core/./src/components/tab/tab.js","webpack://core/./src/components/table/table.js","webpack://core/./src/components/tag/tag.js","webpack://core/./src/components/textarea/textarea.js","webpack://core/./src/components/tooltip/tooltip.js","webpack://core/./src/components/upload/upload.js","webpack://core/./src/components/wizard/wizard.js","webpack://core/./src/partial/js/behavior/accordion.js","webpack://core/./src/partial/js/behavior/checkgroup.js","webpack://core/./src/partial/js/behavior/collapse.js","webpack://core/./src/partial/js/behavior/dropdown.js","webpack://core/./src/partial/js/behavior/scrim.js","webpack://core/./src/partial/js/behavior/swipe.js","webpack://core/./src/partial/js/behavior/tooltip.js","webpack://core/./src/components/cookiebar/jsonData.js","webpack://core/./src/components/input/input-data.js","webpack://core/./src/partial/js/globals-class.js","webpack://core/webpack/bootstrap","webpack://core/webpack/runtime/define property getters","webpack://core/webpack/runtime/hasOwnProperty shorthand","webpack://core/webpack/runtime/make namespace object","webpack://core/./src/util/accordion/accordion.js","webpack://core/./src/util/checkgroup/checkgroup.js","webpack://core/./src/util/collapse/collapse.js","webpack://core/./src/util/dropdown/dropdown.js","webpack://core/./src/util/tooltip/tooltip.js","webpack://core/./src/partial/js/core.behavior.js","webpack://core/./src/partial/js/core.entry.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"core\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"core\"] = factory();\n\telse\n\t\troot[\"core\"] = factory();\n})(self, () => {\nreturn ","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.pt = {}));\n}(this, (function (exports) { 'use strict';\n\n var fp = typeof window !== \"undefined\" && window.flatpickr !== undefined\n ? window.flatpickr\n : {\n l10ns: {},\n };\n var Portuguese = {\n weekdays: {\n shorthand: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"],\n longhand: [\n \"Domingo\",\n \"Segunda-feira\",\n \"Terça-feira\",\n \"Quarta-feira\",\n \"Quinta-feira\",\n \"Sexta-feira\",\n \"Sábado\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n ],\n longhand: [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ],\n },\n rangeSeparator: \" até \",\n time_24hr: true,\n };\n fp.l10ns.pt = Portuguese;\n var pt = fp.l10ns;\n\n exports.Portuguese = Portuguese;\n exports.default = pt;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n","class BRAccordion {\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n _setBehavior() {\n for (const button of this.component.querySelectorAll('button.header')) {\n button.addEventListener('click', (event) => {\n this._collapse(event)\n this._changeIcon(event)\n })\n }\n }\n\n // eslint-disable-next-line complexity\n _collapse(event) {\n if (this.component.hasAttribute('single')) {\n for (const field of this.component.querySelectorAll('.item')) {\n if (field === event.currentTarget.parentNode) {\n if (field.hasAttribute('active')) {\n field.removeAttribute('active')\n } else {\n field.setAttribute('active', '')\n }\n } else {\n if (field.hasAttribute('active')) {\n field.removeAttribute('active')\n }\n }\n }\n } else {\n for (const field of this.component.querySelectorAll('.item')) {\n if (field === event.currentTarget.parentNode) {\n if (field.hasAttribute('active')) {\n field.removeAttribute('active')\n } else {\n field.setAttribute('active', '')\n }\n }\n }\n }\n }\n\n _changeIcon() {\n for (const field of this.component.querySelectorAll('.item')) {\n if (field.hasAttribute('active')) {\n for (const icon of field.querySelectorAll('.icon')) {\n icon.children[0].classList.remove('fa-angle-down')\n icon.children[0].classList.add('fa-angle-up')\n }\n } else {\n for (const icon of field.querySelectorAll('.icon')) {\n icon.children[0].classList.remove('fa-angle-up')\n icon.children[0].classList.add('fa-angle-down')\n }\n }\n }\n }\n}\n\nexport default BRAccordion\n","import Dropdown from '../../partial/js/behavior/dropdown'\n\n/**\n * Classe para o exemplo do comportamento dropdown\n */\nclass BRAvatar {\n /**\n * Instancia um exemplo de comportamento dropdown\n * @param {string} name - Nome do componente\n * @param {object} component - Referência ao objeto do DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define os comportamentos do componente\n * @private\n */\n _setBehavior() {\n this._setDropdownBehavior()\n }\n\n /**\n * Define os comportamentos do dropdown\n * @private\n */\n _setDropdownBehavior() {\n if (this.component.parentElement.dataset.toggle === 'dropdown') {\n const config = {\n iconToHide: 'fa-caret-up',\n iconToShow: 'fa-caret-down',\n trigger: this.component.parentElement,\n useIcons: true,\n }\n const dropdown = new Dropdown(config)\n dropdown.setBehavior()\n }\n }\n}\n\nexport default BRAvatar\n","class BRBreadcrumb {\n /**\n * Instancia um componente breadcrumb\n * @param {string} name - nome do componente\n * @param {object} component - referencia ao objeto do DOM\n **/\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define os comportamentos do componente\n * @private\n */\n _setBehavior() {\n this._setView()\n window.addEventListener('resize', () => {\n this._setView()\n })\n window.document.addEventListener('click', (event) => {\n if (\n !this.component.contains(event.target) &&\n this.component.querySelector('.br-card')\n ) {\n this.component.querySelector('.br-card').remove()\n }\n })\n\n // window.addEventListener('resize', (event) => {})\n }\n /**\n * Reseta a view do breadcrumb\n */\n resetBreadcrumbs() {\n this._reset()\n\n const brcardBreadcrumb = this.component.querySelector('.br-card')\n if (brcardBreadcrumb !== null) {\n brcardBreadcrumb.remove()\n }\n this._setView()\n }\n\n /**\n * Atualiza a visualização do componente\n * @private\n */\n _setView() {\n this._reset()\n for (const crumbList of this.component.querySelectorAll('.crumb-list')) {\n const crumbs = crumbList.querySelectorAll('.crumb:not([data-active])')\n if (window.innerWidth < 575) {\n if (crumbs.length !== 1) {\n crumbs.forEach((crumb) => {\n crumb.classList.add('d-none')\n })\n this._insertExpandButton()\n }\n } else {\n if (\n crumbList.scrollWidth > crumbList.offsetWidth ||\n crumbs.length > 5\n ) {\n crumbs.forEach((crumb, index) => {\n if (index > 0 && index < crumbs.length - 1) {\n crumb.classList.add('d-none')\n }\n })\n this._insertExpandButton()\n }\n }\n }\n }\n\n /**\n * Insere botao de expandir\n * @private\n */\n _insertExpandButton() {\n const crumb = this._createCrumb()\n const crumbList = this.component.querySelector('.crumb-list')\n const crumbs = crumbList.querySelectorAll('.crumb')\n crumbList.insertBefore(crumb, crumbs[1])\n }\n\n /**\n * Reinicia componente\n * @private\n */\n _reset() {\n this.component.querySelectorAll('.crumb-list .crumb').forEach((crumb) => {\n if (crumb.classList.contains('menu-mobil')) {\n crumb.remove()\n } else {\n crumb.classList.remove('d-none')\n }\n })\n }\n\n /**\n * Insere elementos\n * @private\n */\n _createCrumb() {\n const crumb = document.createElement('li')\n crumb.classList.add('crumb', 'menu-mobil')\n crumb.setAttribute('data-toggle', 'dropdown')\n\n const button = document.createElement('button')\n button.classList.add('br-button', 'circle')\n\n const span = document.createElement('span')\n span.classList.add('sr-only')\n span.innerHTML = 'Botão Menu'\n\n const folderIcon = document.createElement('i')\n folderIcon.classList.add('fas', 'fa-folder-plus')\n\n const chevronIcon = document.createElement('i')\n chevronIcon.classList.add('icon', 'fas', 'fa-chevron-right')\n\n crumb.appendChild(chevronIcon)\n crumb.appendChild(button)\n button.appendChild(span)\n button.appendChild(folderIcon)\n\n crumb.addEventListener('click', () => {\n let card = this.component.querySelector('.br-card')\n if (card) {\n folderIcon.classList.remove('fas', 'fa-folder-minus')\n folderIcon.classList.add('fas', 'fa-folder-plus')\n this.component.querySelector('.br-card').remove()\n } else {\n folderIcon.classList.remove('fas', 'fa-folder-plus')\n folderIcon.classList.add('fas', 'fa-folder-minus')\n card = this._createList()\n this.component.appendChild(card)\n }\n })\n\n return crumb\n }\n\n /**\n * Cria lista\n * @private\n */\n _createList() {\n const card = document.createElement('div')\n card.classList.add('br-card')\n\n this.component.querySelectorAll('.crumb-list .crumb').forEach((crumb) => {\n if (crumb.classList.contains('d-none')) {\n const item = document.createElement('div')\n item.classList.add('br-item')\n\n if (!crumb.classList.contains('home')) {\n item.appendChild(crumb.querySelector('a').cloneNode(true))\n card.appendChild(item)\n }\n }\n })\n\n return card\n }\n}\n\nexport default BRBreadcrumb\n","import Collapse from '../../partial/js/behavior/collapse'\n\n/** Classe para instanciar um objeto BRCard */\nclass BRCard {\n /**\n * Instancia do componente\n * @property {string} name - Nome do componente em minúsculo\n * @property {object} component - Objeto referenciando a raiz do componente DOM\n * @property {string} id - nome da id do ocmponente\n */\n constructor(name, component, id) {\n this.name = name\n this.component = component\n this.component.setAttribute('id', `card${id}`)\n this._setBehavior()\n }\n\n /**\n * Define o comportamento do componente\n * @private\n */\n _setBehavior() {\n this._setFlipBehavior()\n // this._setExpandBehavior()\n this._setDragBehavior()\n this._setDisableBehavior()\n this._collpaseBehavior()\n }\n\n /**\n * Define o comportamento de comprimir (collapse)\n * @private\n */\n _collpaseBehavior() {\n this.component\n .querySelectorAll('[data-toggle=\"collapse\"]')\n .forEach((trigger) => {\n const config = {\n iconToHide: 'fa-chevron-up',\n iconToShow: 'fa-chevron-down',\n trigger,\n useIcons: true,\n }\n const collapse = new Collapse(config)\n collapse.setBehavior()\n })\n }\n\n /**\n * Desabilita o componente\n * @private\n */\n _setDisableBehavior() {\n if (this.component.classList.contains('disabled')) {\n this.component.setAttribute('aria-hidden', 'true')\n const buttons = this.component.querySelectorAll('button')\n const inputs = this.component.querySelectorAll('input')\n const selects = this.component.querySelectorAll('select')\n const textareas = this.component.querySelectorAll('textarea')\n for (const button of buttons) {\n button.setAttribute('disabled', 'disabled')\n }\n for (const input of inputs) {\n input.setAttribute('disabled', 'disabled')\n }\n for (const select of selects) {\n select.setAttribute('disabled', 'disabled')\n }\n for (const textarea of textareas) {\n textarea.setAttribute('disabled', 'disabled')\n }\n }\n }\n\n /**\n * Define o comportamento de girar (flip)\n * @private\n */\n _setFlipBehavior() {\n for (const flip of this.component.querySelectorAll('button.flip')) {\n flip.addEventListener('click', () => {\n if (this.component.getAttribute('flipped') === 'off') {\n this.component.setAttribute('flipped', 'on')\n } else {\n this.component.setAttribute('flipped', 'off')\n }\n })\n }\n }\n\n /**\n * Define o comportamento de arrastar (drag)\n * @private\n */\n _setDragBehavior() {\n for (const img of this.component.querySelectorAll('img')) {\n img.setAttribute('draggable', 'false')\n }\n for (const link of this.component.querySelectorAll('a')) {\n link.setAttribute('draggable', 'false')\n }\n this.component.addEventListener('dragstart', (event) => {\n event.stopPropagation()\n event.dataTransfer.setData(\n 'text/plain',\n this.component.getAttribute('id')\n )\n event.dropEffect = 'move'\n })\n }\n}\n\nexport default BRCard\n","import Swipe from '../../partial/js/behavior/swipe'\nimport BRStep from '../step/step'\nclass BRCarousel {\n constructor(name, component) {\n /**\n * Instancia um componente carousel\n * @param {string} name - Nome do componente\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n * @property {number} activeStageNum - Número do palco ativo\n * @property {array} DOMStrings - instancia dos elementos internos do componente\n * @property {BRStep} DOMStrings - instancia dos elemento step interno\n */\n this.name = name\n this.component = component\n this.activeStageNum = 0\n // Elementos DOM\n this.DOMstrings = {\n carouselNextBtn: this.component.querySelector('.carousel-btn-next'),\n carouselPages: this.component.querySelectorAll('.carousel-page'),\n carouselPrevBtn: this.component.querySelector('.carousel-btn-prev'),\n carouselStage: this.component.querySelector('.carousel-stage'),\n circular: this.component.hasAttribute('data-circular'),\n step: this.component.querySelector('.br-step'),\n }\n this.step = new BRStep('br-step', this.DOMstrings.step)\n this._setBehavior()\n }\n\n /**\n * Remove os atributos de uma lista de elementos\n * @param {object} elemSet - Lista de elementos\n * @param {string} button - Nome do atributo\n */\n removeAttributes(elemSet, attrName) {\n elemSet.forEach((elem) => {\n elem.removeAttribute(attrName)\n })\n }\n\n /**\n * Retorna o passo ativo\n */\n getActiveStep() {\n return this.step.activeStepNum\n }\n\n /**\n * Define o passo ativo\n * @param {number} activeStepNum - número do passo\n */\n setActiveStep(activeStepNum) {\n this.step.setActiveStep(activeStepNum)\n }\n\n /**\n * Retorna o palco ativo\n */\n getActiveStage() {\n let activeStage\n this.DOMstrings.carouselPages.forEach((stage) => {\n if (stage.hasAttribute('active')) {\n activeStage = stage\n }\n })\n return activeStage\n }\n\n /**\n * Define o palco ativo\n * @param {number} num - número do palco\n */\n setActiveStage(num) {\n // remove active atts from all the stages\n this.removeAttributes(this.DOMstrings.carouselPages, 'active')\n // show active stage\n this.DOMstrings.carouselPages.forEach((stage, index) => {\n // motion efect\n if (index > num) {\n stage.style.left = '100%'\n } else {\n stage.style.left = '-100%'\n }\n // set active attrb\n if (index === num) {\n stage.setAttribute('active', '')\n this.activeStageNum = num\n }\n })\n this.disabledBtns()\n }\n\n /**\n * Desabilita os botões se o carousel não for circular\n */\n disabledBtns() {\n // Disables Carousel Buttons\n if (!this.DOMstrings.circular) {\n if (this.activeStageNum === 0) {\n this.DOMstrings.carouselPrevBtn.setAttribute('disabled', '')\n } else {\n this.DOMstrings.carouselPrevBtn.removeAttribute('disabled')\n }\n if (this.activeStageNum === this.DOMstrings.carouselPages.length - 1) {\n this.DOMstrings.carouselNextBtn.setAttribute('disabled', '')\n } else {\n this.DOMstrings.carouselNextBtn.removeAttribute('disabled')\n }\n }\n }\n\n /**\n * Muda a página ativa incrementalmente - ações de botões e swap\n * @param {number} num - incremento\n */\n shiftPage(num) {\n //find active stage\n const activeStage = this.getActiveStage()\n const PanelsSize = this.DOMstrings.carouselPages.length - 1\n let activeStageNum = Array.from(this.DOMstrings.carouselPages).indexOf(\n activeStage\n )\n // set active step and active stage onclick\n if (num < 0) {\n // Volta o slide\n if (this.DOMstrings.circular) {\n activeStageNum =\n activeStageNum === 0 ? PanelsSize : (activeStageNum -= 1)\n } else {\n activeStageNum -= activeStageNum === 0 ? 0 : 1\n }\n } else {\n // Passar p/ frente o slide\n if (this.DOMstrings.circular) {\n activeStageNum =\n activeStageNum === PanelsSize ? 0 : (activeStageNum += 1)\n } else {\n activeStageNum += activeStageNum === PanelsSize ? 0 : 1\n }\n }\n this.setActiveStep(activeStageNum)\n this.setActiveStage(activeStageNum)\n }\n\n /**\n * Define os comportamentos do componente\n * @private\n */\n _setBehavior() {\n this.DOMstrings.carouselNextBtn.addEventListener('click', () => {\n this.shiftPage(1)\n })\n\n this.DOMstrings.carouselPrevBtn.addEventListener('click', () => {\n this.shiftPage(-1)\n })\n\n this.DOMstrings.step.addEventListener('click', () => {\n this.setActiveStage(this.step.activeStepNum)\n })\n\n // Swipe\n const dispatcher = new Swipe(this.DOMstrings.carouselStage)\n dispatcher.on('SWIPE_LEFT', () => {\n this.shiftPage(1)\n })\n dispatcher.on('SWIPE_RIGHT', () => {\n this.shiftPage(-1)\n })\n this.disabledBtns()\n }\n}\n\nexport default BRCarousel\n","import Checkgroup from '../../partial/js/behavior/checkgroup'\n\n/** Classe para instanciar um objeto BRCheckbox*/\nclass BRCheckbox {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n this._setCheckgroupBehavior()\n }\n\n /**\n * Define comportamentos do checkgroup\n * @private\n */\n _setCheckgroupBehavior() {\n this.component\n .querySelectorAll('input[type=\"checkbox\"][data-parent]')\n .forEach((trigger) => {\n const checkgroup = new Checkgroup(trigger)\n checkgroup.setBehavior()\n })\n }\n}\n\nexport default BRCheckbox\n","/** Classe que representa os dados do cookiebar */\nexport class CookiebarData {\n /**\n * Instancia um objeto de dados do cookiebar. Objeto contém as propriedades contidas no JSON de entrada em uma língua específica\n * @param {string} json - JSON de entrada de dados\n * @param {string} lang - Língua para filtrar o JSON de entrada\n */\n constructor(json, lang) {\n this.PRIORITY_LEVELS = 5\n Object.assign(this, this._filterByLang(json, lang))\n this._setDataCoherenceByPriority(this.PRIORITY_LEVELS)\n }\n\n /**\n * Filtra um JSON pela língua correspondente\n * @param {string} json - Dados no formato JSON (array de objetos)\n * @param {string} lang - Língua para filtrar o array vindo do json\n * @returns Objeto javascript contendo as propriedade vindas do JSON filtradas pela língua\n * @private\n */\n _filterByLang(json, lang) {\n const list = JSON.parse(json)\n const data = list.filter((element) => {\n return element.lang === lang\n })\n if (data.length > 0) {\n // Existe dados na lingua especificada\n return data[0] // Retorna o primeiro. Se existir mais objetos na mesma língua, os demais serão ignorados.\n } else {\n // Não existe dados na lingua especificada\n return list[0] // Retorna o primeiro que encontrar\n }\n }\n\n /**\n * Consolida os dados iniciais baseado em uma hierarquia de prioridades\n * @private\n */\n _setDataCoherenceByPriority() {\n this.selectAll = !this.allOptOut ? true : this.selectAll\n this.cookieGroups.forEach((groupData) => {\n groupData.groupOptOut = !this.allOptOut ? false : groupData.groupOptOut\n groupData.groupSelected =\n this.selectAll || !groupData.groupOptOut\n ? true\n : groupData.groupSelected\n groupData.cookieList.forEach((cookieData) => {\n cookieData.cookieOptOut = !groupData.groupOptOut\n ? false\n : cookieData.cookieOptOut\n cookieData.cookieSelected =\n groupData.groupSelected || !cookieData.cookieOptOut\n ? groupData.groupSelected\n : cookieData.cookieSelected\n })\n })\n this._setIndeterminateState()\n }\n\n /**\n * Controla a configuração do estado indeterminado dos checkboxes\n * @private\n */\n _setIndeterminateState() {\n this._setGroupIndeterminateState()\n this._setAllIndeterminateState()\n }\n\n /**\n * Trata a configuração do estado indeterminado dos checkboxes dos grupos de cookies\n * @private\n */\n _setGroupIndeterminateState() {\n this.cookieGroups.forEach((groupData) => {\n let allChecked = true\n let allUnchecked = true\n\n groupData.cookieList.forEach((cookieData) => {\n cookieData.cookieSelected\n ? (allUnchecked = false)\n : (allChecked = false)\n })\n\n groupData.groupSelected = allChecked ? true : allUnchecked ? false : true\n groupData.groupIndeterminated = allChecked || allUnchecked ? false : true\n })\n }\n\n /**\n * Trata a configuração do estado indeterminado do checkbox geral\n * @private\n */\n _setAllIndeterminateState() {\n let allChecked = true\n let allUnchecked = true\n let indeterminated = false\n this.cookieGroups.forEach((groupData) => {\n groupData.groupSelected ? (allUnchecked = false) : (allChecked = false)\n\n if (groupData.groupIndeterminated) {\n indeterminated = true\n }\n })\n\n this.selectAll = allChecked ? true : allUnchecked ? false : true\n this.allIndeterminated = indeterminated\n ? true\n : allChecked || allUnchecked\n ? false\n : true\n }\n\n /**\n * Calcula a quantidade de cookies selecionados em 1 grupo de cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @returns {number} - Quantidade de cookies selecionados em 1 grupo de cookies\n * @public\n */\n getCookiesCheckedAmount(groupData) {\n let count = 0\n groupData.cookieList.forEach((cookieData) => {\n if (cookieData.cookieSelected) count += 1\n })\n return count\n }\n\n /**\n * Calcula a quantidade total de cookies em 1 grupo de cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @returns {number} - Quantidade total de cookies em 1 grupo de cookies\n * @public\n */\n getCookiesAmount(groupData) {\n let count = 0\n groupData.cookieList.forEach(() => {\n count += 1\n })\n return count\n }\n\n /**\n * Ler um arquivo json local\n * @param {string} path - Caminho para o arquivo\n * @param {function} callback - Função de callback que recebe a conteúdo do arquivo\n * @public\n * @static\n */\n static loadJSON(path, callback) {\n const rawFile = new XMLHttpRequest()\n rawFile.overrideMimeType('application/json')\n rawFile.open('GET', path, true)\n rawFile.onreadystatechange = () => {\n if (rawFile.readyState === 4 && rawFile.status === 200) {\n callback(rawFile.responseText)\n }\n }\n rawFile.send(null)\n }\n}\n","/** Classe para tratamento das labels do cookiebar */\nexport class CookiebarLabels {\n /**\n * Instancia um objeto de labels do cookiebar\n * @param {object} data - Objeto de dados do cookiebar\n */\n constructor(data) {\n this.data = data\n }\n\n /**\n * Trata a label para a informação de atualização\n * @returns {string} - Label para a informação de atualização\n * @public\n */\n setLastUpdateLabel() {\n return this.data.lastUpdateLabel || 'Última atualização'\n }\n\n /**\n * Trata a label para o título da lista de grupos de cookies\n * @returns {string} - Label para o título da lista de grupos de cookies\n * @public\n */\n setCookieGroupsLabel() {\n return this.data.cookieGroupsLabel || 'Classes de cookies'\n }\n\n /**\n * Trata a label para o checkbox geral desselecionado\n * @returns {string} - Label para o checkbox geral desselecionado\n * @public\n */\n setUnselectAllLabel() {\n return this.data.unselectAllLabel || 'Desselecionar tudo'\n }\n\n /**\n * Trata a label para o checkbox geral selecionado\n * @returns {string} - Label para o checkbox geral selecionado\n * @public\n */\n setSelectAllLabel() {\n return this.data.selectAllLabel || 'Selecionar tudo'\n }\n\n /**\n * Trata a label para o checkbox geral\n * @returns {string} - Label para o checkbox geral\n * @public\n */\n setCheckAllLabel() {\n if (this.data.selectAll && !this.data.allIndeterminated) {\n return this.setUnselectAllLabel()\n } else {\n return this.setSelectAllLabel()\n }\n }\n\n /**\n * Trata a label para o checkbox do grupo de cookies desselecionado\n * @returns {string} - Label para o checkbox do grupo de cookies desselecionado\n * @public\n */\n setUnselectAllGroupLabel() {\n return this.data.unselectAllGroupLabel || 'Desselecionar toda classe'\n }\n\n /**\n * Trata a label para o checkbox do grupo de cookies selecionado\n * @returns {string} - Label para o checkbox do grupo de cookies selecionado\n * @public\n */\n setSelectAllGroupLabel() {\n return this.data.selectAllGroupLabel || 'Selecionar toda classe'\n }\n\n /**\n * Trata a label para o checkbox do grupo de cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @returns {string} - Label para checkbox do grupo de cookies\n * @public\n */\n setCheckGroupLabel(groupData) {\n if (groupData.groupSelected && !groupData.groupIndeterminated) {\n return this.setUnselectAllGroupLabel()\n } else {\n return this.setSelectAllGroupLabel()\n }\n }\n\n /**\n * Trata a label para o grupo de cookies 'opt-in'\n * @returns {string} - Label para grupo de cookies 'opt-in'\n * @public\n */\n setAlwaysActiveLabel() {\n return this.data.alwaysActiveLabel || 'Sempre ativo'\n }\n\n /**\n * Trata a label para cookie habilitado\n * @returns {string} - Label para cookie habilitado\n * @publi\n */\n setCheckCookieEnabledLabel() {\n return this.data.onLabel || 'Ligado'\n }\n\n /**\n * Trata a label para cookie desabilitado\n * @returns {string} - Label para cookie desabilitado\n * @public\n */\n setCheckCookieDisabledLabel() {\n return this.data.offLabel || 'Desligado'\n }\n\n /**\n * Trata a label para o nome do cookie\n * @returns {string} - Label para o nome do cookie\n * @public\n */\n setCookieNameLabel() {\n return this.data.cookieNameLabel || 'Cookies'\n }\n\n /**\n * Trata a label para o vencimento do cookie\n * @returns {string} - Label para o vencimento do cookie\n * @public\n */\n setCookieExpiresLabel() {\n return this.data.expiresLabel || 'Vencimento'\n }\n\n /**\n * Trata a label para o domínio do cookie\n * @returns {string} - Label para o domínio do cookie\n * @public\n */\n setCookieDomainLabel() {\n return this.data.domainLabel || 'Domínio'\n }\n\n /**\n * Trata a label para e empresa do cookie\n * @returns {string} - Label para a empresa do cookie\n * @public\n */\n setCookieEnterpriseLabel() {\n return this.data.enterpriseLabel || 'Empresa'\n }\n\n /**\n * Trata a label para a finalidade do cookie\n * @returns {string} - Label para a finalidade do cookie\n * @public\n */\n setCookiePurposeLabel() {\n return this.data.purposeLabel || 'Finalidade'\n }\n\n /**\n * Trata a label para a descrição do cookie\n * @returns {string} - Label para a descrição do cookie\n * @public\n */\n setCookieDescriptionLabel() {\n return this.data.descriptionLabel || 'Descrição'\n }\n\n /**\n * Trata a label para o botão de políticas/definições de cookies\n * @returns {string} - Label para o botão de políticas/definições de cookies\n * @public\n */\n setPoliticsButtonLabel() {\n return this.data.allOptOut\n ? this.data.optOutButton || 'Definir Cookies'\n : this.data.optInButton || 'Ver Política de Cookies'\n }\n\n /**\n * Trata a label para o botão de aceite\n * @returns {string} - Label para o botão de aceite\n * @public\n */\n setAcceptButtonLabel() {\n return this.data.acceptButton || 'Aceitar'\n }\n}\n","import { CookiebarLabels } from './cookiebar-labels'\n\n/** Classe que contém os templates do cookiebar */\nexport class CookiebarTemplates {\n /**\n * Instancia um objeto template com os dados do cookiebar\n * @param {object} data - Objeto de dados do cookiebar\n */\n constructor(data) {\n this.data = data\n this.labels = new CookiebarLabels(this.data)\n }\n\n /**\n * Cria um template para a área de conteúdo global\n * @returns {string} - Elemento DOM que representa a área de conteúdo global\n * @public\n */\n setGlobalContentArea() {\n return `
\n
\n
\n
\n ${this._setIntroductoryContentArea()}\n
\n ${this._setInfoText()}\n ${this._setMainContentArea()}\n ${this._setComplementaryContentArea()}\n
\n
\n ${this._setActionArea()}\n
\n
\n
`\n }\n\n /**\n * Cria um template para a área de conteúdo introdutório\n * @returns {string} - Elemento DOM que representa a área de conteúdo introdutório\n * @private\n */\n _setIntroductoryContentArea() {\n return `
\n ${this._setMainTitle()}\n ${this._setLastUpdate()}\n ${this._setEntryText()}\n
`\n }\n\n /**\n * Cria um template para a área de conteúdo principal\n * @returns {string} - Elemento DOM que representa a área de conteúdo principal\n * @private\n */\n _setMainContentArea() {\n return `
\n ${this._setMainContentHeader()}\n ${this._setCookieGroups()}\n ${\n this.data.noteList && this.data.noteList.length\n ? this._setNotifications()\n : ''\n }\n
`\n }\n\n /**\n * Cria um template para a área de acões\n * @returns {string} - Elemento DOM que representa a área de ações\n * @private\n */\n _setActionArea() {\n return ``\n }\n\n /**\n * Cria um template para o título principal\n * @returns {string} - Elemento DOM que representa o título principal\n * @private\n */\n _setMainTitle() {\n return `
\n
\n
\n

${this.data.mainTitle}

\n
\n
\n ${this._setCloseButton()}\n
\n
\n
`\n }\n\n /**\n * Cria um template para informações sobre atualização\n * @returns {string} - Elemento DOM que representa a informação sobre atualização\n * @private\n */\n _setLastUpdate() {\n return `

${this.labels.setLastUpdateLabel()}: ${\n this.data.lastUpdate\n }

`\n }\n\n /**\n * Cria um template para o texto introdutório\n * @returns {string} - Elemento DOM que representa o texto introdutório\n * @private\n */\n _setEntryText() {\n return `

${this.data.entryText}

`\n }\n\n /**\n * Cria um template para o texto descritivo\n * @returns {string} - Elemento DOM que representa o texto descritivo\n * @private\n */\n _setInfoText() {\n return `

${this.data.infoText}

`\n }\n\n /**\n * Cria um template para o header da área de conteúdo principal\n * @returns {string} - Elemeto DOM que representa o header da área de conteúdo principal\n * @private\n */\n _setMainContentHeader() {\n return `
\n
\n
\n
${this.labels.setCookieGroupsLabel()}
\n
\n
\n ${this.data.allOptOut ? this._setCheckAll() : ''}\n
\n
\n ${this.setAllAlertMessage()}\n
\n
\n
`\n }\n\n /**\n * Cria um template para o grupo de cookies\n * @returns {string} - Elemento DOM que representa os grupos de cookies\n * @private\n */\n _setCookieGroups() {\n let groupTemplates = ''\n this.data.cookieGroups.forEach((groupData, groupIndex) => {\n groupTemplates += `
\n
\n
\n
\n ${this._setGroupName(groupData)}\n
\n
\n ${\n groupData.groupOptOut\n ? this._setCheckGroup(groupData, groupIndex)\n : `\n ${this.labels.setAlwaysActiveLabel()}\n `\n }\n
\n
\n ${this._setGroupButton()}\n
\n
\n ${this.setGroupAlertMessage(groupData)}\n
\n
\n
\n
\n

${this._setGroupDescription(\n groupData\n )}

\n
\n
\n
\n
\n
\n
\n
\n ${this._setCookieInfo(groupData, groupIndex)}\n
\n
\n
\n
`\n })\n return groupTemplates\n }\n\n /**\n * Cria um template para o nome do grupo de cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @returns {string} - Elemento DOM que representa o nome do grupo de cookies\n * @orivate\n */\n _setGroupName(groupData) {\n return `${\n groupData.groupName\n }\n (${\n groupData.groupOptOut\n ? `${this.data.getCookiesCheckedAmount(groupData)} de `\n : ''\n }${this.data.getCookiesAmount(\n groupData\n )})`\n }\n\n /**\n * Cria um template para a descrição do grupo de cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @returns {string} - Elemento DOM que representa a descrição do grupo de cookies\n * @private\n */\n _setGroupDescription(groupData) {\n return `

${groupData.groupText}

`\n }\n\n /**\n * Cria um template para as informações dos cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @param {number} groupIndex - Índice do grupo de cookies\n * @returns {string} - Elemento DOM que representa as informações dos cookies\n * @private\n */\n _setCookieInfo(groupData, groupIndex) {\n let cookieTemplates = ''\n groupData.cookieList.forEach((cookieData, cookieIndex) => {\n cookieTemplates += `
\n
\n
\n
\n ${\n cookieData.cookieOptOut\n ? this._setCheckCookie(\n groupIndex,\n cookieData,\n cookieIndex\n )\n : ''\n }\n
\n
\n ${this.setCookieAlertMessage(cookieData)}\n
\n
\n
\n
\n ${this.labels.setCookieNameLabel()}\n
\n
\n ${cookieData.cookieName}\n
\n
\n
\n
\n ${this.labels.setCookieExpiresLabel()}\n
\n
\n ${cookieData.expires}\n
\n
\n
\n
\n ${this.labels.setCookieDomainLabel()}\n
\n
\n ${cookieData.domain}\n
\n
\n
\n
\n ${this.labels.setCookieEnterpriseLabel()}\n
\n
\n ${cookieData.enterprise}\n
\n
\n
\n
\n ${this.labels.setCookiePurposeLabel()}\n
\n
\n ${cookieData.purpose}\n
\n
\n
\n
\n ${this.labels.setCookieDescriptionLabel()}\n
\n
\n ${cookieData.description}\n
\n
\n
\n
`\n })\n return cookieTemplates\n }\n\n /**\n * Cria um template para a lista de notificações\n * @returns {string} - Elemento DOM que representa a lista de notificações\n * @private\n */\n _setNotifications() {\n return `
\n
\n
\n
\n \n ${this.data.noteTitle}\n
\n
\n ${this._setGroupButton()}\n
\n
\n
\n
\n ${this._setNotificationInfo()}\n
\n
`\n }\n\n /**\n * Cria um template para as informações das notificações\n * @returns {string} - Elemento DOM que representa as informações das notificações\n * @private\n */\n _setNotificationInfo() {\n let notificationTemplates = ''\n this.data.noteList.forEach((notificationData) => {\n notificationTemplates += `
\n
\n
\n

${notificationData.question}

\n

${notificationData.answer}

\n
\n
\n
`\n })\n return notificationTemplates\n }\n\n /**\n * Cria um template para a área de conteúdo complementar\n * @returns {string} - Elemento DOM que representa a área de conteúdo complementar\n * @private\n */\n _setComplementaryContentArea() {\n return `
\n ${this._setLinkInfo()}\n
`\n }\n\n /**\n * Cria um templata para as informações dos links\n * @returns {string} - Elemento DOM que representa as informações dos links\n * @private\n */\n _setLinkInfo() {\n let linkTemplates = ''\n this.data.links.forEach((linkData) => {\n linkTemplates += `
\n
\n \n
\n
`\n })\n return linkTemplates\n }\n\n /**\n * Cria um template pra o botão de políticas de cookies\n * @returns {string} - Elemento DOM que representa o botão de politicas de cookies\n * @private\n */\n _setPoliticsButton() {\n return ``\n }\n\n /**\n * Cria um template pra o botão de aceite\n * @returns {string} - Elemento DOM que representa o botão de aceite\n * @private\n */\n _setAcceptButton() {\n return ``\n }\n /**\n * Cria um template para o botão de fechar\n * @returns {string} - Elemento DOM que represeta o botão de fechar\n * @private\n */\n _setCloseButton() {\n return ``\n }\n\n /**\n * Cria um template para botão de abrir/fechar do brupo de cookies\n * @returns {string} - Elemento DOM que representa o botão de abrir/fechar do grupo de cookies\n * @private\n */\n _setGroupButton() {\n return ``\n }\n\n /**\n * Cria um template para o checkbox de seleção geral\n * @returns {string} - Elemento DOM que representa o checkbox de seleção geral\n * @private\n */\n _setCheckAll() {\n return `
\n \n \n
`\n }\n\n /**\n * Cria um template para o checkbox de seleção do grupo de cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @param {number} groupIndex - Índice do grupo de cookies\n * @returns {string} - Elemento DOM que representa o checkbox de seleção do grupo de cookies\n * @private\n */\n _setCheckGroup(groupData, groupIndex) {\n return `
\n \n \n
`\n }\n\n /**\n * Cria um template para checkbox(switch) de seleção do cookie\n * @param {number} groupIndex - Índice do grupo de cookies\n * @param {object} cookieData - Objeto com dados de 1 cookie\n * @param {number} cookieIndex - Índice do cookie\n * @returns {string} - Elemento DOM que representa o checkbox(switch) de seleção do cookie\n * @private\n */\n _setCheckCookie(groupIndex, cookieData, cookieIndex) {\n return `
\n \n \n \n \n
\n `\n }\n\n /**\n * Cria um template para a mensagem de alerta geral\n * @returns {string} - Elemento DOM que representa a mensagem de alerta geral ou uma string vazia\n * @public\n */\n setAllAlertMessage() {\n return this.data.allAlertMessage\n ? `\n \n ${this.data.allAlertMessage}\n `\n : ''\n }\n\n /**\n * Cria um template para a mensagem de alerta para o grupo de cookies\n * @param {object} groupData - Objeto com dados de 1 grupo de cookies\n * @returns {string} - Elemento DOM que representa a mensagem de alerta para o grupo de cookies\n * @public\n */\n setGroupAlertMessage(groupData) {\n return groupData.groupAlertMessage\n ? `\n \n ${groupData.groupAlertMessage}\n `\n : ''\n }\n\n /**\n * Cria um template para a mensagem de alerta para o cookie\n * @param {object} cookieData - Objeto com dados de 1 cookie\n * @returns {string} - Elemento DOM que representa a mensagem de alerta para o cookie\n * @public\n */\n setCookieAlertMessage(cookieData) {\n return cookieData.alertMessage\n ? `\n \n ${cookieData.alertMessage}\n `\n : ''\n }\n}\n","import Checkgroup from '../../partial/js/behavior/checkgroup'\nimport { CookiebarData } from './cookiebar-data'\nimport { CookiebarTemplates } from './cookiebar-templates'\nimport * as selectors from './selectors'\n\n/** Classe para instanciar um objeto cookiebar */\nexport default class BRCookiebar {\n /**\n * Instancia um objeto cookiebar\n * @param {object} objeto - Objeto para destructuring com as propriedades abaixo\n * @property {string} name - Nome do componente em minúsculo (br-cookiebar)\n * @property {object} component - Objeto referenciando a raiz do componente DOM\n * @property {string} json - JSON de entrada com dados do cookiebar\n * @property {string} lang - Lingua para filtrar o JSON de entrada\n * @property {string} mode - Mode de renderização do cookibar ('default' | 'open')\n * @property {function} callback - Chamada no aceite do cookiebar com o JSON de saída como argumento\n */\n constructor({ name, component, json, lang, mode = 'default', callback }) {\n this.name = name\n this.component = component\n this.data = new CookiebarData(json, lang)\n this.templates = new CookiebarTemplates(this.data)\n this.mode = mode\n this.callback = callback\n this._setUp()\n }\n\n /**\n * Controla a instanciação do cookiebar\n * @private\n */\n _setUp() {\n this._buildCookiebar()\n this._setBehavior()\n this._showCookiebar()\n }\n\n /**\n * Controla a construção do cookiebar com o uso de templates\n * @private\n */\n _buildCookiebar() {\n this.component.innerHTML = this.templates.setGlobalContentArea()\n }\n\n /**\n * Controla o comportamento dos itens interativos do cookiebar\n * @private\n */\n _setBehavior() {\n this._setAcceptButtonBehavior()\n this._setPoliticsButtonBehavior()\n this._setCloseButtonBehavior()\n this._setToggleGroupBehavior()\n this._setCheckboxBehavior()\n this._setSelectionBehavior()\n this._setWindowResizeBehavior()\n }\n\n /**\n * Trata o comportamento do botão de aceite do cookiebar\n * @private\n */\n _setAcceptButtonBehavior() {\n const acceptButton = this.component.querySelector(selectors.ACCEPT_BUTTON)\n\n // Trata o aceite do cookiebar\n acceptButton.addEventListener('click', () => {\n this._hideCookiebar()\n // this._resetCookiebar()\n document.body.style.overflowY = 'auto'\n this.callback(this._setOutputJSON())\n })\n\n // (Navegação por teclado) Mantém o foco no cookiebar quando ele está aberto\n acceptButton.addEventListener('keydown', (event) => {\n if (event.key === 'Tab') {\n if (!this.component.classList.contains('default')) {\n this.component.focus()\n }\n }\n })\n\n this._setActionButtonResponsive(acceptButton)\n }\n\n /**\n * Trata o comportamento do botão de políticas/definições de cookies\n * @private\n */\n _setPoliticsButtonBehavior() {\n this.component\n .querySelectorAll(selectors.POLITICS_BUTTON)\n .forEach((politicsButton) => {\n // Expande o cookiebar\n politicsButton.addEventListener('click', () => {\n politicsButton.classList.add('d-none')\n this.component.classList.remove('default')\n this.component.focus()\n document.body.style.overflowY = 'hidden'\n this._setOpenView()\n })\n\n this._setActionButtonResponsive(politicsButton)\n })\n }\n\n /**\n * Trata o comportamento do botão de fechar do cookiebar no modo open\n * @orivate\n */\n _setCloseButtonBehavior() {\n this.component\n .querySelectorAll(selectors.CLOSE_BUTTON)\n .forEach((closeButton) => {\n // encolhe o cookiebar (volta ao cookiebar default)\n closeButton.addEventListener('click', () => {\n this.component.classList.add('default')\n switch (this.mode) {\n case 'open':\n this._hideCookiebar()\n // this._resetCookiebar()\n default:\n }\n\n this.component\n .querySelector(selectors.POLITICS_BUTTON)\n .classList.remove('d-none')\n document.body.style.overflowY = 'auto'\n\n this._setDefaultView()\n })\n })\n }\n\n /**\n * Trata o redimensionamento da tela\n * @private\n */\n _setWindowResizeBehavior() {\n window.addEventListener('resize', () => {\n if (!this.component.classList.contains('default')) {\n this._setOpenView()\n }\n this.component\n .querySelectorAll(selectors.ACTION_BUTTONS)\n .forEach((button) => {\n this._setActionButtonResponsive(button)\n })\n })\n }\n\n /**\n * Trata a responsividade de um botão de ação baseado na largura da tela\n * @param {object} button - Elemento DOM que representa um botão de ação\n * @private\n */\n _setActionButtonResponsive(button) {\n if (window.matchMedia('(max-width: 574px)').matches) {\n button.classList.add('block')\n }\n if (window.matchMedia('(min-width: 575px)').matches) {\n button.classList.remove('block')\n }\n }\n\n /**\n * Trata a abertura/fechamento do grupo de cookies\n * @private\n */\n _setToggleGroupBehavior() {\n this.component\n .querySelectorAll(\n `${`${selectors.GROUP_BUTTON}, ${selectors.GROUP_NAME}, ${selectors.COOKIES_CHECKED}, ${selectors.GROUP_SIZE}`}`\n )\n .forEach((clickable) => {\n clickable.addEventListener(\n 'click',\n this._handleToggleGroupClick.bind(this)\n )\n })\n }\n\n /**\n * Handler que trata do evento de click no grupo\n * @param {object} event - Objeto Event\n * @private\n */\n _handleToggleGroupClick(event) {\n const element = this._getParentElementByClass(\n event.currentTarget,\n 'br-item'\n )\n if (element.classList.contains('open')) {\n element.classList.remove('open')\n element.nextElementSibling\n .querySelectorAll(selectors.BR_SWITCH)\n .forEach((check) => {\n check.setAttribute('tabindex', -1)\n })\n this._setGroupAttributes(element, 'Expandir')\n this._toggleIcon(element, 'fa-angle-up', 'fa-angle-down')\n } else {\n element.classList.add('open')\n element.nextElementSibling\n .querySelectorAll(selectors.BR_SWITCH)\n .forEach((check) => {\n check.setAttribute('tabindex', 0)\n })\n this._setGroupAttributes(element, 'Retrair')\n this._toggleIcon(element, 'fa-angle-down', 'fa-angle-up')\n this._scrollUp(element)\n }\n }\n\n /**\n * Trata do comportamento do grupo de checkboxes do cookiebar\n * @private\n */\n _setCheckboxBehavior() {\n this.component\n .querySelectorAll(selectors.PARENT_CHECKBOX)\n .forEach((trigger) => {\n this.checkgroupBehavior = new Checkgroup(trigger)\n this.checkgroupBehavior.setBehavior()\n })\n }\n\n /**\n * Trata da seleção dos checkboxes\n * @private\n */\n _setSelectionBehavior() {\n this.component.querySelectorAll(selectors.CHECKBOX).forEach((checkbox) => {\n checkbox.addEventListener('change', this._controlSelection.bind(this))\n })\n }\n\n /**\n * Handler para o evento change na seleção dos checkboxes\n * @param {object} event - Objeto eventDOM\n * @private\n */\n _controlSelection(event) {\n const segment = event.currentTarget.id.split('-')\n switch (segment[1]) {\n case 'all':\n this._setCheckAllBehavior(event.currentTarget)\n break\n case 'group':\n this._setCheckgroupBehavior(event.currentTarget, segment[2])\n break\n case 'cookie':\n this._setCheckCookieBehavior(\n event.currentTarget,\n segment[2],\n segment[3]\n )\n break\n default:\n }\n }\n\n /**\n * Trata a seleção do checkbox geral\n * @param {object} checkbox - Elemento DOM que represeta um checkbox geral\n * @private\n */\n _setCheckAllBehavior(checkbox) {\n this.data.selectAll = checkbox.checked\n this.data.allIndeterminated = checkbox.hasAttribute('indeterminate')\n ? true\n : false\n this._displayBroadAlertMessage()\n }\n\n /**\n * Trata da seleção do checkbox de grupo\n * @param {object} checkbox - Elemento DOM que represta um checkbox de grupo\n * @param {number} groupIndex - Índice do grupo\n * @private\n */\n _setCheckgroupBehavior(checkbox, groupIndex) {\n this.data.cookieGroups[groupIndex].groupSelected = checkbox.checked\n this.data.cookieGroups[groupIndex].groupIndeterminated =\n checkbox.hasAttribute('indeterminate') ? true : false\n this.data.cookieGroups[groupIndex].cookieList.forEach(\n (cookieData, cookieIndex) => {\n if (!cookieData.cookieOptOut) {\n cookieData.cookieSelected = checkbox.checked\n this._displayCookieAlertMessage(groupIndex, cookieIndex)\n }\n }\n )\n this._displayGroupAlertMessage(groupIndex)\n }\n\n /**\n * Trata da seleção do checkbox de cookie\n * @param {object} checkbox - Elemento DOM que represeta um checkbox de cookie\n * @param {number} groupIndex - Índice do grupo\n * @param {number} cookieIndex - Índicd do cookie dentro do grupo\n * @private\n */\n _setCheckCookieBehavior(checkbox, groupIndex, cookieIndex) {\n this.data.cookieGroups[groupIndex].cookieList[cookieIndex].cookieSelected =\n checkbox.checked\n this._displayCookieAlertMessage(groupIndex, cookieIndex)\n }\n\n /**\n * Controla a apresentação da mensagem geral\n * @private\n */\n _displayBroadAlertMessage() {\n this.component\n .querySelectorAll(selectors.BROAD_ALERT)\n .forEach((broadAlert) => {\n if (\n this.data.allAlertMessage &&\n (!this.data.selectAll || this.data.allIndeterminated)\n ) {\n broadAlert.classList.remove('d-none')\n } else {\n broadAlert.classList.add('d-none')\n }\n })\n }\n\n /**\n * Controla a apresentação da mensagem de grupo\n * @param {number} groupIndex - Índice do grupo\n * @private\n */\n _displayGroupAlertMessage(groupIndex) {\n const group = this.component.querySelectorAll(selectors.GROUP_INFO)[\n groupIndex\n ]\n group.querySelectorAll(selectors.GROUP_ALERT).forEach((groupAlert) => {\n if (\n this.data.cookieGroups[groupIndex].groupAlertMessage &&\n (!this.data.cookieGroups[groupIndex].groupSelected ||\n this.data.cookieGroups[groupIndex].groupIndeterminated)\n ) {\n groupAlert.classList.remove('d-none')\n } else {\n groupAlert.classList.add('d-none')\n }\n })\n }\n\n /**\n * Controla a apresentação da mensagem de cookie\n * @param {number} groupIndex - Índice do grupo\n * @param {number} cookieIndex - Índice do cookie dentro do grupo\n */\n _displayCookieAlertMessage(groupIndex, cookieIndex) {\n const group = this.component.querySelectorAll(selectors.GROUP_INFO)[\n groupIndex\n ]\n const cookie = group.nextElementSibling.querySelectorAll(\n selectors.COOKIE_CARD\n )[cookieIndex]\n cookie.querySelectorAll(selectors.COOKIE_ALERT).forEach((cookieAlert) => {\n if (\n this.data.cookieGroups[groupIndex].cookieList[cookieIndex]\n .alertMessage &&\n !this.data.cookieGroups[groupIndex].cookieList[cookieIndex]\n .cookieSelected\n ) {\n cookieAlert.classList.remove('d-none')\n } else {\n cookieAlert.classList.add('d-none')\n }\n })\n }\n\n /**\n * Busca um elemento DOM pai com uma determinada classe\n * @param {object} element - Elemento DOM\n * @param {string} className - Nome de uma classe para busca\n * @returns {object} - Elemento DOM representando que contém uma determinada classe\n * @private\n */\n _getParentElementByClass(element, className) {\n parent = element.parentNode\n while (!parent.classList.contains(className)) {\n parent = parent.parentNode\n }\n return parent\n }\n\n /**\n * Troca a classe do icone\n * @param {object} element - Elemento DOM referente ao icone\n * @param {string} oldIcon - Classe do icone que será retirada\n * @param {string} newIcon - Classe do icone que será incluido\n * @private\n */\n _toggleIcon(element, oldIcon, newIcon) {\n element.querySelectorAll(selectors.BUTTON_ICON).forEach((icon) => {\n icon.classList.remove(oldIcon)\n icon.classList.add(newIcon)\n })\n }\n\n /**\n * Trata a label do atributo title e aria-label\n * @param {object} element - Elemento DOM referente ao grupo\n * @param {string} label - Label para o title e aria-label\n * @private\n */\n _setGroupAttributes(element, label) {\n element\n .querySelectorAll(\n `${`${selectors.GROUP_BUTTON}, ${selectors.GROUP_NAME}, ${selectors.COOKIES_CHECKED}, ${selectors.GROUP_SIZE}`}`\n )\n .forEach((item) => {\n item.setAttribute('title', label)\n item.setAttribute('aria-label', label)\n })\n }\n\n /**\n * Trata a rolagem da tela do grupo de cookies aberto\n * @param {object} element - Elemento DOM que representa a grupo de cookies\n * @private\n */\n _scrollUp(element) {\n setTimeout(() => {\n this.component.querySelectorAll(selectors.WRAPPER).forEach(() => {\n setTimeout(() => {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n })\n }, 150)\n }, 5000)\n })\n }\n\n /**\n * Mostra o cookiebar na tela com foco e no modo escolhido\n * @private\n */\n _showCookiebar() {\n this.component.classList.remove('d-none')\n this.component.focus()\n switch (this.mode) {\n case 'open':\n this.component.classList.remove('default')\n this.component\n .querySelectorAll(selectors.POLITICS_BUTTON)\n .forEach((button) => {\n button.classList.add('d-none')\n })\n document.body.style.overflowY = 'hidden'\n this._setOpenView()\n default:\n }\n }\n\n /**\n * Oculta o cookiebar na tela\n * @private\n */\n _hideCookiebar() {\n this.component.classList.add('d-none')\n }\n\n /**\n * Configura a altura da parte rolável do cookiebar de acordo com a altura da janela\n * @private\n */\n _setOpenView() {\n const wrapper = this.component.querySelector(selectors.WRAPPER)\n const containerFluid = this.component.querySelector(\n selectors.CONTAINER_FLUID\n )\n const modalFooter = this.component.querySelector(selectors.MODAL_FOOTER)\n const padding = window\n .getComputedStyle(containerFluid, null)\n .getPropertyValue('padding-top')\n .match(/\\d+/)\n const height = `${\n window.innerHeight - padding * 2 - modalFooter.offsetHeight\n }px`\n wrapper.style.height = height\n }\n\n /**\n * Configura a altura do cookiebar no modo default\n * @private\n */\n _setDefaultView() {\n this.component.querySelector(selectors.WRAPPER).removeAttribute('style')\n }\n\n /**\n * Cria o JSON de saída do cookiebar\n * @returns {string} - JSON de saída do cookiebar\n * @private\n */\n _setOutputJSON() {\n this.output = {}\n this.output.selectAll = this.data.allIndeterminated\n ? 'indeterminated'\n : this.data.selectAll\n this.output.cookieGroups = []\n this.data.cookieGroups.forEach((groupData) => {\n const cookies = []\n groupData.cookieList.forEach((cookieData) => {\n cookies.push({\n cookieId: cookieData.cookieId,\n cookieSelected: cookieData.cookieSelected,\n })\n })\n this.output.cookieGroups.push({\n cookieList: cookies,\n groupId: groupData.groupId,\n groupSelected: groupData.groupIndeterminated\n ? 'indeterminated'\n : groupData.groupSelected,\n })\n })\n return JSON.stringify(this.output)\n }\n\n static createCookiebar(json, callback) {\n const brCookiebar = document.createElement('div')\n brCookiebar.classList.add('br-cookiebar', 'default', 'd-none')\n brCookiebar.setAttribute('tabindex', 1)\n\n document.body.appendChild(brCookiebar)\n\n const params = {\n callback,\n component: brCookiebar,\n json,\n lang: 'pt-br',\n mode: 'default',\n name: 'br-cookiebar',\n }\n\n return new BRCookiebar(params)\n }\n}\n","/** Constantes representando seletores para o cookiebar */\nexport const POLITICS_BUTTON = '.actions .br-button.secondary'\nexport const ACCEPT_BUTTON = '.actions .br-button.primary'\nexport const ACTION_BUTTONS = `${POLITICS_BUTTON}, ${ACCEPT_BUTTON}`\nexport const CLOSE_BUTTON = '.br-modal-header .br-button.close'\nexport const CONTAINER_FLUID = '.br-modal > .br-card .container-fluid'\nexport const WRAPPER = '.br-modal > .br-card .wrapper'\nexport const MODAL_FOOTER = '.br-modal > .br-card .br-modal-footer'\nexport const GROUP_INFO = '.main-content .group-info'\nexport const COOKIE_CARD = '.main-content .cookie-info .br-card'\nexport const BROAD_ALERT =\n '.header .row:nth-child(1) div:nth-child(3) .feedback'\nexport const GROUP_ALERT = '.row:nth-child(1) div:nth-child(4) .feedback'\nexport const COOKIE_ALERT = '.row:nth-child(1) div:nth-child(2) .feedback'\nexport const BR_CHECKBOX = '.br-checkbox input[type=\"checkbox\"]'\nexport const BR_SWITCH = '.br-switch input[type=\"checkbox\"]'\nexport const CHECKBOX = `${BR_CHECKBOX}, ${BR_SWITCH}`\nexport const PARENT_CHECKBOX = '.main-content .br-checkbox input[data-parent]'\nexport const COOKIES_CHECKED = '.main-content .br-item .cookies-checked'\nexport const GROUP_BUTTON = '.main-content .br-item .br-button'\nexport const GROUP_NAME = '.main-content .br-item .group-name'\nexport const GROUP_SIZE = '.main-content .br-item .group-size'\nexport const BUTTON_ICON = '.br-button i.fas'\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","import flatpickr from 'flatpickr'\nconst Brazilian = require('flatpickr/dist/l10n/pt').default.pt\n\n/** Classe para instanciar um objeto BRDateTimePicker*/\nclass BRDateTimePicker {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n * @param {string} config - atributo de configuração do componente\n * @param {object} language arquivo de linguagem do flatpick por padrão nesse componente vem portugues\n */\n constructor(name, component, config, language = Brazilian) {\n this.name = name\n this.component = component\n this.language = language\n\n this.component.addEventListener('blur', () => {\n if (!isNaN(new Date(this.component.value))) {\n fp.setDate(this.component.value)\n }\n })\n\n this.component.addEventListener('keyup', () => {\n if (!isNaN(new Date(this.component.value))) {\n // if the cursor is at the end of the edit and we have a full sized date, allow the date to immediately change, otherwise just move to the correct month without actually changing it\n if (this.component.selectionStart >= 10)\n fp.setDate(this.component.value)\n else fp.jumpToDate(this.component.value)\n }\n })\n // localization global\n flatpickr.localize(language)\n\n this.configAttribute = this.component.getAttribute('datetimepicker-config')\n\n if (this.configAttribute) {\n // Transforma o atributo em um objeto\n const properties = this.configAttribute.split(',')\n this.obj = []\n properties.forEach((element) => {\n const tup = element.split(':')\n this.obj[tup[0]] = tup[1].replaceAll(\"'\", '').trim() // eslint-disable-line\n\n this.saida = this.obj\n }, this)\n\n this.config = this.obj\n } else {\n this.config = config\n }\n\n this._buildDateTimePicker()\n }\n /**\n * Adiciona máscara de data no input\n * @param {*} elm\n */\n _dateInputMask(elm) {\n elm.setAttribute('maxlength', 10)\n elm.addEventListener('keypress', (e) => {\n if (e.keyCode < 47 || e.keyCode > 57) {\n e.preventDefault()\n }\n\n const len = elm.value.length\n\n if (len !== 1 || len !== 3) {\n if (e.keyCode == 47) {\n e.preventDefault()\n }\n }\n\n if (len === 2) {\n elm.value += '/'\n }\n\n if (len === 5) {\n elm.value += '/'\n }\n })\n }\n /**\n * Adiciona máscara de hora no input\n * @param {*} elm * Dom do elemento input\n */\n _dateTimeInputMask(elm) {\n elm.setAttribute('maxlength', 16)\n elm.addEventListener('keypress', (e) => {\n if (e.keyCode < 47 || e.keyCode > 57) {\n e.preventDefault()\n }\n\n const len = elm.value.length\n\n if (len !== 1 || len !== 3) {\n if (e.keyCode == 47) {\n e.preventDefault()\n }\n }\n switch (len) {\n case 2:\n elm.value += '/'\n break\n case 5:\n elm.value += '/'\n break\n case 10:\n elm.value += ' '\n break\n case 13:\n elm.value += ':'\n break\n\n default:\n break\n }\n })\n }\n /**\n * Coloca máscara com range de data no input\n * @param {*} elm * Dom do elemento input\n */\n _dateRangeInputMask(elm) {\n elm.setAttribute('maxlength', 25)\n elm.addEventListener('keypress', (e) => {\n if (e.keyCode < 47 || e.keyCode > 57) {\n e.preventDefault()\n }\n\n const len = elm.value.length\n\n if (len !== 1 || len !== 3) {\n if (e.keyCode === 47) {\n e.preventDefault()\n }\n }\n this._positionRangeMask(elm, len)\n })\n }\n /**\n * Insere a máscara na Dom\n * @param {*} elm Dom do elemento input\n * @param {*} len Tamanho do elemento inserido\n */\n _positionRangeMask(elm, len) {\n const tamSeparator = this.language.rangeSeparator.length\n const daySeparator = 10 + tamSeparator + 2\n const monthSeparator = 10 + tamSeparator + 5\n elm.setAttribute('maxlength', 20 + tamSeparator)\n\n switch (len) {\n case 2:\n elm.value += '/'\n break\n case 5:\n elm.value += '/'\n break\n case 10:\n elm.value += this.language.rangeSeparator\n break\n case daySeparator:\n elm.value += '/'\n break\n case monthSeparator:\n elm.value += '/'\n break\n\n default:\n break\n }\n }\n /**\n * Insere máscara de hora\n *\n * @param {*} elm dom do elemento input\n */\n _timeInputMask(elm) {\n elm.setAttribute('maxlength', 5)\n elm.addEventListener('keypress', (e) => {\n if (e.keyCode < 47 || e.keyCode > 57) {\n e.preventDefault()\n }\n\n const len = elm.value.length\n\n if (len !== 1 || len !== 3) {\n if (e.keyCode === 47) {\n e.preventDefault()\n }\n }\n\n if (len === 2) {\n elm.value += ':'\n }\n })\n }\n\n /**\n * Formata o componente e monta instância flatpickr\n * @private\n */\n _buildDateTimePicker() {\n let format = 'd/m/Y'\n let time = false\n let noCalendar = false\n\n switch (this.component.getAttribute('data-type')) {\n case 'date':\n format = 'd/m/Y'\n time = false\n noCalendar = false\n this._dateInputMask(this.component.querySelectorAll('input')[0])\n break\n\n case 'time':\n format = 'H:i'\n time = true\n noCalendar = true\n this._timeInputMask(this.component.querySelectorAll('input')[0])\n break\n case 'datetime-local':\n format = 'd/m/Y H:i'\n time = true\n noCalendar = false\n this._dateTimeInputMask(this.component.querySelectorAll('input')[0])\n break\n case 'datetime-range':\n format = 'd/m/Y'\n time = false\n noCalendar = false\n this._dateRangeInputMask(this.component.querySelectorAll('input')[0])\n break\n default:\n format = 'd/m/Y'\n time = false\n noCalendar = false\n if (this.component.getAttribute('data-mode') === 'range') {\n this._dateRangeInputMask(this.component.querySelectorAll('input')[0])\n } else {\n this._dateInputMask(this.component.querySelectorAll('input')[0])\n }\n break\n }\n\n this.config_native = {\n allowInput: true,\n dateFormat: format,\n enableTime: time,\n minuteIncrement: 1,\n wrap: true,\n }\n /**\n * Sobreescreve com os atributos visuais necessarios\n */\n\n this.config_min_flat = {\n disableMobile: 'true',\n mode: this.component.getAttribute('data-mode'),\n nextArrow:\n '',\n noCalendar: noCalendar,\n prevArrow:\n '',\n\n wrap: true,\n }\n\n this.config_flatpick = Object.assign(this.config_native, this.config)\n this.config_flatpick = Object.assign(\n this.config_flatpick,\n this.config_min_flat\n )\n\n this.calendar = flatpickr(\n this.component,\n Object.assign(this.config_native, this.config)\n )\n\n this.calendar.config.onOpen.push(() => {\n document.querySelectorAll('.arrowUp').forEach((element) => {\n element.classList.add('fas', 'fa-chevron-up')\n })\n document.querySelectorAll('.arrowDown').forEach((element) => {\n element.classList.add('fas', 'fa-chevron-down')\n })\n })\n }\n}\n\nexport default BRDateTimePicker\n","/**\n * Classe do componente BRFooter\n */\nclass BRFooter {\n /**\n * Instancia um componente BRFooter\n * @param {string} name - Nome do componente (br-footer)\n * @param {object} component - Objeto que referencia o elemento DOM do componente\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setUp()\n this._setBehavior()\n }\n\n /**\n * Controla a configuração inicial do footer\n */\n _setUp() {\n this.list = this.component.querySelector('.br-list.horizontal')\n }\n\n /**\n * Controla os comportamentos do footer\n * @private\n */\n _setBehavior() {\n this._setCollapseBehavior()\n\n window.onresize = function () {\n if (window.matchMedia('(min-width: 992px)').matches) {\n window.document\n .querySelectorAll('.br-footer .br-list:not(.horizontal)')\n .forEach((trigger) => {\n trigger.style.display = 'block'\n })\n } else {\n window.document\n .querySelectorAll('.br-footer .br-list:not(.horizontal)')\n .forEach((trigger) => {\n trigger.style.display = 'none'\n })\n\n window.document\n .querySelectorAll('.br-footer i')\n .forEach((iconComponent) => {\n iconComponent.classList.remove('fa-angle-up')\n iconComponent.classList.add('fa-angle-down')\n })\n }\n }\n }\n\n /**\n * Trata do comportamento de collapse do Footer\n * @private\n */\n _setCollapseBehavior() {\n this.britems = []\n if (this.list) {\n this.list.querySelectorAll('.br-list').forEach((trigger) => {\n if (window.matchMedia('(max-width: 992px)').matches) {\n trigger.style.display = 'none'\n }\n })\n\n this.list.querySelectorAll('.br-item').forEach((trigger) => {\n trigger.addEventListener('click', (e) => {\n if (window.matchMedia('(max-width: 992px)').matches) {\n this._showList(e)\n }\n })\n this.britems.push(trigger)\n })\n }\n }\n\n /**\n * Controla a abertura e fachamento da lista\n * @param {object} e - Objeto Event\n * @private\n */\n _showList(e) {\n parent = e.target.parentElement\n\n parent = parent.classList.contains('col-2')\n ? e.target.parentElement\n : e.target.parentElement.parentElement\n parent = parent.classList.contains('col-2')\n ? parent\n : e.target.parentElement.parentElement.parentElement\n // debugger\n this._closeAllColumns(parent)\n\n parent.querySelectorAll('.br-list ').forEach((trigger) => {\n trigger.style.display =\n trigger.style.display === 'block' ? 'none' : 'block'\n\n const iconComponent = parent.querySelector('i')\n\n trigger.style.display === 'block'\n ? this._iconAngleUP(iconComponent)\n : this._iconAngleDOWN(iconComponent)\n })\n }\n\n /**\n * Fecha todas colunas do Footer\n */\n _closeAllColumns(target) {\n this.component\n .querySelectorAll('.br-list:not(.horizontal)')\n .forEach((trigger) => {\n if (target !== trigger.parentElement) {\n trigger.style.display = 'none'\n this.component\n .querySelectorAll('.header i')\n .forEach((iconComponent) => {\n this._iconAngleDOWN(iconComponent)\n })\n }\n })\n }\n\n /**\n *Inclui ícone 'fa-angle-up'\n * @param {objetc} iconComponent - Elemento DOM que representa um ícone\n * @private\n */\n _iconAngleUP(iconComponent) {\n iconComponent.classList.remove('fa-angle-down')\n iconComponent.classList.add('fa-angle-up')\n }\n\n /**\n * Inclui ícone 'fa-angle-down'\n * @param {object} iconComponent - Elemento DOM que representa um ícone\n * @private\n */\n _iconAngleDOWN(iconComponent) {\n iconComponent.classList.remove('fa-angle-up')\n iconComponent.classList.add('fa-angle-down')\n }\n}\n\nexport default BRFooter\n","import Tooltip from '../../partial/js/behavior/tooltip'\n\n/** Classe para instanciar um objeto BRHeader*/\nclass BRHeader {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this.componentSearch = this.component.querySelector('.header-search')\n this.componentSearchInput = this.component.querySelector(\n '.header-search input'\n )\n this.componentSearchTrigger = this.component.querySelector(\n '[data-toggle=\"search\"]'\n )\n this.componentSearchDismiss = this.component.querySelector(\n '[data-dismiss=\"search\"]'\n )\n this.hideDrop = null\n this.menuTrigger = this.component.querySelector(\n '[data-target=\"#main-navigation\"]'\n )\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n this._setLogoutBehavior()\n this._setSearchBehaviors()\n this._setKeyboardBehaviors()\n this._setDropdownBehavior()\n this._setSticky()\n }\n\n /**\n * Define comportamentos de login\n * @private\n */\n _setLoginBehavior() {\n for (const login of this.component.querySelectorAll(\n '[data-trigger=\"login\"]'\n )) {\n login.addEventListener('click', () => {\n const loginParent = login.closest('.header-login')\n loginParent.querySelector('.header-sign-in').classList.add('d-none')\n loginParent.querySelector('.header-avatar').classList.remove('d-none')\n })\n }\n }\n\n /**\n * Define comportamentos de logout\n * @private\n */\n _setLogoutBehavior() {\n for (const logout of this.component.querySelectorAll(\n '[data-trigger=\"logout\"]'\n )) {\n logout.addEventListener('click', () => {\n const logoutParent = logout.closest('.header-login')\n logoutParent.querySelector('.avatar').classList.remove('show')\n logoutParent\n .querySelector('[data-toggle=\"dropdown\"]')\n .classList.remove('active')\n logoutParent.querySelector('.header-sign-in').classList.remove('d-none')\n logoutParent.querySelector('.header-avatar').classList.add('d-none')\n })\n }\n }\n\n /**\n * Define comportamentos de busca\n * @private\n */\n _setSearchBehaviors() {\n // Abrir busca\n if (this.componentSearchTrigger) {\n this.componentSearchTrigger.addEventListener('focus', () => {\n this._cleanDropDownHeader()\n })\n this.componentSearchTrigger.addEventListener('click', () => {\n this._openSearch()\n })\n }\n\n // Fechar busca\n if (this.componentSearchDismiss) {\n this.componentSearchDismiss.addEventListener('click', () => {\n this._closeSearch()\n })\n }\n }\n\n /**\n * Define comportamentos do teclado\n * @private\n */\n _setKeyboardBehaviors() {\n if (this.componentSearchInput) {\n this.componentSearchInput.addEventListener('keydown', (event) => {\n switch (event.keyCode) {\n // Tecla ESC\n case 27:\n this._closeSearch()\n break\n default:\n break\n }\n })\n }\n for (const trigger of this.component.querySelectorAll(\n '.dropdown [data-toggle=\"dropdown\"]'\n )) {\n trigger.addEventListener('keydown', (event) => {\n switch (event.keyCode) {\n // Tecla ESC\n case 32:\n if (event.target.parentNode.classList.contains('show')) {\n event.target.parentNode.click()\n event.target.parentNode.classList.remove('show')\n event.target.classList.remove('active')\n event.stopPropagation()\n }\n break\n default:\n break\n }\n })\n }\n }\n\n /**\n * Visualização da busca\n * @private\n */\n _openSearch() {\n if (this.componentSearch) {\n this.componentSearch.classList.add('active')\n this.componentSearch.querySelector('input').focus()\n }\n }\n\n /**\n * Esconde a busca\n * @private\n */\n _closeSearch() {\n if (this.componentSearch) {\n this.componentSearch.classList.remove('active')\n //this.componentSearchTrigger.focus()\n this._nextFocusElement().focus()\n }\n }\n\n /**\n * Exibe notificação\n * @param {event} event - referencia ao evento\n */\n handleEvent(event) {\n \n const notificationElement = this.component.querySelector('.br-notification')\n\n if (notificationElement && !notificationElement.contains(event.target)) {\n if (this.activateTr !== event.target.parentNode) {\n this._cleanDropDownHeaderRef(this.component)\n }\n }\n }\n\n /**\n * Define comportamentos do dropdown\n * @private\n */\n _setDropdownBehavior() {\n // TODO: Trocar o código abaixo pelo utilitário dropdown\n this.cleaned = false\n let hideDrop\n this.activateTr = 'teste'\n\n for (const trigger of this.component.querySelectorAll(\n '.dropdown [data-toggle=\"dropdown\"]'\n )) {\n // eslint-disable-next-line no-loop-func\n trigger.addEventListener('click', (event) => {\n this._headerTooltip()\n clearTimeout(hideDrop)\n\n this.activateTr = trigger\n document.addEventListener('mousedown', this, false)\n event.stopImmediatePropagation()\n // Toggle de abrir / fechar\n const hasShow = trigger.classList.contains('active')\n\n if (hasShow) {\n trigger.classList.remove('active')\n trigger.closest('.dropdown').classList.remove('show')\n } else {\n this._cleanDropDownHeader()\n trigger.classList.add('active')\n trigger.closest('.dropdown').classList.add('show')\n\n // Evita que o componente feche o drop ao navegar pelo teclado\n const next = this._nextFocusElement()\n next.addEventListener('focus', () => {\n clearTimeout(hideDrop)\n })\n }\n event.stopPropagation()\n return ''\n })\n\n // Faz o drop fechar ao clicar fora\n // eslint-disable-next-line no-loop-func\n }\n this.menuTrigger.addEventListener('focus', () => {\n this._cleanDropDownHeader()\n })\n }\n\n /**\n * Define comportamentos do tooltip\n * @private\n */\n _headerTooltip() {\n if (this.TooltipExampleList) {\n this.TooltipExampleList.forEach((tooltipElem) => {\n tooltipElem.component.remove()\n tooltipElem.popperInstance.destroy()\n })\n }\n this.TooltipExampleList = []\n\n this.component\n .querySelectorAll('.notification-tooltip')\n .forEach((TooltipExample) => {\n const texttooltip = TooltipExample.getAttribute('data-tooltip-text')\n const config = {\n activator: TooltipExample,\n placement: 'top',\n textTooltip: texttooltip,\n }\n const x = new Tooltip(config)\n\n this.TooltipExampleList.push(x)\n })\n }\n\n /**\n * Limpa referencias do dorpdown\n * @private\n * @param {object} ref - Referência ao componente header\n */\n _cleanDropDownHeaderRef(ref) {\n if (this.cleaned === false) {\n for (const trigger of ref.querySelectorAll('.dropdown.show')) {\n trigger.classList.remove('show')\n trigger.parentNode.classList.remove('show')\n for (const button of ref.querySelectorAll('.br-button')) {\n button.classList.remove('active')\n }\n }\n }\n this.cleaned = false\n }\n\n /**\n * Limpa referencias do dorpdown\n * @private\n */\n _cleanDropDownHeader() {\n this._cleanDropDownHeaderRef(this.component)\n }\n\n /**\n * Define modo sticky ao header\n * @private\n */\n _setSticky() {\n if (this.component.hasAttribute('data-sticky')) {\n window.onscroll = () => {\n if (window.pageYOffset > this.component.offsetHeight) {\n this.component.classList.add('sticky', 'compact')\n } else {\n this.component.classList.remove('sticky', 'compact')\n }\n }\n }\n }\n\n /**\n * Foca no próximo elmento de ação\n * @private\n */\n _nextFocusElement() {\n //lista de elementos de ação\n const focussableElements =\n 'a:not([disabled]), button:not([disabled]), input[type=text]:not([disabled]), [tabindex]:not([disabled]):not([tabindex=\"-1\"])'\n if (document.activeElement) {\n const focussable = Array.prototype.filter.call(\n document.body.querySelectorAll(focussableElements),\n (element) => {\n //check for visibility while always include the current activeElement\n return (\n element.offsetWidth > 0 ||\n element.offsetHeight > 0 ||\n element === document.activeElement\n )\n }\n )\n const index = focussable.indexOf(document.activeElement)\n if (index > -1) {\n const nextElement = focussable[index + 1] || focussable[0]\n //nextElement.focus();\n return nextElement\n }\n }\n return null\n }\n}\n\nexport default BRHeader\n","/** Classe para instanciar um objeto BRInput*/\nclass BRInput {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._currentFocus = -1\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n this._setPasswordViewBehavior()\n this._setAutocompleteBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setPasswordViewBehavior() {\n for (const inputPassword of this.component.querySelectorAll(\n 'input[type=\"password\"]'\n )) {\n if (!inputPassword.disabled) {\n for (const buttonIcon of inputPassword.parentNode.querySelectorAll(\n '.br-button'\n )) {\n buttonIcon.addEventListener(\n 'click',\n (event) => {\n this._toggleShowPassword(event)\n },\n false\n )\n }\n }\n }\n }\n\n /**\n * Define comportamentos do componente\n * @private\n * @param {event} event - referência ao elemento que dispara a ação\n */\n _toggleShowPassword(event) {\n for (const icon of event.currentTarget.querySelectorAll('.fas')) {\n if (icon.classList.contains('fa-eye')) {\n icon.classList.remove('fa-eye')\n icon.classList.add('fa-eye-slash')\n for (const input of this.component.querySelectorAll(\n 'input[type=\"password\"]'\n )) {\n input.setAttribute('type', 'text')\n }\n } else if (icon.classList.contains('fa-eye-slash')) {\n icon.classList.remove('fa-eye-slash')\n icon.classList.add('fa-eye')\n for (const input of this.component.querySelectorAll(\n 'input[type=\"text\"]'\n )) {\n input.setAttribute('type', 'password')\n }\n }\n }\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setAutocompleteBehavior() {\n for (const inputAutocomplete of this.component.querySelectorAll(\n 'input.search-autocomplete'\n )) {\n inputAutocomplete.addEventListener(\n 'input',\n (event) => {\n this._clearSearchItems()\n this._buildSearchItems(event.currentTarget)\n },\n false\n )\n inputAutocomplete.addEventListener(\n 'keydown',\n (event) => {\n this._handleArrowKeys(event)\n },\n false\n )\n }\n }\n\n /**\n * Monta os items de busca para o elemento input\n * @private\n * @param {object} element - referencia ao elemento input\n */\n _buildSearchItems(element) {\n const searchList = window.document.createElement('div')\n searchList.setAttribute('class', 'search-items')\n this.component.appendChild(searchList)\n if (element.value !== '') {\n for (const data of this.dataList) {\n if (\n data.substr(0, element.value.length).toUpperCase() ===\n element.value.toUpperCase()\n ) {\n const item = window.document.createElement('div')\n item.innerHTML = `${data.substr(\n 0,\n element.value.length\n )}`\n item.innerHTML += data.substr(element.value.length)\n item.innerHTML += ``\n item.addEventListener(\n 'click',\n (event) => {\n for (const input of event.currentTarget.querySelectorAll(\n 'input[type=\"hidden\"]'\n )) {\n element.value = input.value\n }\n this._clearSearchItems()\n },\n false\n )\n searchList.appendChild(item)\n }\n }\n } else {\n this._clearSearchItems()\n }\n }\n\n /**\n * Limpa elementos da busca\n * @private\n */\n _clearSearchItems() {\n for (const searchItems of this.component.querySelectorAll(\n '.search-items'\n )) {\n for (const item of searchItems.querySelectorAll('div')) {\n searchItems.removeChild(item)\n }\n this.component.removeChild(searchItems)\n }\n }\n\n /**\n * Define comportamentos do teclado\n * @private\n * @param {event} event - referência ao elemento que dispara a ação do teclado\n */\n _handleArrowKeys(event) {\n switch (event.keyCode) {\n case 13:\n if (this._currentFocus > -1) {\n event.preventDefault()\n for (const searchItems of this.component.querySelectorAll(\n '.search-items'\n )) {\n for (const itemActive of searchItems.querySelectorAll(\n 'div.is-active'\n )) {\n itemActive.click()\n }\n }\n this._currentFocus = -1\n }\n break\n case 38:\n if (this._currentFocus > 0) {\n this._currentFocus -= 1\n }\n this._switchFocus()\n break\n case 40:\n for (const searchItems of this.component.querySelectorAll(\n '.search-items'\n )) {\n if (\n this._currentFocus <\n searchItems.querySelectorAll('div').length - 1\n ) {\n this._currentFocus += 1\n }\n }\n this._switchFocus()\n break\n default:\n break\n }\n }\n\n /**\n * Muda o foco do item de busca\n * @private\n */\n _switchFocus() {\n for (const searchItems of this.component.querySelectorAll(\n '.search-items'\n )) {\n for (const [index, item] of searchItems\n .querySelectorAll('div')\n .entries()) {\n if (index === this._currentFocus) {\n item.classList.add('is-active')\n }\n if (index !== this._currentFocus) {\n item.classList.remove('is-active')\n }\n }\n }\n }\n\n /**\n * Preenche lista de dados\n * @private\n * @param {string[]} dataList - Lista de dados\n */\n setAutocompleteData(dataList) {\n this.dataList = dataList\n }\n}\n\nexport default BRInput\n","/** Classe para instanciar um objeto BRItem*/\n\nclass BRItem {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n this._setCheckboxSelection()\n this._setRadioSelection()\n }\n\n /**\n * Define comportamentos do checkbox\n * @private\n */\n _setCheckboxSelection() {\n for (const checkbox of this.component.querySelectorAll(\n '.br-checkbox input[type=\"checkbox\"]'\n )) {\n if (checkbox.checked) {\n this.component.classList.add('selected')\n }\n checkbox.addEventListener('click', (event) => {\n if (event.currentTarget.checked) {\n this.component.classList.add('selected')\n } else {\n this.component.classList.remove('selected')\n }\n })\n }\n }\n\n /**\n * Define comportamentos do radio\n * @private\n */\n _setRadioSelection() {\n for (const radio of this.component.querySelectorAll(\n '.br-radio input[type=\"radio\"]'\n )) {\n if (radio.checked) {\n radio.setAttribute('checked', '')\n this.component.classList.add('selected')\n }\n radio.addEventListener('click', (event) => {\n for (const item of this.component.parentElement.querySelectorAll(\n '.br-item'\n )) {\n for (const radioItem of item.querySelectorAll(\n '.br-radio input[type=\"radio\"]'\n )) {\n if (radioItem === event.currentTarget) {\n radioItem.setAttribute('checked', '')\n item.classList.add('selected')\n } else {\n radioItem.removeAttribute('checked')\n item.classList.remove('selected')\n }\n }\n }\n })\n }\n }\n}\n\nexport default BRItem\n","import Collapse from '../../partial/js/behavior/collapse'\n/**\n * Classe do componente BRList\n */\nclass BRList {\n /**\n * Instancia um componente BRList\n * @param {string} name - Nome do componente (br-list)\n * @param {object} component - Objeto que referencia o elemento DOM do componente\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Controla os comportamentos da list\n * @private\n */\n _setBehavior() {\n this._setCollapseBehavior()\n }\n\n /**\n * Trata do comportamento de collapse da list\n * @private\n */\n _setCollapseBehavior() {\n // data-toggle=\"data-toggle\"\n // debugger\n\n // this.component.querySelectorAll('.br-list').forEach((trigger) => {\n // // trigger.style.display = 'none'\n // })\n this.component\n .querySelectorAll('[data-toggle=\"collapse\"]')\n .forEach((trigger) => {\n const config = {\n iconToHide: 'fa-chevron-up',\n iconToShow: 'fa-chevron-down',\n trigger,\n useIcons: true,\n }\n const collapse = new Collapse(config)\n collapse.setBehavior()\n })\n }\n}\nexport default BRList\n","/** Classe para instanciar um objeto BRMenu*/\nclass BRMenu {\n\t/**\n\t * Instancia do objeto\n\t * @param {string} name - Nome do componente em minúsculo\n\t * @param {object} component - Objeto referenciando a raiz do componente DOM\n\t */\n\tconstructor(name, component) {\n\t\tthis.name = name\n\t\tthis.component = component\n\t\tthis.id = this.component.id\n\t\tthis.breakpoints = this.component.dataset.breakpoints\n\t\t\t? this.component.dataset.breakpoints.split(' ')\n\t\t\t: ['col-sm-4', 'col-lg-3']\n\t\tthis.pushShadow = 'shadow-lg-right'\n\t\tthis.trigger = document.querySelector(`[data-target=\"#${this.id}\"]`)\n\t\tthis.contextual = this.component.querySelector(\n\t\t\t'[data-toggle=\"contextual\"]'\n\t\t)\n\t\tthis.dismiss = this.component.querySelectorAll('[data-dismiss=\"menu\"]')\n\t\tthis.scrim = this.component.querySelector('.menu-scrim')\n\t\tthis.componentFolders = this.component.querySelectorAll('.menu-folder')\n\t\tthis.componentItems = this.component.querySelectorAll('.menu-item')\n\t\tthis._setBehavior()\n\t}\n\n\t/**\n\t * Define comportamentos do componente\n\t * @private\n\t */\n\t_setBehavior() {\n\t\tthis._toggleMenu()\n\t\tthis._setDropMenu()\n\t\tthis._setSideMenu()\n\t\tthis._setKeyboardBehaviors()\n\t\tthis._setBreakpoints()\n\t\tthis._setView()\n\t\twindow.addEventListener('resize', () => {\n\t\t\tthis._setView()\n\t\t})\n\t}\n\n\t/**\n\t * Define visual do componente\n\t * @private\n\t */\n\t_setView() {\n\t\tconst template = document.querySelector('body')\n\t\tconst menuContextual = document.querySelector('.menu-trigger')\n\t\t// const panel = document.querySelector('.menu-panel')\n\t\tif (menuContextual && window.innerWidth < 992) {\n\t\t\ttemplate.classList.add('mb-5')\n\t\t} else {\n\t\t\ttemplate.classList.remove('mb-5')\n\t\t}\n\t}\n\n\t/**\n\t * Define breakpoints do menu\n\t * @private\n\t */\n\t_setBreakpoints() {\n\t\tif (!this.component.classList.contains('push') && !this.contextual) {\n\t\t\tthis.component\n\t\t\t\t.querySelector('.menu-panel')\n\t\t\t\t.classList.add(...this.breakpoints)\n\t\t}\n\t}\n\n\t/**\n\t * Define ações do teclado\n\t * @private\n\t */\n\t_setKeyboardBehaviors() {\n\t\t// Fechar com tecla ESC\n\t\tthis.component.addEventListener('keyup', (event) => {\n\t\t\tswitch (event.code) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tthis._closeMenu()\n\t\t\t\tdefault:\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t})\n\t\t// Fechar com Tab fora do menu\n\t\tif (this.scrim) {\n\t\t\tthis.scrim.addEventListener('keyup', () => {\n\t\t\t\treturn this._closeMenu()\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Define comportamentos de abrir/fechar menu\n\t * @private\n\t */\n\t_toggleMenu() {\n\t\tconst trigger = this.contextual ? this.contextual : this.trigger\n\t\t// Clicar no trigger\n\t\tif (trigger) {\n\t\t\ttrigger.addEventListener('click', () => {\n\t\t\t\t// Fechar Menu caso esteja aberto\n\t\t\t\tif (this.component.classList.contains('active')) {\n\t\t\t\t\tthis._closeMenu()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// Abre Menu\n\t\t\t\tthis._openMenu()\n\t\t\t\tthis._focusNextElement()\n\t\t\t})\n\t\t}\n\t\t// Clicar no dismiss\n\t\tfor (const close of this.dismiss) {\n\t\t\tclose.addEventListener('click', () => {\n\t\t\t\treturn this._closeMenu()\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * Define visual do menu aberto\n\t * @private\n\t */\n\t_openMenu() {\n\t\tthis.component.classList.add('active')\n\t\tif (this.component.classList.contains('push')) {\n\t\t\tthis.component.classList.add(...this.breakpoints, 'px-0')\n\t\t}\n\t\tthis.component.focus()\n\t}\n\n\t/**\n\t * Define visual do menu fechado\n\t * @private\n\t */\n\t_closeMenu() {\n\t\tthis.component.classList.remove('active')\n\t\tif (this.component.classList.contains('push')) {\n\t\t\tthis.component.classList.remove(...this.breakpoints, 'px-0')\n\t\t}\n\t\tthis._focusNextElement()\n\t}\n\n\t/**\n\t * Configura Drop Menu para filho imediato de \".menu-folder\"\n\t * @private\n\t */\n\t_setDropMenu() {\n\t\tfor (const item of this.component.querySelectorAll(\n\t\t\t'.menu-folder > a.menu-item'\n\t\t)) {\n\t\t\t// Inclui ícone de Drop Menu\n\t\t\tthis._createIcon(item, 'fa-chevron-down')\n\t\t\t// Configura como Drop Menu\n\t\t\titem.parentNode.classList.add('drop-menu')\n\t\t\t// Inicializa Drop Menu\n\t\t\tthis._toggleDropMenu(item)\n\t\t}\n\t}\n\n\t/**\n\t * Foca no próximo elemento\n\t * @private\n\t */\n\t_focusNextElement() {\n\t\t//lista de elementos que desejamos focar\n\t\tconst focussableElements =\n\t\t\t'a:not([disabled]), button:not([disabled]), input[type=text]:not([disabled]), [tabindex]:not([disabled]):not([tabindex=\"-1\"])'\n\t\tif (document.activeElement) {\n\t\t\tconst focussable = Array.prototype.filter.call(\n\t\t\t\tdocument.body.querySelectorAll(focussableElements),\n\t\t\t\t(element) => {\n\t\t\t\t\t// testa a visibilidade e inclui o elemento ativo\n\t\t\t\t\treturn (\n\t\t\t\t\t\telement.offsetWidth > 0 ||\n\t\t\t\t\t\telement.offsetHeight > 0 ||\n\t\t\t\t\t\telement === document.activeElement\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t)\n\t\t\tconst index = focussable.indexOf(document.activeElement)\n\t\t\tif (index > -1) {\n\t\t\t\tconst nextElement = focussable[index + 1] || focussable[0]\n\t\t\t\tnextElement.focus()\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Configura Side Menu para quem não for filho imediato de \".menu-folder\"\n\t * @private\n\t */\n\t_setSideMenu() {\n\t\tfor (const ul of this.component.querySelectorAll('a.menu-item + ul')) {\n\t\t\tif (!ul.parentNode.classList.contains('menu-folder')) {\n\t\t\t\t// Inclui ícone de Side Menu\n\t\t\t\tthis._createIcon(ul.previousElementSibling, 'fa-angle-right')\n\t\t\t\t// Configura como Side Menu\n\t\t\t\tul.parentNode.classList.add('side-menu')\n\t\t\t\t// Inicializa Side Menu\n\t\t\t\tthis._toggleSideMenu(ul.previousElementSibling)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Muda estado do Drop Menu - aberto/fechado\n\t * @private\n\t * @param {object} element - referência ao Objeto que fará a ação\n\t */\n\t_toggleDropMenu(element) {\n\t\t// Verifica se o elemento já possui click listener através de um atributo especial\n\t\tif (!element.hasAttribute('data-click-listener')) {\n\t\t\telement.addEventListener('click', () => {\n\t\t\t\t// Fecha Drop Menu caso esteja aberto\n\t\t\t\tif (element.parentNode.classList.contains('active')) {\n\t\t\t\t\telement.parentNode.classList.remove('active')\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// Abre Drop Menu\n\t\t\t\telement.parentNode.classList.add('active')\n\t\t\t})\n\t\t\t// Adiciona atributo especial para indicar que o elemento já possui click listener\n\t\t\telement.setAttribute('data-click-listener', 'true')\n\t\t}\n\t}\n\n\t/**\n\t * Muda estado do Side Menu - aberto/fechado\n\t * @private\n\t * @param {object} element - referência ao Objeto que fará a ação\n\t */\n\t_toggleSideMenu(element) {\n\t\t// Verifica se o elemento já possui click listener através de um atributo especial\n\t\tif (!element.hasAttribute('data-click-listener')) {\n\t\t\telement.addEventListener('click', () => {\n\t\t\t\t// Esconde todos os itens\n\t\t\t\tthis._hideItems(element)\n\n\t\t\t\t// Mostra itens do Side Menu ativo\n\t\t\t\tthis._showItems(element.parentNode)\n\n\t\t\t\t// Fecha Side Menu caso esteja aberto\n\t\t\t\tif (element.parentNode.classList.contains('active')) {\n\t\t\t\t\tthis._closeSideMenu(element)\n\t\t\t\t\telement.focus()\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// Abre Side Menu\n\t\t\t\telement.parentNode.classList.add('active')\n\t\t\t\telement.focus()\n\t\t\t})\n\t\t\t// Adiciona atributo especial para indicar que o elemento já possui click listener\n\t\t\telement.setAttribute('data-click-listener', 'true')\n\t\t}\n\t}\n\n\t/**\n\t * Fecha Side Menu\n\t * @private\n\t * @param {object} element - referência ao Objeto que fará a ação\n\t */\n\t_closeSideMenu(element) {\n\t\telement.parentNode.classList.remove('active')\n\t\t// Verifica se existe Side Menu anterior, caso contrário mostra todos os itens de volta\n\t\tconst parentFolder = element.parentNode.closest('.side-menu.active')\n\t\t\t? element.parentNode.closest('.side-menu.active')\n\t\t\t: element.closest('.menu-body')\n\t\tthis._showItems(parentFolder)\n\t}\n\n\t/**\n\t * Esconde os elementos proximos a referencia\n\t * @private\n\t * @param {object} element - referencia ao Objeto que fará a ação\n\t */\n\t_hideItems(element) {\n\t\tfor (const item of element\n\t\t\t.closest('.menu-body')\n\t\t\t.querySelectorAll('.menu-item')) {\n\t\t\titem.setAttribute('hidden', '')\n\t\t}\n\t}\n\n\t/**\n\t * Mostra os elementos proximos a referencia\n\t * @private\n\t * @param {object} element - referência ao Objeto que fará a ação\n\t */\n\t_showItems(element) {\n\t\tfor (const item of element.querySelectorAll('.menu-item')) {\n\t\t\titem.removeAttribute('hidden')\n\t\t}\n\t}\n\n\t/**\n\t * Cria icone filho a referencia\n\t * @private\n\t * @param {object} element - referência ao Objeto pai\n\t * @param {string} icon - nome da classe font awesome do ícone\n\t */\n\t_createIcon(element, icon) {\n\t\t// Verifica se já existe container para o ícone\n\t\tif (!element.querySelectorAll('span.support').length) {\n\t\t\tconst menuIconContainer = document.createElement('span')\n\t\t\tmenuIconContainer.classList.add('support')\n\n\t\t\tconst menuIcon = document.createElement('i')\n\t\t\tmenuIcon.classList.add('fas')\n\t\t\tmenuIcon.classList.add(icon)\n\t\t\tmenuIcon.setAttribute('aria-hidden', 'true')\n\n\t\t\tmenuIconContainer.appendChild(menuIcon)\n\t\t\telement.appendChild(menuIconContainer)\n\t\t}\n\t}\n}\n\nexport default BRMenu\n","/** Classe para instanciar um objeto BRAlert */\nclass BRAlert {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n for (const button of this.component.querySelectorAll(\n '.br-message .close'\n )) {\n button.addEventListener('click', () => {\n this._dismiss(this.component)\n })\n }\n }\n\n /**\n * Desvincula a instancia do objeto\n * @private\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n _dismiss(component) {\n component.parentNode.removeChild(component)\n }\n}\n\nexport default BRAlert\n","import BRScrim from '../scrim/scrim'\n\n/** Classe para instanciar um objeto BRModal*/\nclass BRModal {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n for (const brScrim of window.document.querySelectorAll('.br-scrim')) {\n const scrim = new BRScrim('br-scrim', brScrim)\n for (const button of window.document.querySelectorAll(\n '.br-scrim + button'\n )) {\n button.addEventListener('click', () => {\n scrim.showScrim()\n })\n }\n }\n }\n}\n\nexport default BRModal\n","import Tooltip from '../../partial/js/behavior/tooltip'\n// import Tooltip from '../../partial/js/behavior/tooltip'\n/** Classe para instanciar um objeto BRNotification*/\nclass BRNotification {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this.menuBtns = component.querySelectorAll('.contextual-btn')\n this.hideEvents = ['mouseleave', 'blur']\n this._setBehavior()\n }\n\n /**\n * Esconde a notificação relativa a referência\n * @private\n * @property {object} action - Referência ao Objeto que dispara a ação\n */\n _hideNotification(action) {\n const notification = action.parentNode.parentNode\n notification.setAttribute('hidden', '')\n }\n\n /**\n * Esconde todas as notificações relativa a referência\n * @private\n * @property {object} action - Referência ao Objeto que dispara a ação\n */\n _hideAllNotifications(action) {\n const notifications =\n action.parentNode.parentNode.parentNode.querySelectorAll('.br-item')\n notifications.forEach((notification) => {\n notification.setAttribute('hidden', '')\n })\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n for (const button of this.component.querySelectorAll(\n '.br-notification .close'\n )) {\n button.addEventListener('click', () => {\n this._dismiss(this.component)\n })\n }\n this._notificationTooltip()\n }\n\n /**\n * Define tooltip para a notificação\n * @private\n */\n _notificationTooltip() {\n const TooltipExampleList = []\n\n window.document\n .querySelectorAll(':not(.br-header) .notification-tooltip')\n .forEach((TooltipNotification) => {\n const elementTooltip = TooltipNotification.querySelector(\n '[data-tooltip-text]'\n )\n\n let texttooltip = ''\n // Verifica se existe atributo data-tooltip-text\n if (elementTooltip) {\n texttooltip = elementTooltip.getAttribute('data-tooltip-text')\n\n if (texttooltip === null) {\n return\n }\n\n if (typeof texttooltip === 'undefined') {\n return\n }\n\n if (texttooltip.trim() === '') {\n return\n }\n } else {\n return\n }\n\n const config = {\n activator: TooltipNotification,\n placement: 'top',\n textTooltip: texttooltip,\n }\n for (\n parent = TooltipNotification.parentNode;\n parent;\n parent = parent.parentNode\n ) {\n if (parent.classList)\n if (parent.classList.contains('header-avatar')) {\n return\n }\n }\n TooltipExampleList.push(new Tooltip(config))\n return\n })\n }\n\n /**\n * Adiciona classe para refletir comportamento de fechar\n * @private\n * @property {object} componente - Referência ao Objeto\n */\n _dismiss(component) {\n component.classList.add('close')\n }\n}\n\nexport default BRNotification\n","/** Classe para instanciar um objeto BRPagination*/\nclass BRPagination {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this.currentPage = 1\n this._setBehaviors()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehaviors() {\n this._setActive()\n this._dropdownBehavior()\n }\n\n /**\n * Define visual do componente\n * @private\n */\n // eslint-disable-next-line complexity\n _setLayout() {\n const ul = this.component.querySelector('ul')\n const pages = this.component.querySelectorAll('.page')\n pages.forEach((page) => {\n if (page.classList.contains('active')) {\n this.currentPage = parseInt(page.querySelector('a'))\n }\n page.classList.remove('d-none')\n })\n\n if (this.currentPage === 1) {\n ul.querySelector('[data-previous-page]').setAttribute('disabled', '')\n } else {\n ul.querySelector('[data-previous-page]').removeAttribute('disabled')\n }\n\n if (this.currentPage === pages.length) {\n ul.querySelector('[data-next-page').setAttribute('disabled', '')\n } else {\n ul.querySelector('[data-next-page]').removeAttribute('disabled')\n }\n\n if (pages.length > 9) {\n if (this.currentPage < 6) {\n if (ul.querySelector('[data-previous-interval]')) {\n ul.querySelector('[data-previous-interval]').remove()\n }\n for (let page = 7; page < pages.length - 1; page++) {\n pages[page].classList.add('d-none')\n }\n if (!ul.querySelector('[data-next-interval]')) {\n ul.insertBefore(\n this._createIntervalElement('next'),\n ul.children[ul.children.length - 2]\n )\n }\n }\n if (this.currentPage >= 6 && this.currentPage < pages.length - 4) {\n for (let page = this.currentPage - 4; page > 0; page--) {\n pages[page].classList.add('d-none')\n }\n if (!ul.querySelector('[data-previous-interval]')) {\n ul.insertBefore(\n this._createIntervalElement('previous'),\n ul.children[2]\n )\n }\n for (let page = this.currentPage + 2; page < pages.length - 1; page++) {\n pages[page].classList.add('d-none')\n }\n if (!ul.querySelector('[data-next-interval]')) {\n ul.insertBefore(\n this._createIntervalElement('next'),\n ul.children[ul.children.length - 2]\n )\n }\n }\n if (this.currentPage >= pages.length - 4) {\n if (ul.querySelector('[data-next-interval]')) {\n ul.querySelector('[data-next-interval]').remove()\n }\n for (let page = pages.length - 8; page > 0; page--) {\n pages[page].classList.add('d-none')\n }\n if (!ul.querySelector('[data-previous-interval]')) {\n ul.insertBefore(\n this._createIntervalElement('previous'),\n ul.children[2]\n )\n }\n }\n }\n }\n\n /**\n * Cria elemento no intervalo\n * @param {string} type - nome do tipo do elmento\n * @private\n */\n _createIntervalElement(type) {\n const interval = document.createElement('li')\n interval.setAttribute(`data-${type}-interval`, '')\n\n const a = document.createElement('a')\n a.setAttribute('href', 'javascript:void(0)')\n\n const icon = document.createElement('i')\n icon.classList.add('fas', 'fa-ellipsis-h')\n\n a.appendChild(icon)\n interval.appendChild(a)\n\n return interval\n }\n\n /**\n * Cria ação de clique na página\n * @private\n */\n _setActive() {\n for (const page of this.component.querySelectorAll('.page')) {\n page.addEventListener('click', (event) => {\n this._selectPage(event.currentTarget)\n })\n }\n }\n\n /**\n * Cria comportamentos do dropdown\n * @private\n */\n _dropdownBehavior() {\n for (const dropdown of this.component.querySelectorAll(\n '[data-toggle=\"dropdown\"]'\n )) {\n this._dropdownInit(dropdown)\n this._dropdownToggle(dropdown)\n }\n }\n\n /**\n * Cria ação de clique no dropdown\n * @param {object} element - referencia ao objeto DOM\n * @private\n */\n _dropdownToggle(element) {\n element.addEventListener('click', () => {\n if (element.getAttribute('aria-expanded') === 'false') {\n this._dropdownOpen(element)\n return\n }\n this._dropdownClose(element)\n })\n window.document.addEventListener('click', (event) => {\n if (!this.component.contains(event.target)) {\n this._dropdownClose(element)\n }\n })\n }\n\n /**\n * Inicializa elemento de dropdown\n * @param {object} element - referencia ao objeto DOM\n * @private\n */\n _dropdownInit(element) {\n element.parentElement.classList.add('dropdown')\n element.nextElementSibling.setAttribute('role', 'menu')\n element.setAttribute('aria-haspopup', 'true')\n this._dropdownClose(element)\n }\n\n /**\n * Ação de abrir dropdown\n * @param {object} element - referencia ao objeto DOM\n * @private\n */\n _dropdownOpen(element) {\n element.setAttribute('aria-expanded', 'true')\n element.nextElementSibling.removeAttribute('hidden')\n }\n\n /**\n * Ação de fechar dropdown\n * @param {object} element - referencia ao objeto DOM\n * @private\n */\n _dropdownClose(element) {\n element.setAttribute('aria-expanded', 'false')\n element.nextElementSibling.setAttribute('hidden', '')\n }\n\n /**\n * Define página ativa\n * @param {object} currentPage - referencia ao objeto DOM\n * @private\n */\n _selectPage(currentPage) {\n this.component.querySelectorAll('.page').forEach((page) => {\n page.classList.remove('active')\n })\n currentPage.classList.add('active')\n this._setLayout()\n }\n}\n\nexport default BRPagination\n","class BRScrim {\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setType()\n this._setBehavior()\n }\n\n _setType() {\n if (this.component.classList.contains('foco')) {\n this._type = 'foco'\n }\n if (this.component.classList.contains('legibilidade')) {\n this._type = 'legibilidade'\n }\n if (this.component.classList.contains('inibicao')) {\n this._type = 'inibicao'\n }\n }\n\n _setBehavior() {\n if (this.component.classList.contains('foco')) {\n this.component.addEventListener('click', (event) => {\n this.outsideclick = true\n if (event.target.classList.contains('br-scrim')) {\n this.hideScrim(event)\n }\n })\n\n const allComp = this.component.querySelectorAll(\n `[data-dismiss=${this.component.id}]`\n )\n\n for (const buttonComponent of allComp) {\n buttonComponent.addEventListener('click', () => {\n this.component.classList.remove('active')\n })\n }\n }\n }\n\n hideScrim(event) {\n event.currentTarget.classList.remove('active')\n }\n\n showScrim() {\n if (this._type === 'foco') {\n this.component.classList.add('active')\n }\n }\n}\n// const scrimList = []\nexport default BRScrim\nfor (const buttonBloco1 of window.document.querySelectorAll(\n '.scrimexemplo button'\n)) {\n buttonBloco1.addEventListener('click', () => {\n const scrscrim = window.document.querySelector('#scrimexample')\n const scrimfoco = new BRScrim('br-scrim', scrscrim)\n scrimfoco.showScrim()\n })\n}\n/**\n * Exemplo de scrim com muito texto\n */\nfor (const scrimexamplebig of window.document.querySelectorAll(\n '#scrimexemplo-big'\n)) {\n scrimexamplebig.addEventListener('click', () => {\n const scrscrim = window.document.querySelector('#scrimfocobig')\n const scrimfoco = new BRScrim('br-scrim', scrscrim)\n scrimfoco.showScrim()\n })\n}\n\n//Exemplo de scrim close\n","/**\n * Classe do componente BRSelect\n */\n\nclass BRSelect {\n /**\n * Instancia o componente\n * @property {string} name - Nome do componente em minúsculo\n * @property {object} component - Objeto referenciando a raiz do componente DOM\n * @property {string} notFound - (Opcional) String contendo código html para informar que a busca não encontrou nenhuma opção.\n * Se não informado, será usado um código html padrão.\n */\n\n constructor(name, component, notFound) {\n this.name = name\n this.component = component\n this.notFound = notFound\n this.multiple = component.hasAttribute('multiple')\n this._setOptionsList()\n this._setBehavior()\n }\n /**\n * Retorna os valores dos elementos selecionados\n * @returns {Object[]} elementos selecionados\n *\n */\n get selected() {\n return this._optionSelected('value')\n }\n /**\n * Retorna os elementos selecionados pelo inputValue\n * @param {Object[]} elementos selecionados\n * @returns\n */\n get selectedValue() {\n return this._optionSelected('inputValue')\n }\n\n /**\n * Retorna os elementos options selecionados\n * @param {Object[]} elementos selecionados\n * @returns\n */\n _optionSelected(strOption) {\n let selected = []\n for (const [index, option] of this.optionsList.entries()) {\n if (!this.multiple) {\n if (option.selected) {\n selected = option[strOption]\n break\n }\n } else {\n if (index > 0 && option.selected) {\n selected.push(option[strOption])\n }\n }\n }\n return selected\n }\n\n /**\n * Remove o elemento que indica item não encontrado\n * @private\n */\n _removeNotFoundElement() {\n const list = this.component.querySelector('.br-list')\n if (list.querySelector('.br-item.not-found')) {\n list.removeChild(list.querySelector('.br-item.not-found'))\n }\n }\n\n /**\n * Coloca o texto Item não encontrado no select\n * @private\n */\n _addNotFoundElement() {\n const image =\n 'data:image/png;base64,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'\n const notFoundElement = `\n
\n
\n
\n
\n \n
\n
\n

Não encontramos o que você está procurando!

\n
\n
\n
\n
\n `\n const list = this.component.querySelector('.br-list')\n list.insertAdjacentHTML(\n 'beforeend',\n this.notFound ? this.notFound : notFoundElement\n )\n }\n /**\n * Cria listagem de elementos do select\n * @private\n */\n _setOptionsList() {\n this.optionsList = []\n for (const item of this.component.querySelectorAll('.br-list .br-item')) {\n for (const input of item.querySelectorAll(\n '.br-radio input, .br-checkbox input'\n )) {\n const option = {\n element: item,\n focus: false,\n inputValue: input.value,\n selected: false,\n value: input.nextElementSibling.innerText,\n visible: true,\n }\n this.optionsList.push(option)\n }\n }\n }\n /**\n * Reseta estado da lista\n * @private\n */\n resetOptionsList() {\n this._unsetSelectionBehavior()\n this._setOptionsList()\n this._setSelectionBehavior()\n }\n /**\n * Define o comportamento do componente\n * @private\n */\n _setBehavior() {\n this._setSearchIcon()\n this._setDropdownBehavior()\n this._setKeyboardBehavior()\n this._setSelectionBehavior()\n this._setFilterBehavior()\n }\n /**\n * Define o comportamento de dropdown\n * @private\n */\n\n _setDropdownBehavior() {\n for (const input of this.component.querySelectorAll(\n '.br-input input[type=\"text\"]'\n )) {\n input.addEventListener('focus', () => {\n this._openSelect()\n this._resetFocus()\n })\n }\n for (const trigger of this.component.querySelectorAll(\n '.br-input .br-button[data-trigger]'\n )) {\n trigger.addEventListener('click', () => {\n for (const list of this.component.querySelectorAll('.br-list')) {\n if (list.hasAttribute('expanded')) {\n this._closeSelect()\n } else {\n this._openSelect()\n }\n }\n })\n }\n window.document.addEventListener('click', (event) => {\n if (!this.component.contains(event.target)) {\n this._closeSelect()\n }\n })\n }\n /**\n * Define o comportamento de teclado\n * @private\n */\n\n _setKeyboardBehavior() {\n for (const input of this.component.querySelectorAll(\n '.br-input input[type=\"text\"]'\n )) {\n input.addEventListener('keydown', this._handleKeydownOnInput.bind(this))\n }\n for (const list of this.component.querySelectorAll('.br-list')) {\n // eslint-disable-next-line complexity\n list.addEventListener('keydown', this._handleKeydownOnList.bind(this))\n }\n }\n /**\n * Retira o comportamento de teclado\n * @private\n */\n\n _unsetKeyboardBehavior() {\n for (const input of this.component.querySelectorAll(\n '.br-input input[type=\"text\"]'\n )) {\n input.removeEventListener('keydown', this._handleKeydownOnInput, false)\n }\n for (const list of this.component.querySelectorAll('.br-list')) {\n // eslint-disable-next-line complexity\n list.addEventListener('keydown', this._handleKeydownOnList.bind(this))\n }\n }\n\n /**\n * Verifica a navegação\n * @param {object} event evento que foi ativado\n * @private\n */\n _handleKeydownOnInput(event) {\n //Close Select\n if (event.shiftKey && event.key === 'Tab') {\n this._closeSelect()\n this._resetFocus()\n }\n if (event.key === 'Tab' && !event.shiftKey) {\n event.target.parentNode.querySelector('.br-button').focus()\n }\n if (event.keyCode === 40) {\n event.preventDefault()\n for (const list of this.component.querySelectorAll('.br-list')) {\n list.focus()\n if (list === document.activeElement) {\n this._getNextItem().focus()\n }\n }\n }\n }\n /**\n * Define comportamentos de teclado na lista\n * @private\n */\n\n _handleKeydownOnList(event) {\n event.preventDefault()\n switch (event.keyCode) {\n case 9:\n this._closeSelect()\n this._resetFocus()\n break\n case 27:\n this._closeSelect()\n break\n case 32:\n this._setKeyClickOnOption(event.currentTarget)\n break\n case 38:\n this._getPreviousItem().focus()\n break\n case 40:\n this._getNextItem().focus()\n break\n default:\n break\n }\n }\n /**\n * Define comportamentos de teclado no option\n * @private\n */\n _setKeyClickOnOption(list) {\n for (const [index, item] of list.querySelectorAll('.br-item').entries()) {\n if (this.optionsList[index].focus) {\n for (const check of item.querySelectorAll(\n '.br-radio input[type=\"radio\"], .br-checkbox input[type=\"checkbox\"]'\n )) {\n check.click()\n this._sendEvent()\n }\n }\n }\n }\n\n /**\n * Envia o evento onchange\n * @private\n */\n _sendEvent() {\n const clickEvent = new CustomEvent('onChange', {\n bubbles: true,\n detail: this.component,\n })\n this.component.dispatchEvent(clickEvent)\n }\n\n /**\n * preseleciona o elemento apartir da classe css .selected\n * @private\n */\n _setDefaultSelected() {\n const selectedItems = this.component.querySelectorAll('.br-list .selected')\n\n const iterable = typeof selectedItems[Symbol.iterator]\n if (selectedItems !== null && iterable === 'function') {\n for (const item of selectedItems) {\n this._setSelected(this._positionSelected(item), item)\n }\n }\n }\n\n /**\n * Retorna posição do elemento no select\n * @param {element} component elemento que vai ser pesquisado\n * @returns {integer} valor da posição\n */\n _positionSelected(component) {\n for (const [index, componente] of this.component\n .querySelectorAll('.br-list .br-item')\n .entries()) {\n if (componente === component) {\n return index\n }\n }\n return 0\n }\n /**\n * Desfine comportamento do clique no checkbox\n * @param {int} index\n * @param {object} item - Objeto do item clicado\n * @param {object} event - Objeto do evento do clique\n * @private\n */\n _handleClickOnCheck(index, item, event) {\n if (!this.multiple) {\n for (const [index2, item2] of this.component\n .querySelectorAll('.br-list .br-item')\n .entries()) {\n this._removeSelected(index2, item2)\n }\n this._setSelected(index, item)\n this._closeSelect()\n } else if (event.currentTarget.hasAttribute('checked')) {\n this._removeSelected(index, item)\n } else {\n this._setSelected(index, item)\n }\n if (item.hasAttribute('data-all')) {\n for (const check of item.querySelectorAll(\n '.br-checkbox input[type=\"checkbox\"]'\n )) {\n if (!check.hasAttribute('checked')) {\n this._setAttribute()\n item.querySelectorAll('label')[0].innerText = 'Selecionar Todos'\n } else {\n for (const item2 of this.component.querySelectorAll(\n '.br-list .br-item'\n )) {\n for (const check2 of item2.querySelectorAll(\n '.br-checkbox input[type=\"checkbox\"]'\n )) {\n if (!check2.hasAttribute('checked')) {\n check2.click()\n }\n }\n }\n item.querySelectorAll('label')[0].innerText = 'Deselecionar Todos'\n }\n }\n }\n this._sendEvent()\n }\n /**\n * Define comportamentos na seleção\n * @private\n */\n _setSelectionBehavior() {\n this.selectionHandler = []\n this._setDefaultSelected()\n for (const [index, item] of this.component\n .querySelectorAll('.br-list .br-item')\n .entries()) {\n for (const check of item.querySelectorAll(\n '.br-radio input[type=\"radio\"], .br-checkbox input[type=\"checkbox\"]'\n )) {\n this.selectionHandler.push({\n element: check,\n handler: this._handleClickOnCheck.bind(this, index, item),\n })\n check.addEventListener('click', this.selectionHandler[index].handler)\n }\n }\n }\n /**\n * retira comportamento de clique na seleção\n * @private\n */\n _unsetSelectionBehavior() {\n this.selectionHandler.forEach((item) => {\n item.element.removeEventListener('click', item.handler, false)\n })\n }\n /**\n * Define comportamentos no filtro do input\n * @private\n */\n _setFilterBehavior() {\n for (const input of this.component.querySelectorAll(\n '.br-input input[type=\"text\"]'\n )) {\n input.addEventListener('input', (event) => {\n let allHidden = true\n this._filter(event.currentTarget.value)\n for (const option of this.optionsList) {\n if (option.visible) {\n allHidden = false\n }\n }\n\n if (allHidden) {\n // event.currentTarget.value = event.currentTarget.value.slice(0, -1)\n this._filter(event.currentTarget.value)\n }\n })\n }\n }\n /**\n * Define filtro no list\n * @private\n */\n _filter(value) {\n let hasVisible = false\n for (const [index, item] of this.component\n .querySelectorAll('.br-list .br-item')\n .entries()) {\n this._removeNotFoundElement()\n if (!this.optionsList[index]) {\n continue\n }\n if (\n this.optionsList[index].value\n .toUpperCase()\n .indexOf(value.toUpperCase()) === -1\n ) {\n item.classList.add('d-none')\n this.optionsList[index].visible = false\n } else {\n item.classList.remove('d-none')\n this.optionsList[index].visible = true\n hasVisible = true\n }\n }\n if (hasVisible === false) {\n this._addNotFoundElement()\n }\n }\n /**\n * Define atributo checked com click\n * @private\n */\n _setAttribute() {\n for (const item2 of this.component.querySelectorAll('.br-list .br-item')) {\n for (const check2 of item2.querySelectorAll(\n '.br-checkbox input[type=\"checkbox\"]'\n )) {\n if (check2.hasAttribute('checked')) {\n check2.click()\n }\n }\n }\n }\n\n /**\n * Seleciona o elemento e retira checked dos outros elementos\n * @param {integer} index Posição do elemento na lista\n * @param {*} item elemento em que vai ser selecionado\n * @private\n */\n _setSelected(index, item) {\n item.classList.add('selected')\n for (const check of item.querySelectorAll('.br-radio, .br-checkbox')) {\n for (const input of check.querySelectorAll(\n 'input[type=\"radio\"], input[type=\"checkbox\"]'\n )) {\n input.setAttribute('checked', '')\n }\n }\n this.optionsList[index].selected = true\n this._setInput()\n }\n\n /**\n * Retira o estado selecionado do elemento\n * @param {integer} index Posição do elemento na lista\n * @param {*} item elemento em que vai ser desselecionado\n * @private\n */\n _removeSelected(index, item) {\n item.classList.remove('selected')\n for (const check of item.querySelectorAll('.br-radio, .br-checkbox')) {\n for (const input of check.querySelectorAll(\n 'input[type=\"radio\"], input[type=\"checkbox\"'\n )) {\n input.removeAttribute('checked')\n }\n this.optionsList[index].selected = false\n this._setInput()\n }\n }\n /**\n * Determina o input\n * @private\n */\n _setInput() {\n for (const input of this.component.querySelectorAll(\n '.br-input input[type=\"text\"]'\n )) {\n if (!this.multiple) {\n input.value = this.selected\n } else if (this.selected.length === 0) {\n input.value = ''\n } else {\n this.mountSelectedValues(input)\n }\n }\n }\n /**\n * Monta a string apresentada no campo input do multiselect\n * @param {object} input Referencia o elemento input do select\n */\n mountSelectedValues(input) {\n const GAP = 0.4\n this.amountE = this.amountE > 0 ? this.amountE : 0\n const amount = this.amountE\n const value = this.selected.toString().replaceAll(',', ', ')\n const tempSpan = document.createElement('span')\n tempSpan.innerHTML = value\n document.querySelector('body').insertAdjacentElement('beforeend', tempSpan)\n const maxCharacterCount = this.getMaxCharacterCountBeforeOverflow(input)\n this.amountE = amount\n input.title = this.selected.toString().replaceAll(',', ', ')\n const ct = this.encontrarPosicaoPorTamanho(\n this.selected,\n maxCharacterCount - 6\n )\n input.value = ct\n tempSpan.remove()\n }\n /**\n * Obtém o tamanho em pixels de um valor de texto.\n *\n * @param {string} value - O valor de texto para o qual se deseja obter o tamanho em pixels.\n * @returns {number} O tamanho em pixels do valor de texto.\n */\n getPixelSize(value) {\n const span = document.createElement('span')\n span.style.visibility = 'hidden'\n span.style.position = 'absolute'\n span.style.left = '-9999px'\n span.style.top = '-9999px'\n span.style.whiteSpace = 'nowrap'\n span.textContent = value\n\n document.body.appendChild(span)\n const size = span.getBoundingClientRect().width\n document.body.removeChild(span)\n\n return size\n }\n /**\n * Retorna uma string contendo elementos de um array até o limite de caracteres especificado.\n * Se houver elementos truncados, a quantidade de elementos truncados é indicada no final da string.\n *\n * @param {Array} array - O array de elementos.\n * @param {number} maxCharacterCount - O limite máximo de caracteres permitidos na string resultante.\n * @returns {string} - A string contendo os elementos até o limite de caracteres, com indicação de elementos truncados, se houver.\n */\n encontrarPosicaoPorTamanho(array, maxCharacterCount) {\n let account = 0\n let value = ''\n let acountVisible = 0\n let posUltimoArray = 0\n\n for (const element of array) {\n const posicaoArray = array.indexOf(element)\n account++\n if (element.length >= maxCharacterCount && array.length === 1) {\n return `${element.substring(0, maxCharacterCount)}... `\n }\n\n if (value.length >= maxCharacterCount) {\n value += `${element}, `\n value = `${value.substring(0, maxCharacterCount)}...`\n acountVisible = acountVisible === 0 ? 1 : acountVisible\n let contOverflow = posicaoArray - acountVisible\n contOverflow =\n acountVisible === 0 ? array.length - 1 : array.length - acountVisible\n posUltimoArray = contOverflow\n } else {\n const tmpValue = posicaoArray > 0 ? `, ${element}` : `${element}`\n value += `${tmpValue}`\n acountVisible++\n }\n }\n value = posUltimoArray <= 0 ? `${value}` : `${value} + (${posUltimoArray})`\n return value\n }\n\n /**\n * Retorna a quantidade máxima de caracteres de um elemento de input antes do overflow.\n *\n * @param {HTMLElement} input - O elemento de input.\n * @returns {number} A quantidade máxima de caracteres antes do overflow.\n */\n getMaxCharacterCountBeforeOverflow(input) {\n const style = window.getComputedStyle(input)\n const padding =\n parseFloat(style.paddingLeft) + parseFloat(style.paddingRight)\n const border =\n parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth)\n const availableWidth = input.clientWidth - padding - border\n const averageCharacterWidth = this.getAverageCharacterWidth(input)\n\n return Math.floor(availableWidth / averageCharacterWidth)\n }\n\n /**\n * Retorna a largura média de um caractere dentro de um elemento de input.\n *\n * @param {HTMLElement} input - O elemento de input.\n * @returns {number} A largura média de um caractere.\n */\n getAverageCharacterWidth(input) {\n const tempSpan = document.createElement('span')\n tempSpan.style.visibility = 'hidden'\n tempSpan.style.position = 'absolute'\n tempSpan.style.whiteSpace = 'nowrap'\n tempSpan.textContent = 'X'\n\n document.body.appendChild(tempSpan)\n const averageWidth = tempSpan.offsetWidth\n document.body.removeChild(tempSpan)\n\n return averageWidth\n }\n\n /**\n * Filtra um array removendo elementos que ultrapassem o tamanho do input. Adiciona \"...\" aos elementos truncados.\n *\n * @param {Array} array - O array a ser filtrado.\n * @param {HTMLElement} input - O elemento de input usado como referência para o tamanho máximo.\n * @returns {Array} O array filtrado.\n */\n filterArrayByInputSize(array, input) {\n const maxLength = getMaxCharacterCountBeforeOverflow(input)\n const filteredArray = array.filter((element) => {\n const elementText = element.toString()\n if (getPixelSize(elementText) <= input.offsetWidth) {\n return true\n } else {\n const truncatedText = `${elementText.substring(0, maxLength - 3)}...`\n input.value = truncatedText\n return false\n }\n })\n\n return filteredArray\n }\n\n /**\n * Retorna elemento posterior ao focado\n * @returns {object}\n * @private\n */\n // eslint-disable-next-line complexity\n _getNextItem() {\n const list = this.component.querySelectorAll('.br-list .br-item')\n let iFocused\n let iVisible\n for (iFocused = 0; iFocused < this.optionsList.length; iFocused++) {\n if (this.optionsList[iFocused].focus) {\n for (\n iVisible = iFocused + 1;\n iVisible < this.optionsList.length;\n iVisible++\n ) {\n if (this.optionsList[iVisible].visible) {\n break\n }\n }\n break\n }\n }\n if (iFocused === this.optionsList.length) {\n for (const [index, option] of this.optionsList.entries()) {\n if (option.visible) {\n option.focus = true\n return list[index]\n }\n }\n } else if (iVisible < this.optionsList.length) {\n this.optionsList[iFocused].focus = false\n this.optionsList[iVisible].focus = true\n return list[iVisible]\n } else {\n return list[iFocused]\n }\n return ''\n }\n /**\n * Retorna elemento anterior ao focado\n * @returns {object}\n * @private\n */\n _getPreviousItem() {\n const list = this.component.querySelectorAll('.br-list .br-item')\n let iFocused\n let iVisible\n for (iFocused = 0; iFocused < this.optionsList.length; iFocused++) {\n if (this.optionsList[iFocused].focus) {\n for (iVisible = iFocused - 1; iVisible > 0; iVisible--) {\n if (this.optionsList[iVisible].visible) {\n break\n }\n }\n break\n }\n }\n if (iFocused === 0) {\n return list[iFocused]\n } else {\n this.optionsList[iFocused].focus = false\n this.optionsList[iVisible].focus = true\n return list[iVisible]\n }\n }\n /**\n * Reseta valor do input\n * @private\n */\n _resetInput() {\n for (const input of this.component.querySelectorAll(\n '.br-input input[type=\"text\"]'\n )) {\n input.value = ''\n }\n }\n /**\n * Reseta o focus dos elementos\n * @private\n */\n _resetFocus() {\n for (const option of this.optionsList) {\n option.focus = false\n }\n }\n /**\n * Reseta o focus dos elementos visiveis\n * @private\n */\n\n _resetVisible() {\n const list = this.component.querySelectorAll('.br-list .br-item')\n for (const [index, option] of this.optionsList.entries()) {\n option.visible = true\n list[index].classList.remove('d-none')\n }\n }\n /**\n * Abre o select aberto\n * @private\n */\n _openSelect() {\n for (const list of this.component.querySelectorAll('.br-list')) {\n list.setAttribute('expanded', '')\n }\n for (const icon of this.component.querySelectorAll(\n '.br-input .br-button i'\n )) {\n icon.classList.remove('fa-angle-down')\n icon.classList.add('fa-angle-up')\n }\n this._resetInput()\n }\n /**\n * Fecha o select aberto\n * @private\n */\n _closeSelect() {\n for (const list of this.component.querySelectorAll('.br-list')) {\n list.removeAttribute('expanded')\n }\n for (const icon of this.component.querySelectorAll(\n '.br-input .br-button i'\n )) {\n icon.classList.remove('fa-angle-up')\n icon.classList.add('fa-angle-down')\n }\n this._setInput()\n this._resetFocus()\n this._resetVisible()\n }\n /**\n * Adiciona ícone de busca\n * @private\n */\n _setSearchIcon() {\n const brInput = this.component.querySelector('.br-input')\n const dropButton = this.component.querySelector('[data-trigger]')\n // Ícone de busca\n const searchIcon = document.createElement('i')\n searchIcon.classList.add('fas', 'fa-search')\n searchIcon.setAttribute('aria-hidden', 'true')\n // Container para o ícone\n const inputIcon = document.createElement('div')\n inputIcon.classList.add('input-icon')\n inputIcon.appendChild(searchIcon)\n // Estrutura para input com ícone\n const inputGroup = document.createElement('div')\n inputGroup.classList.add('input-group')\n inputGroup.appendChild(inputIcon)\n inputGroup.appendChild(brInput.querySelector('input'))\n brInput.appendChild(inputGroup)\n brInput.appendChild(dropButton)\n }\n}\n\nexport default BRSelect\n","/** Classe para instanciar um objeto BRStep */\nclass BRStep {\n constructor(name, component) {\n /**\n * Instancia do componente\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n * @property {number} activeStepNum - Número do palco ativo\n * @property {array} DOMStrings - instancia dos elementos internos do componente\n */\n this.name = name\n this.component = component\n this.activeStepNum = 0\n this.DOMstrings = {\n // stepsBar: this.component.querySelector('.step-progress'),\n stepsBar: this.component,\n stepsBarClass: 'step-progress',\n stepsBtnClass: 'step-progress-btn',\n stepsBtns: this.component.querySelectorAll('.step-progress-btn'),\n }\n\n /**\n * Remove uma classe css de uma lista de elementos\n * @param {object} elemSet - Lista de elementos\n * @param {string} button - Nome do atributo\n */\n this.removeAttributes = (elemSet, attrName) => {\n elemSet.forEach((elem) => {\n elem.removeAttribute(attrName)\n })\n }\n\n /**\n * Retorna o nó pai do elemento com o nome da classe específica\n * @param {object} elem - Referência ao elemento\n * @param {string} parentClass - Nome da classe pai\n * @returns {object} Referência ao elemento pai\n */\n this.findParent = (elem, parentClass) => {\n let currentNode = elem\n while (!currentNode.classList.contains(parentClass)) {\n currentNode = currentNode.parentNode\n }\n return currentNode\n }\n\n /** Retorna o número do passo de referencia\n * @param {object} elem - Referência ao botão de passo\n * @returns {number} Número do passo\n */\n this.getActiveStep = (elem) => {\n return Array.from(this.DOMstrings.stepsBtns).indexOf(elem)\n }\n\n /** Define o número do passo de referência como ativo\n * @param {number} num - numero do passo de referência\n */\n this.setActiveStep = function (num) {\n this.removeAttributes(this.DOMstrings.stepsBtns, 'active')\n this.DOMstrings.stepsBtns.forEach((elem, index) => {\n if (index === num) {\n elem.removeAttribute('disabled')\n elem.setAttribute('active', '')\n }\n })\n this.activeStepNum = num\n }\n\n /**\n * Mostra os números dos rótulos dos passos\n */\n this.setStepsNum = () => {\n this.DOMstrings.stepsBtns.forEach((elem, index) => {\n const img = elem.querySelector('.step-icon')\n const text = this.component.getAttribute('data-type') === 'text'\n if (text) {\n elem.setAttribute(\n 'step-num',\n `${index + 1}/${this.DOMstrings.stepsBtns.length}`\n )\n } else if (img) {\n elem.setAttribute('step-num', '')\n } else elem.setAttribute('step-num', index + 1)\n })\n }\n\n /** Testa se o passo está dentro do escopo e o define como ativo\n * @param {number} num - step number\n */\n this.setStep = (num) => {\n const activeStep = num <= this.DOMstrings.stepsBtns.length ? num - 1 : 0\n this.setActiveStep(activeStep)\n }\n\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n this.DOMstrings.stepsBar.addEventListener('click', (e) => {\n const eventTarget = e.target\n if (!eventTarget.classList.contains(`${this.DOMstrings.stepsBtnClass}`)) {\n e.target.parentNode.click()\n return\n }\n const activeStepNum = this.getActiveStep(eventTarget)\n this.setActiveStep(activeStepNum)\n })\n\n this.setStepsNum()\n if (this.component.hasAttribute('data-initial')) {\n this.setStep(this.component.getAttribute('data-initial'))\n } else this.setStep(1)\n\n if (\n !this.component.classList.contains('vertical') &&\n !this.component.hasAttribute('data-scroll')\n ) {\n // const stepsWidth = Math.round(100 / this.DOMstrings.stepsBtns.length) - 0.5\n }\n }\n}\n\nexport default BRStep\n","/** Classe para instanciar um objeto BRTab*/\n\nclass BRTab {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n for (const ancor of this.component.querySelectorAll('.tab-nav')) {\n this.height = ancor.clientHeight\n this.scollsizes = ancor.scrollHeight - ancor.clientHeight\n\n this.scrollHeight = Math.max(\n this.component.scrollWidth,\n document.documentElement.scrollWidth,\n this.component.offsetWidth,\n document.documentElement.offsetWidth,\n this.component.clientWidth,\n document.documentElement.clientWidth\n )\n this.leftPosition = this.component.offsetWidth - 1\n // debugger\n ancor.style.setProperty('--height-nav', `${this.height}px`)\n ancor.style.setProperty('--right-gradient-nav', `${this.leftPosition}px`)\n\n this.positionScroll(ancor)\n\n this.navigationRight = this.navigationRight + 4\n\n if (this.navigationRight <= this.lastItempos - 5) {\n ancor.classList.add('tab-nav-right')\n }\n\n ancor.onscroll = () => {\n this.positionScroll(ancor)\n\n if (this.navigationLeft <= 0) {\n ancor.classList.add('tab-nav-left')\n } else {\n ancor.classList.remove('tab-nav-left')\n }\n\n if (this.navigationRight <= this.lastItempos - 5) {\n ancor.classList.add('tab-nav-right')\n } else {\n ancor.classList.remove('tab-nav-right')\n }\n }\n }\n\n for (const ancor of this.component.querySelectorAll(\n '.tab-nav .tab-item:not([not-tab=\"true\"]) button'\n )) {\n ancor.addEventListener(\n 'click',\n (event) => {\n this._switchTab(event.currentTarget.parentElement)\n this._switchContent(event.currentTarget.parentElement)\n },\n false\n )\n ancor.addEventListener('keyup', (e) => {\n e.preventDefault()\n this.positionKeyboard(e)\n })\n\n ancor.addEventListener('blur', () => {\n this.hiddenTooltips()\n })\n }\n this.tabitems = this.component.querySelectorAll('tab-item')\n }\n\n /**\n * Mapeia as teclas pressionadas\n * @param {event} event - evento que disparou a ação\n */\n positionKeyboard(event) {\n const keys = {\n end: 35,\n home: 36,\n left: 37,\n right: 39,\n space: 32,\n tab: 9,\n }\n const key = event.keyCode\n this.tabitems = this.component.querySelectorAll('.tab-item')\n this.buttons = this.component.querySelectorAll('button')\n\n switch (key) {\n case keys.end:\n event.preventDefault()\n this.clean()\n this._switchTab(this.tabitems[this.tabitems.length - 1])\n this._switchContent(this.tabitems[this.tabitems.length - 1])\n this.tabitems[this.tabitems.length - 1].focus()\n break\n case keys.home:\n event.preventDefault()\n this.clean()\n this._switchTab(this.tabitems[0])\n this._switchContent(this.tabitems[0])\n this.tabitems[0].focus()\n event.stopPropagation()\n break\n case keys.left:\n event.preventDefault()\n this.position(event.target, -1)\n event.stopPropagation()\n break\n case keys.right:\n event.preventDefault()\n this.position(event.target, 1)\n event.stopPropagation()\n break\n case keys.tab:\n event.preventDefault()\n this.position(event.target, 0)\n event.stopPropagation()\n break\n case 32:\n event.preventDefault()\n this.hiddenTooltips()\n event.target.click()\n\n event.stopPropagation()\n break\n default:\n break\n }\n }\n\n /**\n * Esconde todos tooltip\n *\n */\n hiddenTooltips() {\n const tooltips = document.querySelectorAll('.br-tooltip')\n\n tooltips.forEach((element) => {\n element.hidden = true\n element.style.visbility = 'hidden'\n element.removeAttribute('data-show')\n })\n }\n\n /**\n * Define o deslocamento da posição ativa\n * @property {object} target - referencia ao objeto DOM\n * @property {number} direction - incremento à posição\n */\n positionActive(target, direction) {\n let contComponent = 0\n let contComponentActive = 0\n\n const tabItems2 =\n target.parentElement.parentElement.querySelectorAll('.tab-item')\n for (const component of tabItems2) {\n if (\n component.classList.contains('is-active') ||\n component.classList.contains('active')\n ) {\n contComponentActive = contComponent\n }\n contComponent += 1\n }\n if (\n tabItems2.length > contComponentActive + direction &&\n contComponentActive + direction >= 0\n ) {\n this._switchTab(tabItems2[contComponentActive + direction])\n tabItems2[contComponentActive + direction].focus()\n let x = ''\n if (tabItems2[contComponentActive + direction].querySelector('button')) {\n x = tabItems2[contComponentActive + direction].querySelector('button')\n x.focus()\n }\n }\n }\n\n /**\n * Define o deslocamento da posição ativa do tab-item interno\n * @property {object} target - referencia ao objeto DOM\n * @property {number} direction - incremento à posição\n */\n position(target, direction) {\n this.positionQuery(target, direction, '.tab-item')\n }\n\n /**\n * Define o deslocamento da posição ativa do elemento referenciado\n * @property {object} target - referencia ao objeto DOM\n * @property {number} direction - incremento à posição\n * @property {string} query - string de referencia\n */\n positionQuery(target, direction, query) {\n let contComponent = 0\n // const contComponentActive = 0\n let contComponentFocus = 0\n const tabItems2 = target.parentElement.parentElement.querySelectorAll(query)\n for (const component of tabItems2) {\n if (component.querySelector('.focus-visible')) {\n contComponentFocus = contComponent\n }\n contComponent += 1\n }\n tabItems2[contComponentFocus + direction].querySelector('button').focus()\n if (\n tabItems2.length > contComponentFocus + direction &&\n contComponentFocus + direction >= 0\n ) {\n if (tabItems2[contComponentFocus + direction].querySelector('button')) {\n tabItems2[contComponentFocus + direction]\n .querySelector('button')\n .focus()\n }\n }\n }\n\n /**\n * Define a posição ativa do elemento referenciado\n * @property {object} target - referencia ao objeto DOM\n */\n setPosition(target) {\n let contComponent = 0\n let contComponentActive = 0\n\n const tabItems2 =\n target.parentElement.parentElement.querySelectorAll('.tab-item')\n for (const component of tabItems2) {\n if (\n component.classList.contains('is-active') ||\n component.classList.contains('active')\n ) {\n contComponentActive = contComponent\n }\n contComponent += 1\n }\n if (tabItems2.length > contComponentActive && contComponentActive >= 0) {\n this.clean()\n this._switchContent(tabItems2[contComponentActive])\n }\n }\n\n /**\n * Reinicia estados\n */\n clean() {\n for (const ancor of event.currentTarget.parentElement.querySelectorAll(\n 'button'\n )) {\n ancor.classList.remove('focus-visible')\n ancor.classList.remove('is-active')\n ancor.classList.remove('active')\n }\n for (const ancor of event.currentTarget.parentElement.querySelectorAll(\n 'tab-item'\n )) {\n ancor.classList.remove('is-active')\n ancor.classList.remove('active')\n }\n }\n\n /**\n * Realiza rolagem até a âncora\n * @property {object} ancor - referencia ao objeto DOM\n */\n positionScroll(ancor) {\n this.navItems = ancor.querySelectorAll('.tab-item')\n this.lastItempos = Math.ceil(\n this.navItems[this.navItems.length - 1].getBoundingClientRect().right\n )\n this.navigationLeft = Math.floor(\n this.navItems[0].getBoundingClientRect().left\n )\n this.navigationRight = Math.floor(ancor.getBoundingClientRect().right)\n }\n\n /**\n * Muda para a aba referenciada\n * @property {object} currentTab - referencia ao objeto DOM\n */\n _switchTab(currentTab) {\n for (const tabItem of this.component.querySelectorAll(\n '.tab-nav .tab-item:not([not-tab=\"true\"])'\n )) {\n if (tabItem === currentTab) {\n tabItem.classList.add('active')\n } else {\n tabItem.classList.remove('is-active')\n tabItem.classList.remove('active')\n }\n }\n }\n\n /**\n * Muda para o conteudo da aba referenciada\n * @property {object} currentTab - referencia ao objeto DOM\n */\n _switchContent(currentTab) {\n for (const button of currentTab.querySelectorAll('button')) {\n for (const tabPanel of this.component.querySelectorAll(\n '.tab-content .tab-panel'\n )) {\n if (\n button.getAttribute('data-panel') === tabPanel.getAttribute('id') ||\n button.getAttribute('data-target') === tabPanel.getAttribute('id')\n ) {\n tabPanel.classList.add('active')\n } else {\n tabPanel.classList.remove('is-active')\n tabPanel.classList.remove('active')\n }\n }\n }\n }\n}\n\nexport default BRTab\n","import Collapse from '../../partial/js/behavior/collapse'\nimport Dropdown from '../../partial/js/behavior/dropdown'\n\n/** Classe para instanciar um objeto BRTable*/\n/* eslint-disable complexity */\nclass BRTable {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n * @param {number} sequence - 'índice do componente para sobreposição'\n */\n constructor(name, component, sequence) {\n this.name = name\n this.component = component\n this._header = this.component.querySelector('.header, .table-header')\n this._table = this.component.querySelector('table')\n this._sequence = sequence\n this._setBehaviors()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehaviors() {\n this._makeResponsiveTable()\n this._setHeaderWidth()\n this._searchBehavior()\n this._dropdownBehavior()\n this._collpaseBehavior()\n this._densityBehavior()\n this._setClickActions()\n this._getBRHeaderHeight()\n }\n\n /**\n * Configura a altura do cabeçalho\n * @private\n */\n _getBRHeaderHeight() {\n const BRHeader = document.querySelector('.br-header')\n if (BRHeader) {\n window.addEventListener('scroll', () => {\n this._header.style.top = `${BRHeader.clientHeight}px`\n })\n }\n }\n\n /**\n * Configura reponsividade da tabela\n * @private\n */\n _makeResponsiveTable() {\n const responsiveClass = 'responsive'\n if (!this.component.querySelector(`.${responsiveClass}`)) {\n const responsiveElement = document.createElement('div')\n responsiveElement.classList.add(responsiveClass)\n responsiveElement.appendChild(this._table)\n this._header.after(responsiveElement)\n }\n }\n\n /**\n * Configura rolagem\n * @private\n */\n _makeScroller() {\n const scrollerTag = document.createElement('div')\n scrollerTag.classList.add('scroller')\n for (const header of this._table.querySelectorAll('thead tr th')) {\n const clonedHeader = document.createElement('div')\n clonedHeader.classList.add('item')\n clonedHeader.innerHTML = header.innerHTML\n if (header.offsetWidth) {\n clonedHeader.style.flex = `1 0 ${header.offsetWidth}px`\n }\n scrollerTag.appendChild(clonedHeader)\n const checkbox = clonedHeader.querySelector('.br-checkbox')\n if (checkbox) {\n const input = checkbox.querySelector('input')\n const label = checkbox.querySelector('label')\n input.id = `${input.id}-clone`\n label.setAttribute('for', input.id)\n }\n }\n return scrollerTag\n }\n\n /**\n * Configura largura do cabeçalho\n * @private\n */\n _setHeaderWidth() {\n for (const clonedHeader of this.component.querySelectorAll(\n '.headers > div'\n )) {\n for (const [index, header] of this.component\n .querySelectorAll('table thead tr th')\n .entries()) {\n clonedHeader.children[index].style.flex = `1 0 ${header.offsetWidth}px`\n }\n }\n }\n\n /**\n * Configura coportamento do dropdown\n * @private\n */\n _dropdownBehavior() {\n this.component\n .querySelectorAll('[data-toggle=\"dropdown\"]')\n .forEach((trigger) => {\n const config = {\n iconToHide: 'fa-chevron-up',\n iconToShow: 'fa-chevron-down',\n trigger,\n useIcons: true,\n }\n const dropdown = new Dropdown(config)\n dropdown.setBehavior()\n })\n }\n\n /**\n * Configura comportamento de colapsar\n * @private\n */\n _collpaseBehavior() {\n this.component\n .querySelectorAll('[data-toggle=\"collapse\"]')\n .forEach((trigger) => {\n const config = {\n iconToHide: 'fa-chevron-up',\n iconToShow: 'fa-chevron-down',\n trigger,\n useIcons: true,\n }\n const collapse = new Collapse(config)\n collapse.setBehavior()\n })\n }\n\n /**\n * Configura comportamento da busca\n * @private\n */\n _searchBehavior() {\n if (this.component.dataset.search) {\n const trigger = this.component.querySelector('[data-toggle=\"search\"]')\n const target = this.component.querySelector('.search-bar')\n const dismiss = this.component.querySelector('[data-dismiss=\"search\"]')\n\n // Inicializar\n this._searchInit(trigger)\n\n // Abre busca\n trigger.addEventListener('click', () => {\n return this._searchOpen(trigger, target)\n })\n\n // Fecha busca\n dismiss.addEventListener('click', () => {\n return this._searchClose(trigger, target)\n })\n target.querySelector('input').addEventListener('keydown', (event) => {\n if (event.key === 'Escape') {\n this._searchClose(trigger, target)\n }\n })\n }\n }\n\n /**\n * Inicializa a busca\n * @private\n * @param {object} trigger - Objeto referente ao elemento que dispara a ação\n */\n _searchInit(trigger) {\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n /**\n * Abre a busca\n * @private\n * @param {object} trigger - Objeto referente ao elemento que dispara a ação\n * @param {object} target - Objeto referente ao alvo da ação\n */\n _searchOpen(trigger, target) {\n trigger.setAttribute('aria-expanded', 'true')\n target.classList.add('show')\n target.parentElement.classList.add('show')\n target.querySelector('input').focus()\n }\n\n /**\n * Fecha a busca\n * @private\n * @param {object} trigger - Objeto referente ao elemento que dispara a ação\n * @param {object} target - Objeto referente ao alvo da ação\n */\n _searchClose(trigger, target) {\n target.querySelector('input').value = ''\n target.classList.remove('show')\n target.parentElement.classList.remove('show')\n trigger.focus()\n trigger.setAttribute('aria-expanded', 'false')\n }\n\n /**\n * Configura densidades\n * @private\n */\n _densityBehavior() {\n const desityTriggers = this.component.querySelectorAll('[data-density]')\n for (const desityTrigger of desityTriggers) {\n desityTrigger.addEventListener('click', () => {\n this.component.classList.remove('small', 'medium', 'large')\n this.component.classList.add(desityTrigger.dataset.density)\n this._dropdownClose(\n desityTrigger\n .closest('.dropdown')\n .querySelector('[data-toggle=\"dropdown\"]')\n )\n })\n }\n }\n\n /**\n * Configura ações de clique\n * @private\n */\n _setClickActions() {\n const headerCheckbox = this.component.querySelector(\n '.headers [type=\"checkbox\"]'\n )\n const tableCheckboxes = this.component.querySelectorAll(\n 'tbody [type=\"checkbox\"]'\n )\n const selectedBar = this.component.querySelector('.selected-bar')\n const checkAlls = this.component.querySelectorAll(\n '[data-toggle=\"check-all\"]'\n )\n for (const checkAll of checkAlls) {\n checkAll.addEventListener('click', () => {\n this._checkAllTable(selectedBar, tableCheckboxes, headerCheckbox)\n if (checkAll.parentElement.classList.contains('br-list')) {\n this._dropdownClose(\n checkAll\n .closest('.dropdown')\n .querySelector('[data-toggle=\"dropdown\"]')\n )\n }\n })\n }\n if (tableCheckboxes) {\n for (const checkbox of tableCheckboxes) {\n checkbox.addEventListener('change', () => {\n this._checkRow(checkbox, selectedBar, tableCheckboxes, headerCheckbox)\n })\n }\n }\n }\n\n /**\n * Configura seleção da linha\n * @private\n * @param {object} checkbox - Objeto referente ao checkbox\n * @param {boolean} check - define se a linha deve ser selecionada\n */\n _setRow(checkbox, check) {\n const tr = checkbox.parentNode.parentNode.parentNode\n if (check) {\n tr.classList.add('is-selected')\n checkbox.parentNode.classList.add('is-inverted')\n checkbox.checked = true\n } else {\n tr.classList.remove('is-selected')\n checkbox.parentNode.classList.remove('is-inverted')\n checkbox.checked = false\n }\n }\n\n /**\n * Configura seleção da linha\n * @private\n * @param {object} checkbox - Objeto referente ao checkbox\n * @param {object} selectedBar - Objeto referente a barra contextual\n * @param {object} tableCheckboxes - Objeto referente a lista de checkboxes\n * @param {object} headerCheckbox - Objeto referente ao checkbox do header\n */\n _checkRow(checkbox, selectedBar, tableCheckboxes, headerCheckbox) {\n const check = checkbox.checked\n this._setRow(checkbox, check)\n this._setSelectedBar(\n check ? 1 : -1,\n selectedBar,\n tableCheckboxes,\n headerCheckbox\n )\n }\n\n /**\n * Seleciona todas as linhas\n * @private\n * @param {object} tableCheckboxes - Objeto referente a lista de checkboxes\n */\n _checkAllRows(tableCheckboxes) {\n for (const checkbox of tableCheckboxes) {\n this._setRow(checkbox, true)\n }\n }\n\n /**\n * Desseleciona todas as linhas\n * @private\n * @param {object} tableCheckboxes - Objeto referente a lista de checkboxes\n */\n _uncheckAllRows(tableCheckboxes) {\n for (const checkbox of tableCheckboxes) {\n this._setRow(checkbox, false)\n }\n }\n\n /**\n * Seleciona toda a tabela\n * @private\n * @param {object} selectedBar - Objeto referente a barra contextual\n * @param {object} tableCheckboxes - Objeto referente a lista de checkboxes\n * @param {object} headerCheckbox - Objeto referente ao checkbox do header\n */\n _checkAllTable(selectedBar, tableCheckboxes, headerCheckbox) {\n let count = tableCheckboxes.length\n const infoCount = selectedBar.querySelector('.info .count')\n const total = parseInt(infoCount.innerHTML, 10)\n if (total === count) {\n this._uncheckAllRows(tableCheckboxes)\n count = -1 * count\n } else {\n this._checkAllRows(tableCheckboxes)\n }\n this._setSelectedBar(count, selectedBar, tableCheckboxes, headerCheckbox)\n }\n\n /**\n * Define visualização dos itens selecionados na barra contextual\n * @private\n * @param {number} count - número de itens selecionados\n * @param {object} selectedBar - Objeto referente a barra contextual\n * @param {object} tableCheckboxes - Objeto referente a lista de checkboxes\n * @param {object} headerCheckbox - Objeto referente ao checkbox do header\n */\n _setSelectedBar(count, selectedBar, tableCheckboxes, headerCheckbox) {\n const infoCount = selectedBar.querySelector('.info .count')\n const infoText = selectedBar.querySelector('.info .text')\n const total = count < 2 ? parseInt(infoCount.innerHTML, 10) + count : count\n if (total > 0) {\n selectedBar.classList.add('show')\n infoCount.innerHTML = total\n infoText.innerHTML = total > 1 ? 'itens selecionados' : 'item selecionado'\n if (headerCheckbox) headerCheckbox.parentNode.classList.add('is-checking')\n if (total === tableCheckboxes.length) {\n if (headerCheckbox) {\n headerCheckbox.checked = true\n headerCheckbox.parentNode.classList.remove('is-checking')\n }\n }\n } else {\n infoCount.innerHTML = 0\n if (headerCheckbox) {\n headerCheckbox.checked = false\n headerCheckbox.parentNode.classList.remove('is-checking')\n }\n selectedBar.classList.remove('show')\n }\n }\n}\n\nexport default BRTable\n","/** Classe para instanciar um objeto BRTag*/\nclass BRTag {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n if (this.component.classList.contains('interaction-select')) {\n // Inicializa selecionado\n if (this.component.querySelector('input').getAttribute('checked')) {\n this.component.classList.add('selected')\n }\n this._setSelection()\n }\n this._closeTag()\n this._dismissTag()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setSelection() {\n const label = this.component.querySelector('label')\n const input = this.component.querySelector('input')\n // const tagRadio = input.getAttribute('type') === 'radio' ? true : false\n\n label.addEventListener('click', (event) => {\n this._toggleSelection(input, event)\n })\n input.addEventListener('keydown', (event) => {\n if (event.code === 'Space' || event.code === 'Enter') {\n this._toggleSelection(input, event)\n }\n })\n }\n\n /**\n * Muda estado do radio\n * @private\n * @param {object} input - referencia DOM ao input\n */\n _toggleRadio(input) {\n if (this.component.querySelector('[type=\"radio\"')) {\n const nameTag = input.getAttribute('name')\n for (const tagRadio of window.document.querySelectorAll(\n `[name=${nameTag}]`\n )) {\n this._removeCheck(tagRadio)\n }\n }\n }\n\n /**\n * Muda estado do input\n * @private\n * @param {object} input - referencia DOM ao input\n * @param {event} event - ação que disparou o evento\n */\n _toggleSelection(input, event) {\n event.preventDefault()\n this._toggleRadio(input)\n if (input.getAttribute('checked')) {\n this._removeCheck(input)\n return\n }\n\n this._setCheck(input)\n }\n\n /**\n * Define estado do input para selecionado\n * @private\n * @param {object} input - referencia DOM ao input\n */\n _setCheck(input) {\n input.setAttribute('checked', 'checked')\n input.parentElement.classList.add('selected')\n }\n\n /**\n * Define estado do input para desselecionado\n * @private\n * @param {object} input - referencia DOM ao input\n */\n _removeCheck(input) {\n input.removeAttribute('checked')\n input.parentElement.classList.remove('selected')\n }\n\n /**\n * Define comportamento do botão de fechar usando classe (compatibilidade)\n * @private\n */\n _closeTag() {\n const closeBtn = this.component.querySelector('.br-button.close')\n\n if (closeBtn) {\n const brTag = closeBtn.closest('.br-tag')\n\n brTag.addEventListener('click', () => {\n closeBtn.closest('.br-tag').remove()\n })\n }\n }\n\n /**\n * Define comportamento do botão de fechar usando data-dismiss\n * @private\n */\n _dismissTag() {\n this.component.querySelectorAll('[data-dismiss]').forEach((closeBtn) => {\n closeBtn.addEventListener('click', () => {\n const target = document.querySelector(\n `#${closeBtn.getAttribute('data-dismiss')}`\n )\n if (target) target.remove()\n })\n })\n }\n}\n\nconst tagList = []\nfor (const brTag of window.document.querySelectorAll('.br-tag')) {\n tagList.push(new BRTag('br-tab', brTag))\n}\n\nexport default BRTag\n","/** Classe para instanciar um objeto BRTextArea*/\nclass BRTextArea {\n /**\n * Instancia do objeto\n * @param {string} name - Nome do componente em minúsculo\n * @param {object} component - Objeto referenciando a raiz do componente DOM\n */\n constructor(name, component) {\n this.name = name\n this.component = component\n this._setBehavior()\n this._setKeyup()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n this.limit = this.component.querySelector('.limit')\n this.current = this.component.querySelector('.current')\n if (this.component.querySelector('textarea') !== null) {\n this.maximum = this.component\n .querySelector('textarea')\n .getAttribute('maxlength')\n }\n\n this.characters = this.component.querySelector('.characters')\n this.currentValue = this.component.querySelector('.current')\n }\n\n /**\n * Define ações do teclado\n * @private\n */\n _setKeyup() {\n this.component.addEventListener('keyup', () => {\n const characterCount = this.component.querySelector('textarea').textLength\n if (characterCount <= this.maximum && !this.characters) {\n this.limit.innerHTML = ''\n this.currentValue.innerHTML = `Restam ${\n this.maximum - characterCount\n } caracteres`\n }\n // Com limite de caracteres\n if (!this.characters) {\n if (characterCount === 0 && this.limit.innerHTML === '') {\n this.limit.innerHTML = `Limite máximo de ${this.maximum} caracteres`\n this.currentValue.innerHTML = ''\n }\n }\n // Sem limite de caracteres\n else {\n this.characters.innerHTML = `${characterCount} caracteres digitados`\n }\n })\n }\n}\n\nexport default BRTextArea\n","import { createPopper } from '@popperjs/core'\nclass BRTooltip {\n constructor(name, component) {\n this.name = name\n this.component = component\n this.activator = component.previousSibling.previousSibling\n const place = component.getAttribute('place')\n const positions = ['top', 'right', 'bottom', 'left']\n this.popover = component.hasAttribute('popover')\n this.notification = component.classList.contains('br-notification')\n this.timer = component.getAttribute('timer')\n const positionNotification = this.notification ? 'bottom' : 'top'\n this.active = component.hasAttribute('active')\n this.placement = positions.includes(place) ? place : positionNotification\n this.popperInstance = null\n this.showEvents = ['mouseenter', 'click', 'focus']\n this.hideEvents = ['mouseleave', 'blur']\n this.closeTimer = null\n\n this._create()\n this._setBehavior()\n }\n\n _setBehavior() {\n // Ação de abrir padrao ao entrar no ativador\n\n if (this.activator) {\n this.showEvents.forEach((event) => {\n this.activator.addEventListener(event, (otherEvent) => {\n this._show(otherEvent)\n })\n })\n // }\n }\n // Adiciona ação de fechar ao botao do popover\n // if (this.popover || this.notification) {\n if (this.popover) {\n const closeBtn = this.component.querySelector('.close')\n closeBtn.addEventListener('click', (event) => {\n this._hide(event, this.component)\n this._toggleActivatorIcon()\n })\n // Ação de fechar padrao ao sair do ativador\n } else {\n this.hideEvents.forEach((event) => {\n this.activator.addEventListener(event, (otherEvent) => {\n this._hide(otherEvent, this.component)\n })\n })\n }\n }\n\n _create() {\n this._setLayout()\n\n // Cria a instancia do popper\n if (this.notification) {\n this.component.setAttribute('notification', '')\n\n this.popperInstance = createPopper(this.activator, this.component, {\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 10],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n altAxis: false,\n mainAxis: true,\n },\n },\n ],\n placement: this.placement,\n\n strategy: 'fixed',\n })\n } else {\n let ac = new DOMRect()\n const tt = new DOMRect()\n\n ac = this.activator.getBoundingClientRect()\n\n const bw = document.body.clientWidth\n if (this.placement === 'right') {\n this.placement =\n ac.x + ac.width + tt.width > bw ? 'top' : this.placement\n }\n if (this.placement === 'left') {\n this.placement = ac.x - tt.width > 0 ? this.placement : 'top'\n }\n\n this.popperInstance = createPopper(this.activator, this.component, {\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n altAxis: true,\n mainAxis: true,\n tether: false,\n },\n },\n ],\n placement: this.placement,\n })\n }\n }\n\n _show(event) {\n this.component.style.display = 'unset'\n this.component.setAttribute('data-show', '')\n this.component.style.zIndex = 99\n this._fixPosition()\n\n // Importante pois \"display: none\" conflitua com a instancia do componente e precisa ser setado aqui já que pelo css ativa o efeito fade no primeiro carregamento\n\n this.component.style.visibility = 'visible'\n if (this.timer) {\n clearTimeout(this.closeTimer)\n\n this.closeTimer = setTimeout(\n this._hide,\n this.timer,\n event,\n this.component\n )\n }\n }\n\n _hide(event, component) {\n component.removeAttribute('data-show')\n component.style.zIndex = -1\n component.style.visibility = 'hidden'\n clearTimeout(component.closeTimer)\n }\n\n _setLayout() {\n // Cria a setinha que aponta para o item que criou o tooltip\n const arrow = document.createElement('div')\n arrow.setAttribute('data-popper-arrow', '')\n\n if (this.component.querySelectorAll('.arrow').length < 1) {\n arrow.classList.add('arrow')\n }\n this.component.appendChild(arrow)\n // Cria o icone de fechar do po over\n if (this.popover) {\n const close = document.createElement('button')\n close.setAttribute('type', 'button')\n close.classList.add('close')\n const ico = document.createElement('i')\n ico.classList.add('fas', 'fa-times')\n close.appendChild(ico)\n this.component.appendChild(close)\n }\n }\n\n _toggleActivatorIcon() {\n const icon = this.activator.querySelector('button svg')\n if (icon) {\n icon.classList.toggle('fa-angle-down')\n icon.classList.toggle('fa-angle-up')\n }\n this.activator.toggleAttribute('active')\n }\n\n _fixPosition() {\n if (this.notification) {\n setTimeout(() => {\n const ac = this.activator.getBoundingClientRect()\n this.component.style = `position: fixed !important; top: ${\n ac.top + ac.height + 10\n }px !important; left: auto; right: 8px; display: unset; bottom: auto;`\n this.component.querySelector(\n '.arrow'\n ).style = `position: absolute; left: auto; right: ${\n document.body.clientWidth - ac.right + ac.width / 5\n }px !important;`\n }, 10)\n }\n }\n}\n\nexport default BRTooltip\n","import BRTooltip from '../../components/tooltip/tooltip'\n/** Classe para instanciar um objeto BRUpload */\nclass BRUpload {\n /**\n * @param {*} name nome do componente\n * @param {*} component componente\n * @param {*} uploadFiles promisse de status do upload\n */\n constructor(name, component, uploadFiles) {\n this.name = name\n this.component = component\n this._inputElement = this.component.querySelector('.upload-input')\n this._fileList = this.component.querySelector('.upload-list')\n this._btnUpload = this.component.querySelector('.upload-button')\n this._label = this.component.querySelector('label')\n this._textHelp = document.querySelector('.text-base')\n this._fileArray = []\n this._uploadFiles = uploadFiles\n this._setBehavior()\n }\n\n /**\n * Define comportamentos do componente\n * @private\n */\n _setBehavior() {\n if (this._inputElement) {\n const button = document.createElement('button')\n button.className = 'upload-button'\n button.setAttribute('type', 'button')\n\n if (this._inputElement.getAttribute('multiple'))\n button.innerHTML =\n 'Selecione o(s) arquivo(s)'\n else\n button.innerHTML =\n 'Selecione o arquivo'\n\n this.component.append(this._label)\n this.component.append(this._inputElement)\n this.component.appendChild(button)\n this.component.append(this._fileList)\n this._btnUpload = this.component.querySelector('.upload-button')\n this._btnUpload.addEventListener(\n 'click',\n () => {\n this._clickUpload()\n },\n false\n )\n if (this.component.getAttribute('disabled')) {\n const message = document.createElement('span')\n message.classList.add('feedback', 'warning', 'mt-1')\n message.setAttribute('role', 'alert')\n message.innerHTML =\n 'Upload desabilitado'\n this.component.after(message)\n }\n\n this._fileArray = Array.from(this._inputElement.files)\n this._inputElement.addEventListener(\n 'change',\n (event) => {\n this._handleFiles(event)\n },\n false\n )\n }\n\n this._setDragAndDropBehavior()\n }\n\n /**\n * Define comportamento de arrastar(drag) e posicionar(drop)\n * @private\n */\n _setDragAndDropBehavior() {\n const uploadButton = this.component.querySelector('.upload-button')\n\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\n uploadButton.addEventListener(eventName, this._preventDefaults)\n })\n ;['dragenter', 'dragover'].forEach((eventName) => {\n uploadButton.addEventListener(eventName, this._hightLight.bind(this))\n })\n ;['dragleave', 'drop'].forEach((eventName) => {\n uploadButton.addEventListener(eventName, this._unHightLight.bind(this))\n })\n\n uploadButton.addEventListener('drop', this._handleDrop.bind(this))\n }\n\n /**\n * Evita os eventos padrao e propagação de evento\n * @private\n * @param {event} event - referencia ao evento\n */\n _preventDefaults(event) {\n event.preventDefault()\n event.stopPropagation()\n }\n\n _hightLight() {\n this.component.classList.add('dragging')\n }\n\n _unHightLight() {\n this.component.classList.remove('dragging')\n }\n\n /**\n * Ação de posicionar (drop)\n * @private\n * @param {event} event - referencia ao evento\n */\n _handleDrop(event) {\n this.component.classList.remove('dragging')\n const dt = event.dataTransfer\n const { files } = dt\n this._handleFiles(files)\n }\n\n /**\n * Testa se o objeto que disparou a ação está desabilitado\n * @private\n * @param {event} event - referencia ao evento\n */\n _isDisabled(event) {\n const isDisabled = event.target.getAttribute('disabled')\n if (isDisabled) {\n return true\n } else {\n return false\n }\n }\n\n /**\n * Simula ação de clicar no input\n * @private\n */\n _clickUpload() {\n this._inputElement.click()\n }\n\n /**\n * Limpa mensagem de feedback\n * @private\n */\n _removeMessage() {\n for (const message of this.component.querySelectorAll('.feedback')) {\n message.parentNode.removeChild(message)\n message.innerHTML = ''\n }\n }\n\n /**\n * Remove mensagem de estado\n * @private\n */\n _removeStatus() {\n const remStatus = ['danger', 'warning', 'info', 'success']\n remStatus.forEach((el) => {\n if (this.component.dataset.hasOwnProperty(el))\n this.component.removeAttribute(`data-${el}`)\n })\n }\n\n /**\n * Define mensagem de feedback\n * @private\n * @param {string} status - estados: danger / info / success / warning\n */\n _feedback(status, text) {\n const icone = `${text}`\n const dataStatus = `data-${status}`\n const message = document.createElement('span')\n message.classList.add('feedback', status, 'mt-1')\n message.setAttribute('role', 'alert')\n switch (status) {\n case 'danger':\n message.innerHTML = icone\n break\n case 'info':\n message.innerHTML = icone.replace('fa-times-circle', 'fa-info-circle')\n break\n case 'success':\n message.innerHTML = icone.replace('fa-times-circle', 'fa-check-circle')\n break\n case 'warning':\n message.innerHTML = icone.replace(\n 'fa-times-circle',\n 'fa-exclamation-triangle'\n )\n break\n default:\n message.innerHTML = ''\n }\n this._removeStatus()\n this.component.setAttribute(dataStatus, dataStatus)\n this._fileList.before(message)\n }\n\n /**\n * Adiciona arquivos a lista\n * @private\n * @param {File[]} files - lista de arquivos\n */\n _concatFiles(files) {\n const newFiles = !files.length\n ? Array.from(this._inputElement.files)\n : Array.from(files)\n this._fileArray = this._fileArray.concat(newFiles)\n }\n\n /**\n * Adiciona arquivos a lista\n * @private\n * @param {File[]} files - lista de arquivos\n */\n _handleFiles(files) {\n this._removeMessage()\n if (!this._inputElement.multiple && files.length > 1) {\n this._feedback('danger', 'É permitido o envio de somente 1 arquivo.')\n } else if (!this._inputElement.multiple && this._fileArray.length > 0) {\n this._fileArray = []\n this._concatFiles(files)\n this._updateFileList()\n this._feedback(\n 'warning',\n 'O arquivo enviado anteriormente foi substituído'\n )\n } else {\n this._concatFiles(files)\n this._updateFileList()\n }\n }\n\n /**\n * Atualiza lista de arquivos eliminando redundâncias\n * @private\n */\n _updateFileList() {\n this._removeStatus()\n if (this.component.nextElementSibling === this._textHelp) {\n this._textHelp.style.display = 'none'\n }\n if (!this._fileArray.length) {\n this._fileList.innerHTML = ''\n if (this.component.nextElementSibling === this._textHelp) {\n this._textHelp.style.display = ''\n }\n } else {\n this._fileList.innerHTML = ''\n\n for (let i = 0; i < this._fileArray.length; i++) {\n if ('nowait' in this._fileArray[i]) {\n if (this._fileArray[i].nowait) {\n this._renderItem(i)\n }\n } else if (!this._fileArray[i].requested) {\n this.uploadLoading()\n this.uploadingFile(i)\n }\n }\n }\n }\n\n /**\n * Mostra mensagem de carregamento\n * @private\n */\n uploadLoading() {\n const loading = document.createElement('div')\n const carga = document.createElement('span')\n carga.classList.add('cargas')\n carga.innerText = 'Carregando...'\n loading.setAttribute('sm', '')\n loading.classList.add('my-3')\n loading.setAttribute('loading', '')\n loading.appendChild(carga)\n this._fileList.appendChild(loading)\n }\n\n /**\n * Faz upload de arquivo na posição definida\n * @private\n * @param {Number} position - numero do ínidice da posição\n */\n uploadingFile(position) {\n if (this._uploadFiles) {\n this._fileArray[position].requested = true\n this._uploadFiles().then(() => {\n this._fileArray[position].nowait = true\n this._updateFileList()\n })\n }\n }\n\n /**\n * Renderiza item na posição definida\n * @private\n * @param {Number} position - numero do ínidice da posição\n */\n _renderItem(position) {\n const li = document.createElement('div')\n li.className = 'br-item d-flex'\n this._fileList.appendChild(li)\n li.innerHTML = ''\n const name = document.createElement('div')\n name.className = 'name'\n li.appendChild(name)\n this._fileList.appendChild(li)\n const info = document.createElement('div')\n info.className = 'content'\n info.innerHTML = this._fileArray[position].name\n const tooltip = document.createElement('div')\n tooltip.classList.add('br-tooltip')\n tooltip.setAttribute('role', 'tooltip')\n tooltip.setAttribute('place', 'top')\n tooltip.setAttribute('info', 'info')\n const textTooltip = document.createElement('span')\n textTooltip.classList.add('text')\n textTooltip.setAttribute('role', 'tooltip')\n textTooltip.innerHTML = this._fileArray[position].name\n tooltip.appendChild(textTooltip)\n li.appendChild(info)\n li.appendChild(name)\n li.appendChild(tooltip)\n info.classList.add('text-primary-default', 'mr-auto')\n const del = document.createElement('div')\n del.className = 'support mr-n2'\n const btndel = document.createElement('button')\n const spanSize = document.createElement('span')\n spanSize.className = 'mr-1'\n spanSize.innerHTML = this._calcSize(this._fileArray[position].size)\n del.appendChild(spanSize)\n btndel.className = 'br-button'\n btndel.type = 'button'\n btndel.setAttribute('circle', '')\n btndel.addEventListener(\n 'click',\n (event) => {\n this._removeFile(position, event)\n },\n false\n )\n const img = document.createElement('i')\n img.className = 'fa fa-trash'\n btndel.appendChild(img)\n del.appendChild(btndel)\n li.appendChild(del)\n this._fileArray[position].nowait = true\n const tooltipList = []\n for (const brTooltip of window.document.querySelectorAll('.br-tooltip')) {\n tooltipList.push(new BRTooltip('br-tooltip', brTooltip))\n }\n }\n\n /**\n * Formata tamanho do arquivo\n * @private\n * @param {Number} nBytes - quantidade de bytes do arquivo\n */\n _calcSize(nBytes) {\n let sOutput = ''\n for (\n let aMultiples = ['KB', 'MB', 'GB', 'TB'],\n nMultiple = 0,\n nApprox = nBytes / 1024;\n nApprox > 1;\n nApprox /= 1024, nMultiple++\n ) {\n sOutput = `${nApprox.toFixed(2)} ${aMultiples[nMultiple]}`\n }\n return sOutput\n }\n\n /**\n * Remove arquivo na posição definida\n * @private\n * @param {Number} index - numero do ínidice da posição\n * @param {event} event - evento que disparou a ação\n */\n _removeFile(index, event) {\n event.stopPropagation()\n event.preventDefault()\n this._removeStatus()\n this._removeMessage()\n this._fileArray.splice(index, 1)\n this._updateFileList()\n\n if (this._inputElement.multiple)\n this._inputElement.files = this._updateFileListItems(this._fileArray)\n if (!this._inputElement.multiple) this._inputElement.value = ''\n }\n\n /**\n * Atualiza arquivos da lista\n * @private\n * @param {File[]} files - lista de arquivos\n */\n _updateFileListItems(files) {\n const fileInput = new ClipboardEvent('').clipboardData || new DataTransfer()\n for (let i = 0, len = files.length; i < len; i++)\n fileInput.items.add(files[i])\n return fileInput.files\n }\n}\n\nexport default BRUpload\n","import Swipe from '../../partial/js/behavior/swipe'\n\n/** Classe para instanciar um objeto BRWizard*/\nclass BRWizard {\n /**\n * Instância do componente\n * @param {string} name - nome do componente\n * @param {object} component - referencia ao objeto do DOM\n **/\n constructor(name, component) {\n this.name = name\n this.component = component\n this.DOMstrings = {\n stepFormPanelClass: 'wizard-panel',\n stepFormPanels: this.component.querySelectorAll('.wizard-panel'),\n stepNextBtnClass: 'wizard-btn-next',\n stepPrevBtnClass: 'wizard-btn-prev',\n stepsBar: this.component.querySelector('.wizard-progress'),\n stepsBarClass: 'wizard-progress',\n stepsBtnClass: 'wizard-progress-btn',\n stepsBtns: this.component.querySelectorAll('.wizard-progress-btn'),\n stepsForm: this.component.querySelector('.wizard-form'),\n }\n /**\n * Retira o atributo de uma lista de elementos\n * @param {object[]} elementSet - Lista de objetos\n * @param {string} attrName - Nome do atribbuto\n */\n this.removeAttributes = (elemSet, attrName) => {\n elemSet.forEach((elem) => {\n elem.removeAttribute(attrName)\n })\n }\n\n /**\n * Retorna o elemento pai do objeto com a classe de referência\n * @param {object} elem - Lista de objetos\n * @param {string} parentClass - nome da classe de referência\n * @returns {object}\n */\n this.findParent = (elem, parentClass) => {\n let currentNode = elem\n while (!currentNode.classList.contains(parentClass)) {\n currentNode = currentNode.parentNode\n }\n return currentNode\n }\n\n /**\n * Retorna o índice do elemento botão de passo\n * @param {object} elem - botão de passo\n * @returns {number}\n */\n this.getActiveStep = (elem) => {\n return Array.from(this.DOMstrings.stepsBtns).indexOf(elem)\n }\n\n /**\n * Define o estado do botão ativo e limpa os demais estados dos botões\n * @param {number} activeStepNum - número do botão ativo\n */\n this.setActiveStep = function (activeStepNum) {\n this.removeAttributes(this.DOMstrings.stepsBtns, 'active')\n this.DOMstrings.stepsBtns.forEach((elem, index) => {\n if (index === activeStepNum) {\n elem.removeAttribute('disabled')\n elem.setAttribute('active', '')\n }\n })\n }\n\n /**\n * Retorna o índice do painel ativo\n * @returns {number}\n */\n this.getActivePanel = () => {\n let activePanel\n this.DOMstrings.stepFormPanels.forEach((elem) => {\n if (elem.hasAttribute('active')) {\n activePanel = elem\n }\n })\n return activePanel\n }\n\n /**\n * Abre o painel ativo e fecha paineis inativos\n * @param {number} activePanelNum - numero do painel\n */\n this.setActivePanel = (activePanelNum) => {\n // remove active class from all the panels\n this.removeAttributes(this.DOMstrings.stepFormPanels, 'active')\n // show active panel\n this.DOMstrings.stepFormPanels.forEach((elem, index) => {\n if (index === activePanelNum) {\n elem.setAttribute('active', '')\n }\n })\n }\n\n /**\n * Define números dos passos\n */\n this.setStepsNum = () => {\n this.DOMstrings.stepsBtns.forEach((elem, index) => {\n elem.setAttribute('step', index + 1)\n })\n }\n\n /**\n * Define passo e painel ativo\n * @param {number} num - numero do passo\n */\n this.setStep = (num) => {\n const activeStep = num <= this.DOMstrings.stepsBtns.length ? num - 1 : 0\n this.setActiveStep(activeStep)\n this.setActivePanel(activeStep)\n }\n\n /**\n * Retrai painel de passos\n */\n this.collapseSteps = () => {\n this.component.setAttribute('collapsed', '')\n }\n\n /**\n * Expande painel de passos\n */\n this.expandSteps = () => {\n this.component.removeAttribute('collapsed')\n }\n\n this._setBehavior()\n }\n\n /**\n * Define os comportamentos do componente\n * @private\n */\n _setBehavior() {\n /**\n * Mapeia clique na barra de passos\n */\n this.DOMstrings.stepsBar.addEventListener('click', (e) => {\n const eventTarget = e.target\n if (!eventTarget.classList.contains(`${this.DOMstrings.stepsBtnClass}`)) {\n e.target.parentNode.click()\n return\n }\n const activeStep = this.getActiveStep(eventTarget)\n this.setActiveStep(activeStep)\n this.setActivePanel(activeStep)\n })\n\n /**\n * Mapeia clique nos botões de navegação\n */\n this.DOMstrings.stepsForm.addEventListener('click', (e) => {\n const eventTarget = e.target\n if (\n !(\n eventTarget.classList.contains(\n `${this.DOMstrings.stepPrevBtnClass}`\n ) ||\n eventTarget.classList.contains(`${this.DOMstrings.stepNextBtnClass}`)\n )\n ) {\n return\n }\n const activePanel = this.findParent(\n eventTarget,\n `${this.DOMstrings.stepFormPanelClass}`\n )\n let activePanelNum = Array.from(this.DOMstrings.stepFormPanels).indexOf(\n activePanel\n )\n if (\n eventTarget.classList.contains(`${this.DOMstrings.stepPrevBtnClass}`)\n ) {\n activePanelNum -= 1\n activePanel.style.left = '1%'\n } else {\n activePanelNum += 1\n activePanel.style.left = '-1%'\n }\n this.setActiveStep(activePanelNum)\n this.setActivePanel(activePanelNum)\n })\n\n this.setStepsNum()\n\n if (this.component.hasAttribute('step')) {\n this.setStep(this.component.getAttribute('step'))\n }\n\n if (\n this.component.hasAttribute('scroll') &&\n !this.component.hasAttribute('vertical')\n ) {\n const stepsWidth =\n Math.round(100 / this.DOMstrings.stepsBtns.length) - 0.5\n this.DOMstrings.stepsBar.style.gridTemplateColumns = `repeat(auto-fit, minmax(100px, ${stepsWidth}% ))`\n }\n\n /**\n * Configura gestos (swipe)\n */\n const dispatcher = new Swipe(this.DOMstrings.stepsBar)\n if (this.component.hasAttribute('vertical')) {\n dispatcher.on('SWIPE_LEFT', () => {\n this.collapseSteps()\n })\n dispatcher.on('SWIPE_RIGHT', () => {\n this.expandSteps()\n })\n this.DOMstrings.stepsForm.ontouchstart = () => {\n this.collapseSteps()\n }\n } else {\n this.DOMstrings.stepsBar.ontouchstart = () => {\n this.expandSteps()\n }\n this.DOMstrings.stepsForm.ontouchstart = () => {\n this.collapseSteps()\n }\n }\n }\n}\n\nexport default BRWizard\n","import Collapse from './collapse'\n\n/**\n * Classe para o comportamento Accordion.\n * O Comportamento Accordion é um agrupador de comportamentos Collapse\n */\nexport default class Accordion extends Collapse {\n /**\n * Instancia um comportamento accordion\n * @param {object} - Objeto de configuração inicial para destructuring\n * @property {object} trigger - Elemento DOM que representa o acionador do comportmento accordion\n * @property {string} iconToShow - Classe que representa o ícone para mostrar o conteúdo (padrão: fa-chevron-down)\n * @property {string} iconToHide - Classe que representa o ícone para esconder o conteúdo (padrão: fa-chevron-up)\n * @property {boolean} useIcons - true: com ícone | false: sem ícone (padrão: true)\n */\n constructor({\n trigger,\n iconToShow = 'fa-chevron-down',\n iconToHide = 'fa-chevron-up',\n useIcons = true,\n }) {\n super({ iconToHide, iconToShow, trigger, useIcons })\n this._setUp()\n }\n\n /**\n * Trata a configuração inicial do comportamento accordion\n * @private\n */\n _setUp() {\n super._setUp()\n this._setPriorityVisibility()\n }\n\n /**\n * Determina qual acionador vai estar visivel, caso mais de 1 acionador esteja visivel no grupo.\n * Prioridade de cima para baixo\n * @private\n */\n _setPriorityVisibility() {\n for (let i = 0; i < this._getGroup().length; i += 1) {\n if (this._getGroup()[i].dataset.visible === 'true') {\n this._synchronizeAccordion(this._getGroup()[i])\n break\n }\n }\n }\n\n /**\n * Obtém todos os acionadores pertencentes ao grupo do comportamento accordion\n * @returns {array} - Conjunto de elementos DOM representando os acionadores pertencentes ao grupo do comportamento accordion\n * @private\n */\n _getGroup() {\n return document.querySelectorAll(\n `[data-group=\"${this.trigger.getAttribute('data-group')}\"]`\n )\n }\n\n /**\n * Handler para o evento 'change' do acionador\n * @param {object} event - Objeto do tipo Event\n * @private\n */\n _handleTriggerChangeBehavior(event) {\n if (!event.currentTarget.hasAttribute('data-sync')) {\n this._synchronizeAccordion(event.currentTarget)\n } else {\n event.currentTarget.removeAttribute('data-sync')\n }\n }\n\n /**\n * Sincroniza o grupo de accordion mostrando 1 elemento aberto por vez\n * @param {object} currentTrigger - Elemento DOM representando um acionador do comportamento accordion\n * @private\n */\n _synchronizeAccordion(currentTrigger) {\n this._getGroup().forEach((trigger) => {\n if (trigger !== currentTrigger && trigger.dataset.visible === 'true') {\n trigger.setAttribute('data-sync', '')\n trigger.click()\n }\n })\n }\n\n /**\n * Configura o comportamento accordion\n * @public\n */\n setBehavior() {\n super.setBehavior()\n this.trigger.addEventListener(\n 'change',\n this._handleTriggerChangeBehavior.bind(this)\n )\n }\n}\n","/**\n * Comportamento do grupo de checkboxes\n *\n * Cada checkbox parent em uma cadeia de checkbox terá um objeto próprio para tratar\n * o seu comportamento e de seus filhos. Os eventListeners são declarados em cada objeto,\n * de modo que a execução passa por objetos diferentes quando um checkbox é pai e filho ao mesmo tempo\n *\n * O comportamento é uma sincronia entre os eventos e o objeto que executa o evento\n */\nexport default class Checkgroup {\n /**\n * Instancia um comportamento de grupo de checkbox\n * @param {object} trigger - Elemento DOM que representa o checkbox acionador do comportamento\n */\n constructor(trigger) {\n this.parent = trigger\n // this.checkedLabel = trigger.dataset.checkedLabel\n // this.uncheckedLabel = trigger.dataset.uncheckedLabel\n this.children = this._setChildren(trigger.dataset.parent)\n }\n\n /**\n * Pega dinamincamente o valor do atributo data-checked-label\n * @type {string} - O valor do atributo data-checked-label ou o valor da label, caso não tenha o atributo\n * @readonly\n * @public\n */\n get checkedLabel() {\n return (\n this.parent.dataset.checkedLabel ||\n this.parent.nextElementSibling.innerText\n )\n }\n\n /**\n * Pega dinamincamente o valor do atributo data-unchecked-label\n * @type {string} - O valor do atributo data-unchecked-label ou o valor da label, caso não tenha o atributo\n * @readonly\n * @public\n */\n get uncheckedLabel() {\n return (\n this.parent.dataset.uncheckedLabel ||\n this.parent.nextElementSibling.innerText\n )\n }\n\n /**\n * Configurar o comportamento do grupo de checkbox\n * @public\n */\n setBehavior() {\n this._setParentBehavior()\n this._setChildBehavior()\n }\n\n /**\n * Obtem todos os checkboxes filhos do checkbox pai\n * @param {string} tag - Nome que indica a relação entre checkbox pai e checkbox filho\n * @returns {array} - Array contendo os elementos DOM que representam os checkboxes filhos.\n */\n _setChildren(tag) {\n return document.querySelectorAll(`[data-child=\"${tag}\"]`)\n }\n\n /**\n * Trata do comportamento do checkbox pai\n * @private\n */\n _setParentBehavior() {\n this.parent.addEventListener('click', this._handleParentClick.bind(this))\n this.parent.addEventListener('change', this._handleParentChange.bind(this))\n }\n\n /**\n * Handler que trata o evento click no parent\n * @private\n */\n _handleParentClick() {\n if (!this.parent.hasAttribute('data-parent-sync')) {\n this._setIndeterminateStateOnClick()\n }\n this._setParentCheckboxLabel()\n }\n\n /**\n * Trata o estado indeterminado no evento click da etapa de interação do usuário\n * @private\n */\n _setIndeterminateStateOnClick() {\n if (this.parent.hasAttribute('indeterminate')) {\n this.parent.removeAttribute('indeterminate')\n this.parent.checked = true\n }\n }\n\n /**\n * Handler que trata o evento change no parent\n * @private\n */\n _handleParentChange() {\n if (!this.parent.hasAttribute('data-parent-sync')) {\n this._changeChildState()\n this._setParentCheckboxLabel()\n } else {\n this.parent.removeAttribute('data-parent-sync')\n }\n }\n\n /**\n * Trata do estado do checkboxes filhos\n * @private\n */\n _changeChildState() {\n this.children.forEach((child) => {\n if (\n child.checked !== this.parent.checked ||\n child.hasAttribute('indeterminate')\n ) {\n child.removeAttribute('indeterminate')\n child.checked = this.parent.checked\n child.dispatchEvent(new Event('change'))\n }\n })\n }\n\n /**\n * Trata do comportamento dos checkboxes filhos\n * @private\n */\n _setChildBehavior() {\n this.children.forEach((child) => {\n child.addEventListener('click', this._handleChildClick.bind(this))\n child.addEventListener('change', this._handleChildChange.bind(this))\n })\n }\n\n /**\n * Handler que trata do evento click no filho\n * @param {object} event - Objeto Event\n * @private\n */\n _handleChildClick(event) {\n event.currentTarget.setAttribute('data-child-sync', '')\n }\n\n /**\n * Handler que trata do evento change no filho\n * @param {object} event - Objeto Event\n * @private\n */\n _handleChildChange(event) {\n if (event.currentTarget.hasAttribute('data-child-sync')) {\n this._setIndeterminateStateOnChildChange()\n this.parent.setAttribute('data-parent-sync', '')\n this.parent.dispatchEvent(new Event('click'))\n this.parent.dispatchEvent(new Event('change'))\n event.currentTarget.removeAttribute('data-child-sync')\n }\n }\n\n /**\n * Trata o estado indeterminado no evento click da etapa de sincronia\n * @private\n */\n _setIndeterminateStateOnChildChange() {\n if (this._isAllChildrenChecked()) {\n this.parent.removeAttribute('indeterminate')\n this.parent.checked = true\n } else if (this._isAllChildrenUnchecked()) {\n this.parent.removeAttribute('indeterminate')\n this.parent.checked = false\n } else {\n this.parent.setAttribute('indeterminate', '')\n this.parent.checked = true\n }\n }\n\n /**\n * Verifica se todos os checkboxes filhos estão selecionados\n * @returns {boolean} - true se todos os checkboxes filhos estão selecionados\n * false se pelo menos 1 checkbox filho não está selecionado\n * @private\n */\n _isAllChildrenChecked() {\n let allChildChecked = true\n this.children.forEach((child) => {\n if (!child.checked || child.hasAttribute('indeterminate')) {\n allChildChecked = false\n }\n })\n return allChildChecked\n }\n\n /**\n * Verifica se todos so checkboxes filhos estão desselecionados\n * @returns {boolean} - true se todos os checkboxes filhos estão desselecionados\n * false se pelo menos 1 checkbox filho está selecionado\n * @private\n */\n _isAllChildrenUnchecked() {\n let allChildUnchecked = true\n this.children.forEach((child) => {\n if (child.checked) {\n allChildUnchecked = false\n }\n })\n return allChildUnchecked\n }\n\n /**\n * Configura a label do checkbox pai\n * @private\n */\n _setParentCheckboxLabel() {\n if (this.parent.checked && !this.parent.hasAttribute('indeterminate')) {\n this.parent.nextElementSibling.innerHTML = this.uncheckedLabel\n this.parent.setAttribute('aria-label', this.uncheckedLabel)\n } else {\n this.parent.nextElementSibling.innerHTML = this.checkedLabel\n this.parent.setAttribute('aria-label', this.checkedLabel)\n }\n }\n}\n","/** Classe para o comportamento Collapse */\nexport default class Collapse {\n /**\n * Instancia um comportamento collapse\n * @param {object} - Objeto de configuração inicial para destructuring\n * @property {object} trigger - Elemento DOM que representa o acionador do comportmento collapse\n * @property {string} iconToShow - Classe que representa o ícone para mostrar o conteúdo (padrão: fa-chevron-down)\n * @property {string} iconToHide - Classe que representa o ícone para esconder o conteúdo (padrão: fa-chevron-up)\n * @property {boolean} useIcons - true: com ícone | false: sem ícone (padrão: true)\n */\n constructor({\n trigger,\n iconToShow = 'fa-chevron-down',\n iconToHide = 'fa-chevron-up',\n useIcons = true,\n }) {\n this.trigger = trigger\n this.useIcons = useIcons\n this.breakpoint = trigger.getAttribute('data-breakpoint')\n this.setIconToShow(iconToShow)\n this.setIconToHide(iconToHide)\n this._setTarget()\n this._setUp()\n }\n\n /**\n * Determina qual elemento DOM é o alvo do comportamento collapse\n * @private\n */\n _setTarget() {\n this.target = document.querySelector(\n `#${this.trigger.getAttribute('data-target')}`\n )\n }\n\n // TODO: Melhorar a solução\n _checkBreakpoint() {\n if (this.breakpoint) {\n if (window.matchMedia('(min-width: 977px)').matches) {\n this.target.removeAttribute('hidden')\n }\n }\n }\n\n /**\n * Trata a configuração inicial do comportamento collapse\n * @private\n */\n _setUp() {\n this._setVisibilityStatus()\n if (this.useIcons) {\n this._toggleIcon()\n }\n this.trigger.setAttribute(\n 'aria-controls',\n `${this.trigger.getAttribute('data-target')}`\n )\n this._checkBreakpoint()\n }\n\n /**\n * Configura o estado de visualização do comportamento collapse\n * @private\n */\n _setVisibilityStatus() {\n this._setTriggerVisibilityStatus()\n this._setTargetVisibilityStatus()\n }\n\n /**\n * Trata o estado de visualização do acionador\n * @private\n */\n _setTriggerVisibilityStatus() {\n if (this.target) {\n if (this.target.hasAttribute('hidden')) {\n this.trigger.setAttribute('data-visible', false)\n this.trigger.setAttribute('aria-expanded', false)\n } else {\n this.trigger.setAttribute('data-visible', true)\n this.trigger.setAttribute('aria-expanded', true)\n }\n }\n }\n\n /**\n * Trata o estado de visualização do alvo\n * @private\n */\n _setTargetVisibilityStatus() {\n if (this.target) {\n if (this.target.hasAttribute('hidden')) {\n this.target.setAttribute('aria-hidden', true)\n } else {\n this.target.setAttribute('aria-hidden', false)\n }\n }\n }\n\n /**\n * Handler para o evento de click no acionador do comportamento collapse\n * Lança um evento 'change' a cada troca\n * @private\n */\n _handleTriggerClickBehavior() {\n if (this.breakpoint) {\n if (window.matchMedia('(max-width: 977px)').matches) {\n this._toggleVisibility()\n if (this.useIcons) {\n this._toggleIcon()\n }\n this.trigger.dispatchEvent(new Event('change'))\n }\n } else {\n this._toggleVisibility()\n if (this.useIcons) {\n this._toggleIcon()\n }\n this.trigger.dispatchEvent(new Event('change'))\n }\n }\n\n /**\n * Alterna o estado de visualização do comportamento collapse\n * @private\n */\n _toggleVisibility() {\n if (this.target) {\n this.target.hasAttribute('hidden')\n ? this.target.removeAttribute('hidden')\n : this.target.setAttribute('hidden', '')\n\n this._setVisibilityStatus()\n }\n }\n\n /**\n * Troca o icone do acionador após uma mudança no estado de visualização do alvo\n * Para o estado 'hidden' usa o iconToShow e para o estado 'shown' usa o iconToHide\n * @public\n */\n _toggleIcon() {\n this.trigger.querySelectorAll('i.fas').forEach((icon) => {\n if (this.target) {\n icon.classList.remove(\n this.target.hasAttribute('hidden') ? this.iconToHide : this.iconToShow\n )\n icon.classList.add(\n this.target.hasAttribute('hidden') ? this.iconToShow : this.iconToHide\n )\n }\n })\n }\n\n /**\n * Configura o comportamento collapse\n * @public\n */\n setBehavior() {\n this.trigger.addEventListener(\n 'click',\n this._handleTriggerClickBehavior.bind(this)\n )\n }\n\n /**\n * Determina a classe do icone para mostrar o conteúdo\n * @param {string} iconToShow - Classe que representa o ícone para mostrar o conteúdo\n * @public\n */\n setIconToShow(iconToShow) {\n this.iconToShow = iconToShow\n }\n\n /**\n * Determina a classe do ícone para esconder o conteúdo\n * @param {string} iconToHide - Classe que representa o ícone para esconder o conteúdo\n * @public\n */\n setIconToHide(iconToHide) {\n this.iconToHide = iconToHide\n }\n}\n","import Collapse from './collapse'\n\n/**\n * Classe para o comportamento Dropdown.\n * O Comportamento Dropdown é um caso especial do comportamentos Collapse\n * em que o alvo aparece flutuando na tela.\n * Nesse caso o alvo precisa filho de um elemento pai\n */\nexport default class Dropdown extends Collapse {\n /**\n * Instancia um comportamento accordion\n * @param {object} - Objeto de configuração inicial para destructuring\n * @property {object} trigger - Elemento DOM que representa o acionador do comportmento accordion\n * @property {string} iconToShow - Classe que representa o ícone para mostrar o conteúdo (padrão: fa-chevron-down)\n * @property {string} iconToHide - Classe que representa o ícone para esconder o conteúdo (padrão: fa-chevron-up)\n * @property {boolean} useIcons - true: com ícone | false: sem ícone (padrão: true)\n */\n constructor({\n trigger,\n iconToShow = 'fa-chevron-down',\n iconToHide = 'fa-chevron-up',\n useIcons = true,\n }) {\n super({ iconToHide, iconToShow, trigger, useIcons })\n }\n\n /**\n * Trata a configuração inicial do comportamento dropdown\n * @override\n * @private\n */\n _setUp() {\n super._setUp()\n this._hideDropdown()\n }\n\n /**\n * Oculta o dropdown ao clicar fora do acionador e do alvo\n * @private\n */\n _hideDropdown() {\n document.addEventListener('mousedown', (event) => {\n if (\n !this.trigger.contains(event.target) &&\n !this.target.hasAttribute('hidden') &&\n !this.target.contains(event.target)\n ) {\n this.trigger.click()\n }\n })\n }\n\n /**\n * Marca o alvo com o atributo data-dropdown\n * @override\n * @private\n */\n _setTargetVisibilityStatus() {\n super._setTargetVisibilityStatus()\n if (this.target.hasAttribute('hidden')) {\n this.target.removeAttribute('data-dropdown')\n } else {\n this.target.setAttribute('data-dropdown', '')\n }\n }\n\n /**\n * Trata o estado de visualização do pai do alvo\n * @private\n */\n _setParentsTargetVisibilityStatus() {\n if (this.target.hasAttribute('hidden')) {\n this.target.parentElement.classList.remove('dropdown')\n } else {\n this.target.parentElement.classList.add('dropdown')\n }\n }\n\n /**\n * Handler para o evento de click no acionador do comportamento dropdown\n * Lança um evento 'change' a cada troca\n * @override\n * @private\n */\n _handleTriggerClickBehavior() {\n super._handleTriggerClickBehavior()\n this._setParentsTargetVisibilityStatus()\n }\n\n /**\n * Configura o comportamento dropdown\n * @override\n * @public\n */\n setBehavior() {\n super.setBehavior()\n }\n}\n","/** Classe para o comportamento scrim */\nexport default class Scrim {\n /**\n * Instancia um comportamento scrim\n * @param {object} - Objeto de configuração inicial para destructuring\n * @property {object} trigger - Elemento DOM que representa o acionador do comportmento scrim\n * @property {string} closeElement - Elemento Dom do trigger que fecha o scrim\n */\n constructor({ trigger, closeElement }) {\n this.trigger = trigger\n this.closeElement = this.elementHideScrim(closeElement)\n if (this.trigger) {\n this.setBehavior()\n }\n }\n\n /**\n * Alterna o estado de visualização do comportamento scrim\n * @private\n */\n showScrim() {\n if (this.trigger) {\n this.trigger.classList.add('active')\n this.trigger.setAttribute('data-visible', true)\n this.trigger.setAttribute('aria-expanded', true)\n }\n }\n /**\n * Alterna o estado de escondido do comportamento scrim\n * @private\n */\n hideScrim() {\n this.trigger.classList.remove('active')\n this.trigger.setAttribute('data-visible', false)\n this.trigger.setAttribute('aria-expanded', false)\n }\n\n /**\n * Seta o elemento Dom que vai fechar o scrim\n * @public\n */\n elementHideScrim(element) {\n if (this.trigger.querySelectorAll(element)) {\n this.trigger.querySelectorAll(element).forEach((element) => {\n this.closeElement = element\n this._setCloseClick()\n })\n }\n }\n\n /**\n * Adiciona listener de fechamento no elemento que fecha o scrim\n * @private\n */\n _setCloseClick() {\n this.closeElement.addEventListener('click', () => {\n this.hideScrim()\n })\n }\n /**\n * Configura o comportamento scrim\n * @public\n */\n setBehavior() {\n this.trigger.addEventListener('click', (event) => {\n if (event.target.getAttribute('data-scrim')) {\n this.hideScrim()\n }\n })\n }\n}\n","export class Swipe {\n constructor(element) {\n this.evtMap = {\n SWIPE_DOWN: [],\n SWIPE_LEFT: [],\n SWIPE_RIGHT: [],\n SWIPE_UP: [],\n }\n this.xDown = null\n this.yDown = null\n this.element = element\n\n element.addEventListener(\n 'touchstart',\n (evt) => {\n return this.handleTouchStart(evt)\n },\n false\n )\n element.addEventListener(\n 'touchend',\n (evt) => {\n return this.handleTouchEnd(evt)\n },\n false\n )\n }\n\n on(evt, cb) {\n this.evtMap[evt].push(cb)\n }\n\n off(evt, lcb) {\n this.evtMap[evt] = this.evtMap[evt].filter((cb) => {\n return cb !== lcb\n })\n }\n\n trigger(evt, data) {\n this.evtMap[evt].map((handler) => {\n return handler(data)\n })\n }\n\n handleTouchStart(evt) {\n this.xDown = evt.touches[0].clientX\n this.yDown = evt.touches[0].clientY\n }\n\n handleTouchEnd(evt) {\n const deltaX = evt.changedTouches[0].clientX - this.xDown\n const deltaY = evt.changedTouches[0].clientY - this.yDown\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n deltaX < 0 ? this.trigger('SWIPE_LEFT') : this.trigger('SWIPE_RIGHT')\n } else {\n deltaY > 0 ? this.trigger('SWIPE_DOWN') : this.trigger('SWIPE_UP')\n }\n }\n}\nexport default Swipe\n","import { createPopper } from '@popperjs/core'\n// import 'tippy.js/dist/tippy.css' // optional for styling\nclass Tooltip {\n /**\n * Instancia um comportamento Tooltip\n * @param {object} - Objeto de configuração inicial para tooltip\n * @property {object} component - Elemento DOM do tooltip (opcional se tiver o textTooltip)\n * @property {object} activator - Elemento DOM que representa o acionador do comportmento tooltip\n * @property {string} place -Local onde vai aparecer o tooltip ('top', 'right', 'bottom', 'left')\n * @property {string} timer - Tempo em que vai aparecer o tooltip em milisegunto (opcional)\n * @property {string} textTooltip - Texto que vai ser mostrado quando não estiver instaciado o atributo component\n * @property {string} type - Tipo de tooltip (info, warning) padrão info\n * @property {boolean} onActivator - Adiciona o tooltip dentro do elemento ativador padrão false\n */\n\n constructor({\n component,\n activator,\n place = 'top',\n timer,\n active,\n textTooltip,\n type = 'info',\n onActivator = false,\n }) {\n const text_tooltip = textTooltip ? textTooltip : component\n\n if (typeof text_tooltip === 'undefined') {\n return\n }\n this.onActivator = onActivator\n this.activator = activator\n this.component = component\n ? component\n : this._setContent(text_tooltip, type)\n\n this.place =\n this.component.getAttribute('place') === null\n ? this.component.getAttribute('place')\n : place\n const positions = ['top', 'right', 'bottom', 'left']\n this.popover = this.component.hasAttribute('popover')\n this.notification = this.component.classList.contains('br-notification')\n this.timer = this.component.getAttribute('timer')\n ? this.component.getAttribute('timer')\n : timer\n this.active = this.component.hasAttribute('active')\n ? this.component.hasAttribute('active')\n : active\n this.placement = positions.includes(place) ? place : this.notification\n\n this.popperInstance = null\n this.showEvents = ['mouseenter', 'click', 'focus']\n this.hideEvents = ['mouseleave', 'blur']\n this.closeTimer = null\n this._create()\n this._setBehavior()\n }\n /**\n * Instancializa o behavior\n */\n _setBehavior() {\n // Ação de abrir padrao ao entrar no ativador\n if (this.activator) {\n this.showEvents.forEach((event) => {\n this.activator.addEventListener(event, (otherEvent) => {\n this._show(otherEvent)\n })\n })\n }\n // Adiciona ação de fechar ao botao do popover\n\n if (this.popover) {\n const closeBtn = this.component.querySelector('.close')\n closeBtn.addEventListener('click', (event) => {\n this._hide(event, this.component)\n this._toggleActivatorIcon()\n })\n // Ação de fechar padrao ao sair do ativador\n } else {\n this.hideEvents.forEach((event) => {\n this.activator.addEventListener(event, (otherEvent) => {\n this._hide(otherEvent, this.component)\n })\n })\n }\n }\n /**\n * Inclui o conteudo do tooltip\n * @param {*} contentText conteudo do texto do tooltip\n * @param {*} type tipo de tooltip\n * @returns - retorna o objeto com tooltip\n */\n _setContent(contentText, type) {\n const text_tooltip = document.createElement('div')\n text_tooltip.setAttribute('role', 'tooltip')\n text_tooltip.setAttribute('place', 'top')\n text_tooltip.setAttribute(type, type)\n text_tooltip.innerText = `${contentText}`\n text_tooltip.classList.add('br-tooltip')\n //TODO: Retirar sample que utiliza não conflita com tooltip componente que está sendo depreciado\n text_tooltip.classList.add('sample')\n if (this.activator && this.onActivator) {\n this.activator.appendChild(text_tooltip)\n } else {\n document.body.appendChild(text_tooltip)\n }\n\n return text_tooltip\n }\n\n /**\n * Cria a instancia do popper\n * @private\n */\n\n _create() {\n this._setLayout()\n\n if (this.notification) {\n this.component.setAttribute('notification', '')\n this.popperInstance = createPopper(this.activator, this.component, {\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n altAxis: false, // false by default\n mainAxis: true, // true by default\n },\n },\n { name: 'flip', options: { fallbackPlacements: ['top', 'right'] } },\n ],\n // placement: this.placement,\n placement: 'bottom',\n strategy: 'fixed',\n })\n } else {\n this.popperInstance = createPopper(this.activator, this.component, {\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8],\n },\n },\n {\n name: 'preventOverflow',\n options: {\n altAxis: true,\n mainAxis: true,\n },\n },\n {\n name: 'flip',\n options: { fallbackPlacements: ['top', 'right', 'bottom', 'left'] },\n },\n ],\n placement: this.placement,\n })\n }\n }\n /**\n * Mostra o tooltip e define o timeout se tiver\n * @param {object} event evento javascript\n */\n _show(event) {\n this.component.style.display = 'unset'\n this.component.setAttribute('data-show', '')\n this.component.style.zIndex = 9999\n this.popperInstance.update()\n // Importante pois \"display: none\" conflitua com a instancia do componente e precisa ser setado aqui já que pelo css ativa o efeito fade no primeiro carregamento\n this.component.style.visibility = 'visible'\n if (this.timer) {\n clearTimeout(this.closeTimer)\n this.closeTimer = setTimeout(\n this._hide,\n this.timer,\n event,\n this.component\n )\n }\n }\n\n /**\n * Esconde o componente\n * @private\n */\n _hide(event, component) {\n component.removeAttribute('data-show')\n component.style.zIndex = -1\n component.style.visibility = 'hidden'\n clearTimeout(component.closeTimer)\n }\n /**\n * Cria o laytout do tooltip\n * @private\n */\n _setLayout() {\n // Cria a setinha que aponta para o item que criou o tooltip\n const arrow = document.createElement('div')\n arrow.setAttribute('data-popper-arrow', '')\n\n if (this.component.querySelectorAll('.arrow').length < 1) {\n arrow.classList.add('arrow')\n }\n this.component.appendChild(arrow)\n // Cria o icone de fechar do po over\n if (this.popover) {\n const close = document.createElement('button')\n close.setAttribute('type', 'button')\n close.classList.add('close')\n const ico = document.createElement('i')\n ico.classList.add('fas', 'fa-times')\n close.appendChild(ico)\n this.component.appendChild(close)\n }\n }\n /**\n * Muda icone da seta\n * @private\n */\n _toggleActivatorIcon() {\n const icon = this.activator.querySelector('button svg')\n if (icon) {\n icon.classList.toggle('fa-angle-down')\n icon.classList.toggle('fa-angle-up')\n }\n this.activator.toggleAttribute('active')\n }\n}\n\nexport default Tooltip\n","const jsonData = `[\n {\n \"lang\": \"pt-br\",\n \"allOptOut\": true,\n \"acceptButton\": \"Aceitar\",\n \"optOutButton\": \"Definir Cookies\",\n \"optInButton\": \"Ver Política de Cookies\",\n \"infoText\": \"Minim pariatur amet laboris sint consectetur enim do voluptate\",\n \"mainTitle\": \"Exercitation et proident\",\n \"lastUpdate\": \"01/02/2021\",\n \"entryText\": \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Doloribus aspernatur neque culpa nisi alias. Voluptatem dicta nihil magnam, cumque voluptatum animi distinctio molestias recusandae ipsam, sapiente unde error repellendus quibusdam?\",\n \"selectAll\": false,\n \"allAlertMessage\": \"Ao desativar essa opção, sua navegação ficará comprometida\",\n \"closeLabel\": \"fechar\",\n \"lastUpdateLabel\": \"Última atualização\",\n \"cookieGroupsLabel\": \"Classes de cookies\",\n \"selectAllLabel\": \"Selecionar tudo\",\n \"unselectAllLabel\": \"Desselecionar tudo\",\n \"selectAllGroupLabel\": \"Selecionar toda classe\",\n \"unselectAllGroupLabel\": \"Desselecionar toda classe\",\n \"onLabel\": \"Ligado\",\n \"offLabel\": \"Desligado\",\n \"alwaysActiveLabel\": \"Sempre ativo\",\n \"cookieNameLabel\": \"Cookies\",\n \"expiresLabel\": \"Vencimento\",\n \"domainLabel\": \"Domínio\",\n \"enterpriseLabel\": \"Empresa\",\n \"purposeLabel\": \"Finalidade\",\n \"descriptionLabel\": \"Descrição\",\n \"cookieGroups\": [\n {\n \"groupId\": \"necessarios\",\n \"groupName\": \"Estritamente necessários\",\n \"groupOptOut\": false,\n \"groupSelected\": false,\n \"groupAlertMessage\": \"Alerta group 0\",\n \"groupText\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum delectus fuga omnis, placeat harum id aliquam, blanditiis consectetur est cupiditate ipsam alias vitae veritatis beatae, aperiam totam assumenda. Sed, modi!\",\n \"cookieList\": [\n {\n \"cookieId\": \"necessario-1\",\n \"cookieOptOut\": false,\n \"cookieSelected\": false,\n \"alertMessage\": \"Alerta group 0 - cookie 0\",\n \"cookieName\": \"optimizelyEndUserId\",\n \"expires\": \"30 minutos\",\n \"domain\": \"serpro.gov.br\",\n \"enterprise\": \"Serpro\",\n \"purpose\": \"Autorização\",\n \"description\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui numquam inventore fuga consectetur minus accusantium sapiente, distinctio dolorum illum, doloremque rem deleniti recusandae quod rerum quidem amet? Unde, laudantium cum.\"\n },\n {\n \"cookieId\": \"necessario-2\",\n \"cookieOptOut\": false,\n \"cookieSelected\": false,\n \"alertMessage\": \"Alerta group 0 - cookie 1\",\n \"cookieName\": \"optimizelyEndUserId\",\n \"expires\": \"30 minutos\",\n \"domain\": \"serpro.gov.br\",\n \"enterprise\": \"Serpro\",\n \"purpose\": \"Autorização\",\n \"description\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui numquam inventore fuga consectetur minus accusantium sapiente, distinctio dolorum illum, doloremque rem deleniti recusandae quod rerum quidem amet? Unde, laudantium cum.\"\n }\n ]\n },\n {\n \"groupId\": \"desempenho\",\n \"groupName\": \"Desempenho, funcionamento, marketing e personalização\",\n \"groupOptOut\": true,\n \"groupSelected\": true,\n \"groupAlertMessage\": \"Alerta group 1\",\n \"groupText\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum delectus fuga omnis, placeat harum id aliquam, blanditiis consectetur est cupiditate ipsam alias vitae veritatis beatae, aperiam totam assumenda. Sed, modi!\",\n \"cookieList\": [\n {\n \"cookieId\": \"desempenho-2\",\n \"cookieOptOut\": true,\n \"cookieSelected\": false,\n \"alertMessage\": \"Alerta group 1 - cookie 1\",\n \"cookieName\": \"optimizelyEndUserId\",\n \"expires\": \"30 minutos\",\n \"domain\": \"serpro.gov.br\",\n \"enterprise\": \"Serpro\",\n \"purpose\": \"Autorização\",\n \"description\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui numquam inventore fuga consectetur minus accusantium sapiente, distinctio dolorum illum, doloremque rem deleniti recusandae quod rerum quidem amet? Unde, laudantium cum.\"\n },\n {\n \"cookieId\": \"desempenho-2\",\n \"cookieOptOut\": true,\n \"cookieSelected\": false,\n \"cookieName\": \"optimizelyEndUserId\",\n \"expires\": \"30 minutos\",\n \"domain\": \"serpro.gov.br\",\n \"enterprise\": \"Serpro\",\n \"purpose\": \"Autorização\",\n \"description\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui numquam inventore fuga consectetur minus accusantium sapiente, distinctio dolorum illum, doloremque rem deleniti recusandae quod rerum quidem amet? Unde, laudantium cum.\"\n }\n ]\n },\n {\n \"groupId\": \"experiencia\",\n \"groupName\": \"Experiência do site\",\n \"groupOptOut\": true,\n \"groupSelected\": false,\n \"groupAlertMessage\": \"Ao desativar essa opção, sua navegação ficará comprometida\",\n \"groupText\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum delectus fuga omnis, placeat harum id aliquam, blanditiis consectetur est cupiditate ipsam alias vitae veritatis beatae, aperiam totam assumenda. Sed, modi!\",\n \"cookieList\": [\n {\n \"cookieId\": \"experiencia-1\",\n \"cookieOptOut\": false,\n \"cookieSelected\": false,\n \"alertMessage\": \"Alerta group 2 - cookie 0\",\n \"cookieName\": \"optimizelyEndUserId\",\n \"expires\": \"30 minutos\",\n \"domain\": \"serpro.gov.br\",\n \"enterprise\": \"Serpro\",\n \"purpose\": \"Autorização\",\n \"description\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui numquam inventore fuga consectetur minus accusantium sapiente, distinctio dolorum illum, doloremque rem deleniti recusandae quod rerum quidem amet? Unde, laudantium cum.\"\n },\n {\n \"cookieId\": \"experiencia-2\",\n \"cookieOptOut\": true,\n \"cookieSelected\": false,\n \"cookieName\": \"optimizelyEndUserId\",\n \"expires\": \"30 minutos\",\n \"domain\": \"serpro.gov.br\",\n \"enterprise\": \"Serpro\",\n \"purpose\": \"Autorização\",\n \"description\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Qui numquam inventore fuga consectetur minus accusantium sapiente, distinctio dolorum illum, doloremque rem deleniti recusandae quod rerum quidem amet? Unde, laudantium cum.\"\n }\n ]\n }\n ],\n \"noteTitle\": \"Aviso sobre cookies\",\n \"noteList\": [\n {\n \"question\": \"O que são cookies?\",\n \"answer\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Aperiam eius distinctio rerum ad, maxime alias vel minima, asperiores sequi eveniet non optio officiis quaerat reiciendis quae odio explicabo ut debitis?\"\n },\n {\n \"question\": \"Durabilidade?\",\n \"answer\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Aperiam eius distinctio rerum ad, maxime alias vel minima, asperiores sequi eveniet non optio officiis quaerat reiciendis quae odio explicabo ut debitis?\"\n },\n {\n \"question\": \"Proveniência?\",\n \"answer\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Aperiam eius distinctio rerum ad, maxime alias vel minima, asperiores sequi eveniet non optio officiis quaerat reiciendis quae odio explicabo ut debitis?\"\n },\n {\n \"question\": \"Finalidade?\",\n \"answer\": \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Aperiam eius distinctio rerum ad, maxime alias vel minima, asperiores sequi eveniet non optio officiis quaerat reiciendis quae odio explicabo ut debitis?\"\n }\n ],\n \"links\": [\n {\n \"name\": \"Declaração de Conformidade com os Princípios de Proteção de Dados\",\n \"url\": \"#\"\n }\n ]\n }\n]`\n\nexport default jsonData\n","/**\n * Dados para popular o input de exemplo\n * @constant {string[]} */\nconst inputData = [\n 'Afeganistão',\n 'África do Sul',\n 'Albânia',\n 'Alemanha',\n 'Andorra',\n 'Angola',\n 'Anguilla',\n 'Antártida',\n 'Antígua e Barbuda',\n 'Antilhas Holandesas',\n 'Arábia Saudita',\n 'Argélia',\n 'Argentina',\n 'Armênia',\n 'Aruba',\n 'Austrália',\n 'Áustria',\n 'Azerbaijão',\n 'Bahamas',\n 'Bahrein',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Bélgica',\n 'Belize',\n 'Benin',\n 'Bermudas',\n 'Bolívia',\n 'Bósnia-Herzegóvina',\n 'Botsuana',\n 'Brasil',\n 'Brunei',\n 'Bulgária',\n 'Burkina Fasso',\n 'Burundi',\n 'Butão',\n 'Cabo Verde',\n 'Camarões',\n 'Camboja',\n 'Canadá',\n 'Cazaquistão',\n 'Chade',\n 'Chile',\n 'China',\n 'Chipre',\n 'Cingapura',\n 'Colômbia',\n 'Congo',\n 'Coréia do Norte',\n 'Coréia do Sul',\n 'Costa do Marfim',\n 'Costa Rica',\n 'Croácia (Hrvatska)',\n 'Cuba',\n 'Dinamarca',\n 'Djibuti',\n 'Dominica',\n 'Egito',\n 'El Salvador',\n 'Emirados Árabes Unidos',\n 'Equador',\n 'Eritréia',\n 'Eslováquia',\n 'Eslovênia',\n 'Espanha',\n 'Estados Unidos',\n 'Estônia',\n 'Etiópia',\n 'Fiji',\n 'Filipinas',\n 'Finlândia',\n 'França',\n 'Gabão',\n 'Gâmbia',\n 'Gana',\n 'Geórgia',\n 'Gibraltar',\n 'Grã-Bretanha (Reino Unido, UK)',\n 'Granada',\n 'Grécia',\n 'Groelândia',\n 'Guadalupe',\n 'Guam (Território dos Estados Unidos)',\n 'Guatemala',\n 'Guernsey',\n 'Guiana',\n 'Guiana Francesa',\n 'Guiné',\n 'Guiné Equatorial',\n 'Guiné-Bissau',\n 'Haiti',\n 'Holanda',\n 'Honduras',\n 'Hong Kong',\n 'Hungria',\n 'Iêmen',\n 'Ilha Bouvet (Território da Noruega)',\n 'Ilha do Homem',\n 'Ilha Natal',\n 'Ilha Pitcairn',\n 'Ilha Reunião',\n 'Ilhas Aland',\n 'Ilhas Cayman',\n 'Ilhas Cocos',\n 'Ilhas Comores',\n 'Ilhas Cook',\n 'Ilhas Faroes',\n 'Ilhas Falkland (Malvinas)',\n 'Ilhas Geórgia do Sul e Sandwich do Sul',\n 'Ilhas Heard e McDonald (Território da Austrália)',\n 'Ilhas Marianas do Norte',\n 'Ilhas Marshall',\n 'Ilhas Menores dos Estados Unidos',\n 'Ilhas Norfolk',\n 'Ilhas Seychelles',\n 'Ilhas Solomão',\n 'Ilhas Svalbard e Jan Mayen',\n 'Ilhas Tokelau',\n 'Ilhas Turks e Caicos',\n 'Ilhas Virgens (Estados Unidos)',\n 'Ilhas Virgens (Inglaterra)',\n 'Ilhas Wallis e Futuna',\n 'índia',\n 'Indonésia',\n 'Irã',\n 'Iraque',\n 'Irlanda',\n 'Islândia',\n 'Israel',\n 'Itália',\n 'Jamaica',\n 'Japão',\n 'Jersey',\n 'Jordânia',\n 'Kênia',\n 'Kiribati',\n 'Kuait',\n 'Laos',\n 'Látvia',\n 'Lesoto',\n 'Líbano',\n 'Libéria',\n 'Líbia',\n 'Liechtenstein',\n 'Lituânia',\n 'Luxemburgo',\n 'Macau',\n 'Macedônia (República Yugoslava)',\n 'Madagascar',\n 'Malásia',\n 'Malaui',\n 'Maldivas',\n 'Mali',\n 'Malta',\n 'Marrocos',\n 'Martinica',\n 'Maurício',\n 'Mauritânia',\n 'Mayotte',\n 'México',\n 'Micronésia',\n 'Moçambique',\n 'Moldova',\n 'Mônaco',\n 'Mongólia',\n 'Montenegro',\n 'Montserrat',\n 'Myanma',\n 'Namíbia',\n 'Nauru',\n 'Nepal',\n 'Nicarágua',\n 'Níger',\n 'Nigéria',\n 'Niue',\n 'Noruega',\n 'Nova Caledônia',\n 'Nova Zelândia',\n 'Omã',\n 'Palau',\n 'Panamá',\n 'Papua-Nova Guiné',\n 'Paquistão',\n 'Paraguai',\n 'Peru',\n 'Polinésia Francesa',\n 'Polônia',\n 'Porto Rico',\n 'Portugal',\n 'Qatar',\n 'Quirguistão',\n 'República Centro-Africana',\n 'República Democrática do Congo',\n 'República Dominicana',\n 'República Tcheca',\n 'Romênia',\n 'Ruanda',\n 'Rússia (antiga URSS) - Federação Russa',\n 'Saara Ocidental',\n 'Saint Vincente e Granadinas',\n 'Samoa Americana',\n 'Samoa Ocidental',\n 'San Marino',\n 'Santa Helena',\n 'Santa Lúcia',\n 'São Bartolomeu',\n 'São Cristóvão e Névis',\n 'São Martim',\n 'São Tomé e Príncipe',\n 'Senegal',\n 'Serra Leoa',\n 'Sérvia',\n 'Síria',\n 'Somália',\n 'Sri Lanka',\n 'St. Pierre and Miquelon',\n 'Suazilândia',\n 'Sudão',\n 'Suécia',\n 'Suíça',\n 'Suriname',\n 'Tadjiquistão',\n 'Tailândia',\n 'Taiwan',\n 'Tanzânia',\n 'Território Britânico do Oceano índico',\n 'Territórios do Sul da França',\n 'Territórios Palestinos Ocupados',\n 'Timor Leste',\n 'Togo',\n 'Tonga',\n 'Trinidad and Tobago',\n 'Tunísia',\n 'Turcomenistão',\n 'Turquia',\n 'Tuvalu',\n 'Ucrânia',\n 'Uganda',\n 'Uruguai',\n 'Uzbequistão',\n 'Vanuatu',\n 'Vaticano',\n 'Venezuela',\n 'Vietnã',\n 'Zâmbia',\n 'Zimbábue',\n]\n\nexport default inputData\n","// Script Templates\nimport BRAccordion from '../../components/accordion/accordion'\nimport BRAvatar from '../../components/avatar/avatar'\nimport BRBreadcrumb from '../../components/breadcrumb/breadcrumb'\nimport BRCard from '../../components/card/card'\nimport BRCarousel from '../../components/carousel/carousel'\nimport BRCheckbox from '../../components/checkbox/checkbox'\nimport BRCookiebar from '../../components/cookiebar/cookiebar'\nimport jsonData from '../../components/cookiebar/jsonData' // dados para instanciação do cookiebar\nimport BRDateTimePicker from '../../components/datetimepicker/datetimepicker'\nimport BRFooter from '../../components/footer/footer'\nimport BRHeader from '../../components/header/header'\nimport BRInput from '../../components/input/input'\nimport inputData from '../../components/input/input-data' // Dados para o autocomplete do input\nimport BRItem from '../../components/item/item'\nimport BRList from '../../components/list/list'\nimport BRMenu from '../../components/menu/menu'\nimport BRMessage from '../../components/message/message'\nimport BRModal from '../../components/modal/modal'\nimport BRNotification from '../../components/notification/notification'\nimport BRPagination from '../../components/pagination/pagination'\nimport BRScrim from '../../components/scrim/scrim'\nimport BRSelect from '../../components/select/select'\nimport BRStep from '../../components/step/step'\nimport BRTab from '../../components/tab/tab'\nimport BRTable from '../../components/table/table'\nimport BRTag from '../../components/tag/tag'\nimport BRTextarea from '../../components/textarea/textarea'\nimport BRTooltip from '../../components/tooltip/tooltip'\nimport BRUpload from '../../components/upload/upload'\nimport BRWizard from '../../components/wizard/wizard'\nimport Accordion from './behavior/accordion'\nimport Checkgroup from './behavior/checkgroup'\nimport Collapse from './behavior/collapse'\nimport Dropdown from './behavior/dropdown'\nimport Swipe from './behavior/swipe'\n\nexport default class Globals {\n initInstanceAll() {\n this.initInstanceAccordion()\n this.initInstanceAvatar()\n this.initInstanceBreadcrumb()\n this.initInstanceCard()\n this.initInstanceCarousel()\n this.initInstanceCheckbox()\n this.initInstanceCookiebar()\n this.initInstanceDateTimePicker()\n this.initInstanceFooter()\n this.initInstanceInput()\n this.initInstanceHeader()\n this.initInstanceItem()\n this.initInstanceList()\n this.initInstanceMenu()\n this.initInstanceMessage()\n this.initInstanceModal()\n this.initInstanceNotification()\n this.initInstancePagination()\n this.initInstanceScrim()\n this.initInstanceSelect()\n this.initInstanceStep()\n this.initInstanceTable()\n this.initInstanceTabs()\n this.initInstanceTextarea()\n this.initInstanceUpload()\n this.initInstanceWizard()\n this.initInstanceTooltip()\n }\n\n initInstanceAccordion() {\n const accordionList = []\n for (const brAccordion of window.document.querySelectorAll(\n '.br-accordion'\n )) {\n accordionList.push(new BRAccordion('br-accordion', brAccordion))\n }\n }\n\n initInstanceAvatar() {\n const avatarList = []\n for (const brAvatar of window.document.querySelectorAll('.br-avatar')) {\n avatarList.push(new BRAvatar('br-avatar', brAvatar))\n }\n }\n\n initInstanceBreadcrumb() {\n const breadcrumbList = []\n for (const brBreadcrumb of window.document.querySelectorAll(\n '.br-breadcrumb'\n )) {\n breadcrumbList.push(new BRBreadcrumb('br-breadcrumb', brBreadcrumb))\n }\n }\n\n initInstanceDateTimePicker() {\n const datetimepickerList = []\n for (const brDateTimePicker of window.document.querySelectorAll(\n '.br-datetimepicker'\n )) {\n datetimepickerList.push(\n new BRDateTimePicker('br-datetimepicker', brDateTimePicker, {})\n )\n }\n }\n\n initInstanceHeader() {\n const headerList = []\n for (const brHeader of window.document.querySelectorAll('.br-header')) {\n headerList.push(new BRHeader('br-header', brHeader))\n }\n }\n initInstanceFooter() {\n const listFooter = []\n for (const brFooter of window.document.querySelectorAll('.br-footer')) {\n listFooter.push(new BRFooter('br-footer', brFooter))\n }\n }\n\n initInstanceInput() {\n const inputList = []\n for (const brInput of window.document.querySelectorAll('.br-input')) {\n inputList.push(new BRInput('br-input', brInput))\n }\n for (const brInput of inputList) {\n brInput.component\n .querySelectorAll('input.search-autocomplete')\n .forEach(() => {\n brInput.setAutocompleteData(inputData)\n })\n }\n }\n\n initInstanceItem() {\n const itemList = []\n for (const brItem of window.document.querySelectorAll('.br-item')) {\n itemList.push(new BRItem('br-item', brItem))\n }\n }\n\n initInstanceList() {\n const listList = []\n for (const brList of window.document.querySelectorAll(\n '.br-list:not([data-sub])'\n )) {\n listList.push(new BRList('br-list', brList))\n }\n }\n\n initInstanceMenu() {\n const menuList = []\n for (const brMenu of window.document.querySelectorAll('.br-menu')) {\n menuList.push(new BRMenu('br-menu', brMenu))\n }\n }\n\n initInstanceMessage() {\n const alertList = []\n for (const brMessage of window.document.querySelectorAll('.br-message')) {\n alertList.push(new BRMessage('br-message', brMessage))\n }\n }\n\n initInstanceModal() {\n const modalList = []\n for (const brModal of window.document.querySelectorAll('.br-modal')) {\n modalList.push(new BRModal('br-modal', brModal))\n }\n for (const brScrim of window.document.querySelectorAll('.br-scrim')) {\n const scrim = new BRScrim('br-scrim', brScrim)\n for (const button of window.document.querySelectorAll(\n '.br-scrim + button'\n )) {\n button.addEventListener('click', () => {\n scrim.showScrim()\n })\n }\n }\n }\n\n initInstanceNotification() {\n const notificationList = []\n for (const brNotification of window.document.querySelectorAll(\n '.br-notification'\n )) {\n notificationList.push(\n new BRNotification('br-notification', brNotification)\n )\n }\n }\n\n initInstancePagination() {\n const paginationList = []\n for (const brPagination of window.document.querySelectorAll(\n '.br-pagination'\n )) {\n paginationList.push(new BRPagination('br-pagination', brPagination))\n }\n }\n\n initInstanceScrim() {\n const scrimList = []\n for (const brScrim of window.document.querySelectorAll('.br-scrim')) {\n scrimList.push(new BRScrim('br-scrim', brScrim))\n }\n for (const buttonBloco1 of window.document.querySelectorAll(\n '.bloco1 button'\n )) {\n buttonBloco1.addEventListener('click', () => {\n for (const brScrim of scrimList) {\n brScrim.showScrim()\n }\n })\n }\n }\n\n initInstanceSelect() {\n const selectList = []\n for (const brSelect of window.document.querySelectorAll('.br-select')) {\n const brselect = new BRSelect('br-select', brSelect)\n //Exemplo de uso de listener do select\n // brSelect.addEventListener('onChange', () => {})\n\n selectList.push(brselect)\n }\n }\n\n initInstanceTable() {\n const tableList = []\n for (const [index, brTable] of window.document\n .querySelectorAll('.br-table')\n .entries()) {\n tableList.push(new BRTable('br-table', brTable, index))\n }\n }\n\n initInstanceTag() {\n const tagList = []\n for (const brTag of window.document.querySelectorAll('.br-tag')) {\n tagList.push(new BRTag('br-tag', brTag))\n }\n }\n\n initInstanceTabs() {\n const abasList = []\n for (const brTab of window.document.querySelectorAll('.br-tab')) {\n abasList.push(new BRTab('br-tab', brTab))\n }\n }\n\n initInstanceTooltip() {\n const tooltipList = []\n for (const brTooltip of window.document.querySelectorAll('.br-tooltip')) {\n tooltipList.push(new BRTooltip('br-tooltip', brTooltip))\n }\n }\n\n initInstanceUpload() {\n const uploadList = []\n function uploadTimeout() {\n return new Promise((resolve) => {\n // Colocar aqui um upload para o servidor e retirar o timeout\n return setTimeout(resolve, 500)\n })\n }\n for (const brUpload of window.document.querySelectorAll('.br-upload')) {\n uploadList.push(new BRUpload('br-upload', brUpload, uploadTimeout))\n }\n }\n\n initInstanceStep() {\n const stepList = []\n for (const brStep of window.document.querySelectorAll('.br-step')) {\n stepList.push(new BRStep('br-step', brStep))\n }\n }\n\n initInstanceWizard() {\n const wizardList = []\n for (const brWizard of window.document.querySelectorAll('.br-wizard')) {\n wizardList.push(new BRWizard('br-wizard', brWizard))\n }\n }\n\n initInstanceCard() {\n const listCard = []\n for (const brCard of window.document.querySelectorAll('.br-card')) {\n listCard.push(new BRCard('br-card', brCard))\n }\n }\n initInstanceCarousel() {\n const carouselList = []\n for (const brCarousel of window.document.querySelectorAll('.br-carousel')) {\n carouselList.push(new BRCarousel('br-carousel', brCarousel))\n }\n }\n\n initInstanceCheckbox() {\n const checkboxList = []\n for (const brCheckbox of window.document.querySelectorAll('.br-checkbox')) {\n checkboxList.push(new BRCheckbox('br-checkbox', brCheckbox))\n }\n }\n\n initInstanceCookiebar() {\n /** Exemplo de instanciação de um objeto cookiebar */\n const cookiebarList = []\n for (const brCookiebar of window.document.querySelectorAll(\n '.br-cookiebar'\n )) {\n const params = {\n // callback: (outputJSON) => { console.log(JSON.parse(outputJSON)) console.log(outputJSON) },\n component: brCookiebar,\n json: jsonData,\n lang: 'pt-br',\n mode: 'default',\n name: 'br-cookiebar',\n }\n // CookiebarData.loadJSON('./data.json', (response) => {\n // return (params.json = response)\n // })\n cookiebarList.push(new BRCookiebar(params))\n }\n\n /** Exemplo de instanciação do cookibar apenas sem necessidade de um HTML base */\n // BRCookiebar.createCookiebar(jsonData, showOutput)\n }\n\n initInstanceTextarea() {\n const textareaList = []\n for (const brTextarea of window.document.querySelectorAll('.br-textarea')) {\n textareaList.push(new BRTextarea('br-textarea', brTextarea))\n }\n }\n initInstanceWizard() {\n const wizardList = []\n for (const brWizard of window.document.querySelectorAll('.br-wizard')) {\n wizardList.push(new BRWizard('br-wizard', brWizard))\n }\n }\n}\n\nexport {\n Accordion,\n BRAvatar,\n Checkgroup,\n BRAccordion,\n Dropdown,\n BRBreadcrumb,\n Collapse,\n BRCard,\n BRCheckbox,\n BRCookiebar,\n BRDateTimePicker,\n BRFooter,\n BRHeader,\n BRInput,\n BRItem,\n BRList,\n BRMenu,\n BRMessage,\n BRModal,\n BRNotification,\n BRPagination,\n BRScrim,\n BRSelect,\n BRTab,\n BRTable,\n BRTag,\n BRTextarea,\n BRTooltip,\n BRUpload,\n BRWizard,\n Globals,\n Swipe,\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Accordion from '../../partial/js/behavior/accordion'\n\n/**\n * Classe para o exemplo do comportamento accordion\n */\nclass AccordionExample {\n /**\n * Instancia um exemplo de comportamento accordion\n * @param {object} element - Elemento DOM que representa um componente contento um comportamento de accordion\n */\n constructor(element) {\n this.element = element\n this._setBehavior()\n }\n /**\n * Inicia comportamento do exemplo\n */\n _setBehavior() {\n this._setAccordionBehavior()\n }\n /**\n * Encontra os data-toggle accordion e coloca util Accordion\n */\n _setAccordionBehavior() {\n this.element\n .querySelectorAll('[data-toggle=\"accordion\"]')\n .forEach((trigger) => {\n const config = {\n iconToHide: 'fa-chevron-up',\n iconToShow: 'fa-chevron-down',\n trigger,\n useIcons: true,\n }\n const accordion = new Accordion(config)\n accordion.setBehavior()\n })\n }\n}\n\nexport default AccordionExample\n","import Checkgroup from '../../partial/js/behavior/checkgroup'\n\n/**\n * Classe para o exemplo do comportamento checkgroup\n */\nclass CheckgroupExample {\n /**\n * Instancia um exemplo de comportamento checkgroup\n * @param {object} element - Elemento DOM que representa um componente contento um comportamento de checkgroup\n */\n constructor(element) {\n this.element = element\n this._setBehavior()\n }\n /**\n * Inicia comportamento do exemplo\n * @private\n */\n _setBehavior() {\n this._setCheckgroupBehavior()\n }\n\n /**\n * Encontra os data-toggle checkbox com data-parent e coloca util Checkgroup\n * @private\n */\n\n _setCheckgroupBehavior() {\n this.element\n .querySelectorAll('input[type=\"checkbox\"][data-parent]')\n .forEach((trigger) => {\n const checkgroup = new Checkgroup(trigger)\n checkgroup.setBehavior()\n })\n }\n}\n\nexport default CheckgroupExample\n","import Collapse from '../../partial/js/behavior/collapse'\n\n/**\n * Classe para o exemplo do comportamento collapse\n */\nclass CollapseExample {\n /**\n * Instancia um exemplo de comportamento collapse\n * @param {object} element - Elemento DOM que representa um componente contento um comportamento de collapse\n */\n constructor(element) {\n this.element = element\n this._setBehavior()\n }\n /**\n * Instancia o utilitario\n * @private\n */\n _setBehavior() {\n this._setCollapseBehavior()\n }\n /**\n * Instancia o utilitario no data-toggle collapse\n * @private\n */\n _setCollapseBehavior() {\n this.element\n .querySelectorAll('[data-toggle=\"collapse\"]')\n .forEach((trigger) => {\n const config = {\n iconToHide: 'fa-chevron-up',\n iconToShow: 'fa-chevron-down',\n trigger,\n useIcons: true,\n }\n const collapse = new Collapse(config)\n collapse.setBehavior()\n })\n }\n}\n\nexport default CollapseExample\n","import Dropdown from '../../partial/js/behavior/dropdown'\n\n/**\n * Classe para o exemplo do comportamento dropdown\n */\nclass DropdownExample {\n /**\n * Instancia um exemplo de comportamento dropdown\n * @param {object} element - Elemento DOM que representa um componente contento um comportamento de dropdown\n */\n constructor(element) {\n this.element = element\n this._setBehavior()\n }\n /**\n * Inicia comportamento do exemplo\n */\n _setBehavior() {\n this._setDropdownBehavior()\n }\n\n /**\n * Encontra os data-toggle dropdown e coloca util Dropdown\n */\n _setDropdownBehavior() {\n this.element\n .querySelectorAll('[data-toggle=\"dropdown\"]')\n .forEach((trigger) => {\n const config = {\n iconToHide: 'fa-chevron-up',\n iconToShow: 'fa-chevron-down',\n trigger,\n useIcons: true,\n }\n const dropdown = new Dropdown(config)\n dropdown.setBehavior()\n })\n }\n}\n\nexport default DropdownExample\n","import Tooltip from '../../partial/js/behavior/tooltip'\n\n/**\n * Classe de exemplo do comportamento tooltip\n */\nclass TooltipExample {\n /**\n * Instancia um exemplo de comportamento tooltip\n * @param {object} element - Elemento sDOM que representa um componente contento um comportamento de tooltip\n */\n constructor(element) {\n this.element = element\n }\n /**\n * Inicia comportamento do exemplo\n * @private\n */\n _setBehavior() {\n this.TooltipExampleList = []\n }\n\n /**\n * Encontra os data-tooltip-text e coloca util Tooltip\n * @private\n */\n\n run() {\n this.TooltipExampleList = []\n\n window.document\n .querySelectorAll('[data-tooltip-text]:not(.notification-tooltip)')\n .forEach((TooltipExample) => {\n const texttooltip = TooltipExample.getAttribute('data-tooltip-text')\n const config = {\n activator: TooltipExample,\n place: 'top',\n textTooltip: texttooltip,\n }\n this.TooltipExampleList.push(new Tooltip(config))\n })\n\n document.querySelectorAll('[data-tooltip-target]').forEach((trigger) => {\n const targets = document.querySelectorAll(\n trigger.getAttribute('data-tooltip-target')\n )\n\n targets.forEach((target) => {\n const place =\n target.getAttribute('place') !== null\n ? target.getAttribute('place')\n : 'left'\n\n const config = {\n activator: trigger,\n component: target,\n place: place,\n type: 'warning',\n }\n // const tooltip = new Tooltip(config)\n new Tooltip(config)\n })\n })\n }\n}\n\nexport default TooltipExample\n","/**\n * Classe que instancia os exemplos de uso dos utilitários\n */\n\n// import TooltipExample from '../../util/tooltip/tooltip'\nimport AccordionExample from '../../util/accordion/accordion'\nimport CheckgroupExample from '../../util/checkgroup/checkgroup'\nimport CollapseExample from '../../util/collapse/collapse'\nimport DropdownExample from '../../util/dropdown/dropdown'\nimport Scrim from './behavior/scrim'\n// import Tooltip from './behavior/tooltip'\n// import Tooltip from './behavior/tooltip'\nimport TooltipExample from '../../util/tooltip/tooltip'\n\nexport default class Behavior {\n initInstanceAll() {\n this._initInstanceAccordionExample()\n this._initInstanceCheckGroupExemple()\n this._initInstanceCollapseExample()\n this._initInstanceDropdownExample()\n this._initInstanceTooltipExample()\n this._initInstanceScrimExample()\n }\n\n _initInstanceCollapseExample() {\n const collapseExampleList = []\n window.document\n .querySelectorAll('.collapse-example')\n .forEach((collapseExample) => {\n collapseExampleList.push(new CollapseExample(collapseExample))\n })\n }\n\n _initInstanceAccordionExample() {\n const accordionExampleList = []\n window.document\n .querySelectorAll('.accordion-example')\n .forEach((accordionExample) => {\n accordionExampleList.push(new AccordionExample(accordionExample))\n })\n }\n\n _initInstanceCheckGroupExemple() {\n const checkgroupExampleList = []\n window.document\n .querySelectorAll('.checkgroup-example')\n .forEach((checkgroupExample) => {\n checkgroupExampleList.push(new CheckgroupExample(checkgroupExample))\n })\n }\n\n _initInstanceDropdownExample() {\n const dropdownExampleList = []\n window.document\n .querySelectorAll('.dropdown-example')\n .forEach((dropdownExample) => {\n dropdownExampleList.push(new DropdownExample(dropdownExample))\n })\n }\n\n _initInstanceScrimExample() {\n for (const buttonBloco1 of window.document.querySelectorAll(\n '.scrimutilexemplo button'\n )) {\n buttonBloco1.addEventListener('click', () => {\n const scrscrim = window.document.querySelector('#scrimutilexample')\n const scrimfoco = new Scrim({\n closeElement: '#scrimfechar',\n trigger: scrscrim,\n })\n scrimfoco.showScrim()\n })\n }\n }\n _initInstanceTooltipExample() {\n const tooltipExample = new TooltipExample()\n tooltipExample.run()\n }\n}\n","/* eslint-disable no-unused-vars */\nimport 'focus-visible'\nimport BRAccordion from '../../components/accordion/accordion'\nimport BRBreadcrumb from '../../components/breadcrumb/breadcrumb'\nimport BRCard from '../../components/card/card'\nimport BRCarousel from '../../components/carousel/carousel'\nimport BRCheckbox from '../../components/checkbox/checkbox'\nimport BRCookiebar from '../../components/cookiebar/cookiebar'\nimport BRDateTimePicker from '../../components/datetimepicker/datetimepicker'\nimport BRFooter from '../../components/footer/footer'\nimport BRHeader from '../../components/header/header'\nimport BRInput from '../../components/input/input'\nimport BRItem from '../../components/item/item'\nimport BRList from '../../components/list/list'\nimport BRMenu from '../../components/menu/menu'\nimport BRAlert from '../../components/message/message'\nimport BRModal from '../../components/modal/modal'\nimport BRNotification from '../../components/notification/notification'\nimport BRPagination from '../../components/pagination/pagination'\nimport BRScrim from '../../components/scrim/scrim'\nimport BRSelect from '../../components/select/select'\nimport BRStep from '../../components/step/step'\nimport BRTab from '../../components/tab/tab'\nimport BRTable from '../../components/table/table'\nimport BRTag from '../../components/tag/tag'\nimport BRTextarea from '../../components/textarea/textarea'\nimport BRTooltip from '../../components/tooltip/tooltip'\nimport BRUpload from '../../components/upload/upload'\nimport BRWizard from '../../components/wizard/wizard'\nimport Accordion from './behavior/accordion'\nimport Checkgroup from './behavior/checkgroup'\nimport Collapse from './behavior/collapse'\nimport Tooltip from './behavior/tooltip'\nimport Behavior from './core.behavior'\nimport { Dropdown, Globals } from './globals-class'\nimport Swipe from './behavior/swipe'\n\nconst globals = new Globals()\n\nconst behavior = new Behavior()\nbehavior.initInstanceAll()\n\nexport {\n Accordion,\n Checkgroup,\n BRAccordion,\n Dropdown,\n BRBreadcrumb,\n BRCarousel,\n Collapse,\n BRCard,\n BRCheckbox,\n BRCookiebar,\n BRDateTimePicker,\n BRFooter,\n BRHeader,\n BRInput,\n BRItem,\n BRList,\n BRMenu,\n BRAlert,\n BRModal,\n BRNotification,\n BRPagination,\n BRScrim,\n BRSelect,\n BRStep,\n BRTab,\n BRTable,\n BRTag,\n BRTextarea,\n BRTooltip,\n BRUpload,\n BRWizard,\n Globals,\n Tooltip,\n globals,\n behavior,\n Swipe,\n}\n"],"names":["webpackUniversalModuleDefinition","root","factory","exports","module","define","amd","self","getWindow","node","window","toString","ownerDocument","defaultView","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","Math","max","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","_ref","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","scrollTop","pageXOffset","pageYOffset","getHTMLElementScroll","getNodeScroll","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","isElementScaled","rect","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","target","concat","updatedList","isTableElement","getTrueOffsetParent","position","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","transform","perspective","contain","willChange","filter","getOffsetParent","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","order","modifiers","Map","visited","Set","result","sort","modifier","requires","add","name","requiresIfExists","forEach","dep","has","depModifier","get","push","set","orderModifiers","orderedModifiers","phase","debounce","fn","pending","Promise","resolve","then","undefined","mergeByName","merged","current","existing","Object","assign","options","data","keys","key","DEFAULT_OPTIONS","strategy","areValidElements","_len","arguments","length","args","_key","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","createPopper","state","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","m","enabled","runModifierEffects","update","forceUpdate","_state$elements","rects","reset","index","_state$orderedModifie","_state$orderedModifie2","_options","destroy","_ref$options","effect","cleanupFn","noopFn","onFirstUpdate","passive","_options$scroll","_options$resize","resize","addEventListener","removeEventListener","getBasePlacement","split","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","popperOffsets","unsetSides","roundOffsetsByDPR","dpr","devicePixelRatio","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","_ref3","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","applyStyles","style","value","removeAttribute","setAttribute","initialStyles","margin","styleProperties","property","attribute","distanceAndSkiddingToXY","offset","invertDistance","skidding","distance","_options$offset","_data$state$placement","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement","getViewportRect","html","clientWidth","clientHeight","layoutViewport","getDocumentRect","winScroll","scrollWidth","scrollHeight","direction","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","axis","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","placements","allowedPlacements","overflows","a","b","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","numberOfChecks","_loop","_i","fittingPlacement","find","slice","_ret","getAltAxis","within","withinMaxClamp","v","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","toPaddingObject","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","TypeError","_loop_1","source","_a","args_1","global","this","fp","flatpickr","l10ns","Portuguese","weekdays","shorthand","longhand","months","rangeSeparator","time_24hr","pt","default","defineProperty","applyFocusVisiblePolyfill","scope","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesAllowlist","text","search","url","tel","email","password","number","date","month","week","time","datetime","isValidFocusTarget","el","classList","focusTriggersKeyboardModality","type","tagName","readOnly","isContentEditable","addFocusVisibleClass","removeFocusVisibleClass","hasAttribute","remove","onKeyDown","e","metaKey","altKey","ctrlKey","activeElement","onPointerDown","onFocus","onBlur","clearTimeout","setTimeout","onVisibilityChange","visibilityState","addInitialPointerMoveListeners","onInitialPointerMove","removeInitialPointerMoveListeners","nodeType","Node","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","event","CustomEvent","error","createEvent","initCustomEvent","dispatchEvent","BRAccordion","constructor","component","_setBehavior","button","querySelectorAll","_collapse","_changeIcon","field","currentTarget","icon","children","BRAvatar","_setDropdownBehavior","parentElement","dataset","toggle","config","iconToHide","iconToShow","trigger","useIcons","dropdown","setBehavior","BRBreadcrumb","_setView","resetBreadcrumbs","_reset","brcardBreadcrumb","crumbList","crumbs","innerWidth","crumb","_insertExpandButton","_createCrumb","insertBefore","createElement","span","innerHTML","folderIcon","chevronIcon","appendChild","card","_createList","cloneNode","BRCard","id","_setFlipBehavior","_setDragBehavior","_setDisableBehavior","_collpaseBehavior","collapse","buttons","inputs","selects","textareas","input","select","textarea","getAttribute","img","link","stopPropagation","dataTransfer","setData","dropEffect","BRCarousel","activeStageNum","DOMstrings","carouselNextBtn","carouselPages","carouselPrevBtn","carouselStage","circular","step","removeAttributes","elemSet","attrName","elem","getActiveStep","activeStepNum","setActiveStep","getActiveStage","activeStage","stage","setActiveStage","num","disabledBtns","shiftPage","PanelsSize","from","dispatcher","on","BRCheckbox","_setCheckgroupBehavior","checkgroup","CookiebarData","json","lang","PRIORITY_LEVELS","_filterByLang","_setDataCoherenceByPriority","JSON","parse","selectAll","allOptOut","cookieGroups","groupData","groupOptOut","groupSelected","cookieList","cookieData","cookieOptOut","cookieSelected","_setIndeterminateState","_setGroupIndeterminateState","_setAllIndeterminateState","allChecked","allUnchecked","groupIndeterminated","indeterminated","allIndeterminated","getCookiesCheckedAmount","count","getCookiesAmount","static","path","callback","rawFile","XMLHttpRequest","overrideMimeType","open","onreadystatechange","readyState","status","responseText","send","CookiebarLabels","setLastUpdateLabel","lastUpdateLabel","setCookieGroupsLabel","cookieGroupsLabel","setUnselectAllLabel","unselectAllLabel","setSelectAllLabel","selectAllLabel","setCheckAllLabel","setUnselectAllGroupLabel","unselectAllGroupLabel","setSelectAllGroupLabel","selectAllGroupLabel","setCheckGroupLabel","setAlwaysActiveLabel","alwaysActiveLabel","setCheckCookieEnabledLabel","onLabel","setCheckCookieDisabledLabel","offLabel","setCookieNameLabel","cookieNameLabel","setCookieExpiresLabel","expiresLabel","setCookieDomainLabel","domainLabel","setCookieEnterpriseLabel","enterpriseLabel","setCookiePurposeLabel","purposeLabel","setCookieDescriptionLabel","descriptionLabel","setPoliticsButtonLabel","optOutButton","optInButton","setAcceptButtonLabel","acceptButton","CookiebarTemplates","labels","setGlobalContentArea","_setIntroductoryContentArea","_setInfoText","_setMainContentArea","_setComplementaryContentArea","_setActionArea","_setMainTitle","_setLastUpdate","_setEntryText","_setMainContentHeader","_setCookieGroups","noteList","_setNotifications","_setPoliticsButton","_setAcceptButton","mainTitle","_setCloseButton","lastUpdate","entryText","infoText","_setCheckAll","setAllAlertMessage","groupTemplates","groupIndex","_setGroupName","_setCheckGroup","_setGroupButton","setGroupAlertMessage","_setGroupDescription","_setCookieInfo","groupName","groupText","cookieTemplates","cookieIndex","_setCheckCookie","setCookieAlertMessage","cookieName","expires","domain","enterprise","purpose","description","noteTitle","_setNotificationInfo","notificationTemplates","notificationData","question","answer","_setLinkInfo","linkTemplates","links","linkData","closeLabel","allAlertMessage","groupAlertMessage","alertMessage","BRCookiebar","mode","templates","_setUp","_buildCookiebar","_showCookiebar","_setAcceptButtonBehavior","_setPoliticsButtonBehavior","_setCloseButtonBehavior","_setToggleGroupBehavior","_setCheckboxBehavior","_setSelectionBehavior","_setWindowResizeBehavior","_hideCookiebar","_setOutputJSON","focus","_setActionButtonResponsive","politicsButton","_setOpenView","closeButton","_setDefaultView","matchMedia","matches","clickable","_handleToggleGroupClick","bind","_getParentElementByClass","nextElementSibling","_setGroupAttributes","_toggleIcon","_scrollUp","checkgroupBehavior","checkbox","_controlSelection","segment","_setCheckAllBehavior","_setCheckCookieBehavior","checked","_displayBroadAlertMessage","_displayCookieAlertMessage","_displayGroupAlertMessage","broadAlert","group","groupAlert","cookie","cookieAlert","className","oldIcon","newIcon","label","scrollIntoView","behavior","block","wrapper","containerFluid","modalFooter","getPropertyValue","match","innerHeight","output","cookies","cookieId","groupId","stringify","brCookiebar","params","POLITICS_BUTTON","ACCEPT_BUTTON","ACTION_BUTTONS","CLOSE_BUTTON","CONTAINER_FLUID","WRAPPER","MODAL_FOOTER","GROUP_INFO","COOKIE_CARD","BROAD_ALERT","GROUP_ALERT","COOKIE_ALERT","BR_CHECKBOX","BR_SWITCH","CHECKBOX","PARENT_CHECKBOX","COOKIES_CHECKED","GROUP_BUTTON","GROUP_NAME","GROUP_SIZE","BUTTON_ICON","HOOKS","defaults","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","positionElement","prevArrow","shorthandCurrentMonth","showMonths","weekNumbers","wrap","english","daysInMonth","firstDayOfWeek","ordinal","nth","s","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","bool","wait","t","_this","apply","arrayify","obj","toggleClass","tag","content","textContent","clearNode","firstChild","removeChild","findParent","condition","createNumberInput","inputClassName","opts","numInput","arrowUp","arrowDown","pattern","getEventTarget","composedPath","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","getHours","parseFloat","H","J","day","K","RegExp","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","l","n","u","unixMillSeconds","w","tokenRegex","formats","toISOString","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","_b","_c","l10n","_d","isMobile","frmt","overrideLocale","formatDate","c","arr","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","ops","matchIndex","regexStr","token","isBackSlash","escaped","exec","val","isNaN","Error","compareDates","date1","date2","compareTimes","isBetween","ts","ts1","ts2","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","floor","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","__assign","p","prototype","call","__spreadArrays","il","r","k","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","instanceConfig","defaultConfig","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","isOpen","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","getClosestActiveElement","calendarContainer","bindToInstance","requestAnimationFrame","visibility","display","daysContainer","daysWidth","days","weekWrapper","removeProperty","updateTime","defaultDate","getMilliseconds","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","onYearInput","eventTarget","delta","changeYear","handler","ev","_handlers","triggerChange","evt","setupMobile","debouncedResize","onResize","onMouseOver","ontouchstart","documentClick","capture","monthNav","onMonthNavClick","selectDate","timeContainer","selText","timeIncrement","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","message","buildMonthSwitch","redraw","incrementNumInput","inputElem","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nextSibling","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","getNextAvailableDay","givenMonth","loopDelta","numMonthDays","changeMonth","focusOnDay","dayFocused","isInView","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","selected","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","separator","hourInput","minuteInput","secondInput","title","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","clear","triggerChangeEvent","toInitial","mobileInput","_initialDate","close","lastChild","_type","isCalendarElem","eventTarget_1","isCalendarElement","isInput","lostFocus","relatedTarget","isIgnored","newYear","newYearNum","isNewYear","dateToCheck","enable","array","parsed","to","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","keyCode","blur","isTimeObj","preventDefault","focusAndClose","delta_1","elems","pluginElements","shiftKey","charAt","cellClass","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","hoverableCells","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","_enable","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","customPositionElement","calendarHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","showOnTop","isCenter","isRight","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","CALLBACKS","updatePositionElement","option","setSelectedDate","inputDate","rule","preloadedDate","placeholder","required","inputType","mobileFormatStr","defaultValue","hooks","initEvent","specificFormat","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","newValue","which","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","instances","HTMLCollection","NodeList","selector","en","localize","setDefaults","jQuery","fp_incr","Brazilian","BRDateTimePicker","language","selectionStart","configAttribute","properties","tup","replaceAll","saida","_buildDateTimePicker","_dateInputMask","elm","_dateTimeInputMask","_dateRangeInputMask","_positionRangeMask","tamSeparator","daySeparator","monthSeparator","_timeInputMask","config_native","config_min_flat","config_flatpick","calendar","BRFooter","_setCollapseBehavior","onresize","iconComponent","britems","_showList","_closeAllColumns","_iconAngleUP","_iconAngleDOWN","BRHeader","componentSearch","componentSearchInput","componentSearchTrigger","componentSearchDismiss","hideDrop","menuTrigger","_setLogoutBehavior","_setSearchBehaviors","_setKeyboardBehaviors","_setSticky","_setLoginBehavior","login","loginParent","closest","logout","logoutParent","_cleanDropDownHeader","_openSearch","_closeSearch","_nextFocusElement","handleEvent","notificationElement","activateTr","_cleanDropDownHeaderRef","cleaned","_headerTooltip","stopImmediatePropagation","hasShow","TooltipExampleList","tooltipElem","popperInstance","TooltipExample","texttooltip","activator","textTooltip","ref","onscroll","focussableElements","focussable","nextElement","BRInput","_currentFocus","_setPasswordViewBehavior","_setAutocompleteBehavior","inputPassword","buttonIcon","_toggleShowPassword","inputAutocomplete","_clearSearchItems","_buildSearchItems","_handleArrowKeys","searchList","dataList","substr","toUpperCase","searchItems","itemActive","_switchFocus","entries","setAutocompleteData","BRItem","_setCheckboxSelection","_setRadioSelection","radio","radioItem","BRList","BRMenu","breakpoints","pushShadow","contextual","dismiss","scrim","componentFolders","componentItems","_toggleMenu","_setDropMenu","_setSideMenu","_setBreakpoints","template","menuContextual","code","_closeMenu","_openMenu","_focusNextElement","_createIcon","_toggleDropMenu","ul","previousElementSibling","_toggleSideMenu","_hideItems","_showItems","_closeSideMenu","parentFolder","menuIconContainer","menuIcon","BRAlert","_dismiss","BRModal","brScrim","showScrim","BRNotification","menuBtns","hideEvents","_hideNotification","action","notification","_hideAllNotifications","notifications","_notificationTooltip","TooltipNotification","elementTooltip","BRPagination","currentPage","_setBehaviors","_setActive","_dropdownBehavior","_setLayout","pages","page","_createIntervalElement","interval","_selectPage","_dropdownInit","_dropdownToggle","_dropdownClose","_dropdownOpen","BRScrim","_setType","outsideclick","hideScrim","allComp","buttonComponent","buttonBloco1","scrscrim","scrimfoco","scrimexamplebig","BRSelect","notFound","multiple","_setOptionsList","_optionSelected","selectedValue","strOption","optionsList","_removeNotFoundElement","_addNotFoundElement","image","notFoundElement","inputValue","innerText","visible","resetOptionsList","_unsetSelectionBehavior","_setSearchIcon","_setKeyboardBehavior","_setFilterBehavior","_openSelect","_resetFocus","_closeSelect","_handleKeydownOnInput","_handleKeydownOnList","_unsetKeyboardBehavior","_getNextItem","_setKeyClickOnOption","_getPreviousItem","_sendEvent","clickEvent","bubbles","detail","_setDefaultSelected","selectedItems","iterable","Symbol","iterator","_setSelected","_positionSelected","componente","_handleClickOnCheck","_removeSelected","index2","item2","check2","_setAttribute","selectionHandler","allHidden","_filter","hasVisible","_setInput","mountSelectedValues","GAP","amountE","amount","tempSpan","insertAdjacentElement","maxCharacterCount","getMaxCharacterCountBeforeOverflow","ct","encontrarPosicaoPorTamanho","getPixelSize","whiteSpace","size","account","acountVisible","posUltimoArray","posicaoArray","contOverflow","tmpValue","paddingLeft","paddingRight","border","borderLeftWidth","borderRightWidth","availableWidth","averageCharacterWidth","getAverageCharacterWidth","averageWidth","filterArrayByInputSize","maxLength","filteredArray","elementText","truncatedText","iFocused","iVisible","_resetInput","_resetVisible","brInput","dropButton","searchIcon","inputIcon","inputGroup","BRStep","stepsBar","stepsBarClass","stepsBtnClass","stepsBtns","parentClass","setStepsNum","setStep","activeStep","BRTab","ancor","scollsizes","leftPosition","setProperty","positionScroll","navigationRight","lastItempos","navigationLeft","_switchTab","_switchContent","positionKeyboard","hiddenTooltips","tabitems","clean","tooltips","hidden","visbility","positionActive","contComponent","contComponentActive","tabItems2","positionQuery","query","contComponentFocus","setPosition","navItems","ceil","currentTab","tabItem","tabPanel","BRTable","sequence","_header","_table","_sequence","_makeResponsiveTable","_setHeaderWidth","_searchBehavior","_densityBehavior","_setClickActions","_getBRHeaderHeight","responsiveClass","responsiveElement","after","_makeScroller","scrollerTag","header","clonedHeader","flex","_searchInit","_searchOpen","_searchClose","desityTriggers","desityTrigger","density","headerCheckbox","tableCheckboxes","selectedBar","checkAlls","checkAll","_checkAllTable","_checkRow","_setRow","tr","_setSelectedBar","_checkAllRows","_uncheckAllRows","infoCount","total","BRTag","_setSelection","_closeTag","_dismissTag","_toggleSelection","_toggleRadio","nameTag","tagRadio","_removeCheck","_setCheck","closeBtn","brTag","tagList","BRTextArea","_setKeyup","limit","maximum","characters","currentValue","characterCount","textLength","BRTooltip","previousSibling","place","positions","popover","timer","positionNotification","active","includes","showEvents","closeTimer","_create","otherEvent","_show","_hide","_toggleActivatorIcon","ac","DOMRect","tt","bw","zIndex","_fixPosition","ico","toggleAttribute","BRUpload","uploadFiles","_inputElement","_fileList","_btnUpload","_label","_textHelp","_fileArray","_uploadFiles","append","_clickUpload","files","_handleFiles","_setDragAndDropBehavior","uploadButton","eventName","_preventDefaults","_hightLight","_unHightLight","_handleDrop","dt","_isDisabled","isDisabled","_removeMessage","_removeStatus","remStatus","_feedback","icone","dataStatus","before","_concatFiles","newFiles","_updateFileList","nowait","_renderItem","requested","uploadLoading","uploadingFile","loading","carga","li","info","tooltip","del","btndel","spanSize","_calcSize","_removeFile","tooltipList","brTooltip","nBytes","sOutput","aMultiples","nMultiple","nApprox","_updateFileListItems","fileInput","ClipboardEvent","clipboardData","DataTransfer","items","BRWizard","stepFormPanelClass","stepFormPanels","stepNextBtnClass","stepPrevBtnClass","stepsForm","getActivePanel","activePanel","setActivePanel","activePanelNum","collapseSteps","expandSteps","stepsWidth","gridTemplateColumns","Accordion","super","_setPriorityVisibility","_getGroup","_synchronizeAccordion","_handleTriggerChangeBehavior","currentTrigger","Checkgroup","_setChildren","checkedLabel","uncheckedLabel","_setParentBehavior","_setChildBehavior","_handleParentClick","_handleParentChange","_setIndeterminateStateOnClick","_setParentCheckboxLabel","_changeChildState","Event","_handleChildClick","_handleChildChange","_setIndeterminateStateOnChildChange","_isAllChildrenChecked","_isAllChildrenUnchecked","allChildChecked","allChildUnchecked","Collapse","breakpoint","setIconToShow","setIconToHide","_setTarget","_checkBreakpoint","_setVisibilityStatus","_setTriggerVisibilityStatus","_setTargetVisibilityStatus","_handleTriggerClickBehavior","_toggleVisibility","Dropdown","_hideDropdown","_setParentsTargetVisibilityStatus","Scrim","closeElement","elementHideScrim","_setCloseClick","Swipe","evtMap","SWIPE_DOWN","SWIPE_LEFT","SWIPE_RIGHT","SWIPE_UP","xDown","yDown","handleTouchStart","handleTouchEnd","cb","off","lcb","touches","clientX","clientY","deltaX","changedTouches","deltaY","Tooltip","onActivator","text_tooltip","_setContent","contentText","jsonData","inputData","Globals","initInstanceAll","initInstanceAccordion","initInstanceAvatar","initInstanceBreadcrumb","initInstanceCard","initInstanceCarousel","initInstanceCheckbox","initInstanceCookiebar","initInstanceDateTimePicker","initInstanceFooter","initInstanceInput","initInstanceHeader","initInstanceItem","initInstanceList","initInstanceMenu","initInstanceMessage","initInstanceModal","initInstanceNotification","initInstancePagination","initInstanceScrim","initInstanceSelect","initInstanceStep","initInstanceTable","initInstanceTabs","initInstanceTextarea","initInstanceUpload","initInstanceWizard","initInstanceTooltip","accordionList","brAccordion","avatarList","brAvatar","breadcrumbList","brBreadcrumb","datetimepickerList","brDateTimePicker","headerList","brHeader","listFooter","brFooter","inputList","itemList","brItem","listList","brList","menuList","brMenu","alertList","brMessage","modalList","brModal","notificationList","brNotification","paginationList","brPagination","scrimList","selectList","brSelect","brselect","tableList","brTable","initInstanceTag","abasList","brTab","uploadList","uploadTimeout","brUpload","stepList","brStep","wizardList","brWizard","listCard","brCard","carouselList","brCarousel","checkboxList","brCheckbox","cookiebarList","textareaList","brTextarea","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","o","enumerable","prop","toStringTag","AccordionExample","_setAccordionBehavior","accordion","CheckgroupExample","CollapseExample","DropdownExample","run","targets","Behavior","_initInstanceAccordionExample","_initInstanceCheckGroupExemple","_initInstanceCollapseExample","_initInstanceDropdownExample","_initInstanceTooltipExample","_initInstanceScrimExample","collapseExampleList","collapseExample","accordionExampleList","accordionExample","checkgroupExampleList","checkgroupExample","dropdownExampleList","dropdownExample","tooltipExample","globals"],"sourceRoot":""}