{"version":3,"file":"index-9bab0b32.js","sources":["../../node_modules/dayjs/dayjs.min.js","../../node_modules/dayjs/plugin/utc.js","../../node_modules/primevue/utils/utils.esm.js","../../node_modules/primevue/ripple/ripple.esm.js","../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/primevue/accordion/accordion.esm.js","../../node_modules/primevue/accordiontab/accordiontab.esm.js","../../node_modules/primevue/blockui/blockui.esm.js","../../node_modules/primevue/button/button.esm.js","../../node_modules/primevue/overlayeventbus/overlayeventbus.esm.js","../../node_modules/primevue/portal/portal.esm.js","../../node_modules/primevue/calendar/calendar.esm.js","../../node_modules/primevue/card/card.esm.js","../../node_modules/primevue/checkbox/checkbox.esm.js","../../node_modules/primevue/chip/chip.esm.js","../../node_modules/primevue/confirmationeventbus/confirmationeventbus.esm.js","../../node_modules/primevue/focustrap/focustrap.esm.js","../../node_modules/primevue/dialog/dialog.esm.js","../../node_modules/primevue/confirmdialog/confirmdialog.esm.js","../../node_modules/primevue/api/api.esm.js","../../node_modules/primevue/virtualscroller/virtualscroller.esm.js","../../node_modules/primevue/dropdown/dropdown.esm.js","../../node_modules/primevue/message/message.esm.js","../../node_modules/primevue/progressbar/progressbar.esm.js","../../node_modules/primevue/badge/badge.esm.js","../../node_modules/primevue/fileupload/fileupload.esm.js","../../node_modules/primevue/inputtext/inputtext.esm.js","../../node_modules/primevue/overlaypanel/overlaypanel.esm.js","../../node_modules/primevue/inputnumber/inputnumber.esm.js","../../node_modules/primevue/paginator/paginator.esm.js","../../node_modules/primevue/panel/panel.esm.js","../../node_modules/primevue/password/password.esm.js","../../node_modules/primevue/progressspinner/progressspinner.esm.js","../../node_modules/primevue/radiobutton/radiobutton.esm.js","../../node_modules/primevue/selectbutton/selectbutton.esm.js","../../node_modules/primevue/sidebar/sidebar.esm.js","../../node_modules/primevue/steps/steps.esm.js","../../node_modules/primevue/skeleton/skeleton.esm.js","../../node_modules/primevue/tabview/tabview.esm.js","../../node_modules/primevue/tabpanel/tabpanel.esm.js","../../node_modules/primevue/toasteventbus/toasteventbus.esm.js","../../node_modules/primevue/toast/toast.esm.js","../../node_modules/primevue/tooltip/tooltip.esm.js","../../node_modules/primevue/tree/tree.esm.js","../../node_modules/primevue/datatable/datatable.esm.js","../../node_modules/primevue/column/column.esm.js","../../src/ui-framework.ts","../../node_modules/vue-router/dist/vue-router.mjs","../../node_modules/pinia/node_modules/vue-demi/lib/index.mjs","../../node_modules/pinia/dist/pinia.mjs","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.js","../../node_modules/axios/lib/helpers/toFormData.js","../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/axios/lib/helpers/buildURL.js","../../node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/axios/lib/defaults/transitional.js","../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/axios/lib/platform/browser/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.js","../../node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/axios/lib/core/transformData.js","../../node_modules/axios/lib/cancel/isCancel.js","../../node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/axios/lib/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/axios/lib/helpers/speedometer.js","../../node_modules/axios/lib/adapters/xhr.js","../../node_modules/axios/lib/adapters/adapters.js","../../node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/axios/lib/core/mergeConfig.js","../../node_modules/axios/lib/env/data.js","../../node_modules/axios/lib/helpers/validator.js","../../node_modules/axios/lib/core/Axios.js","../../node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/axios/lib/helpers/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../node_modules/primevue/image/image.esm.js","../../node_modules/primevue/usetoast/usetoast.esm.js","../../node_modules/primevue/useconfirm/useconfirm.esm.js","../../node_modules/primevue/config/config.esm.js","../../node_modules/primevue/confirmationservice/confirmationservice.esm.js","../../node_modules/primevue/toastservice/toastservice.esm.js","../../node_modules/@k-digitale/kappa/dist/kappa.es.js","../../src/modules/profile/service.ts","../../src/composables/useCesfUser.ts","../../src/learning/registries/Models.ts","../../src/composables/useViewStatus.ts","../../src/composables/useValidationHelper.ts","../../src/services/learningWrappers/LearningWrappersServices.ts","../../src/learning/instances/Models.ts","../../src/services/cesf/CesfServices.ts","../../src/modules/buildingsite/store.ts","../../src/modules/course/service.ts","../../src/learning/instances/InstancesService.ts","../../src/learning/templates/TemplatesService.ts","../../src/learning/registries/RegistriesService.ts","../../src/learning/templates/Models.ts","../../src/modules/course/store.ts","../../src/store/CesfCmsStore.ts","../../node_modules/bootstrap/js/src/dom/data.js","../../node_modules/bootstrap/js/src/util/index.js","../../node_modules/bootstrap/js/src/dom/event-handler.js","../../node_modules/bootstrap/js/src/dom/manipulator.js","../../node_modules/bootstrap/js/src/util/config.js","../../node_modules/bootstrap/js/src/base-component.js","../../node_modules/bootstrap/js/src/dom/selector-engine.js","../../node_modules/just-validate/dist/just-validate.es.js","../../node_modules/bootstrap-italia/dist/plugins/util/observer.js","../../node_modules/bootstrap-italia/dist/plugins/form-validate.js","../../node_modules/bootstrap/js/src/collapse.js","../../node_modules/bootstrap-italia/dist/plugins/collapse.js","../../node_modules/bootstrap-italia/dist/plugins/track-focus.js","../../node_modules/bootstrap-italia/dist/version.js","../../node_modules/bootstrap-italia/dist/plugins/init.js","../../src/components/BannerEsperto.vue","../../src/services/learningWrappers/Models.ts","../../src/services/learningExtensions/LearningExtensionsServices.ts","../../src/components/InfoRls.vue","../../src/pages/Home.vue","../../src/learning/registries/Mappers.ts","../../src/components/ChiediConsulenteModalSlide.vue","../../src/modules/profile/components/RLSPanel.vue","../../src/modules/profile/pages/Profile.vue","../../src/modules/profile/routes.ts","../../src/modules/employee/service.ts","../../src/components/NuovoDipendente.vue","../../src/modules/employee/pages/Employees.vue","../../src/modules/employee/pages/EmployeeDetail.vue","../../src/modules/employee/routes-azi.ts","../../src/modules/employee/pages/Employee.vue","../../src/modules/employee/routes-usr.ts","../../src/modules/buildingsite/pages/BuildingSite.vue","../../src/modules/buildingsite/pages/BuildingSiteDetail.vue","../../src/modules/buildingsite/routes.ts","../../src/modules/course/pages/Course.vue","../../src/modules/course/pages/components/CourseRegistrationWorkerList.vue","../../src/modules/course/pages/CourseRegistration.vue","../../src/modules/course/pages/CoursePreRegistration.vue","../../src/modules/course/pages/CoursesList.vue","../../src/modules/course/pages/CourseDetail.vue","../../src/modules/course/routes.ts","../../src/modules/service/service.ts","../../src/modules/service/pages/Service.vue","../../src/modules/service/routes.ts","../../src/modules/communication/pages/Communication.vue","../../src/modules/communication/pages/Content.vue","../../src/modules/communication/routes.ts","../../src/pages/SelComp.vue","../../src/router.ts","../../node_modules/@fawmi/vue-google-maps/src/utils/lazyValue.js","../../node_modules/@fawmi/vue-google-maps/src/utils/env.js","../../node_modules/@fawmi/vue-google-maps/src/utils/create-map-script.js","../../node_modules/@fawmi/vue-google-maps/src/load-google-maps.js","../../node_modules/@fawmi/vue-google-maps/src/utils/bindEvents.js","../../node_modules/@fawmi/vue-google-maps/src/utils/WatchPrimitiveProperties.js","../../node_modules/@fawmi/vue-google-maps/src/utils/string.js","../../node_modules/@fawmi/vue-google-maps/src/utils/bindProps.js","../../node_modules/@fawmi/vue-google-maps/src/components/mapElementMixin.js","../../node_modules/@fawmi/vue-google-maps/src/components/build-component.js","../../node_modules/@fawmi/vue-google-maps/src/components/polyline.js","../../node_modules/@fawmi/vue-google-maps/src/components/polygon.js","../../node_modules/@fawmi/vue-google-maps/src/components/circle.js","../../node_modules/@fawmi/vue-google-maps/src/components/rectangle.js","../../node_modules/@fawmi/vue-google-maps/src/components/marker.vue","../../node_modules/@googlemaps/markerclustererplus/dist/index.esm.js","../../node_modules/@fawmi/vue-google-maps/src/components/cluster.vue","../../node_modules/@fawmi/vue-google-maps/src/components/infoWindow.vue","../../node_modules/@fawmi/vue-google-maps/src/utils/mountableMixin.js","../../node_modules/@fawmi/vue-google-maps/src/utils/TwoWayBindingWrapper.js","../../node_modules/@fawmi/vue-google-maps/src/components/map.vue","../../node_modules/@fawmi/vue-google-maps/src/components/heatmap.js","../../node_modules/@fawmi/vue-google-maps/src/utils/simulateArrowDown.js","../../node_modules/@fawmi/vue-google-maps/src/components/autocomplete.vue","../../node_modules/@fawmi/vue-google-maps/src/main.js","../../src/main.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t) viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n element.style.transformOrigin = 'bottom';\n\n if (top < 0) {\n top = windowScrollTop;\n }\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n element.style.transformOrigin = 'top';\n }\n\n if (targetOffset.left + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);\n else left = targetOffset.left + windowScrollLeft;\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n },\n\n relativePosition(element, target) {\n if (element) {\n let elementDimensions = element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : this.getHiddenElementDimensions(element);\n const targetHeight = target.offsetHeight;\n const targetOffset = target.getBoundingClientRect();\n const viewport = this.getViewport();\n let top, left;\n\n if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n element.style.transformOrigin = 'bottom';\n\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n } else {\n top = targetHeight;\n element.style.transformOrigin = 'top';\n }\n\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n },\n\n getParents(element, parents = []) {\n return element['parentNode'] === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n },\n\n getScrollableParents(element) {\n let scrollableParents = [];\n\n if (element) {\n let parents = this.getParents(element);\n const overflowRegex = /(auto|scroll)/;\n\n const overflowCheck = (node) => {\n let styleDeclaration = window['getComputedStyle'](node, null);\n\n return overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'));\n };\n\n for (let parent of parents) {\n let scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n\n if (scrollSelectors) {\n let selectors = scrollSelectors.split(',');\n\n for (let selector of selectors) {\n let el = this.findSingle(parent, selector);\n\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n }\n\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n }\n\n return scrollableParents;\n },\n\n getHiddenElementOuterHeight(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n let elementHeight = element.offsetHeight;\n\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return elementHeight;\n }\n\n return 0;\n },\n\n getHiddenElementOuterWidth(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n let elementWidth = element.offsetWidth;\n\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return elementWidth;\n }\n\n return 0;\n },\n\n getHiddenElementDimensions(element) {\n if (element) {\n let dimensions = {};\n\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return dimensions;\n }\n\n return 0;\n },\n\n fadeIn(element, duration) {\n if (element) {\n element.style.opacity = 0;\n\n let last = +new Date();\n let opacity = 0;\n\n let tick = function () {\n opacity = +element.style.opacity + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n\n if (+opacity < 1) {\n (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);\n }\n };\n\n tick();\n }\n },\n\n fadeOut(element, ms) {\n if (element) {\n let opacity = 1,\n interval = 50,\n duration = ms,\n gap = interval / duration;\n\n let fading = setInterval(() => {\n opacity -= gap;\n\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n\n element.style.opacity = opacity;\n }, interval);\n }\n },\n\n getUserAgent() {\n return navigator.userAgent;\n },\n\n appendChild(element, target) {\n if (this.isElement(target)) target.appendChild(element);\n else if (target.el && target.elElement) target.elElement.appendChild(element);\n else throw new Error('Cannot append ' + target + ' to ' + element);\n },\n\n isElement(obj) {\n return typeof HTMLElement === 'object' ? obj instanceof HTMLElement : obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n },\n\n scrollInView(container, item) {\n let borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n let borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n let paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n let paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n let containerRect = container.getBoundingClientRect();\n let itemRect = item.getBoundingClientRect();\n let offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n let scroll = container.scrollTop;\n let elementHeight = container.clientHeight;\n let itemHeight = this.getOuterHeight(item);\n\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n },\n\n clearSelection() {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n } else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n } catch (error) {\n //ignore IE bug\n }\n }\n },\n\n getSelection() {\n if (window.getSelection) return window.getSelection().toString();\n else if (document.getSelection) return document.getSelection().toString();\n else if (document['selection']) return document['selection'].createRange().text;\n\n return null;\n },\n\n calculateScrollbarWidth() {\n if (this.calculatedScrollbarWidth != null) return this.calculatedScrollbarWidth;\n\n let scrollDiv = document.createElement('div');\n\n scrollDiv.className = 'p-scrollbar-measure';\n document.body.appendChild(scrollDiv);\n\n let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n document.body.removeChild(scrollDiv);\n\n this.calculatedScrollbarWidth = scrollbarWidth;\n\n return scrollbarWidth;\n },\n\n getBrowser() {\n if (!this.browser) {\n let matched = this.resolveUserAgent();\n\n this.browser = {};\n\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n } else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n\n return this.browser;\n },\n\n resolveUserAgent() {\n let ua = navigator.userAgent.toLowerCase();\n let match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || (ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua)) || [];\n\n return {\n browser: match[1] || '',\n version: match[2] || '0'\n };\n },\n\n isVisible(element) {\n return element && element.offsetParent != null;\n },\n\n invokeElementMethod(element, methodName, args) {\n element[methodName].apply(element, args);\n },\n\n isExist(element) {\n return !!(element !== null && typeof element !== 'undefined' && element.nodeName && element.parentNode);\n },\n\n isClient() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n },\n\n focus(el, options) {\n el && document.activeElement !== el && el.focus(options);\n },\n\n isFocusableElement(element, selector = '') {\n return this.isElement(element)\n ? element.matches(`button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`)\n : false;\n },\n\n getFocusableElements(element, selector = '') {\n let focusableElements = this.find(\n element,\n `button:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [href][clientHeight][clientWidth]:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n input:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n select:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n textarea:not([tabindex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [tabIndex]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector},\n [contenteditable]:not([tabIndex = \"-1\"]):not([disabled]):not([style*=\"display:none\"]):not([hidden])${selector}`\n );\n\n let visibleFocusableElements = [];\n\n for (let focusableElement of focusableElements) {\n if (getComputedStyle(focusableElement).display != 'none' && getComputedStyle(focusableElement).visibility != 'hidden') visibleFocusableElements.push(focusableElement);\n }\n\n return visibleFocusableElements;\n },\n\n getFirstFocusableElement(element, selector) {\n const focusableElements = this.getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[0] : null;\n },\n\n getLastFocusableElement(element, selector) {\n const focusableElements = this.getFocusableElements(element, selector);\n\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n },\n\n getNextFocusableElement(container, element, selector) {\n const focusableElements = this.getFocusableElements(container, selector);\n const index = focusableElements.length > 0 ? focusableElements.findIndex((el) => el === element) : -1;\n const nextIndex = index > -1 && focusableElements.length >= index + 1 ? index + 1 : -1;\n\n return nextIndex > -1 ? focusableElements[nextIndex] : null;\n },\n\n isClickable(element) {\n const targetNode = element.nodeName;\n const parentNode = element.parentElement && element.parentElement.nodeName;\n\n return (\n targetNode == 'INPUT' ||\n targetNode == 'BUTTON' ||\n targetNode == 'A' ||\n parentNode == 'INPUT' ||\n parentNode == 'BUTTON' ||\n parentNode == 'A' ||\n this.hasClass(element, 'p-button') ||\n this.hasClass(element.parentElement, 'p-button') ||\n this.hasClass(element.parentElement, 'p-checkbox') ||\n this.hasClass(element.parentElement, 'p-radiobutton')\n );\n },\n\n applyStyle(element, style) {\n if (typeof style === 'string') {\n element.style.cssText = style;\n } else {\n for (let prop in style) {\n element.style[prop] = style[prop];\n }\n }\n },\n\n isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n },\n\n isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n },\n\n isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n },\n\n exportCSV(csv, filename) {\n let blob = new Blob([csv], {\n type: 'application/csv;charset=utf-8;'\n });\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, filename + '.csv');\n } else {\n let link = document.createElement('a');\n\n if (link.download !== undefined) {\n link.setAttribute('href', URL.createObjectURL(blob));\n link.setAttribute('download', filename + '.csv');\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n }\n }\n};\n\nclass ConnectedOverlayScrollHandler {\n constructor(element, listener = () => {}) {\n this.element = element;\n this.listener = listener;\n }\n\n bindScrollListener() {\n this.scrollableParents = DomHandler.getScrollableParents(this.element);\n\n for (let i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].addEventListener('scroll', this.listener);\n }\n }\n\n unbindScrollListener() {\n if (this.scrollableParents) {\n for (let i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].removeEventListener('scroll', this.listener);\n }\n }\n }\n\n destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n }\n}\n\nfunction primebus() {\n const allHandlers = new Map();\n\n return {\n on(type, handler) {\n let handlers = allHandlers.get(type);\n\n if (!handlers) handlers = [handler];\n else handlers.push(handler);\n\n allHandlers.set(type, handlers);\n },\n\n off(type, handler) {\n let handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n\n emit(type, evt) {\n let handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.slice().map((handler) => {\n handler(evt);\n });\n }\n }\n };\n}\n\nvar ObjectUtils = {\n equals(obj1, obj2, field) {\n if (field) return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);\n else return this.deepEquals(obj1, obj2);\n },\n\n deepEquals(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0; ) if (!this.deepEquals(a[i], b[i])) return false;\n\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = Object.keys(a);\n\n length = keys.length;\n\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n return a !== a && b !== b;\n },\n\n resolveFieldData(data, field) {\n if (data && Object.keys(data).length && field) {\n if (this.isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n let fields = field.split('.');\n let value = data;\n\n for (var i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n } else {\n return null;\n }\n },\n\n isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n\n getItemValue(obj, ...params) {\n return this.isFunction(obj) ? obj(...params) : obj;\n },\n\n filter(value, fields, filterValue) {\n var filteredItems = [];\n\n if (value) {\n for (let item of value) {\n for (let field of fields) {\n if (String(this.resolveFieldData(item, field)).toLowerCase().indexOf(filterValue.toLowerCase()) > -1) {\n filteredItems.push(item);\n break;\n }\n }\n }\n }\n\n return filteredItems;\n },\n\n reorderArray(value, from, to) {\n let target;\n\n if (value && from !== to) {\n if (to >= value.length) {\n target = to - value.length;\n\n while (target-- + 1) {\n value.push(undefined);\n }\n }\n\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n },\n\n findIndexInList(value, list) {\n let index = -1;\n\n if (list) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] === value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n },\n\n contains(value, list) {\n if (value != null && list && list.length) {\n for (let val of list) {\n if (this.equals(value, val)) return true;\n }\n }\n\n return false;\n },\n\n insertIntoOrderedArray(item, index, arr, sourceArr) {\n if (arr.length > 0) {\n let injected = false;\n\n for (let i = 0; i < arr.length; i++) {\n let currentItemIndex = this.findIndexInList(arr[i], sourceArr);\n\n if (currentItemIndex > index) {\n arr.splice(i, 0, item);\n injected = true;\n break;\n }\n }\n\n if (!injected) {\n arr.push(item);\n }\n } else {\n arr.push(item);\n }\n },\n\n removeAccents(str) {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str\n .replace(/[\\xC0-\\xC5]/g, 'A')\n .replace(/[\\xC6]/g, 'AE')\n .replace(/[\\xC7]/g, 'C')\n .replace(/[\\xC8-\\xCB]/g, 'E')\n .replace(/[\\xCC-\\xCF]/g, 'I')\n .replace(/[\\xD0]/g, 'D')\n .replace(/[\\xD1]/g, 'N')\n .replace(/[\\xD2-\\xD6\\xD8]/g, 'O')\n .replace(/[\\xD9-\\xDC]/g, 'U')\n .replace(/[\\xDD]/g, 'Y')\n .replace(/[\\xDE]/g, 'P')\n .replace(/[\\xE0-\\xE5]/g, 'a')\n .replace(/[\\xE6]/g, 'ae')\n .replace(/[\\xE7]/g, 'c')\n .replace(/[\\xE8-\\xEB]/g, 'e')\n .replace(/[\\xEC-\\xEF]/g, 'i')\n .replace(/[\\xF1]/g, 'n')\n .replace(/[\\xF2-\\xF6\\xF8]/g, 'o')\n .replace(/[\\xF9-\\xFC]/g, 'u')\n .replace(/[\\xFE]/g, 'p')\n .replace(/[\\xFD\\xFF]/g, 'y');\n }\n\n return str;\n },\n\n getVNodeProp(vnode, prop) {\n let props = vnode.props;\n\n if (props) {\n let kebapProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n let propName = Object.prototype.hasOwnProperty.call(props, kebapProp) ? kebapProp : prop;\n\n return vnode.type.props[prop].type === Boolean && props[propName] === '' ? true : props[propName];\n }\n\n return null;\n },\n\n isEmpty(value) {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);\n },\n\n isNotEmpty(value) {\n return !this.isEmpty(value);\n },\n\n isPrintableCharacter(char = '') {\n return this.isNotEmpty(char) && char.length === 1 && char.match(/\\S| /);\n },\n\n /**\n * Firefox-v103 does not currently support the \"findLast\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlast\n */\n findLast(arr, callback) {\n let item;\n\n if (this.isNotEmpty(arr)) {\n try {\n item = arr.findLast(callback);\n } catch {\n item = [...arr].reverse().find(callback);\n }\n }\n\n return item;\n },\n\n /**\n * Firefox-v103 does not currently support the \"findLastIndex\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlastindex\n */\n findLastIndex(arr, callback) {\n let index = -1;\n\n if (this.isNotEmpty(arr)) {\n try {\n index = arr.findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback));\n }\n }\n\n return index;\n }\n};\n\nvar lastId = 0;\n\nfunction UniqueComponentId (prefix = 'pv_id_') {\n lastId++;\n\n return `${prefix}${lastId}`;\n}\n\nfunction handler() {\n let zIndexes = [];\n\n const generateZIndex = (key, autoZIndex, baseZIndex = 999) => {\n const lastZIndex = getLastZIndex(key, autoZIndex, baseZIndex);\n const newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;\n\n zIndexes.push({ key, value: newZIndex });\n\n return newZIndex;\n };\n\n const revertZIndex = (zIndex) => {\n zIndexes = zIndexes.filter((obj) => obj.value !== zIndex);\n };\n\n const getCurrentZIndex = (key, autoZIndex) => {\n return getLastZIndex(key, autoZIndex).value;\n };\n\n const getLastZIndex = (key, autoZIndex, baseZIndex = 0) => {\n return [...zIndexes].reverse().find((obj) => (autoZIndex ? true : obj.key === key)) || { key, value: baseZIndex };\n };\n\n const getZIndex = (el) => {\n return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n };\n\n return {\n get: getZIndex,\n set: (key, el, baseZIndex) => {\n if (el) {\n el.style.zIndex = String(generateZIndex(key, true, baseZIndex));\n }\n },\n clear: (el) => {\n if (el) {\n revertZIndex(getZIndex(el));\n el.style.zIndex = '';\n }\n },\n getCurrent: (key) => getCurrentZIndex(key, true)\n };\n}\n\nvar ZIndexUtils = handler();\n\nexport { ConnectedOverlayScrollHandler, DomHandler, primebus as EventBus, ObjectUtils, UniqueComponentId, ZIndexUtils };\n","import { DomHandler } from 'primevue/utils';\n\nlet timeout;\n\nfunction bindEvents(el) {\n el.addEventListener('mousedown', onMouseDown);\n}\n\nfunction unbindEvents(el) {\n el.removeEventListener('mousedown', onMouseDown);\n}\n\nfunction create(el) {\n let ink = document.createElement('span');\n\n ink.className = 'p-ink';\n ink.setAttribute('role', 'presentation');\n ink.setAttribute('aria-hidden', 'true');\n el.appendChild(ink);\n\n ink.addEventListener('animationend', onAnimationEnd);\n}\n\nfunction remove(el) {\n let ink = getInk(el);\n\n if (ink) {\n unbindEvents(el);\n ink.removeEventListener('animationend', onAnimationEnd);\n ink.remove();\n }\n}\n\nfunction onMouseDown(event) {\n let target = event.currentTarget;\n let ink = getInk(target);\n\n if (!ink || getComputedStyle(ink, null).display === 'none') {\n return;\n }\n\n DomHandler.removeClass(ink, 'p-ink-active');\n\n if (!DomHandler.getHeight(ink) && !DomHandler.getWidth(ink)) {\n let d = Math.max(DomHandler.getOuterWidth(target), DomHandler.getOuterHeight(target));\n\n ink.style.height = d + 'px';\n ink.style.width = d + 'px';\n }\n\n let offset = DomHandler.getOffset(target);\n let x = event.pageX - offset.left + document.body.scrollTop - DomHandler.getWidth(ink) / 2;\n let y = event.pageY - offset.top + document.body.scrollLeft - DomHandler.getHeight(ink) / 2;\n\n ink.style.top = y + 'px';\n ink.style.left = x + 'px';\n DomHandler.addClass(ink, 'p-ink-active');\n\n timeout = setTimeout(() => {\n if (ink) {\n DomHandler.removeClass(ink, 'p-ink-active');\n }\n }, 401);\n}\n\nfunction onAnimationEnd(event) {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n DomHandler.removeClass(event.currentTarget, 'p-ink-active');\n}\n\nfunction getInk(el) {\n for (let i = 0; i < el.children.length; i++) {\n if (typeof el.children[i].className === 'string' && el.children[i].className.indexOf('p-ink') !== -1) {\n return el.children[i];\n }\n }\n\n return null;\n}\n\nconst Ripple = {\n mounted(el, binding) {\n if (binding.instance.$primevue && binding.instance.$primevue.config && binding.instance.$primevue.config.ripple) {\n create(el);\n bindEvents(el);\n }\n },\n unmounted(el) {\n remove(el);\n }\n};\n\nexport { Ripple as default };\n","/**\n * Make a map and return a function for checking if a key\n * is in that map.\n * IMPORTANT: all calls of this function must be prefixed with\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\n * So that rollup can tree-shake them if necessary.\n */\nfunction makeMap(str, expectsLowerCase) {\n const map = Object.create(null);\n const list = str.split(',');\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\n}\n\n/**\n * dev only flag -> name mapping\n */\nconst PatchFlagNames = {\n [1 /* PatchFlags.TEXT */]: `TEXT`,\n [2 /* PatchFlags.CLASS */]: `CLASS`,\n [4 /* PatchFlags.STYLE */]: `STYLE`,\n [8 /* PatchFlags.PROPS */]: `PROPS`,\n [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`,\n [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\n [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\n [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\n [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\n [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`,\n [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\n [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\n [-1 /* PatchFlags.HOISTED */]: `HOISTED`,\n [-2 /* PatchFlags.BAIL */]: `BAIL`\n};\n\n/**\n * Dev only\n */\nconst slotFlagsText = {\n [1 /* SlotFlags.STABLE */]: 'STABLE',\n [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC',\n [3 /* SlotFlags.FORWARDED */]: 'FORWARDED'\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n // Split the content into individual lines but capture the newline sequence\n // that separated each line. This is important because the actual sequence is\n // needed to properly take into account the full line length for offset\n // comparison\n let lines = source.split(/(\\r?\\n)/);\n // Separate the lines and newline sequences into separate arrays for easier referencing\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count +=\n lines[i].length +\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\n const lineLength = lines[j].length;\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\n if (j === i) {\n // push underline\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item)\n ? parseStringStyle(item)\n : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n }\n else if (isString(value)) {\n return value;\n }\n else if (isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*.*?\\*\\//gs;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText\n .replace(styleCommentRE, '')\n .split(listDelimiterRE)\n .forEach(item => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = '';\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === 'number') {\n // only render valid values\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = '';\n if (isString(value)) {\n res = value;\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + ' ';\n }\n }\n }\n else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + ' ';\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\n// These tag configs are shared between compiler-dom and runtime-dom, so they\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Element\nconst HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' +\n 'header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +\n 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +\n 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +\n 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +\n 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +\n 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +\n 'option,output,progress,select,textarea,details,dialog,menu,' +\n 'summary,template,blockquote,iframe,tfoot';\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element\nconst SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +\n 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +\n 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +\n 'feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +\n 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +\n 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +\n 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +\n 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +\n 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +\n 'text,textPath,title,tspan,unknown,use,view';\nconst VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS);\n/**\n * Compiler only.\n * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.\n */\nconst isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS);\n\n/**\n * On the client we only need to offer special cases for boolean attributes that\n * have different names from their corresponding dom properties:\n * - itemscope -> N/A\n * - allowfullscreen -> allowFullscreen\n * - formnovalidate -> formNoValidate\n * - ismap -> isMap\n * - nomodule -> noModule\n * - novalidate -> noValidate\n * - readonly -> readOnly\n */\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\n/**\n * The full list is needed during SSR to produce the correct initial markup.\n */\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\n `loop,open,required,reversed,scoped,seamless,` +\n `checked,muted,multiple,selected`);\n/**\n * Boolean attributes should be included if the value is truthy or ''.\n * e.g. `