{"version":3,"sources":["node_modules/@sydle/sydle-ui/dist/collection/components/avatar/scss/index.css?tag=sy-avatar&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/avatar/avatar.js","node_modules/@sydle/sydle-ui/dist/collection/components/backdrop/scss/index.css?tag=sy-backdrop&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/backdrop/backdrop.js","node_modules/@sydle/sydle-ui/dist/collection/components/button/scss/index.css?tag=sy-button&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/button/button.js","node_modules/@sydle/sydle-ui/dist/collection/components/grid/cell/scss/index.css?tag=sy-cell&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/grid/cell/cell.js","node_modules/@sydle/sydle-ui/dist/collection/components/grid/col/scss/index.css?tag=sy-col&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/grid/col/col.js","node_modules/@sydle/sydle-ui/dist/collection/components/collapse/scss/index.css?tag=sy-collapse&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/collapse/collapse.js","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/scss/index.css?tag=sy-dialog&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/dialog.js","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/dialog-content/scss/index.css?tag=sy-dialog-content&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/dialog-content/dialog-content.js","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/dialog-footer/scss/index.css?tag=sy-dialog-footer&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/dialog-footer/dialog-footer.js","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/dialog-header/scss/index.css?tag=sy-dialog-header&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/dialog/dialog-header/dialog-header.js","node_modules/@sydle/sydle-ui/dist/collection/components/dismiss/scss/index.css?tag=sy-dismiss&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/dismiss/dismiss.js","node_modules/@sydle/sydle-ui/dist/collection/components/divider/scss/index.css?tag=sy-divider&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/divider/divider.js","node_modules/@sydle/sydle-ui/dist/collection/components/dropdown/scss/index.css?tag=sy-dropdown&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/dropdown/dropdown.js","node_modules/@sydle/sydle-ui/dist/collection/components/focus-trap/focusable.function.js","node_modules/@sydle/sydle-ui/dist/collection/components/focus-trap/shadow.function.js","node_modules/@sydle/sydle-ui/dist/collection/components/focus-trap/debounce.function.js","node_modules/@sydle/sydle-ui/dist/collection/components/focus-trap/focus-trap.js","node_modules/@sydle/sydle-ui/dist/collection/components/grid/scss/index.css?tag=sy-grid&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/grid/grid.js","env/enviroment.ts","src/components/sy-growth-quiz-bootstrap/sy-growth-quiz-bootstrap.scss?tag=sy-growth-quiz-bootstrap&encapsulation=shadow","src/components/sy-growth-quiz-bootstrap/sy-growth-quiz-bootstrap.tsx","node_modules/@sydle/sydle-ui/dist/collection/components/progress-spinner/scss/index.css?tag=sy-progress-spinner&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/progress-spinner/progress-spinner.js","node_modules/@sydle/sydle-ui/dist/collection/components/router-link/scss/index.css?tag=sy-router-link&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/router-link/router-link.js","node_modules/@sydle/sydle-ui/dist/collection/components/grid/row/scss/index.css?tag=sy-row&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/grid/row/row.js","node_modules/@sydle/sydle-ui/dist/collection/components/sidebar/scss/index.css?tag=sy-sidebar&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/sidebar/sidebar.js","src/components/sy-site-alert-modal/alert-modal.scss?tag=sy-site-alert-modal&encapsulation=shadow","src/components/sy-site-alert-modal/alert-modal.tsx","src/components/sy-site-api/sy-site-api.tsx","src/components/sy-site-auth/utils/utils.ts","src/components/sy-site-auth/services/authClient.ts","src/components/sy-site-auth/sy-site-auth.tsx","src/components/sy-site-burger/site-burger-icon.scss?tag=sy-site-burger-icon&encapsulation=shadow","src/components/sy-site-burger/site-burger-icon.tsx","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/@babel/runtime/helpers/esm/toArray.js","node_modules/i18next/dist/esm/i18next.js","node_modules/i18next-chained-backend/dist/esm/i18nextChainedBackend.js","node_modules/i18next-localstorage-backend/dist/esm/i18nextLocalStorageBackend.js","src/components/sy-site-i18n/sy-site-i18next-backend.tsx","src/components/sy-site-i18n/sy-site-i18next-detector.tsx","src/components/sy-site-i18n/sy-site-i18n.tsx","src/components/sy-site-i18n/static-i18n.tsx","src/components/sy-site-footer/scss/index.scss?tag=sy-site-footer&encapsulation=shadow","src/components/sy-site-footer/sy-site-footer.tsx","src/components/sy-site-footer/sy-site-footer-copyright/scss/index.scss?tag=sy-site-footer-copyright&encapsulation=shadow","src/components/sy-site-footer/sy-site-footer-copyright/sy-site-footer-copyright.tsx","src/components/sy-site-footer/sy-site-footer-list/scss/index.scss?tag=sy-site-footer-list&encapsulation=shadow","src/components/sy-site-footer/sy-site-footer-list/sy-site-footer-list.tsx","src/components/sy-site-footer/footer-list-collapse/sy-site-footer-list-collapse.scss?tag=sy-site-footer-list-collapse&encapsulation=shadow","src/components/sy-site-footer/footer-list-collapse/sy-site-footer-list-collapse.tsx","src/utils/utils.ts","src/components/sy-site-header/scss/index.scss?tag=sy-site-header&encapsulation=shadow","src/components/sy-site-header/sy-site-header.tsx","src/components/sy-site-language-buttons/scss/index.scss?tag=sy-site-language-buttons&encapsulation=shadow","src/components/sy-site-language-buttons/sy-site-language-buttons.tsx","src/components/sy-site-i18n/sy-site-i18n-hooks.tsx","src/components/sy-site-language-header/language-header.scss?tag=sy-site-language-header&encapsulation=shadow","src/components/sy-site-language-header/language-header.tsx","src/components/sy-site-logout-dropdown-content/scss/sy-site-logout-dropdown-content.scss?tag=sy-site-logout-dropdown-content&encapsulation=shadow","src/components/sy-site-logout-dropdown-content/sy-site-logout-dropdown-content.tsx","src/components/sy-site-shell/sy-site-shell.scss?tag=sy-site-shell&encapsulation=shadow","src/components/sy-site-shell/sy-site-shell.tsx","src/components/sy-site-sidebar/scss/index.scss?tag=sy-site-sidebar&encapsulation=shadow","src/components/sy-site-sidebar/sy-site-sidebar.tsx","src/components/sy-site-sidebar/sidebar-link-grid/sy-site-sidebar-link-grid.scss?tag=sy-site-sidebar-link-grid&encapsulation=shadow","src/components/sy-site-sidebar/sidebar-link-grid/sy-site-sidebar-link-grid.tsx","src/components/sy-site-sidebar/sidebar-list-collapse/sy-site-sidebar-list-collapse.scss?tag=sy-site-sidebar-list-collapse&encapsulation=shadow","src/components/sy-site-sidebar/sidebar-list-collapse/sy-site-sidebar-list-collapse.tsx","node_modules/@sydle/sydle-ui/dist/collection/components/text/scss/index.css?tag=sy-text&encapsulation=shadow","node_modules/@sydle/sydle-ui/dist/collection/components/text/text.js"],"names":["indexCss","Avatar","[object Object]","hostRef","this","rounded","small","initialsSize","shownInitials","initials","length","slice","initialsWatcher","image","initialsSizeWatcher","style","h","Host","showInitials","Backdrop","Button","loading","target","buttonType","content","disabled","checked","type","buttonRadioEvent","contentClasses","text-only","icon-left","icon-right","icon-only","typesClasses","primary","accent","error","success","default","basic","handleClick","event","stopImmediatePropagation","href","openURL","form","el","closest","preventDefault","reset","requestSubmit","handleButtonRadioToggle","name","button","addButtonRadioListener","removeButtonRadioListener","syButtonDidCheck","emit","syButtonDidUncheck","icon","anchorAtributes","generateAnchorAttributes","attributes","Object","assign","class","getRootNode","addEventListener","removeEventListener","iconWatcher","renderLoadingSpinner","renderLabel","label","radius","onClick","getButtonAttributes","renderInnerButton","delegatesFocus","Cell","rowStart","gridRowStart","colStart","gridColumnStart","height","gridRowEnd","width","gridColumnEnd","getCellStyle","Col","Collapse","eventTrigger","opened","newValue","oldValue","syCollapseDidOpen","syCollapseDidClose","rootNode","trigger","querySelectorAll","triggerBy","forEach","toggle","bind","isConnected","dialogsOpened","Array","Dialog","isVisibleInternal","dialogSize","footerButtonsPosition","hideBackdrop","hideClose","position","hideHeader","hideFooter","ignoreOutsideClick","submitLabel","cancelLabel","visible","open","close","action","shouldProceed","onClosing","onClose","onClosed","onOpening","onOpen","onOpened","backdropElement","backdropEl","ev","key","lastOpened","at","visibleWatcher","beforeOpenedResult","beforeOpened","floatingElements","syDialogDidOpen","afterOpened","push","beforeClosedResult","beforeClosed","syDialogDidCancel","syDialogDidSubmit","syDialogDidClose","afterClosed","thisDialogIndex","findIndex","splice","outsideEl","stopPropagation","VIEWPORT_ATTRIBUTE","ref","e","handleOutsideClick","dialogTitle","hideCloseButton","flexDirection","DialogContent","DialogFooter","btnType","syDialogFooterDidSubmitClick","syDialogFooterDidCancelClick","DialogHeader","large","syDialogHeaderDidCloseClick","Dismiss","Divider","ESCAPE_KEY","PLACEMENTS","top-start","top-end","bottom-end","bottom-start","right","left","auto","Dropdown","openedEventListeners","eventListeners","placement","display","ignoreEscape","sameContainerWidth","offsetDistance","toggleByElement","toggleBy","querySelector","containerElement","container","parentElement","handleContainerResize","isOpenedInternal","popperConfig","getPopperConfig","popper","createPopper","syDropdownDidOpen","destroy","removeListeners","syDropdownDidClose","isInsideClick","Boolean","composedPath","find","p","Node","contains","selectElementsWatcher","addToggleByHandler","addEscapeHandler","addOutsideClickHandler","update","resizeObserver","disconnect","window","ResizeObserver","entries","entry","currentHeight","clientHeight","latestContainerHeight","observe","handler","element","_a","focus","escapeHandler","document","outsideClickHandler","listeners","listener","modifiers","options","offset","sameWidth","enabled","phase","beforeWrite","requires","fn","state","styles","rects","reference","effect","elements","offsetWidth","defaultPopperConfig","strategy","isHidden","$elem","hasAttribute","getAttribute","opacity","visibility","isDisabled","isFocusable","HTMLAnchorElement","HTMLAreaElement","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLIFrameElement","queryShadowRoot","root","skipNode","isMatch","reverse","maxDepth","depth","traverseSlot","$slot","assignedNodes","filter","node","nodeType","$slotParent","children","from","$child","result","shadowRoot","tagName","timeouts","Map","debounce","cb","ms","id","timeout","get","clearTimeout","set","setTimeout","delete","FocusTrap","focused","debounceId","Math","random","toString","trapFocus","trapToEnd","focusableElement","getNextFocusableElement","backup","setAttribute","updateFocused","value","disabledWatcher","start","end","focusLastElement","focusFirstElement","onFocusIn","onFocusOut","addHandler","removeHandler","Grid","rows","gridTemplateRows","cols","gridTemplateColumns","gap","isNaN","Number","--sy-grid-gap","getGridStyle","getApiOrigin","location","host","match","origin","getBaseURL","oneApplication","getOrg","oneOrg","syGrowthQuizBootstrapCss","SySiteQuiz","contextsAvailability","makeContextAvailability","isQuizStarted","questionIndex","isQuizFinished","isLastQuestion","answersButtonsDisabled","markedAnswers","api","props","resolve","auth","setContexts","all","whenReady","getAuthState","localStorage","getItem","answerId","removeItem","submitQuizAnswer","quizResult","loadQuizData","quizObj","then","quiz","startButton","createQuizAnswer","answer","_id","alternative","answerQuizQuestion","quizForm","quizAnswerAndQuestion","possibleAnswers","indexOf","_output","nextQuestionIndex","submitButton","setItem","login","baseUrl","url","url2","color","--background-color","--background-image-horizontal-url","--background-image-vertical-url","background","description","button-type","createAnswer","isLastIconVisible","path","family","role","previousQuestion","nextQuestion","submitQuiz","getPaginator","shadowBody","question","map","undefined","answerQuestion","align-self","margin-top","totalOfRightAnswers","finalQuizText","promise","Promise","observer","MutationObserver","childList","shadowTop","shadowBottom","questionBody","setShadows","contentScrollHeight","scrollHeight","offsetHeight","currentScroll","scrollTop","questionBodyObserver","subtree","characterData","shadowBodyWatcher","scrollIntoView","block","behavior","getBackground1Styles","getBackground2Styles","getSubmit","initialPage","Consumes","ProgressSpinner","transition","strokeWidth","hasBackground","getStrokeWidth","getInnerRadius","PI","getRadius","getCircumference","strokeDashoffset","getStrokeDashoffset","strokeDasharray","fixValue","lockTransition","unlockTransition","cx","cy","r","getBackgroundCircleStyle","getCircleStyle","RouterLink","AnchorTag","stretchedLink","Row","Sidebar","sySidebarDidHide","sySidebarDidShow","hide","show","hidden","getBackdroprAttributes","alertModalCss","AlertModal","dialog","sySiteAlertModalDidClose","detail","dialogMessage","SySiteApi","apiUrl","waitForLanguage","waitForLanguageResolve","token","acceptLanguage","body","facade","getBearerToken","fetch","headers","accept","content-type","authorization","accept-language","JSON","stringify","method","response","json","catch","console","log","encodeURIComponent","cache","sendRequest","portalId","sendRequestGet","language","quizAnswerObj","answerIndex","TOKEN_RE","ERROR_RE","hasAuthParams","searchParams","search","test","isPayloadExpired","payloadExp","Date","getTime","lt2DaysToExpire","today","AuthClient","user","parse","payload","exp","logout","withBearer","getAuthenticatedUser","URLI_pos_redirect","redirect","authenticator","siteUser","data","buildAuthorizeUrl","accessToken","mode","Authorization","Content-Type","ok","err","Error","obj_url","URL","queryParams","URLSearchParams","renewToken","getUser","getToken","params","replace","email","code","SySiteAuth","isReadyResolve","isReady","renderLogin","loginComponentProps","removeAcessTokenFromUrl","has","pathname","loginWithRedirect","initEmailAuth","handleResponse","loginComponentEl","changeEmailPhase","messages","errorMessage","_messages","message","text","setError","emailAuth","dispatch","async","history","replaceState","source","isAuthenticated","LoginComponent","component","siteBurgerIconCss","SiteBurgerIcon","classList","add","sySiteBurgerIconDidOpen","remove","sySiteBurgerIconDidClose","_typeof","obj","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","i","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","o","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","_possibleConstructorReturn","call","assertThisInitialized","_getPrototypeOf","getPrototypeOf","_defineProperty","_arrayWithHoles","arr","isArray","_iterableToArray","iter","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","n","_nonIterableRest","_toArray","arrayWithHoles","iterableToArray","unsupportedIterableToArray","nonIterableRest","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread","arguments","getOwnPropertyDescriptors","defineProperties","consoleLogger","args","output","warn","Logger","concreteLogger","init","prefix","logger","debug","setDebug","bool","_len","_key","forward","_len2","_key2","_len3","_key3","deprecate","_len4","_key4","lvl","debugOnly","concat","moduleName","baseLogger","EventEmitter","observers","on","events","_this","split","off","l","cloned","_cloned","defer","res","rej","reject","makeString","copy","a","s","t","m","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","stack","shift","hasOwnProperty","k","setPath","_getLastOfPath","pushPath","_getLastOfPath2","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","prop","String","regexEscape","str","_entityMap","&","<",">","\"","'","/","escape","isIE10","navigator","userAgentData","userAgent","chars","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","c","RegExp","join","matched","ki","substring","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","NewTarget","Reflect","construct","sham","Proxy","valueOf","deepFind","paths","current","j","mix","endsWith","joinedPath","ResourceStore","_EventEmitter","_super","ns","defaultNS","ignoreJSONStructure","addNamespaces","removeNamespaces","index","getResource","lng","addResource","silent","addResources","resources","addResourceBundle","deep","pack","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","v","toJSON","postProcessor","processors","addPostProcessor","module","handle","translator","processor","process","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","services","changeLanguage","exists","interpolation","resolved","extractFromKey","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","interpolator","nestingRegexp","parts","translate","lastKey","_this2","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","skipOnVariables","nestBef","nb","interpolate","na","nestAft","nest","context","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","found","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","possibleKey","pop","returnNull","returnEmptyString","resourceStore","option","capitalize","string","charAt","toUpperCase","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","specialCases","lowerCaseLng","part","cleanCode","isSupportedCode","load","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","1","_","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","addRule","getRule","_unused","needsPlural","rule","resolvedOptions","pluralCategories","getPluralFormsOfKey","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","number","select","getSuffixRetroCompatible","idx","noAbs","abs","simplifyPluralSuffix","returnSuffix","includes","ownKeys$3","_objectSpread$3","Interpolator","format","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","trim","f","missingInterpolationHandler","todos","regex","safeValue","todo","exec","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","reduce","ownKeys$4","_objectSpread$4","parseFormatStr","formatStr","formatName","formatOptions","optStr","currency","range","opts","opt","_opt$split","_opt$split2","rest","parseInt","Formatter","formats","NumberFormat","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","list","ListFormat","_format","mem","_parseFormatStr","formatted","valOptions","formatParams","locale","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","removePending","q","pending","pendingCount","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","queue","queueLoad","languages","callback","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","done","loadedKeys","read","fcName","tried","wait","next","prepareLoading","loadOne","_this5","fallbackValue","isUpdate","initImmediate","preload","partialBundledLanguages","ret","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","noop","bindMemberFunctions","inst","mems","getOwnPropertyNames","I18n","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","formatter","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","initializedStoreOnce","loadResources","usedCallback","append","resolvedLanguage","setResolvedLanguage","reloadResources","use","li","lngInLngs","isLanguageChangingTo","setLngProps","setLng","cacheUserLanguage","detect","getFixedT","keyPrefix","fixedT","resultKey","_this$translator","_this$translator2","setDefaultNamespace","_this6","lastLng","loadNotPending","loadState","precheck","preResult","loadNamespaces","_this7","loadLanguages","preloaded","newLngs","dir","rtlLngs","cloneInstance","_this8","mergedOptions","clone","membersToCopy","createInstance","each","defaults","getDefaults","handleEmptyResourcesAsFailed","Backend","backends","i18nextOptions","b","backendOptions","bLen","loadPosition","pos","isLastBackend","lengthCheckAmount","savePosition","save","Storage","expirationTime","defaultVersion","versions","Cache","storage","nowMS","local","version","getVersion","i18nStamp","i18nVersion","SySiteBackend","siteApi","_services","_i18nextOptions","_namespace","getTranslationBundle","translationBundle","SySiteLanguageDetector","catalogByLanguagePromise","catalogByLanguage","getLanguage","findLangByPath","languagePath","config","_b","_e","_lng","SySiteI18n","i18n","getSiteI18nConfig","siteI18nConfig","ChainedBackend","LocalStorageBackend","_t","i18next","getLanguagePath","lang","SySiteFooter","year","getFullYear","pathImage","logoHref","isMobile","screen","category","colspan","child","title","subCategory","items","wrap","ceil","fill","colSize","resizeQuery","matches","matchMedia","setFooterType","onchange","size-md","size-lg","src","getAssetPath","categories","renderMobileCollapse","wrapCategory","links","policyLinks","SySiteFooterCopyright","mutations","lgpdApi","item","link","LGPD_API","openConfigDialog","SySiteFooterList","sublist","sySiteFooterListCollapseCss","FooterListCollapse","isOpen","size","trigger-by","getImageUrl","classId","objectId","photoId","locationPathIsNotHome","languages.circleLanguages","SydleSiteHeader","searchHref","logoutText","backLink","backLinkHref","searchButton","ctaButton","sySiteHeaderDidLogout","siteAuth","_event","ctaHref","syCtaDidClick","data-sy-viewport","aria-label","ctaTitle","handleCtaClick","ctaIcon","hideUserTab","photo","_class","toggle-by","SySiteLanguageButtons","absoluteUrlRegex","pathLanguageRegex","currentPathLanguage","linkPathLanguage","alternateLinks","alternateLink","hreflang","languages.regularlanguages","updateLanguageHrefs","head","mutation","linkNodes","addedNodes","nodeName","circle-link","active","isPathOfCurrentLanguage","getLinkPathname","i18nUpdateComponent","_propertyKey","componentWillLoad","_lang","getElement","forceUpdate","languageHeaderCss","LanguageHeader","sySiteLanguageHeaderDidClose","sySiteLanguageHeaderDidOpen","startDate","preferredLanguage","daysToExpire","storedPreference","getLanguagePreference","oneDay","diffInTime","diffInDays","floor","isLanguagePreferenceExpired","sessionStorage","getCountryLanguage","userLang","siteI18n","getLang","pageLang","pageVersions","ifHavePageLang","pageVersionHref","pageVersion","en","pt","es","chooseLanguage","setLanguagePreference","setUp","handleMessageClick","handleCloseClick","sySiteLogoutDropdownContentCss","SySiteLogoutDropdownContent","sySiteLogoutDropdownContentDidLogout","sySiteShellCss","STATIC_DATA","dataEN","dataES","dataPT","getStaticData","SySiteShell","authResolve","isAuthReady","loadSidebar","getMenuConfig","sidebarProps","menuEntries","footerProps","footerEntries","sidebar","overflow","handleOnLoad","threshold","IntersectionObserver","handleI18nRef","handleAuthRef","supportedNetworks","cta-title","cta-href","cta-icon","search-button","back-link","back-link-href","hide-user-tab","Provides","SydleSiteSidebar","top","sySiteSidebarDidShow","sySiteSidebarDidHide","activeIcon","shell","parentNode","header_close","backdrop","innerHTML","div","sidebarCloseHandler","animationName","onanimationend","handleAnimation","icons","_c","sySiteSidebarLinkGridCss","SidebarLinkGrid","iconName","--sy-icon-stroke-width","--sy-icon-color","--sy-icon-fill-color","getIcon","sySiteSidebarListCollapseCss","SidebarListCollapse","Fragment","subChild","Text","tagType","h1","h2","h3","h4","h5","h6","lead","TextTag"],"mappings":"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","sourcesContent":["/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-avatar-size-small: Avatar small size.\n * @prop --sy-avatar-size: Avatar regular size.\n * @prop --sy-avatar-border-radius: Default border radius.\n * @prop --sy-avatar-border-radius-rounded: Avatar border radius.\n * @prop --sy-avatar-color: Avatar font color\n * @prop --sy-avatar-background-color: Avatar background color\n * @prop --sy-avatar-font-size: Avatar font size.\n * @prop --sy-avatar-text-decoration: Avatar text decoration.\n * @prop --sy-avatar-font-family: Avatar font family.\n * @prop --sy-avatar-font-weight: Avatar font weight.\n * @prop --sy-avatar-font-style: Avatar font style.\n * @prop --sy-avatar-font-stretch: Avatar font stretch.\n * @prop --sy-avatar-letter-spacing: Avatar letter spacing.\n * @prop --sy-avatar-line-height: Avatar line height.\n * @prop --sy-avatar-small-font-size: Avatar small font size.\n * @prop --sy-avatar-small-text-decoration: Avatar small text decoration.\n * @prop --sy-avatar-small-font-family: Avatar small font family.\n * @prop --sy-avatar-small-font-weight: Avatar small font weight.\n * @prop --sy-avatar-small-font-style: Avatar small font style.\n * @prop --sy-avatar-small-font-stretch: Avatar small font stretch.\n * @prop --sy-avatar-small-letter-spacing: Avatar small letter spacing.\n * @prop --sy-avatar-small-line-height: Avatar small line height.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--sy-avatar-size, var(--sy-spacer-7));\n height: var(--sy-avatar-size, var(--sy-spacer-7));\n overflow: hidden;\n color: var(--sy-avatar-color, var(--sy-foreground-inverse-emphasis));\n background-color: var(--sy-avatar-background-color, var(--sy-surface-inverse));\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border-radius: var(--sy-avatar-border-radius, var(--sy-border-radius));\n font-size: var(--sy-avatar-font-size, var(--sy-heading-h5-font-size));\n text-decoration: var(--sy-avatar-text-decoration, var(--sy-heading-h5-text-decoration));\n font-family: var(--sy-avatar-font-family, var(--sy-heading-h5-font-family));\n font-weight: var(--sy-avatar-font-weight, var(--sy-heading-h5-font-weight));\n font-style: var(--sy-avatar-font-style, var(--sy-heading-h5-font-style));\n font-stretch: var(--sy-avatar-font-stretch, var(--sy-heading-h5-font-stretch));\n letter-spacing: var(--sy-avatar-letter-spacing, var(--sy-heading-h5-letter-spacing));\n line-height: var(--sy-avatar-line-height, var(--sy-heading-h5-line-height));\n}\n\n:host([small]) {\n width: var(--sy-avatar-size-small, var(--sy-spacer-6));\n height: var(--sy-avatar-size-small, var(--sy-spacer-6));\n font-size: var(--sy-avatar-small-font-size, var(--sy-heading-h6-font-size));\n text-decoration: var(--sy-avatar-small-text-decoration, var(--sy-heading-h6-text-decoration));\n font-family: var(--sy-avatar-small-font-family, var(--sy-heading-h6-font-family));\n font-weight: var(--sy-avatar-small-font-weight, var(--sy-heading-h6-font-weight));\n font-style: var(--sy-avatar-small-font-style, var(--sy-heading-h6-font-style));\n font-stretch: var(--sy-avatar-small-font-stretch, var(--sy-heading-h6-font-stretch));\n letter-spacing: var(--sy-avatar-small-letter-spacing, var(--sy-heading-h6-letter-spacing));\n line-height: var(--sy-avatar-small-line-height, var(--sy-heading-h6-line-height));\n}\n\n:host([rounded]) {\n border-radius: var(--sy-avatar-border-radius-rounded, var(--sy-border-radius-rounded));\n}","import { Component, Host, h, Prop, Watch } from '@stencil/core';\nexport class Avatar {\n constructor() {\n /**\n * Sets avatar shape to circle.\n */\n this.rounded = false;\n /**\n * Sets avatar size to small (32x32).\n */\n this.small = false;\n /**\n * Sets `initials` string characters number (min: 1, max: 3)\n */\n this.initialsSize = 2;\n this.shownInitials = '';\n }\n initialsWatcher() {\n this.shownInitials = this.initials;\n if (this.initials && this.initials.length > this.initialsSize) {\n this.shownInitials = this.initials.slice(0, this.initialsSize);\n }\n }\n initialsSizeWatcher() {\n if (this.initialsSize < 1) {\n this.initialsSize = 1;\n }\n if (this.initialsSize > 3) {\n this.initialsSize = 3;\n }\n this.initialsWatcher();\n }\n showInitials() {\n if (!this.shownInitials || this.image) {\n return false;\n }\n return true;\n }\n componentWillLoad() {\n this.initialsSizeWatcher();\n }\n render() {\n const style = {};\n if (this.image) {\n style['background-image'] = `url(${this.image})`;\n }\n return h(Host, { style: style }, this.showInitials() ? this.shownInitials : '');\n }\n static get is() { return \"sy-avatar\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"rounded\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets avatar shape to circle.\"\n },\n \"attribute\": \"rounded\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets avatar size to small (32x32).\"\n },\n \"attribute\": \"small\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"image\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets avatar background-image (URL).\"\n },\n \"attribute\": \"image\",\n \"reflect\": false\n },\n \"initials\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets a text its shown if there is no `image`.\\nMust be a string with same size of `initialsSize`.\"\n },\n \"attribute\": \"initials\",\n \"reflect\": false\n },\n \"initialsSize\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets `initials` string characters number (min: 1, max: 3)\"\n },\n \"attribute\": \"initials-size\",\n \"reflect\": true,\n \"defaultValue\": \"2\"\n }\n }; }\n static get watchers() { return [{\n \"propName\": \"initials\",\n \"methodName\": \"initialsWatcher\"\n }, {\n \"propName\": \"initialsSize\",\n \"methodName\": \"initialsSizeWatcher\"\n }]; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-backdrop-background-color: Backdrop background color.\n * @prop --sy-backdrop-top: Backdrop top.\n * @prop --sy-backdrop-right: Backdrop right.\n * @prop --sy-backdrop-left: Backdrop left.\n * @prop --sy-backdrop-bottom: Backdrop bottom.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n position: fixed;\n top: var(--sy-backdrop-top, 0);\n right: var(--sy-backdrop-right, 0);\n bottom: var(--sy-backdrop-bottom, 0);\n left: var(--sy-backdrop-left, 0);\n z-index: 1040;\n overflow-y: auto;\n background-color: var(--sy-backdrop-background-color, rgba(0, 0, 0, 0.6));\n}","import { Component, Host, h } from '@stencil/core';\nexport class Backdrop {\n render() {\n return (h(Host, null,\n h(\"slot\", null)));\n }\n static get is() { return \"sy-backdrop\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n}\n","/** Do not edit directly **/\n/**\n* This function require the following tokens:\n*\n* // DISABLED STATE\n* sy-{$component}-background-color-disabled-{$color}\n* sy-{$component}-color-disabled-{$color}\n* sy-{$component}-border-color-disabled-{$color}\n*\n* // HOVER and FOCUS STATE\n* sy-{$component}-background-color-hover-{$color}\n* sy-{$component}-border-color-hover-{$color}\n*\n* // ACTIVE STATE\n* sy-{$component}-background-color-active-{$color}\n* sy-{$component}-border-color-active-{$color}\n*\n* // FOCUS VISIBLE STATE\n* sy-{$component}-border-color-focus-visible\n*/\n/**\n* DEPRECATED\n*/\n/**\n* DEPRECATED\n*/\n/**\n* DEPRECATED\n*/\n/** Do not edit directly **/\n/**\n * @prop --sy-button-width: Button width.\n * @prop --sy-button-height: Button height.\n * @prop --sy-button-padding: Button padding.\n * @prop --sy-button-padding-small: Button padding small.\n * @prop --sy-button-padding-x: Button padding x.\n * @prop --sy-button-padding-x-small: Button padding x small.\n * @prop --sy-button-padding-y: Button padding y.\n * @prop --sy-button-padding-y-small: Button padding y small.\n * @prop --sy-button-color-primary: Primary background color.\n * @prop --sy-button-color-accent: Accent background color.\n * @prop --sy-button-color-success: Success background color.\n * @prop --sy-button-color-error: Error background color.\n * @prop --sy-button-color-basic: Button color basic.\n * @prop --sy-button-color: Button color.\n * @prop --sy-button-color-disabled-primary: Primary disabled color.\n * @prop --sy-button-color-disabled-accent: Accent disabled color.\n * @prop --sy-button-color-disabled-success: Success disabled color.\n * @prop --sy-button-color-disabled-error: Error disabled color.\n * @prop --sy-button-color-disabled-basic: Button color disabled basic.\n * @prop --sy-button-color-disabled: Button color disabled.\n * @prop --sy-button-border-width: Button border width.\n * @prop --sy-button-border-radius: Button border radius.\n * @prop --sy-button-border-color-primary: Primary border color.\n * @prop --sy-button-border-color-accent: Accent border color.\n * @prop --sy-button-border-color-success: Success border color.\n * @prop --sy-button-border-color-error: Error border color.\n * @prop --sy-button-border-color-basic: Button border color basic.\n * @prop --sy-button-border-color: Button border color.\n * @prop --sy-button-border-color-hover-primary: Primary hover border color.\n * @prop --sy-button-border-color-hover-accent: Accent hover border color.\n * @prop --sy-button-border-color-hover-success: Success hover border color.\n * @prop --sy-button-border-color-hover-error: Error hover border color.\n * @prop --sy-button-border-color-hover-basic: Button border color hover basic.\n * @prop --sy-button-border-color-hover: Button border color hover.\n * @prop --sy-button-border-color-active-primary: Primary active background color.\n * @prop --sy-button-border-color-active-accent: Accent active background color.\n * @prop --sy-button-border-color-active-success: Success active background color.\n * @prop --sy-button-border-color-active-error: Error active background color.\n * @prop --sy-button-border-color-active-basic: Button border color active basic.\n * @prop --sy-button-border-color-active: Button border color active.\n * @prop --sy-button-border-color-disabled-primary: Primary disabled border color.\n * @prop --sy-button-border-color-disabled-accent: Accent disabled border color.\n * @prop --sy-button-border-color-disabled-success: Success disabled border color.\n * @prop --sy-button-border-color-disabled-error: Error disabled border color.\n * @prop --sy-button-border-color-disabled-basic: Button border color disabled basic.\n * @prop --sy-button-border-color-disabled: Button border color disabled.\n * @prop --sy-button-border-color-focus-visible: Button border color focus visible.\n * @prop --sy-button-background-color-primary: Primary background color.\n * @prop --sy-button-background-color-accent: Accent background color.\n * @prop --sy-button-background-color-success: Success background color.\n * @prop --sy-button-background-color-error: Error background color.\n * @prop --sy-button-background-color-basic: Button background color basic.\n * @prop --sy-button-background-color: Button background color.\n * @prop --sy-button-background-color-hover-primary: Primary hover background color.\n * @prop --sy-button-background-color-hover-accent: Accent hover background color.\n * @prop --sy-button-background-color-hover-success: Success hover background color.\n * @prop --sy-button-background-color-hover-error: Error hover background color.\n * @prop --sy-button-background-color-hover-basic: Button background color hover basic.\n * @prop --sy-button-background-color-hover: Button background color hover.\n * @prop --sy-button-background-color-active-primary: Primary active background color.\n * @prop --sy-button-background-color-active-accent: Accent active background color.\n * @prop --sy-button-background-color-active-success: Success active background color.\n * @prop --sy-button-background-color-active-error: Error active background color.\n * @prop --sy-button-background-color-active-basic: Button background color active basic.\n * @prop --sy-button-background-color-active: Button background color active.\n * @prop --sy-button-background-color-disabled-primary: Primary disabled background color.\n * @prop --sy-button-background-color-disabled-accent: Accent disabled background color.\n * @prop --sy-button-background-color-disabled-success: Success disabled background color.\n * @prop --sy-button-background-color-disabled-error: Error disabled background color.\n * @prop --sy-button-background-color-disabled-basic: Button background color disabled basic.\n * @prop --sy-button-background-color-disabled: Button background color disabled.\n * @prop --sy-button-icon-size: Button icon size.\n * @prop --sy-button-icon-margin: Button icon margin.\n * @prop --sy-button-icon-color-primary: Primary icon color.\n * @prop --sy-button-icon-color-accent: Accent icon color.\n * @prop --sy-button-icon-color-success: Success icon color.\n * @prop --sy-button-icon-color-error: Error icon color.\n * @prop --sy-button-icon-color-basic: Button icon color basic.\n * @prop --sy-button-icon-color: Button icon color.\n * @prop --sy-button-loading-speed: Button loading speed.\n * @prop --sy-button-loading-color: Button loading color.\n * @prop --sy-button-font-size: Button font size.\n * @prop --sy-button-text-decoration: Button text decoration.\n * @prop --sy-button-font-family: Button font family.\n * @prop --sy-button-font-weight: Button font weight.\n * @prop --sy-button-font-style: Button font style.\n * @prop --sy-button-font-stretch: Button font stretch.\n * @prop --sy-button-letter-spacing: Button letter spacing.\n * @prop --sy-button-line-height: Button line height.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nbutton {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\n:host {\n display: inline-flex;\n width: var(--sy-button-width, auto);\n height: var(--sy-button-height, auto);\n outline: none;\n}\n\n.sy-btn {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: 100%;\n height: 100%;\n padding: var(--sy-button-padding, var(--sy-button-padding-y, calc(var(--sy-spacer-3) - var(--sy-button-border-width, 1px))) var(--sy-button-padding-x, calc(var(--sy-spacer-4) - var(--sy-button-border-width, 1px))));\n color: var(--sy-button-color, var(--sy-foreground-medium-emphasis));\n text-align: center;\n cursor: pointer;\n user-select: none;\n background-color: var(--sy-button-background-color, var(--sy-surface-elevated));\n border-color: var(--sy-button-border-color, var(--sy-border));\n border-style: solid;\n border-width: var(--sy-button-border-width, 1px);\n border-radius: var(--sy-button-border-radius, var(--sy-border-radius-rounded));\n outline: 0;\n font-size: var(--sy-button-font-size, var(--sy-content-regular-body-font-size));\n text-decoration: var(--sy-button-text-decoration, var(--sy-content-regular-body-text-decoration));\n font-family: var(--sy-button-font-family, var(--sy-content-regular-body-font-family));\n font-weight: var(--sy-button-font-weight, var(--sy-content-regular-body-font-weight));\n font-style: var(--sy-button-font-style, var(--sy-content-regular-body-font-style));\n font-stretch: var(--sy-button-font-stretch, var(--sy-content-regular-body-font-stretch));\n letter-spacing: var(--sy-button-letter-spacing, var(--sy-content-regular-body-letter-spacing));\n line-height: var(--sy-button-line-height, 1);\n --sy-icon-color: var(--sy-button-icon-color, var(--sy-foreground-medium-emphasis));\n}\n.sy-btn[disabled], .sy-btn.disabled {\n color: var(--sy-button-color-disabled, var(--sy-disabled-contrast)) !important;\n cursor: not-allowed !important;\n background-color: var(--sy-button-background-color-disabled, transparent) !important;\n border-color: var(--sy-button-border-color-disabled, var(--sy-disabled)) !important;\n --sy-icon-color: var(--sy-button-color-disabled, var(--sy-disabled-contrast)) !important;\n}\n.sy-btn:hover, .sy-btn:focus {\n background-color: var(--sy-button-background-color-hover, var(--sy-surface-hover));\n border-color: var(--sy-button-border-color-hover, var(--sy-border));\n}\n.sy-btn:active, .sy-btn.active, .sy-btn[active] {\n background-color: var(--sy-button-background-color-active, var(--sy-surface-active));\n border-color: var(--sy-button-border-color-active, var(--sy-border));\n}\n.sy-btn:focus-visible {\n box-shadow: 0 0 0 1px var(--sy-button-border-color-focus-visible, var(--sy-accent));\n}\n\n.sy-btn-icon {\n --sy-icon-size: var(--sy-button-icon-size, 16px);\n --stroke-width: 1.5px;\n}\n\n.sy-btn-inner-content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n\n.sy-btn-icon-left .sy-btn-icon {\n margin-right: var(--sy-button-icon-margin, var(--sy-spacer-3));\n}\n\n.sy-btn-icon-right .sy-btn-icon {\n margin-left: var(--sy-button-icon-margin, var(--sy-spacer-3));\n}\n\n.sy-btn-icon-only {\n padding: var(--sy-button-padding-y, calc(var(--sy-spacer-3) - var(--sy-button-border-width, 1px)));\n}\n\nsy-progress-spinner {\n --sy-progress-spinner-indeterminate-animation-speed: var(--sy-button-loading-speed, 1s);\n --sy-progress-spinner-progress-color: var(--sy-button-loading-color, var(--sy-foreground-medium-emphasis));\n}\nsy-progress-spinner.icon-left {\n margin-right: var(--sy-button-icon-margin, var(--sy-spacer-3));\n}\nsy-progress-spinner.icon-right {\n margin-left: var(--sy-button-icon-margin, var(--sy-spacer-3));\n}\n\n.sy-btn-sm {\n padding: var(--sy-button-padding-small, var(--sy-button-padding-y-small, calc(var(--sy-spacer-2) - var(--sy-button-border-width, 1px))) var(--sy-button-padding-x-small, calc(var(--sy-spacer-3) - var(--sy-button-border-width, 1px))));\n}\n.sy-btn-sm.sy-btn-icon-only {\n padding: var(--sy-button-padding-y-small, calc(var(--sy-spacer-2) - var(--sy-button-border-width, 1px)));\n}\n\n.sy-btn-basic {\n color: var(--sy-button-color-basic, var(--sy-foreground-medium-emphasis));\n background-color: var(--sy-button-background-color-basic, transparent);\n border-color: var(--sy-button-border-color-basic, transparent);\n --sy-icon-color: var(--sy-button-icon-color-basic, var(--sy-foreground-medium-emphasis));\n}\n.sy-btn-basic[disabled], .sy-btn-basic.disabled {\n color: var(--sy-button-color-disabled-basic, var(--sy-disabled-contrast)) !important;\n cursor: not-allowed !important;\n background-color: var(--sy-button-background-color-disabled-basic, transparent) !important;\n border-color: var(--sy-button-border-color-disabled-basic, transparent) !important;\n --sy-icon-color: var(--sy-button-color-disabled-basic, var(--sy-disabled-contrast)) !important;\n}\n.sy-btn-basic:hover, .sy-btn-basic:focus {\n background-color: var(--sy-button-background-color-hover-basic, var(--sy-surface-hover));\n border-color: var(--sy-button-border-color-hover-basic, var(--sy-surface-hover));\n}\n.sy-btn-basic:active, .sy-btn-basic.active, .sy-btn-basic[active] {\n background-color: var(--sy-button-background-color-active-basic, var(--sy-surface-active));\n border-color: var(--sy-button-border-color-active-basic, var(--sy-surface-active));\n}\n.sy-btn-basic:focus-visible {\n box-shadow: 0 0 0 1px var(--sy-button-border-color-focus-visible, var(--sy-accent));\n}\n\n.sy-btn-primary {\n color: var(--sy-button-color-primary, var(--sy-primary-contrast));\n background-color: var(--sy-button-background-color-primary, var(--sy-primary));\n border-color: var(--sy-button-border-color-primary, var(--sy-primary));\n --sy-icon-color: var(--sy-button-icon-color-primary, var(--sy-primary-contrast));\n}\n.sy-btn-primary[disabled], .sy-btn-primary.disabled {\n color: var(--sy-button-color-disabled-primary, var(--sy-disabled-contrast)) !important;\n cursor: not-allowed !important;\n background-color: var(--sy-button-background-color-disabled-primary, var(--sy-disabled)) !important;\n border-color: var(--sy-button-border-color-disabled-primary, var(--sy-disabled)) !important;\n --sy-icon-color: var(--sy-button-color-disabled-primary, var(--sy-disabled-contrast)) !important;\n}\n.sy-btn-primary:hover, .sy-btn-primary:focus {\n background-color: var(--sy-button-background-color-hover-primary, var(--sy-primary-hover));\n border-color: var(--sy-button-border-color-hover-primary, var(--sy-primary-hover));\n}\n.sy-btn-primary:active, .sy-btn-primary.active, .sy-btn-primary[active] {\n background-color: var(--sy-button-background-color-active-primary, var(--sy-primary-active));\n border-color: var(--sy-button-border-color-active-primary, var(--sy-primary-active));\n}\n.sy-btn-primary:focus-visible {\n box-shadow: 0 0 0 1px var(--sy-button-border-color-focus-visible, var(--sy-accent));\n}\n\n.sy-btn-accent {\n color: var(--sy-button-color-accent, var(--sy-accent-contrast));\n background-color: var(--sy-button-background-color-accent, var(--sy-accent));\n border-color: var(--sy-button-border-color-accent, var(--sy-accent));\n --sy-icon-color: var(--sy-button-icon-color-accent, var(--sy-accent-contrast));\n}\n.sy-btn-accent[disabled], .sy-btn-accent.disabled {\n color: var(--sy-button-color-disabled-accent, var(--sy-disabled-contrast)) !important;\n cursor: not-allowed !important;\n background-color: var(--sy-button-background-color-disabled-accent, var(--sy-disabled)) !important;\n border-color: var(--sy-button-border-color-disabled-accent, var(--sy-disabled)) !important;\n --sy-icon-color: var(--sy-button-color-disabled-accent, var(--sy-disabled-contrast)) !important;\n}\n.sy-btn-accent:hover, .sy-btn-accent:focus {\n background-color: var(--sy-button-background-color-hover-accent, var(--sy-accent-hover));\n border-color: var(--sy-button-border-color-hover-accent, var(--sy-accent-hover));\n}\n.sy-btn-accent:active, .sy-btn-accent.active, .sy-btn-accent[active] {\n background-color: var(--sy-button-background-color-active-accent, var(--sy-accent-active));\n border-color: var(--sy-button-border-color-active-accent, var(--sy-accent-active));\n}\n.sy-btn-accent:focus-visible {\n box-shadow: 0 0 0 1px var(--sy-button-border-color-focus-visible, var(--sy-accent));\n}\n\n.sy-btn-error {\n color: var(--sy-button-color-error, var(--sy-error-contrast));\n background-color: var(--sy-button-background-color-error, var(--sy-error));\n border-color: var(--sy-button-border-color-error, var(--sy-error));\n --sy-icon-color: var(--sy-button-icon-color-error, var(--sy-error-contrast));\n}\n.sy-btn-error[disabled], .sy-btn-error.disabled {\n color: var(--sy-button-color-disabled-error, var(--sy-disabled-contrast)) !important;\n cursor: not-allowed !important;\n background-color: var(--sy-button-background-color-disabled-error, var(--sy-disabled)) !important;\n border-color: var(--sy-button-border-color-disabled-error, var(--sy-disabled)) !important;\n --sy-icon-color: var(--sy-button-color-disabled-error, var(--sy-disabled-contrast)) !important;\n}\n.sy-btn-error:hover, .sy-btn-error:focus {\n background-color: var(--sy-button-background-color-hover-error, var(--sy-error-hover));\n border-color: var(--sy-button-border-color-hover-error, var(--sy-error-hover));\n}\n.sy-btn-error:active, .sy-btn-error.active, .sy-btn-error[active] {\n background-color: var(--sy-button-background-color-active-error, var(--sy-error-active));\n border-color: var(--sy-button-border-color-active-error, var(--sy-error-active));\n}\n.sy-btn-error:focus-visible {\n box-shadow: 0 0 0 1px var(--sy-button-border-color-focus-visible, var(--sy-accent));\n}\n\n.sy-btn-success {\n color: var(--sy-button-color-success, var(--sy-success-contrast));\n background-color: var(--sy-button-background-color-success, var(--sy-success));\n border-color: var(--sy-button-border-color-success, var(--sy-success));\n --sy-icon-color: var(--sy-button-icon-color-success, var(--sy-success-contrast));\n}\n.sy-btn-success[disabled], .sy-btn-success.disabled {\n color: var(--sy-button-color-disabled-success, var(--sy-disabled-contrast)) !important;\n cursor: not-allowed !important;\n background-color: var(--sy-button-background-color-disabled-success, var(--sy-disabled)) !important;\n border-color: var(--sy-button-border-color-disabled-success, var(--sy-disabled)) !important;\n --sy-icon-color: var(--sy-button-color-disabled-success, var(--sy-disabled-contrast)) !important;\n}\n.sy-btn-success:hover, .sy-btn-success:focus {\n background-color: var(--sy-button-background-color-hover-success, var(--sy-success-hover));\n border-color: var(--sy-button-border-color-hover-success, var(--sy-success-hover));\n}\n.sy-btn-success:active, .sy-btn-success.active, .sy-btn-success[active] {\n background-color: var(--sy-button-background-color-active-success, var(--sy-success-active));\n border-color: var(--sy-button-border-color-active-success, var(--sy-success-active));\n}\n.sy-btn-success:focus-visible {\n box-shadow: 0 0 0 1px var(--sy-button-border-color-focus-visible, var(--sy-accent));\n}","import { Component, h, Host, Prop, Event, Element, Watch } from '@stencil/core';\nimport { generateAnchorAttributes, openURL } from '../../utils/elements-interface';\nexport class Button {\n constructor() {\n /**\n Sets the button to a \"loading\" state, making it display a loading spinner.\n If the button has an icon, the spinner will replace the icon.\n If not, the spinner will replace the button's label.\n */\n this.loading = false;\n /**\n * HTML target attribute\n */\n this.target = '_blank';\n /**\n * Sets button's type.\n */\n this.buttonType = 'button';\n /**\n * Sets button's content type\n */\n this.content = 'icon-left';\n /**\n * Sets button's size to small\n */\n this.small = false;\n /**\n * Sets button's state to disabled\n */\n this.disabled = false;\n /**\n * Sets button's state to active\n */\n this.checked = false;\n /**\n * Sets button's type\n */\n this.type = 'default';\n this.buttonRadioEvent = false;\n this.contentClasses = {\n 'text-only': 'sy-btn-text-only',\n 'icon-left': 'sy-btn-icon-left',\n 'icon-right': 'sy-btn-icon-right',\n 'icon-only': 'sy-btn-icon-only',\n };\n this.typesClasses = {\n primary: 'sy-btn-primary',\n accent: 'sy-btn-accent',\n error: 'sy-btn-error',\n success: 'sy-btn-success',\n default: '',\n basic: 'sy-btn-basic',\n };\n this.handleClick = (event) => {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n else if (this.buttonType == 'check' || this.buttonType == 'radio') {\n this.checked = !this.checked;\n }\n else if (this.buttonType === 'button' && this.href) {\n openURL(this.href, event);\n }\n else {\n const form = this.el.closest('form');\n if (form) {\n event.preventDefault();\n if (this.buttonType === 'reset') {\n form.reset();\n }\n else if (this.buttonType === 'submit') {\n form.requestSubmit();\n }\n }\n }\n };\n this.handleButtonRadioToggle = (event) => {\n if (this.buttonType === 'radio' && this.name && event && event.target !== this.el) {\n const button = event.target;\n if (button && button.buttonType === 'radio' && button.name === this.name) {\n this.checked = false;\n }\n }\n };\n }\n async buttonTypeWatcher() {\n if (this.buttonType === 'radio') {\n this.addButtonRadioListener();\n }\n else {\n this.removeButtonRadioListener();\n }\n }\n async checkedWatcher() {\n if (this.buttonType == 'check' || this.buttonType == 'radio') {\n if (this.checked)\n this.syButtonDidCheck.emit();\n else\n this.syButtonDidUncheck.emit();\n }\n }\n async iconWatcher() {\n if (!this.icon)\n this.content = 'text-only';\n }\n getButtonAttributes() {\n const anchorAtributes = this.href && this.buttonType !== 'check' && this.buttonType !== 'radio' ? generateAnchorAttributes(this) : {};\n let attributes = Object.assign(Object.assign({}, anchorAtributes), { type: this.type, class: 'sy-btn ' + (this.small ? 'sy-btn-sm ' : '') + (this.checked ? 'active ' : '') + `${this.contentClasses[this.content]} ${this.typesClasses[this.type]}` });\n attributes = this.disabled ? Object.assign(Object.assign({}, attributes), { disabled: true }) : attributes;\n return attributes;\n }\n addButtonRadioListener() {\n if (this.buttonType === 'radio' && !this.buttonRadioEvent) {\n this.el.getRootNode().addEventListener('syButtonDidCheck', this.handleButtonRadioToggle);\n this.buttonRadioEvent = true;\n }\n }\n removeButtonRadioListener() {\n if (this.buttonRadioEvent) {\n this.el.getRootNode().removeEventListener('syButtonDidCheck', this.handleButtonRadioToggle);\n this.buttonRadioEvent = false;\n }\n }\n connectedCallback() {\n this.addButtonRadioListener();\n }\n componentWillLoad() {\n this.iconWatcher();\n }\n disconnectedCallback() {\n this.removeButtonRadioListener();\n }\n renderInnerButton() {\n return (h(\"div\", { class: \"sy-btn-inner-content\" },\n !this.loading && this.icon && (this.content === 'icon-left' || this.content === 'icon-only') && h(\"sy-icon\", { class: \"sy-btn-icon\", name: this.icon }),\n this.loading && this.content != 'icon-right' && this.renderLoadingSpinner(),\n !(this.loading && this.content === 'text-only') && this.content !== 'icon-only' && this.renderLabel(),\n !this.loading && this.icon && this.content === 'icon-right' && h(\"sy-icon\", { class: \"sy-btn-icon\", name: this.icon }),\n this.loading && this.content === 'icon-right' && this.renderLoadingSpinner()));\n }\n renderLabel() {\n return this.label ? this.label : h(\"slot\", null);\n }\n renderLoadingSpinner() {\n return h(\"sy-progress-spinner\", { class: this.content, radius: 8, type: \"indeterminate\" });\n }\n render() {\n return (h(Host, { onClick: this.handleClick }, this.href && this.buttonType !== 'check' && this.buttonType !== 'radio' ? (h(\"a\", Object.assign({}, this.getButtonAttributes()), this.renderInnerButton())) : (h(\"button\", Object.assign({}, this.getButtonAttributes()),\n h(\"div\", { class: \"sy-btn-inner-content\" }, this.renderInnerButton())))));\n }\n static get is() { return \"sy-button\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"loading\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the button to a \\\"loading\\\" state, making it display a loading spinner.\\nIf the button has an icon, the spinner will replace the icon.\\nIf not, the spinner will replace the button's label.\"\n },\n \"attribute\": \"loading\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"download\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML download attribute\"\n },\n \"attribute\": \"download\",\n \"reflect\": false\n },\n \"href\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML href attribute\"\n },\n \"attribute\": \"href\",\n \"reflect\": false\n },\n \"rel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML rel attribute\"\n },\n \"attribute\": \"rel\",\n \"reflect\": false\n },\n \"target\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'_blank' | '_self' | '_parent' | '_top'\",\n \"resolved\": \"\\\"_blank\\\" | \\\"_parent\\\" | \\\"_self\\\" | \\\"_top\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML target attribute\"\n },\n \"attribute\": \"target\",\n \"reflect\": false,\n \"defaultValue\": \"'_blank'\"\n },\n \"buttonType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'button' | 'reset' | 'submit' | 'check' | 'radio'\",\n \"resolved\": \"\\\"button\\\" | \\\"check\\\" | \\\"radio\\\" | \\\"reset\\\" | \\\"submit\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets button's type.\"\n },\n \"attribute\": \"button-type\",\n \"reflect\": false,\n \"defaultValue\": \"'button'\"\n },\n \"content\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"'text-only' | 'icon-left' | 'icon-only' | 'icon-right'\",\n \"resolved\": \"\\\"icon-left\\\" | \\\"icon-only\\\" | \\\"icon-right\\\" | \\\"text-only\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets button's content type\"\n },\n \"attribute\": \"content\",\n \"reflect\": false,\n \"defaultValue\": \"'icon-left'\"\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Optional button's name\"\n },\n \"attribute\": \"name\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Optional button's label\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"icon\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Icon name (use stardard lib)\"\n },\n \"attribute\": \"icon\",\n \"reflect\": false\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets button's size to small\"\n },\n \"attribute\": \"small\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets button's state to disabled\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"checked\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets button's state to active\"\n },\n \"attribute\": \"checked\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'primary' | 'accent' | 'error' | 'success' | 'default' | 'basic'\",\n \"resolved\": \"\\\"accent\\\" | \\\"basic\\\" | \\\"default\\\" | \\\"error\\\" | \\\"primary\\\" | \\\"success\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets button's type\"\n },\n \"attribute\": \"type\",\n \"reflect\": true,\n \"defaultValue\": \"'default'\"\n }\n }; }\n static get events() { return [{\n \"method\": \"syButtonDidCheck\",\n \"name\": \"syButtonDidCheck\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted after the button is checked.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"syButtonDidUncheck\",\n \"name\": \"syButtonDidUncheck\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted after the button is unchecked.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }]; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"buttonType\",\n \"methodName\": \"buttonTypeWatcher\"\n }, {\n \"propName\": \"checked\",\n \"methodName\": \"checkedWatcher\"\n }, {\n \"propName\": \"icon\",\n \"methodName\": \"iconWatcher\"\n }]; }\n}\n","/** Do not edit directly **/\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n grid-row: auto auto;\n grid-column: auto auto;\n}","import { Component, Host, h, Prop } from '@stencil/core';\nexport class Cell {\n getCellStyle() {\n const style = {};\n if (this.rowStart) {\n style.gridRowStart = this.rowStart;\n }\n if (this.colStart) {\n style.gridColumnStart = this.colStart;\n }\n if (this.height) {\n style.gridRowEnd = `span ${this.height}`;\n }\n if (this.width) {\n style.gridColumnEnd = `span ${this.width}`;\n }\n return style;\n }\n render() {\n return (h(Host, { style: this.getCellStyle() },\n h(\"slot\", null)));\n }\n static get is() { return \"sy-cell\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"rowStart\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the position of the first row of the cell.\"\n },\n \"attribute\": \"row-start\",\n \"reflect\": true\n },\n \"colStart\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the position of the first column of the cell.\"\n },\n \"attribute\": \"col-start\",\n \"reflect\": true\n },\n \"height\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the height in rows of the cell.\"\n },\n \"attribute\": \"height\",\n \"reflect\": false\n },\n \"width\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the width in columns of the cell.\"\n },\n \"attribute\": \"width\",\n \"reflect\": false\n }\n }; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-grid-pattern: [PENDING DOC]\n * @prop --sy-grid-gutter-size: [PENDING DOC]\n * @prop --sy-grid-alignment: [PENDING DOC]\n * @prop --sy-grid-count: [PENDING DOC]\n * @prop --sy-grid-offset: [PENDING DOC]\n * @prop --sy-grid-max-width-xs: Grid max width xs.\n * @prop --sy-grid-max-width-sm: Grid max width sm.\n * @prop --sy-grid-max-width-md: Grid max width md.\n * @prop --sy-grid-max-width-lg: Grid max width lg.\n * @prop --sy-grid-max-width-xl: Grid max width xl.\n * @prop --sy-grid-max-width-xxl: Grid max width xxl.\n * @prop --sy-grid-gap: Grid gap - It must be a single number value and defines both row and column gap\n * @prop --sy-grid-row-gap: Grid row gap.\n * @prop --sy-grid-column-gap: Grid column gap.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n flex: 1 100%;\n flex-shrink: 0;\n order: 0;\n min-width: 0;\n padding-right: calc(var(--sy-grid-column-gap, var(--sy-grid-gap, var(--sy-spacer-5))) * .5);\n padding-left: calc(var(--sy-grid-column-gap, var(--sy-grid-gap, var(--sy-spacer-5))) * .5);\n}\n\n:host([size=auto]) {\n flex: 1 0 0%;\n}\n\n:host([size=\"1\"]) {\n flex: 0 0 auto;\n width: 8.3333333333%;\n}\n\n:host([offset=\"1\"]) {\n margin-left: 8.3333333333%;\n}\n\n:host([order=\"1\"]) {\n order: 1;\n}\n\n:host([size=\"2\"]) {\n flex: 0 0 auto;\n width: 16.6666666667%;\n}\n\n:host([offset=\"2\"]) {\n margin-left: 16.6666666667%;\n}\n\n:host([order=\"2\"]) {\n order: 2;\n}\n\n:host([size=\"3\"]) {\n flex: 0 0 auto;\n width: 25%;\n}\n\n:host([offset=\"3\"]) {\n margin-left: 25%;\n}\n\n:host([order=\"3\"]) {\n order: 3;\n}\n\n:host([size=\"4\"]) {\n flex: 0 0 auto;\n width: 33.3333333333%;\n}\n\n:host([offset=\"4\"]) {\n margin-left: 33.3333333333%;\n}\n\n:host([order=\"4\"]) {\n order: 4;\n}\n\n:host([size=\"5\"]) {\n flex: 0 0 auto;\n width: 41.6666666667%;\n}\n\n:host([offset=\"5\"]) {\n margin-left: 41.6666666667%;\n}\n\n:host([order=\"5\"]) {\n order: 5;\n}\n\n:host([size=\"6\"]) {\n flex: 0 0 auto;\n width: 50%;\n}\n\n:host([offset=\"6\"]) {\n margin-left: 50%;\n}\n\n:host([order=\"6\"]) {\n order: 6;\n}\n\n:host([size=\"7\"]) {\n flex: 0 0 auto;\n width: 58.3333333333%;\n}\n\n:host([offset=\"7\"]) {\n margin-left: 58.3333333333%;\n}\n\n:host([order=\"7\"]) {\n order: 7;\n}\n\n:host([size=\"8\"]) {\n flex: 0 0 auto;\n width: 66.6666666667%;\n}\n\n:host([offset=\"8\"]) {\n margin-left: 66.6666666667%;\n}\n\n:host([order=\"8\"]) {\n order: 8;\n}\n\n:host([size=\"9\"]) {\n flex: 0 0 auto;\n width: 75%;\n}\n\n:host([offset=\"9\"]) {\n margin-left: 75%;\n}\n\n:host([order=\"9\"]) {\n order: 9;\n}\n\n:host([size=\"10\"]) {\n flex: 0 0 auto;\n width: 83.3333333333%;\n}\n\n:host([offset=\"10\"]) {\n margin-left: 83.3333333333%;\n}\n\n:host([order=\"10\"]) {\n order: 10;\n}\n\n:host([size=\"11\"]) {\n flex: 0 0 auto;\n width: 91.6666666667%;\n}\n\n:host([offset=\"11\"]) {\n margin-left: 91.6666666667%;\n}\n\n:host([order=\"11\"]) {\n order: 11;\n}\n\n:host([size=\"12\"]) {\n flex: 0 0 auto;\n width: 100%;\n}\n\n:host([offset=\"12\"]) {\n margin-left: 100%;\n}\n\n:host([order=\"12\"]) {\n order: 12;\n}\n\n@media (min-width: 576px) {\n :host([size-sm=auto]) {\n flex: 1 0 0%;\n }\n\n :host([size-sm=\"1\"]) {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n\n :host([offset-sm=\"1\"]) {\n margin-left: 8.3333333333%;\n }\n\n :host([order-sm=\"1\"]) {\n order: 1;\n }\n\n :host([size-sm=\"2\"]) {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n :host([offset-sm=\"2\"]) {\n margin-left: 16.6666666667%;\n }\n\n :host([order-sm=\"2\"]) {\n order: 2;\n }\n\n :host([size-sm=\"3\"]) {\n flex: 0 0 auto;\n width: 25%;\n }\n\n :host([offset-sm=\"3\"]) {\n margin-left: 25%;\n }\n\n :host([order-sm=\"3\"]) {\n order: 3;\n }\n\n :host([size-sm=\"4\"]) {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n :host([offset-sm=\"4\"]) {\n margin-left: 33.3333333333%;\n }\n\n :host([order-sm=\"4\"]) {\n order: 4;\n }\n\n :host([size-sm=\"5\"]) {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n\n :host([offset-sm=\"5\"]) {\n margin-left: 41.6666666667%;\n }\n\n :host([order-sm=\"5\"]) {\n order: 5;\n }\n\n :host([size-sm=\"6\"]) {\n flex: 0 0 auto;\n width: 50%;\n }\n\n :host([offset-sm=\"6\"]) {\n margin-left: 50%;\n }\n\n :host([order-sm=\"6\"]) {\n order: 6;\n }\n\n :host([size-sm=\"7\"]) {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n\n :host([offset-sm=\"7\"]) {\n margin-left: 58.3333333333%;\n }\n\n :host([order-sm=\"7\"]) {\n order: 7;\n }\n\n :host([size-sm=\"8\"]) {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n\n :host([offset-sm=\"8\"]) {\n margin-left: 66.6666666667%;\n }\n\n :host([order-sm=\"8\"]) {\n order: 8;\n }\n\n :host([size-sm=\"9\"]) {\n flex: 0 0 auto;\n width: 75%;\n }\n\n :host([offset-sm=\"9\"]) {\n margin-left: 75%;\n }\n\n :host([order-sm=\"9\"]) {\n order: 9;\n }\n\n :host([size-sm=\"10\"]) {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n\n :host([offset-sm=\"10\"]) {\n margin-left: 83.3333333333%;\n }\n\n :host([order-sm=\"10\"]) {\n order: 10;\n }\n\n :host([size-sm=\"11\"]) {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n\n :host([offset-sm=\"11\"]) {\n margin-left: 91.6666666667%;\n }\n\n :host([order-sm=\"11\"]) {\n order: 11;\n }\n\n :host([size-sm=\"12\"]) {\n flex: 0 0 auto;\n width: 100%;\n }\n\n :host([offset-sm=\"12\"]) {\n margin-left: 100%;\n }\n\n :host([order-sm=\"12\"]) {\n order: 12;\n }\n}\n@media (min-width: 768px) {\n :host([size-md=auto]) {\n flex: 1 0 0%;\n }\n\n :host([size-md=\"1\"]) {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n\n :host([offset-md=\"1\"]) {\n margin-left: 8.3333333333%;\n }\n\n :host([order-md=\"1\"]) {\n order: 1;\n }\n\n :host([size-md=\"2\"]) {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n :host([offset-md=\"2\"]) {\n margin-left: 16.6666666667%;\n }\n\n :host([order-md=\"2\"]) {\n order: 2;\n }\n\n :host([size-md=\"3\"]) {\n flex: 0 0 auto;\n width: 25%;\n }\n\n :host([offset-md=\"3\"]) {\n margin-left: 25%;\n }\n\n :host([order-md=\"3\"]) {\n order: 3;\n }\n\n :host([size-md=\"4\"]) {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n :host([offset-md=\"4\"]) {\n margin-left: 33.3333333333%;\n }\n\n :host([order-md=\"4\"]) {\n order: 4;\n }\n\n :host([size-md=\"5\"]) {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n\n :host([offset-md=\"5\"]) {\n margin-left: 41.6666666667%;\n }\n\n :host([order-md=\"5\"]) {\n order: 5;\n }\n\n :host([size-md=\"6\"]) {\n flex: 0 0 auto;\n width: 50%;\n }\n\n :host([offset-md=\"6\"]) {\n margin-left: 50%;\n }\n\n :host([order-md=\"6\"]) {\n order: 6;\n }\n\n :host([size-md=\"7\"]) {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n\n :host([offset-md=\"7\"]) {\n margin-left: 58.3333333333%;\n }\n\n :host([order-md=\"7\"]) {\n order: 7;\n }\n\n :host([size-md=\"8\"]) {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n\n :host([offset-md=\"8\"]) {\n margin-left: 66.6666666667%;\n }\n\n :host([order-md=\"8\"]) {\n order: 8;\n }\n\n :host([size-md=\"9\"]) {\n flex: 0 0 auto;\n width: 75%;\n }\n\n :host([offset-md=\"9\"]) {\n margin-left: 75%;\n }\n\n :host([order-md=\"9\"]) {\n order: 9;\n }\n\n :host([size-md=\"10\"]) {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n\n :host([offset-md=\"10\"]) {\n margin-left: 83.3333333333%;\n }\n\n :host([order-md=\"10\"]) {\n order: 10;\n }\n\n :host([size-md=\"11\"]) {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n\n :host([offset-md=\"11\"]) {\n margin-left: 91.6666666667%;\n }\n\n :host([order-md=\"11\"]) {\n order: 11;\n }\n\n :host([size-md=\"12\"]) {\n flex: 0 0 auto;\n width: 100%;\n }\n\n :host([offset-md=\"12\"]) {\n margin-left: 100%;\n }\n\n :host([order-md=\"12\"]) {\n order: 12;\n }\n}\n@media (min-width: 992px) {\n :host([size-lg=auto]) {\n flex: 1 0 0%;\n }\n\n :host([size-lg=\"1\"]) {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n\n :host([offset-lg=\"1\"]) {\n margin-left: 8.3333333333%;\n }\n\n :host([order-lg=\"1\"]) {\n order: 1;\n }\n\n :host([size-lg=\"2\"]) {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n :host([offset-lg=\"2\"]) {\n margin-left: 16.6666666667%;\n }\n\n :host([order-lg=\"2\"]) {\n order: 2;\n }\n\n :host([size-lg=\"3\"]) {\n flex: 0 0 auto;\n width: 25%;\n }\n\n :host([offset-lg=\"3\"]) {\n margin-left: 25%;\n }\n\n :host([order-lg=\"3\"]) {\n order: 3;\n }\n\n :host([size-lg=\"4\"]) {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n :host([offset-lg=\"4\"]) {\n margin-left: 33.3333333333%;\n }\n\n :host([order-lg=\"4\"]) {\n order: 4;\n }\n\n :host([size-lg=\"5\"]) {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n\n :host([offset-lg=\"5\"]) {\n margin-left: 41.6666666667%;\n }\n\n :host([order-lg=\"5\"]) {\n order: 5;\n }\n\n :host([size-lg=\"6\"]) {\n flex: 0 0 auto;\n width: 50%;\n }\n\n :host([offset-lg=\"6\"]) {\n margin-left: 50%;\n }\n\n :host([order-lg=\"6\"]) {\n order: 6;\n }\n\n :host([size-lg=\"7\"]) {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n\n :host([offset-lg=\"7\"]) {\n margin-left: 58.3333333333%;\n }\n\n :host([order-lg=\"7\"]) {\n order: 7;\n }\n\n :host([size-lg=\"8\"]) {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n\n :host([offset-lg=\"8\"]) {\n margin-left: 66.6666666667%;\n }\n\n :host([order-lg=\"8\"]) {\n order: 8;\n }\n\n :host([size-lg=\"9\"]) {\n flex: 0 0 auto;\n width: 75%;\n }\n\n :host([offset-lg=\"9\"]) {\n margin-left: 75%;\n }\n\n :host([order-lg=\"9\"]) {\n order: 9;\n }\n\n :host([size-lg=\"10\"]) {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n\n :host([offset-lg=\"10\"]) {\n margin-left: 83.3333333333%;\n }\n\n :host([order-lg=\"10\"]) {\n order: 10;\n }\n\n :host([size-lg=\"11\"]) {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n\n :host([offset-lg=\"11\"]) {\n margin-left: 91.6666666667%;\n }\n\n :host([order-lg=\"11\"]) {\n order: 11;\n }\n\n :host([size-lg=\"12\"]) {\n flex: 0 0 auto;\n width: 100%;\n }\n\n :host([offset-lg=\"12\"]) {\n margin-left: 100%;\n }\n\n :host([order-lg=\"12\"]) {\n order: 12;\n }\n}\n@media (min-width: 1200px) {\n :host([size-xl=auto]) {\n flex: 1 0 0%;\n }\n\n :host([size-xl=\"1\"]) {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n\n :host([offset-xl=\"1\"]) {\n margin-left: 8.3333333333%;\n }\n\n :host([order-xl=\"1\"]) {\n order: 1;\n }\n\n :host([size-xl=\"2\"]) {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n :host([offset-xl=\"2\"]) {\n margin-left: 16.6666666667%;\n }\n\n :host([order-xl=\"2\"]) {\n order: 2;\n }\n\n :host([size-xl=\"3\"]) {\n flex: 0 0 auto;\n width: 25%;\n }\n\n :host([offset-xl=\"3\"]) {\n margin-left: 25%;\n }\n\n :host([order-xl=\"3\"]) {\n order: 3;\n }\n\n :host([size-xl=\"4\"]) {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n :host([offset-xl=\"4\"]) {\n margin-left: 33.3333333333%;\n }\n\n :host([order-xl=\"4\"]) {\n order: 4;\n }\n\n :host([size-xl=\"5\"]) {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n\n :host([offset-xl=\"5\"]) {\n margin-left: 41.6666666667%;\n }\n\n :host([order-xl=\"5\"]) {\n order: 5;\n }\n\n :host([size-xl=\"6\"]) {\n flex: 0 0 auto;\n width: 50%;\n }\n\n :host([offset-xl=\"6\"]) {\n margin-left: 50%;\n }\n\n :host([order-xl=\"6\"]) {\n order: 6;\n }\n\n :host([size-xl=\"7\"]) {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n\n :host([offset-xl=\"7\"]) {\n margin-left: 58.3333333333%;\n }\n\n :host([order-xl=\"7\"]) {\n order: 7;\n }\n\n :host([size-xl=\"8\"]) {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n\n :host([offset-xl=\"8\"]) {\n margin-left: 66.6666666667%;\n }\n\n :host([order-xl=\"8\"]) {\n order: 8;\n }\n\n :host([size-xl=\"9\"]) {\n flex: 0 0 auto;\n width: 75%;\n }\n\n :host([offset-xl=\"9\"]) {\n margin-left: 75%;\n }\n\n :host([order-xl=\"9\"]) {\n order: 9;\n }\n\n :host([size-xl=\"10\"]) {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n\n :host([offset-xl=\"10\"]) {\n margin-left: 83.3333333333%;\n }\n\n :host([order-xl=\"10\"]) {\n order: 10;\n }\n\n :host([size-xl=\"11\"]) {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n\n :host([offset-xl=\"11\"]) {\n margin-left: 91.6666666667%;\n }\n\n :host([order-xl=\"11\"]) {\n order: 11;\n }\n\n :host([size-xl=\"12\"]) {\n flex: 0 0 auto;\n width: 100%;\n }\n\n :host([offset-xl=\"12\"]) {\n margin-left: 100%;\n }\n\n :host([order-xl=\"12\"]) {\n order: 12;\n }\n}\n@media (min-width: 1400px) {\n :host([size-xxl=auto]) {\n flex: 1 0 0%;\n }\n\n :host([size-xxl=\"1\"]) {\n flex: 0 0 auto;\n width: 8.3333333333%;\n }\n\n :host([offset-xxl=\"1\"]) {\n margin-left: 8.3333333333%;\n }\n\n :host([order-xxl=\"1\"]) {\n order: 1;\n }\n\n :host([size-xxl=\"2\"]) {\n flex: 0 0 auto;\n width: 16.6666666667%;\n }\n\n :host([offset-xxl=\"2\"]) {\n margin-left: 16.6666666667%;\n }\n\n :host([order-xxl=\"2\"]) {\n order: 2;\n }\n\n :host([size-xxl=\"3\"]) {\n flex: 0 0 auto;\n width: 25%;\n }\n\n :host([offset-xxl=\"3\"]) {\n margin-left: 25%;\n }\n\n :host([order-xxl=\"3\"]) {\n order: 3;\n }\n\n :host([size-xxl=\"4\"]) {\n flex: 0 0 auto;\n width: 33.3333333333%;\n }\n\n :host([offset-xxl=\"4\"]) {\n margin-left: 33.3333333333%;\n }\n\n :host([order-xxl=\"4\"]) {\n order: 4;\n }\n\n :host([size-xxl=\"5\"]) {\n flex: 0 0 auto;\n width: 41.6666666667%;\n }\n\n :host([offset-xxl=\"5\"]) {\n margin-left: 41.6666666667%;\n }\n\n :host([order-xxl=\"5\"]) {\n order: 5;\n }\n\n :host([size-xxl=\"6\"]) {\n flex: 0 0 auto;\n width: 50%;\n }\n\n :host([offset-xxl=\"6\"]) {\n margin-left: 50%;\n }\n\n :host([order-xxl=\"6\"]) {\n order: 6;\n }\n\n :host([size-xxl=\"7\"]) {\n flex: 0 0 auto;\n width: 58.3333333333%;\n }\n\n :host([offset-xxl=\"7\"]) {\n margin-left: 58.3333333333%;\n }\n\n :host([order-xxl=\"7\"]) {\n order: 7;\n }\n\n :host([size-xxl=\"8\"]) {\n flex: 0 0 auto;\n width: 66.6666666667%;\n }\n\n :host([offset-xxl=\"8\"]) {\n margin-left: 66.6666666667%;\n }\n\n :host([order-xxl=\"8\"]) {\n order: 8;\n }\n\n :host([size-xxl=\"9\"]) {\n flex: 0 0 auto;\n width: 75%;\n }\n\n :host([offset-xxl=\"9\"]) {\n margin-left: 75%;\n }\n\n :host([order-xxl=\"9\"]) {\n order: 9;\n }\n\n :host([size-xxl=\"10\"]) {\n flex: 0 0 auto;\n width: 83.3333333333%;\n }\n\n :host([offset-xxl=\"10\"]) {\n margin-left: 83.3333333333%;\n }\n\n :host([order-xxl=\"10\"]) {\n order: 10;\n }\n\n :host([size-xxl=\"11\"]) {\n flex: 0 0 auto;\n width: 91.6666666667%;\n }\n\n :host([offset-xxl=\"11\"]) {\n margin-left: 91.6666666667%;\n }\n\n :host([order-xxl=\"11\"]) {\n order: 11;\n }\n\n :host([size-xxl=\"12\"]) {\n flex: 0 0 auto;\n width: 100%;\n }\n\n :host([offset-xxl=\"12\"]) {\n margin-left: 100%;\n }\n\n :host([order-xxl=\"12\"]) {\n order: 12;\n }\n}","import { Component, Host, h, Prop } from '@stencil/core';\nexport class Col {\n render() {\n return (h(Host, null,\n h(\"slot\", null)));\n }\n static get is() { return \"sy-col\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"size\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number | 'auto'\",\n \"resolved\": \"\\\"auto\\\" | number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many of the 12 available columns of the row will be occupied in all screens. Must be a value between 1 and 12, both included. If set to `auto`,\\nit will use the remaining space available.\"\n },\n \"attribute\": \"size\",\n \"reflect\": true\n },\n \"sizeSm\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number | 'auto'\",\n \"resolved\": \"\\\"auto\\\" | number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many of the 12 available columns of the row will be occupied in small screens. Must be a value between 1 and 12, both included. If set to `auto`,\\nit will use the remaining space available.\"\n },\n \"attribute\": \"size-sm\",\n \"reflect\": true\n },\n \"sizeMd\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number | 'auto'\",\n \"resolved\": \"\\\"auto\\\" | number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many of the 12 available columns of the row will be occupied in medium screens. Must be a value between 1 and 12, both included. If set to `auto`,\\nit will use the remaining space available.\"\n },\n \"attribute\": \"size-md\",\n \"reflect\": true\n },\n \"sizeLg\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number | 'auto'\",\n \"resolved\": \"\\\"auto\\\" | number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many of the 12 available columns of the row will be occupied in large screens. Must be a value between 1 and 12, both included. If set to `auto`,\\nit will use the remaining space available.\"\n },\n \"attribute\": \"size-lg\",\n \"reflect\": true\n },\n \"sizeXl\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number | 'auto'\",\n \"resolved\": \"\\\"auto\\\" | number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many of the 12 available columns of the row will be occupied in extra large screens. Must be a value between 1 and 12, both included. If set to `auto`,\\nit will use the remaining space available.\"\n },\n \"attribute\": \"size-xl\",\n \"reflect\": true\n },\n \"sizeXxl\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number | 'auto'\",\n \"resolved\": \"\\\"auto\\\" | number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many of the 12 available columns of the row will be occupied in extra extra large screens. Must be a value between 1 and 12, both included. If set to `auto`,\\nit will use the remaining space available.\"\n },\n \"attribute\": \"size-xxl\",\n \"reflect\": true\n },\n \"offset\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many columns the element will shift to the end in all screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"offset\",\n \"reflect\": true\n },\n \"offsetSm\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many columns the element will shift to the end in small screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"offset-sm\",\n \"reflect\": true\n },\n \"offsetMd\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many columns the element will shift to the end in medium screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"offset-md\",\n \"reflect\": true\n },\n \"offsetLg\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many columns the element will shift to the end in large screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"offset-lg\",\n \"reflect\": true\n },\n \"offsetXl\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many columns the element will shift to the end in extra large screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"offset-xl\",\n \"reflect\": true\n },\n \"offsetXxl\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines how many columns the element will shift to the end in extra extra large screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"offset-xxl\",\n \"reflect\": true\n },\n \"order\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the order of the column in all screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"order\",\n \"reflect\": true\n },\n \"orderSm\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the order of the column in small screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"order-sm\",\n \"reflect\": true\n },\n \"orderMd\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the order of the column in medium screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"order-md\",\n \"reflect\": true\n },\n \"orderLg\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the order of the column in large screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"order-lg\",\n \"reflect\": true\n },\n \"orderXl\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the order of the column in extra large screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"order-xl\",\n \"reflect\": true\n },\n \"orderXxl\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the order of the column in extra extra large screens. Must be a value between 1 and 12, both included.\"\n },\n \"attribute\": \"order-xxl\",\n \"reflect\": true\n }\n }; }\n}\n","/** Do not edit directly **/\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: none;\n}\n\n:host([opened]) {\n display: block;\n}","import { Component, Host, h, Prop, Method, Watch, Event, Element } from '@stencil/core';\n/**\n * @slot - Children elements of collapse.\n */\nexport class Collapse {\n constructor() {\n this.eventTrigger = null;\n /**\n * Defines if the collapse component is visible.\n */\n this.opened = false;\n }\n openedWatcher(newValue, oldValue) {\n if (oldValue !== newValue) {\n if (newValue) {\n this.syCollapseDidOpen.emit();\n }\n else {\n this.syCollapseDidClose.emit();\n }\n }\n }\n /**\n * Open the collapsed component.\n */\n async open() {\n this.opened = true;\n }\n /**\n * Close the collapsed component.\n */\n async close() {\n this.opened = false;\n }\n /**\n * Toggle the state of collapsed component.\n */\n async toggle() {\n this.opened = !this.opened;\n }\n componentDidLoad() {\n const rootNode = this.el.getRootNode();\n const trigger = rootNode.querySelectorAll(this.triggerBy);\n if (trigger) {\n this.eventTrigger = trigger;\n this.eventTrigger.forEach(el => {\n el.addEventListener('click', this.toggle.bind(this));\n });\n }\n }\n disconnectedCallback() {\n if (this.el.isConnected)\n return;\n if (this.eventTrigger) {\n this.eventTrigger.forEach(el => {\n el.removeEventListener('click', this.toggle.bind(this));\n });\n }\n }\n render() {\n return (h(Host, Object.assign({}, (this.opened ? { opened: true } : null)),\n h(\"slot\", null)));\n }\n static get is() { return \"sy-collapse\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"opened\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines if the collapse component is visible.\"\n },\n \"attribute\": \"opened\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"triggerBy\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Set the css selector that will be listened to control the collapse component state.\"\n },\n \"attribute\": \"trigger-by\",\n \"reflect\": false\n }\n }; }\n static get events() { return [{\n \"method\": \"syCollapseDidOpen\",\n \"name\": \"syCollapseDidOpen\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Fired when collapse is opened.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"syCollapseDidClose\",\n \"name\": \"syCollapseDidClose\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Fired when collapse is closed.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }]; }\n static get methods() { return {\n \"open\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Open the collapsed component.\",\n \"tags\": []\n }\n },\n \"close\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Close the collapsed component.\",\n \"tags\": []\n }\n },\n \"toggle\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Toggle the state of collapsed component.\",\n \"tags\": []\n }\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"opened\",\n \"methodName\": \"openedWatcher\"\n }]; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-dialog-background-color: Dialog background color.\n * @prop --sy-dialog-border-color: Dialog border color.\n * @prop --sy-dialog-border-style: Dialog border style.\n * @prop --sy-dialog-border-radius: Dialog border radius.\n * @prop --sy-dialog-border-width: Dialog border width.\n * @prop --sy-dialog-box-shadow: Dialog box shadow.\n * @prop --sy-dialog-size-sm: Small dialog max-width.\n * @prop --sy-dialog-size-md: Medium dialog max-width.\n * @prop --sy-dialog-size-lg: Large dialog max-width.\n * @prop --sy-dialog-size-xl: Extra large dialog max-width.\n * @prop --sy-dialog-backdrop-background-color: Dialog backdrop background color.\n * @prop --sy-dialog-max-height: Dialog max height.\n * @prop --sy-dialog-max-width: Dialog max width.\n * @prop --sy-dialog-min-height: Dialog min height.\n * @prop --sy-dialog-min-width: Dialog min width.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n}\n\n:host(:not([visible])) {\n display: none;\n}\n\n::backdrop {\n background-color: var(--sy-dialog-backdrop-background-color, rgba(0, 0, 0, 0.7));\n}\n\nsy-backdrop {\n --sy-backdrop-background-color: var(--sy-dialog-backdrop-background-color, rgba(0, 0, 0, 0.7));\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n:host([position=absolute]) sy-backdrop {\n position: absolute;\n}\n:host([position=fixed]) sy-backdrop {\n position: fixed;\n}\n\n:host([hide-backdrop]) ::backdrop {\n background-color: transparent;\n}\n:host([hide-backdrop]) sy-backdrop {\n --sy-backdrop-background-color: transparent;\n}\n\nsy-focus-trap {\n display: flex;\n flex-direction: column;\n min-width: var(--sy-dialog-min-width, auto);\n max-width: var(--sy-dialog-max-width, calc(100% - var(--sy-spacer-6)));\n min-height: var(--sy-dialog-min-height, auto);\n max-height: var(--sy-dialog-max-height, calc(100% - var(--sy-spacer-6)));\n}\nsy-focus-trap > .sy-dialog {\n flex: 1;\n min-width: 100%;\n max-width: 100%;\n height: 100%;\n min-height: 100%;\n max-height: 100%;\n}\n\ndialog {\n padding: 0;\n overflow: visible;\n border: none;\n border-radius: var(--sy-dialog-border-radius, var(--sy-border-radius));\n}\n\n.sy-dialog {\n z-index: 1060;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background-color: var(--sy-dialog-background-color, var(--sy-surface-elevated));\n border-radius: var(--sy-dialog-border-radius, var(--sy-border-radius));\n}\n.sy-dialog sy-dialog-content {\n overflow-y: auto;\n}\n:host([hide-backdrop]) .sy-dialog {\n border-color: var(--sy-dialog-border-color, var(--sy-border));\n border-style: var(--sy-dialog-border-style, solid);\n border-width: var(--sy-dialog-border-width, 1px);\n box-shadow: var(--sy-dialog-box-shadow, var(--sy-shadow-offset-x) var(--sy-shadow-offset-y) var(--sy-shadow-radius) var(--sy-shadow));\n}\n:host([hide-header]) .sy-dialog {\n padding-top: var(--sy-spacer-4);\n}\n:host([hide-footer]) .sy-dialog {\n padding-bottom: var(--sy-spacer-4);\n}\n@media (min-width: 576px) {\n .sy-dialog {\n width: var(--sy-dialog-size-sm, 300px);\n }\n}\n@media (min-width: 576px) and (min-width: 768px) {\n :host([dialog-size=medium]) .sy-dialog, :host([dialog-size=large]) .sy-dialog, :host([dialog-size=extra-large]) .sy-dialog {\n width: var(--sy-dialog-size-md, 500px);\n }\n}\n@media (min-width: 576px) and (min-width: 992px) {\n :host([dialog-size=large]) .sy-dialog, :host([dialog-size=extra-large]) .sy-dialog {\n width: var(--sy-dialog-size-lg, 800px);\n }\n}\n@media (min-width: 576px) and (min-width: 1200px) {\n :host([dialog-size=extra-large]) .sy-dialog {\n width: var(--sy-dialog-size-xl, 1140px);\n }\n}\n@media (min-width: 576px) {\n :host([dialog-size=full][position=absolute]) .sy-dialog {\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none !important;\n margin: 0;\n border-radius: 0;\n }\n :host([dialog-size=full][position=absolute]) .sy-dialog sy-dialog-content {\n overflow-y: auto;\n }\n}\n@media (min-width: 576px) {\n :host([dialog-size=full][position=fixed]) .sy-dialog {\n position: fixed;\n top: 0;\n right: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none !important;\n margin: 0;\n border-radius: 0;\n }\n :host([dialog-size=full][position=fixed]) .sy-dialog sy-dialog-content {\n overflow-y: auto;\n }\n}\n@media (max-width: 576px) {\n :host([position=absolute]) .sy-dialog {\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none !important;\n margin: 0;\n border-radius: 0;\n }\n :host([position=absolute]) .sy-dialog sy-dialog-content {\n overflow-y: auto;\n }\n :host([position=fixed]) .sy-dialog {\n position: fixed;\n top: 0;\n right: 0;\n width: 100%;\n max-width: none;\n height: 100%;\n max-height: none !important;\n margin: 0;\n border-radius: 0;\n }\n :host([position=fixed]) .sy-dialog sy-dialog-content {\n overflow-y: auto;\n }\n}","import { Component, Host, h, Prop, Event, Method, Listen, Watch, Element } from '@stencil/core';\nimport { floatingElements, VIEWPORT_ATTRIBUTE } from '../../utils/floating-elements.utils';\nconst dialogsOpened = new Array();\n/**\n * @slot - Dialog content.\n * @slot title - Use to add dialog header title. Only works if property dialogTitle is undefined.\n */\nexport class Dialog {\n constructor() {\n /**\n * Internal boolean to indicate whether dialog is visible.\n * Used to identify when the property `visible` was modified externally.\n */\n this.isVisibleInternal = false;\n /**\n * Defines the dialog size.\n */\n this.dialogSize = 'medium';\n /**\n * Sets the position of the footer buttons.\n */\n this.footerButtonsPosition = 'start';\n /**\n * Whether true, the backdrop will not be displayed.\n */\n this.hideBackdrop = false;\n /**\n * Whether true, the dialog close button will not be displayed.\n */\n this.hideClose = false;\n /**\n * Dialog position style.\n * Whether fixed, the dialog will be positioned in the center of the viewport and the backdrop will fill the viewport.\n * Whether absolute, the dialog will be positioned relative to the nearest positioned ancestor and the backdrop will fill the space of the nearest positioned ancestor.\n */\n this.position = 'fixed';\n /**\n * Whether true, the dialog header will not be displayed.\n */\n this.hideHeader = false;\n /**\n * Whether true, the dialog footer will not be displayed.\n */\n this.hideFooter = false;\n /**\n * Whether true, the dropdown will not close with an outside click.\n */\n this.ignoreOutsideClick = false;\n /**\n * Defines the label of the dialog submit button.\n */\n this.submitLabel = 'Save';\n /**\n * Defines the label of the dialog cancel button.\n */\n this.cancelLabel = 'Cancel';\n /**\n * Defines if the dialog is visible\n */\n this.visible = false;\n }\n visibleWatcher() {\n if (this.isVisibleInternal === this.visible)\n return;\n if (this.visible) {\n this.open();\n }\n else {\n this.close();\n }\n }\n /**\n * Method responsible for closing the dialog. Can receive the default closing action identifiers \"submit\" and \"cancel\", or a custom closing action identifier.\n */\n async close(action) {\n if (this.isVisibleInternal) {\n const shouldProceed = await this.onClosing(action);\n if (shouldProceed === false)\n return;\n this.onClose();\n this.onClosed(action);\n }\n }\n /**\n * Method responsible for opening the dialog.\n */\n async open() {\n if (!this.isVisibleInternal) {\n const shouldProceed = await this.onOpening();\n if (shouldProceed === false)\n return;\n this.onOpen();\n this.onOpened();\n }\n }\n /**\n * Get dialog internal elements reference.\n */\n async getReferences() {\n return {\n backdropElement: this.backdropEl,\n };\n }\n onSyDialogHeaderDidCloseClick(event) {\n if (event) {\n this.close('cancel');\n }\n }\n onSyDialogFooterDidCancelClick(event) {\n if (event) {\n this.close('cancel');\n }\n }\n onSyDialogFooterDidSubmitClick(event) {\n if (event) {\n this.close('submit');\n }\n }\n onKeyDown(ev) {\n if (ev.key === 'Escape') {\n const lastOpened = dialogsOpened.at(dialogsOpened.length - 1);\n if (lastOpened === this.el) {\n this.close('cancel');\n ev.stopImmediatePropagation();\n }\n }\n }\n componentDidLoad() {\n this.visibleWatcher();\n }\n async onOpening() {\n const beforeOpenedResult = this.beforeOpened && (await this.beforeOpened());\n if (beforeOpenedResult === false) {\n return beforeOpenedResult;\n }\n this.isVisibleInternal = true;\n this.visible = true;\n }\n onOpen() {\n floatingElements.open(this.el);\n }\n async onOpened() {\n this.syDialogDidOpen.emit();\n if (this.afterOpened) {\n await this.afterOpened();\n }\n dialogsOpened.push(this.el);\n }\n async onClosing(action) {\n const beforeClosedResult = this.beforeClosed && (await this.beforeClosed(action));\n if (beforeClosedResult === false) {\n return beforeClosedResult;\n }\n this.isVisibleInternal = false;\n this.visible = false;\n }\n onClose() {\n floatingElements.close(this.el);\n }\n async onClosed(action) {\n if (action === 'cancel')\n this.syDialogDidCancel.emit();\n if (action === 'submit')\n this.syDialogDidSubmit.emit();\n this.syDialogDidClose.emit(action);\n if (this.afterClosed) {\n await this.afterClosed(action);\n }\n const thisDialogIndex = dialogsOpened.findIndex(el => el === this.el);\n dialogsOpened.splice(thisDialogIndex, 1);\n }\n handleOutsideClick(event, outsideEl) {\n if (!this.ignoreOutsideClick && event.target == outsideEl) {\n event.stopPropagation();\n this.close('cancel');\n }\n }\n render() {\n return (h(Host, Object.assign({}, { [VIEWPORT_ATTRIBUTE]: true }),\n h(\"sy-backdrop\", { ref: el => (this.backdropEl = el), onClick: e => this.handleOutsideClick(e, this.backdropEl) },\n h(\"sy-focus-trap\", null,\n h(\"div\", { class: \"sy-dialog\" },\n !this.hideHeader && (h(\"sy-dialog-header\", { dialogTitle: this.dialogTitle, hideCloseButton: this.hideClose },\n h(\"slot\", { name: \"title\" }))),\n h(\"sy-dialog-content\", null,\n h(\"slot\", null)),\n !this.hideFooter && (h(\"sy-dialog-footer\", { cancelLabel: this.cancelLabel, submitLabel: this.submitLabel, style: {\n flexDirection: this.footerButtonsPosition === 'start' ? 'row' : 'row-reverse',\n } })))))));\n }\n static get is() { return \"sy-dialog\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"afterClosed\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"(action?: string) => void | Promise\",\n \"resolved\": \"(action?: string) => void | Promise\",\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Callback function called after the dialog is closed.\"\n }\n },\n \"afterOpened\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"() => void | Promise\",\n \"resolved\": \"() => void | Promise\",\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Callback function called after the dialog is opened.\"\n }\n },\n \"beforeClosed\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"(action?: string) => void | boolean | Promise\",\n \"resolved\": \"(action?: string) => boolean | void | Promise\",\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Callback function called before the dialog is closed.\\nIf returns 'false', the dialog will not be closed.\"\n }\n },\n \"beforeOpened\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"() => void | boolean | Promise\",\n \"resolved\": \"() => boolean | void | Promise\",\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Callback function called before the dialog is opened.\\nIf returns 'false', the dialog will not be opened.\"\n }\n },\n \"dialogSize\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'small' | 'medium' | 'large' | 'extra-large' | 'full'\",\n \"resolved\": \"\\\"extra-large\\\" | \\\"full\\\" | \\\"large\\\" | \\\"medium\\\" | \\\"small\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the dialog size.\"\n },\n \"attribute\": \"dialog-size\",\n \"reflect\": true,\n \"defaultValue\": \"'medium'\"\n },\n \"dialogTitle\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Title.\"\n },\n \"attribute\": \"dialog-title\",\n \"reflect\": false\n },\n \"footerButtonsPosition\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'start' | 'end'\",\n \"resolved\": \"\\\"end\\\" | \\\"start\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the position of the footer buttons.\"\n },\n \"attribute\": \"footer-buttons-position\",\n \"reflect\": true,\n \"defaultValue\": \"'start'\"\n },\n \"hideBackdrop\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Whether true, the backdrop will not be displayed.\"\n },\n \"attribute\": \"hide-backdrop\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"hideClose\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Whether true, the dialog close button will not be displayed.\"\n },\n \"attribute\": \"hide-close\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"position\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'fixed' | 'absolute'\",\n \"resolved\": \"\\\"absolute\\\" | \\\"fixed\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Dialog position style.\\nWhether fixed, the dialog will be positioned in the center of the viewport and the backdrop will fill the viewport.\\nWhether absolute, the dialog will be positioned relative to the nearest positioned ancestor and the backdrop will fill the space of the nearest positioned ancestor.\"\n },\n \"attribute\": \"position\",\n \"reflect\": true,\n \"defaultValue\": \"'fixed'\"\n },\n \"hideHeader\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Whether true, the dialog header will not be displayed.\"\n },\n \"attribute\": \"hide-header\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"hideFooter\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Whether true, the dialog footer will not be displayed.\"\n },\n \"attribute\": \"hide-footer\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"ignoreOutsideClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Whether true, the dropdown will not close with an outside click.\"\n },\n \"attribute\": \"ignore-outside-click\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"submitLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the label of the dialog submit button.\"\n },\n \"attribute\": \"submit-label\",\n \"reflect\": true,\n \"defaultValue\": \"'Save'\"\n },\n \"cancelLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the label of the dialog cancel button.\"\n },\n \"attribute\": \"cancel-label\",\n \"reflect\": true,\n \"defaultValue\": \"'Cancel'\"\n },\n \"visible\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines if the dialog is visible\"\n },\n \"attribute\": \"visible\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n static get events() { return [{\n \"method\": \"syDialogDidOpen\",\n \"name\": \"syDialogDidOpen\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted after dialog opening.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"syDialogDidClose\",\n \"name\": \"syDialogDidClose\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted after dialog closing. Contains by default the closing action identifiers \\\"submit\\\" and \\\"cancel\\\".\\nWhen the dialog is closed by the close method with a custom closing action identifier, the event emits the custom close action identifier.\"\n },\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n }\n }, {\n \"method\": \"syDialogDidSubmit\",\n \"name\": \"syDialogDidSubmit\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted after dialog submit.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"syDialogDidCancel\",\n \"name\": \"syDialogDidCancel\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted after dialog cancel.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }]; }\n static get methods() { return {\n \"close\": {\n \"complexType\": {\n \"signature\": \"(action?: 'submit' | 'cancel' | string) => Promise\",\n \"parameters\": [{\n \"tags\": [],\n \"text\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Method responsible for closing the dialog. Can receive the default closing action identifiers \\\"submit\\\" and \\\"cancel\\\", or a custom closing action identifier.\",\n \"tags\": []\n }\n },\n \"open\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Method responsible for opening the dialog.\",\n \"tags\": []\n }\n },\n \"getReferences\": {\n \"complexType\": {\n \"signature\": \"() => Promise<{ [name: string]: HTMLElement; }>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n },\n \"HTMLElement\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<{ [name: string]: HTMLElement; }>\"\n },\n \"docs\": {\n \"text\": \"Get dialog internal elements reference.\",\n \"tags\": []\n }\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"visible\",\n \"methodName\": \"visibleWatcher\"\n }]; }\n static get listeners() { return [{\n \"name\": \"syDialogHeaderDidCloseClick\",\n \"method\": \"onSyDialogHeaderDidCloseClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"syDialogFooterDidCancelClick\",\n \"method\": \"onSyDialogFooterDidCancelClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"syDialogFooterDidSubmitClick\",\n \"method\": \"onSyDialogFooterDidSubmitClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keydown\",\n \"method\": \"onKeyDown\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }]; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-dialog-content-padding-top: Dialog content top padding.\n * @prop --sy-dialog-content-padding-bottom: Dialog content bottom padding.\n * @prop --sy-dialog-content-padding-left: Dialog content left padding.\n * @prop --sy-dialog-content-padding-right: Dialog content right padding.\n * @prop --sy-dialog-content-color: Dialog content color.\n * @prop --sy-dialog-content-font-size: Dialog content font size.\n * @prop --sy-dialog-content-text-decoration: Dialog content text decoration.\n * @prop --sy-dialog-content-font-family: Dialog content font family.\n * @prop --sy-dialog-content-font-weight: Dialog content font weight.\n * @prop --sy-dialog-content-font-style: Dialog content font style.\n * @prop --sy-dialog-content-font-stretch: Dialog content font stretch.\n * @prop --sy-dialog-content-letter-spacing: Dialog content letter spacing.\n * @prop --sy-dialog-content-line-height: Dialog content line height.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n flex: 1 1 auto;\n padding-top: var(--sy-dialog-content-padding-top, 0);\n padding-right: var(--sy-dialog-content-padding-right, var(--sy-spacer-4));\n padding-bottom: var(--sy-dialog-content-padding-bottom, 0);\n padding-left: var(--sy-dialog-content-padding-left, var(--sy-spacer-4));\n color: var(--sy-dialog-content-color, var(--sy-foreground-high-emphasis));\n font-size: var(--sy-dialog-content-font-size, var(--sy-content-regular-body-font-size));\n text-decoration: var(--sy-dialog-content-text-decoration, var(--sy-content-regular-body-text-decoration));\n font-family: var(--sy-dialog-content-font-family, var(--sy-content-regular-body-font-family));\n font-weight: var(--sy-dialog-content-font-weight, var(--sy-content-regular-body-font-weight));\n font-style: var(--sy-dialog-content-font-style, var(--sy-content-regular-body-font-style));\n font-stretch: var(--sy-dialog-content-font-stretch, var(--sy-content-regular-body-font-stretch));\n letter-spacing: var(--sy-dialog-content-letter-spacing, var(--sy-content-regular-body-letter-spacing));\n line-height: var(--sy-dialog-content-line-height, var(--sy-content-regular-body-line-height));\n}","import { Component, Host, h } from '@stencil/core';\n/**\n * @slot - Slot for adding dialog content.\n */\nexport class DialogContent {\n render() {\n return (h(Host, null,\n h(\"slot\", null)));\n }\n static get is() { return \"sy-dialog-content\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-dialog-footer-padding: Dialog footer padding.\n * @prop --sy-dialog-footer-buttons-border-radius: Dialog footer buttons border radius.\n * @prop --sy-dialog-footer-buttons-margin: Dialog footer buttons margin.\n * @prop --sy-dialog-footer-buttons-padding-x: Dialog footer buttons horizontal padding.\n * @prop --sy-dialog-footer-buttons-padding-y: Dialog footer buttons vertical padding.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: flex;\n flex-wrap: wrap;\n justify-content: \"flex-start\";\n padding: var(--sy-dialog-footer-padding, var(--sy-spacer-4));\n}\n:host sy-button {\n margin: 0 var(--sy-dialog-footer-buttons-margin, var(--sy-spacer-2));\n --sy-button-border-radius: var(--sy-dialog-footer-buttons-border-radius, var(--sy-border-radius-rounded));\n --sy-button-padding-x: var(--sy-dialog-footer-buttons-padding-x, var(--sy-spacer-4));\n --sy-button-padding-y: var(--sy-dialog-footer-buttons-padding-y, var(--sy-spacer-3));\n --sy-button-background-color-hover-basic: var(--sy-surface-elevated-hover);\n}","import { Component, Host, h, Event, Prop } from '@stencil/core';\nexport class DialogFooter {\n constructor() {\n /**\n * Defines the label of the dialog-footer submit button\n */\n this.submitLabel = 'Save';\n /**\n * Defines the label of the dialog-footer cancel button\n */\n this.cancelLabel = 'Cancel';\n }\n getButtonAttributes(btnType) {\n const attributes = {\n label: btnType !== 'save' ? this.cancelLabel : this.submitLabel,\n content: 'text-only',\n small: false,\n disabled: false,\n type: btnType !== 'save' ? 'basic' : 'accent',\n };\n return attributes;\n }\n render() {\n return (h(Host, null,\n h(\"sy-button\", Object.assign({}, this.getButtonAttributes('save'), { onClick: () => this.syDialogFooterDidSubmitClick.emit() })),\n h(\"sy-button\", Object.assign({}, this.getButtonAttributes('cancel'), { onClick: () => this.syDialogFooterDidCancelClick.emit() }))));\n }\n static get is() { return \"sy-dialog-footer\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"submitLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the label of the dialog-footer submit button\"\n },\n \"attribute\": \"submit-label\",\n \"reflect\": true,\n \"defaultValue\": \"'Save'\"\n },\n \"cancelLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the label of the dialog-footer cancel button\"\n },\n \"attribute\": \"cancel-label\",\n \"reflect\": true,\n \"defaultValue\": \"'Cancel'\"\n }\n }; }\n static get events() { return [{\n \"method\": \"syDialogFooterDidSubmitClick\",\n \"name\": \"syDialogFooterDidSubmitClick\",\n \"bubbles\": false,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event to indicate the click on the dialog-footer submit button.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"syDialogFooterDidCancelClick\",\n \"name\": \"syDialogFooterDidCancelClick\",\n \"bubbles\": false,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event to indicate the click on the dialog-footer cancel button.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }]; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-dialog-header-padding: Dialog header padding.\n * @prop --sy-dialog-header-title-color: Dialog header title color.\n * @prop --sy-dialog-header-title-font-size: Dialog header title font size.\n * @prop --sy-dialog-header-title-text-decoration: Dialog header title text decoration.\n * @prop --sy-dialog-header-title-font-family: Dialog header title font family.\n * @prop --sy-dialog-header-title-font-weight: Dialog header title font weight.\n * @prop --sy-dialog-header-title-font-style: Dialog header title font style.\n * @prop --sy-dialog-header-title-font-stretch: Dialog header title font stretch.\n * @prop --sy-dialog-header-title-letter-spacing: Dialog header title letter spacing.\n * @prop --sy-dialog-header-title-line-height: Dialog header title line height.\n * @prop --sy-dialog-header-dismiss-color: Dialog dismiss button icon color.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: flex;\n justify-content: space-between;\n padding: var(--sy-dialog-header-padding, var(--sy-spacer-4));\n}\n:host .sy-dialog-title {\n color: var(--sy-dialog-header-title-color, var(--sy-foreground-high-emphasis));\n font-size: var(--sy-dialog-header-title-font-size, var(--sy-heading-h5-font-size));\n text-decoration: var(--sy-dialog-header-title-text-decoration, var(--sy-heading-h5-text-decoration));\n font-family: var(--sy-dialog-header-title-font-family, var(--sy-heading-h5-font-family));\n font-weight: var(--sy-dialog-header-title-font-weight, var(--sy-heading-h5-font-weight));\n font-style: var(--sy-dialog-header-title-font-style, var(--sy-heading-h5-font-style));\n font-stretch: var(--sy-dialog-header-title-font-stretch, var(--sy-heading-h5-font-stretch));\n letter-spacing: var(--sy-dialog-header-title-letter-spacing, var(--sy-heading-h5-letter-spacing));\n line-height: var(--sy-dialog-header-title-line-height, var(--sy-heading-h5-line-height));\n}\n:host .sy-dismiss {\n --sy-dismiss-color: var(--sy-dialog-header-dismiss-color, var(--sy-foreground-medium-emphasis));\n --sy-dismiss-background-color-hover: var(--sy-surface-elevated-hover);\n}","import { Component, Host, h, Prop, Event } from '@stencil/core';\nexport class DialogHeader {\n constructor() {\n /**\n * Defines if the dialog close button will be displayed.\n */\n this.hideCloseButton = false;\n }\n render() {\n return (h(Host, null,\n h(\"div\", { class: \"sy-dialog-title\" }, this.dialogTitle ? this.dialogTitle : h(\"slot\", null)),\n !this.hideCloseButton && h(\"sy-dismiss\", { class: \"sy-dismiss\", large: true, onClick: () => this.syDialogHeaderDidCloseClick.emit() })));\n }\n static get is() { return \"sy-dialog-header\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"dialogTitle\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Title to be displayed in the dialog.\"\n },\n \"attribute\": \"dialog-title\",\n \"reflect\": false\n },\n \"hideCloseButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines if the dialog close button will be displayed.\"\n },\n \"attribute\": \"hide-close-button\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n static get events() { return [{\n \"method\": \"syDialogHeaderDidCloseClick\",\n \"name\": \"syDialogHeaderDidCloseClick\",\n \"bubbles\": false,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event to indicate the click on the dialog-header close button.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }]; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-dismiss-background-color: Dismiss button background color.\n * @prop --sy-dismiss-background-color-hover: Background color on hover / focus.\n * @prop --sy-dismiss-background-color-active: Background color when active.\n * @prop --sy-dismiss-background-color-disabled: Background color when disabled.\n * @prop --sy-dismiss-border-color: Dismiss button border color.\n * @prop --sy-dismiss-border-color-hover: Border color on hover / focus.\n * @prop --sy-dismiss-border-color-active: Border color when active.\n * @prop --sy-dismiss-border-color-disabled: Border color when disabled.\n * @prop --sy-dismiss-border-color-focus-visible: Border color on focus-visible state.\n * @prop --sy-dismiss-border-radius: Dismiss button border radius.\n * @prop --sy-dismiss-color: Dismiss button content color.\n * @prop --sy-dismiss-color-disabled: Content color when disabled.\n * @prop --sy-dismiss-icon-size: Dismiss button default icon size.\n * @prop --sy-dismiss-icon-size-large: Dismiss button large icon size.\n * @prop --sy-dismiss-icon-stroke-width: Dismiss button icon stroke width\n * @prop --sy-dismiss-size: Dismiss default button size.\n * @prop --sy-dismiss-size-large: Dismiss large button size.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: inline-flex;\n --sy-icon-stroke-width: var(--sy-dismiss-icon-stroke-width, 3.5px);\n --sy-button-background-color: var(--sy-dismiss-background-color, transparent);\n --sy-button-border-color: var(--sy-dismiss-border-color, transparent);\n --sy-button-border-color-focus-visible: var(--sy-dismiss-border-color-focus-visible, var(--sy-accent));\n --sy-button-color: var(--sy-dismiss-color, var(--sy-foreground-medium-emphasis));\n --sy-button-icon-color: var(--sy-dismiss-color, var(--sy-foreground-medium-emphasis));\n --sy-button-background-color-active: var(--sy-dismiss-background-color-active, var(--sy-surface-active));\n --sy-button-border-color-active: var(--sy-dismiss-border-color-active, transparent);\n --sy-button-background-color-hover: var(--sy-dismiss-background-color-hover, var(--sy-surface-hover));\n --sy-button-border-color-hover: var(--sy-dismiss-border-color-hover, transparent);\n --sy-button-background-color-disabled: var(--sy-dismiss-background-color-disabled, transparent);\n --sy-button-border-color-disabled: var(--sy-dismiss-border-color-disabled, transparent);\n}\n\n:host([disabled]) {\n --sy-button-color-disabled: var(--sy-dismiss-color-disabled, var(--sy-disabled));\n --sy-button-icon-color: var(--sy-dismiss-color-disabled, var(--sy-disabled));\n}\n\n.button-dismiss {\n --sy-button-height: var(--sy-dismiss-size, 16px);\n --sy-button-width: var(--sy-dismiss-size, 16px);\n --sy-button-icon-size: var(--sy-dismiss-icon-size, 8px);\n}\n\n:host([large]) .button-dismiss {\n --sy-button-height: var(--sy-dismiss-size-large, 32px);\n --sy-button-width: var(--sy-dismiss-size-large, 32px);\n --sy-button-icon-size: var(--sy-dismiss-icon-size-large, 16px);\n}","import { Component, Host, h, Prop } from '@stencil/core';\nexport class Dismiss {\n constructor() {\n /**\n * Sets dismiss button state to disabled.\n */\n this.disabled = false;\n /**\n * Sets dismiss size to large.\n */\n this.large = false;\n }\n render() {\n return (h(Host, null,\n h(\"sy-button\", { class: \"button-dismiss\", content: \"icon-only\", icon: \"close\", disabled: this.disabled })));\n }\n static get is() { return \"sy-dismiss\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets dismiss button state to disabled.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"large\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets dismiss size to large.\"\n },\n \"attribute\": \"large\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-divider-margin-inset: Divider margin inset\n * @prop --sy-divider-border-color: Divider border color\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: block;\n border-color: var(--sy-divider-border-color, var(--sy-border));\n border-style: solid;\n border-width: 1px 0 0;\n}\n\n:host([type=inset]) {\n margin-right: var(--sy-divider-margin-inset, var(--sy-spacer-3));\n margin-left: var(--sy-divider-margin-inset, var(--sy-spacer-3));\n}\n\n:host([type=vertical]) {\n width: 1px;\n height: 100%;\n border-width: 0 1px 0 0;\n}","import { Component, Host, h, Prop } from '@stencil/core';\nexport class Divider {\n constructor() {\n /**\n * Orientation options.\n */\n this.type = 'default';\n }\n render() {\n return h(Host, null);\n }\n static get is() { return \"sy-divider\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'default' | 'inset' | 'vertical'\",\n \"resolved\": \"\\\"default\\\" | \\\"inset\\\" | \\\"vertical\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Orientation options.\"\n },\n \"attribute\": \"type\",\n \"reflect\": true,\n \"defaultValue\": \"'default'\"\n }\n }; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-dropdown-background-color: Dropdown background color.\n * @prop --sy-dropdown-border: Dropdown border.\n * @prop --sy-dropdown-border-radius: Dropdown border-radius.\n * @prop --sy-dropdown-border-color: Default border color.\n * @prop --sy-dropdown-padding: Dropdown padding.\n * @prop --sy-dropdown-shadow: Dropdown box-shadow.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n position: absolute;\n z-index: 1000;\n display: none;\n padding: var(--sy-dropdown-padding, 0);\n overflow: hidden;\n background-color: var(--sy-dropdown-background-color, var(--sy-surface));\n border: var(--sy-dropdown-border, 1px solid);\n border-color: var(--sy-dropdown-border-color, var(--sy-border));\n border-radius: var(--sy-dropdown-border-radius, var(--sy-border-radius));\n box-shadow: var(--sy-dropdown-shadow, var(--sy-shadow-offset-x) var(--sy-shadow-offset-y) var(--sy-shadow-radius) var(--sy-shadow));\n}\n\n:host([opened]) {\n display: block;\n}","import { Component, Host, h, Prop, Event, Method, Element, Watch } from '@stencil/core';\nimport { beforeWrite, createPopper } from '@popperjs/core';\nimport { floatingElements } from '../../utils/floating-elements.utils';\nconst ESCAPE_KEY = 'Escape';\nconst PLACEMENTS = {\n 'top-start': 'top-start',\n 'top-end': 'top-end',\n 'bottom-end': 'bottom-end',\n 'bottom-start': 'bottom-start',\n 'right': 'right-start',\n 'left': 'left-start',\n 'auto': 'auto',\n};\n/**\n * @slot - Dropdown contents.\n */\nexport class Dropdown {\n constructor() {\n this.openedEventListeners = [];\n this.eventListeners = [];\n /**\n * Describes the preferred placement of the dropdown content.\n * The \"auto\" placements will choose the side with most space.\n * The placement may change to make de dropdown fit better.\n */\n this.placement = 'bottom-start';\n /**\n * Positioning strategy.\n * Use fixed when it is inside a fixed container.\n */\n this.display = 'absolute';\n /**\n * It indicates if the dropdown is open.\n *\n */\n this.opened = false;\n /**\n * If true, the dropdown will not close by pressing the ESC key.\n */\n this.ignoreEscape = false;\n /**\n * If true, the dropdown will not close with an outside click.\n */\n this.ignoreOutsideClick = false;\n /**\n * If true, the dropdown will be the same width as the container element.\n */\n this.sameContainerWidth = false;\n /**\n * Displaces the dropdown away from, or toward, the reference element in the direction of its placement.\n * A positive number displaces it further away, while a negative number lets it overlap the reference.\n */\n this.offsetDistance = 2;\n }\n async selectElementsWatcher() {\n const rootNode = this.el.getRootNode();\n this.toggleByElement = this.toggleBy ? rootNode.querySelector(this.toggleBy) : null;\n this.containerElement = this.container ? rootNode.querySelector(this.container) || this.el.parentElement : this.el.parentElement;\n this.handleContainerResize();\n }\n async openedWatcher() {\n if (this.opened === this.isOpenedInternal) {\n return;\n }\n if (this.opened) {\n return await this.open();\n }\n this.close();\n }\n /**\n * Open dropdown\n */\n async open() {\n if (this.isOpenedInternal)\n return;\n const popperConfig = this.getPopperConfig();\n floatingElements.open(this.el);\n this.popper = await createPopper(this.containerElement, this.el, popperConfig);\n this.isOpenedInternal = true;\n this.opened = true;\n this.syDropdownDidOpen.emit();\n }\n /**\n * Close dropdown\n */\n async close() {\n if (!this.isOpenedInternal)\n return;\n if (this.popper) {\n this.popper.destroy();\n }\n this.removeListeners(this.openedEventListeners);\n this.isOpenedInternal = false;\n this.opened = false;\n this.syDropdownDidClose.emit();\n floatingElements.close(this.el);\n }\n /**\n * Toggle dropdown\n */\n async toggle(event) {\n const isInsideClick = Boolean(((event === null || event === void 0 ? void 0 : event.composedPath()) || []).find(p => {\n if (p instanceof Node) {\n return this.el.contains(p);\n }\n }));\n if (!isInsideClick) {\n this.opened = !this.opened;\n }\n }\n async componentDidLoad() {\n await this.selectElementsWatcher();\n await this.addToggleByHandler();\n }\n componentDidRender() {\n if (this.opened) {\n this.addEscapeHandler();\n this.addOutsideClickHandler();\n if (this.popper)\n this.popper.update();\n }\n }\n disconnectedCallback() {\n if (this.el.isConnected)\n return;\n this.removeListeners(this.openedEventListeners);\n this.removeListeners(this.eventListeners);\n this.resizeObserver && this.resizeObserver.disconnect();\n }\n handleContainerResize() {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const currentHeight = entry.target.clientHeight;\n if (!this.latestContainerHeight)\n this.latestContainerHeight = currentHeight;\n else if (this.latestContainerHeight != currentHeight && this.popper) {\n this.popper.update();\n this.latestContainerHeight = currentHeight;\n }\n }\n });\n this.resizeObserver.observe(this.containerElement);\n }\n }\n async addToggleByHandler() {\n if (this.toggleByElement) {\n const handler = this.toggle.bind(this);\n this.eventListeners.push({ element: this.toggleByElement, event: 'click', handler });\n this.toggleByElement.addEventListener('click', handler);\n }\n }\n escapeHandler(event) {\n var _a;\n if (this.ignoreEscape)\n return;\n if (event.key === ESCAPE_KEY) {\n this.close();\n const element = this.toggleByElement;\n (_a = element) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n addEscapeHandler() {\n if (this.ignoreEscape)\n return;\n const event = 'keyup';\n const handler = this.escapeHandler.bind(this);\n document.addEventListener(event, handler);\n this.openedEventListeners.push({ element: document, event, handler });\n }\n outsideClickHandler(event) {\n const isInsideClick = Boolean(((event === null || event === void 0 ? void 0 : event.composedPath()) || []).find(p => {\n if (p instanceof Node) {\n return this.el.contains(p);\n }\n }));\n if (!isInsideClick && this.opened) {\n this.close();\n }\n }\n addOutsideClickHandler() {\n if (this.ignoreOutsideClick)\n return;\n const event = 'click';\n const handler = this.outsideClickHandler.bind(this);\n document.addEventListener(event, handler);\n this.openedEventListeners.push({ element: document, event, handler });\n }\n removeListeners(listeners) {\n (listeners || []).forEach(listener => {\n listener.element.removeEventListener(listener.event, listener.handler);\n });\n }\n getPopperConfig() {\n const modifiers = [\n {\n name: 'offset',\n options: {\n offset: [0, this.offsetDistance],\n },\n },\n ];\n if (this.sameContainerWidth) {\n const sameWidth = {\n name: 'sameWidth',\n enabled: true,\n phase: beforeWrite,\n requires: ['computeStyles'],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${state.elements.reference.offsetWidth}px`;\n },\n };\n modifiers.push(sameWidth);\n }\n const defaultPopperConfig = {\n placement: PLACEMENTS[this.placement],\n strategy: '',\n modifiers,\n };\n return Object.assign({}, defaultPopperConfig);\n }\n render() {\n return (h(Host, null,\n h(\"slot\", null)));\n }\n static get is() { return \"sy-dropdown\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"toggleBy\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Element that toggle dropdown.\"\n },\n \"attribute\": \"toggle-by\",\n \"reflect\": false\n },\n \"container\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Element that dropdown will be connected to.\\nIf null the dropdown will be connected to the toggleBy element.\"\n },\n \"attribute\": \"container\",\n \"reflect\": false\n },\n \"placement\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Placement\",\n \"resolved\": \"\\\"auto\\\" | \\\"bottom-end\\\" | \\\"bottom-start\\\" | \\\"left\\\" | \\\"right\\\" | \\\"top-end\\\" | \\\"top-start\\\"\",\n \"references\": {\n \"Placement\": {\n \"location\": \"local\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Describes the preferred placement of the dropdown content.\\nThe \\\"auto\\\" placements will choose the side with most space.\\nThe placement may change to make de dropdown fit better.\"\n },\n \"attribute\": \"placement\",\n \"reflect\": true,\n \"defaultValue\": \"'bottom-start'\"\n },\n \"display\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'absolute' | 'fixed'\",\n \"resolved\": \"\\\"absolute\\\" | \\\"fixed\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Positioning strategy.\\nUse fixed when it is inside a fixed container.\"\n },\n \"attribute\": \"display\",\n \"reflect\": true,\n \"defaultValue\": \"'absolute'\"\n },\n \"opened\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"It indicates if the dropdown is open.\"\n },\n \"attribute\": \"opened\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"ignoreEscape\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the dropdown will not close by pressing the ESC key.\"\n },\n \"attribute\": \"ignore-escape\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"ignoreOutsideClick\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the dropdown will not close with an outside click.\"\n },\n \"attribute\": \"ignore-outside-click\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"sameContainerWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the dropdown will be the same width as the container element.\"\n },\n \"attribute\": \"same-container-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"offsetDistance\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Displaces the dropdown away from, or toward, the reference element in the direction of its placement.\\nA positive number displaces it further away, while a negative number lets it overlap the reference.\"\n },\n \"attribute\": \"offset-distance\",\n \"reflect\": true,\n \"defaultValue\": \"2\"\n },\n \"popperConfig\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"{ [k: string]: any }\",\n \"resolved\": \"{ [k: string]: any; }\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Overlay advanced configs. \"\n }\n }\n }; }\n static get events() { return [{\n \"method\": \"syDropdownDidOpen\",\n \"name\": \"syDropdownDidOpen\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Fired when dropdown is opened.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"syDropdownDidClose\",\n \"name\": \"syDropdownDidClose\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Fired when dropdown is closed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }]; }\n static get methods() { return {\n \"open\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n },\n \"HTMLElement\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Open dropdown\",\n \"tags\": []\n }\n },\n \"close\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Close dropdown\",\n \"tags\": []\n }\n },\n \"toggle\": {\n \"complexType\": {\n \"signature\": \"(event?: any) => Promise\",\n \"parameters\": [{\n \"tags\": [],\n \"text\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Toggle dropdown\",\n \"tags\": []\n }\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"toggleBy\",\n \"methodName\": \"selectElementsWatcher\"\n }, {\n \"propName\": \"container\",\n \"methodName\": \"selectElementsWatcher\"\n }, {\n \"propName\": \"opened\",\n \"methodName\": \"openedWatcher\"\n }]; }\n}\n","/**\n * Returns whether the element is hidden.\n * @param $elem\n */\nexport function isHidden($elem) {\n return ($elem.hasAttribute('hidden') ||\n ($elem.hasAttribute('aria-hidden') && $elem.getAttribute('aria-hidden') !== 'false') ||\n // A quick and dirty way to check whether the element is hidden.\n // For a more fine-grained check we could use \"window.getComputedStyle\" but we don't because of bad performance.\n // If the element has visibility set to \"hidden\" or \"collapse\", display set to \"none\" or opacity set to \"0\" through CSS\n // we won't be able to catch it here. We accept it due to the huge performance benefits.\n $elem.style.display === `none` ||\n $elem.style.opacity === `0` ||\n $elem.style.visibility === `hidden` ||\n $elem.style.visibility === `collapse`);\n // If offsetParent is null we can assume that the element is hidden\n // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null\n //|| $elem.offsetParent == null;\n}\n/**\n * Returns whether the element is disabled.\n * @param $elem\n */\nexport function isDisabled($elem) {\n return $elem.hasAttribute('disabled') || ($elem.hasAttribute('aria-disabled') && $elem.getAttribute('aria-disabled') !== 'false');\n}\n/**\n * Determines whether an element is focusable.\n * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194\n * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable\n * @param $elem\n */\nexport function isFocusable($elem) {\n // Discard elements that are removed from the tab order.\n if ($elem.getAttribute('tabindex') === '-1' || isHidden($elem) || isDisabled($elem)) {\n return false;\n }\n return (\n // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists\n $elem.hasAttribute('tabindex') ||\n // Anchor tags or area tags with a href set\n (($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) && $elem.hasAttribute('href')) ||\n // Form elements which are not disabled\n $elem instanceof HTMLButtonElement ||\n $elem instanceof HTMLInputElement ||\n $elem instanceof HTMLTextAreaElement ||\n $elem instanceof HTMLSelectElement ||\n // IFrames\n $elem instanceof HTMLIFrameElement);\n}\n","/**\n * Traverses the slots of the open shadowroots and returns all children matching the query.\n * We need to traverse each child-depth one at a time because if an element should be skipped\n * (for example because it is hidden) we need to skip all of it's children. If we use querySelectorAll(\"*\")\n * the information of whether the children is within a hidden parent is lost.\n * @param {ShadowRoot | HTMLElement} root\n * @param skipNode\n * @param isMatch\n * @param {number} maxDepth\n * @param {number} depth\n * @returns {HTMLElement[]}\n */\nexport function queryShadowRoot(root, skipNode, isMatch, reverse = false, maxDepth = 20, depth = 0) {\n // If the depth is above the max depth, abort the searching here.\n if (depth >= maxDepth) {\n return null;\n }\n // Traverses a slot element\n const traverseSlot = ($slot) => {\n // Only check nodes that are of the type Node.ELEMENT_NODE\n // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const assignedNodes = $slot.assignedNodes().filter(node => node.nodeType === 1);\n if (assignedNodes.length > 0) {\n const $slotParent = assignedNodes[0].parentElement;\n return queryShadowRoot($slotParent, skipNode, isMatch, reverse, maxDepth, depth + 1);\n }\n return null; //Has not found an element\n };\n // Go through each child and continue the traversing if necessary\n // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.\n // Therefore we fallback to an empty array if it is undefined.\n const children = Array.from(root.children || []);\n //Reverses the array if searching for last\n if (reverse) {\n children.reverse();\n }\n for (const $child of children) {\n // Check if the element and its descendants should be skipped\n if (skipNode($child)) {\n continue;\n }\n // If the element matches we always add it\n if (isMatch($child)) {\n return $child;\n }\n let result = null;\n if ($child.shadowRoot != null) {\n // If the element has a shadow root we need to traverse it\n result = queryShadowRoot($child.shadowRoot, skipNode, isMatch, reverse, maxDepth, depth + 1);\n }\n else if ($child.tagName === 'SLOT') {\n // If the child is a slot we need to traverse each assigned node\n result = traverseSlot($child);\n }\n else {\n // Traverse the children of the element\n result = queryShadowRoot($child, skipNode, isMatch, reverse, maxDepth, depth + 1);\n }\n //If a valid child has been found, returns it\n if (result) {\n return result;\n }\n }\n return null; //Has not found an element\n}\n","const timeouts = new Map();\n/**\n * Debounces a callback.\n * @param cb\n * @param ms\n * @param id\n */\nexport function debounce(cb, ms, id) {\n // Clear current timeout for id\n const timeout = timeouts.get(id);\n if (timeout != null) {\n window.clearTimeout(timeout);\n }\n // Set new timeout\n timeouts.set(id, window.setTimeout(() => {\n cb();\n timeouts.delete(id);\n }, ms));\n}\n","import { Component, Element, Host, h, Prop, Watch } from '@stencil/core';\nimport { isHidden, isFocusable } from './focusable.function';\nimport { queryShadowRoot } from './shadow.function';\nimport { debounce } from './debounce.function';\n/**\n * @slot - Slot to add components to focus trap.\n */\nexport class FocusTrap {\n constructor() {\n this.focused = false;\n // The debounce id is used to distinguish this focus trap from others when debouncing\n this.debounceId = Math.random().toString();\n /**\n * If true, the focus won't trap the focus.\n */\n this.disabled = false;\n }\n /**\n * Focuses the first focusable element in the focus trap.\n */\n focusFirstElement() {\n this.trapFocus();\n }\n /**\n * Focuses the last focusable element in the focus trap.\n */\n focusLastElement() {\n this.trapFocus(true);\n }\n /**\n * Focuses on either the last or first focusable element.\n * @param {boolean} trapToEnd\n */\n trapFocus(trapToEnd) {\n if (this.disabled)\n return;\n const focusableElement = this.getNextFocusableElement(trapToEnd);\n if (focusableElement) {\n focusableElement.focus();\n this.backup.setAttribute('tabindex', '-1');\n }\n else {\n // If there are no focusable children we need to focus on the backup\n // to trap the focus. This is a useful behavior if the focus trap is\n // for example used in a dialog and we don't want the user to tab\n // outside the dialog even though there are no focusable children\n // in the dialog.\n this.backup.setAttribute('tabindex', '0');\n this.backup.focus();\n }\n }\n /**\n * Returns a list of the focusable children found within the element.\n */\n getNextFocusableElement(reverse) {\n return queryShadowRoot(this.el, isHidden, isFocusable, reverse);\n }\n /**\n * When the element gains focus this function is called.\n */\n onFocusIn() {\n this.updateFocused(true);\n }\n /**\n * When the element looses its focus this function is called.\n */\n onFocusOut() {\n this.updateFocused(false);\n }\n /**\n * Updates the focused property and updates the view.\n * The update is debounced because the focusin and focusout out\n * might fire multiple times in a row. We only want to render\n * the element once, therefore waiting until the focus is \"stable\".\n * @param value\n */\n updateFocused(value) {\n debounce(() => {\n if (this.focused !== value) {\n this.focused = value;\n this.disabledWatcher();\n }\n }, 0, this.debounceId);\n }\n /**\n * Adds handlers to deal with focus events\n */\n addHandler() {\n const root = this.el.shadowRoot;\n this.backup = root.querySelector('#backup');\n this.start = root.querySelector('#start');\n this.end = root.querySelector('#end');\n this.focusLastElement = this.focusLastElement.bind(this);\n this.focusFirstElement = this.focusFirstElement.bind(this);\n this.onFocusIn = this.onFocusIn.bind(this);\n this.onFocusOut = this.onFocusOut.bind(this);\n this.start.addEventListener('focus', this.focusLastElement);\n this.end.addEventListener('focus', this.focusFirstElement);\n // Focus out is called every time the user tabs around inside the element\n this.el.addEventListener('focusin', this.onFocusIn);\n this.el.addEventListener('focusout', this.onFocusOut);\n this.disabledWatcher();\n }\n /**\n * Removes handlers to deal with focus events\n */\n removeHandler() {\n this.start.removeEventListener('focus', this.focusLastElement);\n this.end.removeEventListener('focus', this.focusFirstElement);\n this.el.removeEventListener('focusin', this.onFocusIn);\n this.el.removeEventListener('focusout', this.onFocusOut);\n }\n /**\n * Sets the tabIndex value of the trap divs\n */\n disabledWatcher() {\n this.start.setAttribute('tabindex', !this.focused || this.disabled ? `-1` : `0`);\n this.end.setAttribute('tabindex', !this.focused || this.disabled ? `-1` : `0`);\n }\n componentDidLoad() {\n this.addHandler();\n }\n disconnectedCallback() {\n if (this.el.isConnected)\n return;\n this.removeHandler();\n }\n render() {\n return (h(Host, null,\n h(\"div\", { id: \"start\" }),\n h(\"div\", { id: \"backup\" }),\n h(\"slot\", null),\n h(\"div\", { id: \"end\" })));\n }\n static get is() { return \"sy-focus-trap\"; }\n static get encapsulation() { return \"shadow\"; }\n static get properties() { return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the focus won't trap the focus.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"disabled\",\n \"methodName\": \"disabledWatcher\"\n }]; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-grid-pattern: [PENDING DOC]\n * @prop --sy-grid-gutter-size: [PENDING DOC]\n * @prop --sy-grid-alignment: [PENDING DOC]\n * @prop --sy-grid-count: [PENDING DOC]\n * @prop --sy-grid-offset: [PENDING DOC]\n * @prop --sy-grid-max-width-xs: Grid max width xs.\n * @prop --sy-grid-max-width-sm: Grid max width sm.\n * @prop --sy-grid-max-width-md: Grid max width md.\n * @prop --sy-grid-max-width-lg: Grid max width lg.\n * @prop --sy-grid-max-width-xl: Grid max width xl.\n * @prop --sy-grid-max-width-xxl: Grid max width xxl.\n * @prop --sy-grid-gap: Grid gap - It must be a single number value and defines both row and column gap\n * @prop --sy-grid-row-gap: Grid row gap.\n * @prop --sy-grid-column-gap: Grid column gap.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n}\n\n:host([type=flex]) {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: var(--sy-grid-row-gap, var(--sy-grid-gap, var(--sy-spacer-5)));\n padding-right: calc(var(--sy-grid-column-gap, var(--sy-grid-gap, var(--sy-spacer-5))) * .5);\n padding-left: calc(var(--sy-grid-column-gap, var(--sy-grid-gap, var(--sy-spacer-5))) * .5);\n}\n\n:host([type=grid]) {\n display: grid;\n grid-auto-rows: 1fr;\n grid-auto-columns: 1fr;\n row-gap: var(--sy-grid-row-gap, var(--sy-grid-gap, var(--sy-spacer-5)));\n column-gap: var(--sy-grid-column-gap, var(--sy-grid-gap, var(--sy-spacer-5)));\n}\n\n@media (min-width: 0) {\n :host(:not([fluid])) {\n max-width: var(--sy-grid-max-width-xs, 100%);\n }\n}\n@media (min-width: 576px) {\n :host(:not([fluid])) {\n max-width: var(--sy-grid-max-width-sm, 540px);\n }\n}\n@media (min-width: 768px) {\n :host(:not([fluid])) {\n max-width: var(--sy-grid-max-width-md, 720px);\n }\n}\n@media (min-width: 992px) {\n :host(:not([fluid])) {\n max-width: var(--sy-grid-max-width-lg, 960px);\n }\n}\n@media (min-width: 1200px) {\n :host(:not([fluid])) {\n max-width: var(--sy-grid-max-width-xl, 1140px);\n }\n}\n@media (min-width: 1400px) {\n :host(:not([fluid])) {\n max-width: var(--sy-grid-max-width-xxl, 1320px);\n }\n}","import { Component, Host, h, Prop } from '@stencil/core';\nexport class Grid {\n getGridStyle() {\n let style = {};\n if (this.type === 'grid') {\n if (this.rows) {\n style.gridTemplateRows = `repeat(${this.rows}, 1fr)`;\n }\n if (this.cols) {\n style.gridTemplateColumns = `repeat(${this.cols}, 1fr)`;\n }\n }\n if (this.gap) {\n const gap = isNaN(Number(this.gap)) ? this.gap : this.gap + 'px';\n style = Object.assign(Object.assign({}, style), { '--sy-grid-gap': gap });\n }\n return style;\n }\n render() {\n return (h(Host, { style: this.getGridStyle() },\n h(\"slot\", null)));\n }\n static get is() { return \"sy-grid\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'flex' | 'grid'\",\n \"resolved\": \"\\\"flex\\\" | \\\"grid\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the system used to build the grid: flexbox system or grid system.\"\n },\n \"attribute\": \"type\",\n \"reflect\": true\n },\n \"fluid\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines if the grid will use all available width.\"\n },\n \"attribute\": \"fluid\",\n \"reflect\": true\n },\n \"rows\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the number of rows of the grid. Only considered if type is 'grid'.\"\n },\n \"attribute\": \"rows\",\n \"reflect\": false\n },\n \"cols\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines the number of columns of the grid. Only considered if type is 'grid'.\"\n },\n \"attribute\": \"cols\",\n \"reflect\": false\n },\n \"gap\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the gap size between collums and rows.\\nIt must be a single number value.\"\n },\n \"attribute\": \"gap\",\n \"reflect\": true\n }\n }; }\n}\n","export type EnvConfig = {\n host: string;\n oneEnv: string;\n baseURL: string;\n accessToken: string;\n};\n\nexport function getApiOrigin() {\n if (window.location.host.match(/^localhost:333/)) {\n // dev local\n return 'https://sydle-dev.sydle.one/';\n }\n\n return window.location.origin + '/';\n // const oneOrigin = window['@sydle/blog']?.oneOrigin;\n // return oneOrigin;\n}\n\nexport function getBaseURL() {\n const oneApplication = window['@sydle/site']?.oneApplication;\n return getApiOrigin() + `api/1/${oneApplication}/`;\n}\n\nexport function getOrg() {\n const oneOrg = window['@sydle/site']?.oneOrg;\n return oneOrg;\n}\n","@import \"~@sydle/sydle-ui/styles/scss/breakpoints/index\";\n\n// @import '../../../node_modules/@sydle/sydle-ui/styles/scss/breakpoints/index.scss';\n\n:host {\n display: block;\n\n --sy-text-h2-font-size: 32px;\n --sy-text-h3-font-size: 28px;\n --sy-text-body-font-size: 16px;\n\n sy-text {\n margin: 0;\n }\n\n .flex-align {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n }\n\n .background-1 {\n --background-image: var(--background-image-vertical-url, unset);\n\n background: var(--background-color, var(--background-image));\n border: solid 1px var(--sy-accent);\n\n @include breakpoint-media-up(lg) {\n --background-image: var(--background-image-horizontal-url);\n }\n }\n\n .background-2 {\n padding: 32px;\n }\n\n .background-1,\n .background-2 {\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n background-size: cover;\n }\n\n .cover {\n width: 100%;\n height: 100%;\n\n .inner-content {\n gap: 20px;\n }\n\n sy-button {\n --sy-button-padding: 16px 32px;\n --sy-button-width: 100%;\n }\n }\n\n .shadow {\n position: absolute;\n width: 100%;\n height: 10px;\n\n &.top {\n top: 0;\n background:\n radial-gradient(\n farthest-side at 50% 0,\n rgb(0 0 0 / 20%),\n rgb(0 0 0 / 0%)\n ) center top;\n opacity: 0;\n }\n\n &.bottom {\n bottom: 0;\n background:\n radial-gradient(\n farthest-side at 50% 100%,\n rgb(0 0 0 / 20%),\n rgb(0 0 0 / 0%)\n ) center bottom;\n opacity: 0;\n }\n }\n\n #quiz-form {\n overflow-y: auto;\n\n .shadow-body {\n position: relative;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n }\n\n #question-body {\n max-height: 100%;\n overflow-y: auto;\n\n sy-text {\n white-space: pre-wrap;\n }\n }\n\n @include breakpoint-media-up(lg) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: min-content auto;\n overflow-y: visible;\n\n .toolbar {\n grid-column: 1 / 3;\n }\n }\n }\n\n .toolbar {\n display: flex;\n justify-content: space-between;\n width: 100%;\n\n .paginator {\n display: flex;\n align-items: flex-start;\n\n .inner {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n }\n }\n\n .anwser-buttons {\n width: 100%;\n gap: 8px;\n\n sy-button {\n width: 100%;\n\n --sy-font-size: 1rem;\n --sy-button-padding: .4rem 1.8rem;\n --sy-button-line-height: 24px;\n --sy-button-border-color: var(--sy-accent);\n --sy-button-color: var(--sy-accent);\n --sy-button-background-color: transparent;\n }\n }\n\n .quiz-answered {\n --sy-button-padding: 16px 32px;\n --sy-button-width: 100%;\n }\n\n .quiz-answer {\n max-height: 100%;\n\n .final-text {\n align-self: flex-start;\n overflow-y: auto;\n white-space: pre-wrap;\n }\n }\n}\n","import { Component, h, Host, Prop, State, Watch, Element } from '@stencil/core';\nimport { Consumes } from '@sydle/sydle-ui';\nimport { getBaseURL } from '../../../env/enviroment';\nimport { makeContextAvailability } from '../../utils/contextsAvailability';\nimport { getAuthState } from '../sy-site-auth/store/store';\nimport { Quiz, SubmitQuizAnswer } from './model';\n\n@Component({\n tag: 'sy-growth-quiz-bootstrap',\n styleUrl: 'sy-growth-quiz-bootstrap.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SySiteQuiz {\n @Element() el: HTMLSyGrowthQuizBootstrapElement;\n private startButton: HTMLSyButtonElement;\n private submitButton: HTMLSyButtonElement;\n\n private contextsAvailability = makeContextAvailability(['api', 'auth']);\n\n @Consumes('siteApi') @State() api: HTMLSySiteApiElement;\n @Consumes('siteAuth') @State() auth: HTMLSySiteAuthElement;\n\n @State() isQuizStarted = false;\n @State() questionIndex = 0;\n @State() answerId: string;\n @State() isQuizFinished = false;\n @State() quizResult: SubmitQuizAnswer;\n @State() quiz: Quiz;\n @State() isLastQuestion = false;\n @State() answersButtonsDisabled = false;\n @State() markedAnswers = [];\n @State() shadowBody: HTMLDivElement;\n\n /**\n * Id of the quiz to be displayed\n */\n @Prop() quizObj: string;\n\n @Watch('api')\n @Watch('auth')\n setContexts(): void {\n if (this.api) {\n this.contextsAvailability.props.api.resolve();\n }\n\n if (this.auth) {\n this.contextsAvailability.props.auth.resolve();\n }\n }\n\n async componentWillLoad() {\n this.setContexts();\n await this.contextsAvailability.all;\n await this.auth.whenReady();\n if (getAuthState('isAuthenticated')) {\n if (localStorage.getItem('quizAnswerId')) {\n this.answerId = localStorage.getItem('quizAnswerId');\n localStorage.removeItem('quizAnswerId');\n this.isQuizStarted = true;\n const result = await this.api.submitQuizAnswer(this.answerId);\n this.quizResult = result;\n this.isQuizFinished = true;\n }\n }\n return this.api.loadQuizData(this.quizObj).then(quiz => (this.quiz = quiz));\n }\n\n // Função para criar uma resposta do usuário para o quiz\n private async createAnswer() {\n if (!this.startButton.disabled) {\n this.startButton.disabled = true;\n this.startButton.label = '';\n this.startButton.loading = true;\n this.api.createQuizAnswer(this.quizObj).then(answer => {\n this.answerId = answer._id;\n this.isQuizStarted = true;\n });\n }\n }\n\n // Função para responder uma questão\n private answerQuestion(alternative, questionIndex, button) {\n if (!button.disabled) {\n this.answersButtonsDisabled = true;\n this.markedAnswers[questionIndex] = alternative;\n this.api\n .answerQuizQuestion(this.answerId, this.quiz.quizForm.quizAnswerAndQuestion[this.questionIndex].possibleAnswers.indexOf(alternative), questionIndex)\n .then(_output => _output.nextQuestionIndex)\n .then(nextQuestionIndex => {\n if (nextQuestionIndex !== null) {\n this.questionIndex = nextQuestionIndex;\n this.answersButtonsDisabled = false;\n } else {\n this.isLastQuestion = true;\n this.answersButtonsDisabled = false;\n }\n });\n }\n }\n\n //Função para submeter as respostas ao quiz\n private async submitQuiz() {\n if (!this.submitButton.disabled) {\n this.submitButton.disabled = true;\n this.submitButton.label = null;\n localStorage.setItem('quizAnswerId', this.answerId);\n if (getAuthState('user')) {\n await this.api.submitQuizAnswer(this.answerId).then(result => {\n this.quizResult = result;\n this.isQuizFinished = true;\n });\n } else {\n this.auth.whenReady().then(() => this.auth.login());\n }\n }\n }\n\n // Passa a página\n private nextQuestion() {\n this.questionIndex = this.questionIndex + 1;\n }\n //Retona a página\n private previousQuestion() {\n this.questionIndex = this.questionIndex - 1;\n }\n\n private getBackground1Styles() {\n const baseUrl = getBaseURL();\n const url = `url(${baseUrl}com.sydle.growth.marketing/quizApi/assets/${this.quiz._id}/horizontalBackgroundImage)`;\n const url2 = `url(${baseUrl}com.sydle.growth.marketing/quizApi/assets/${this.quiz._id}/verticalBackgroundImage)`;\n\n if (this.isQuizStarted) {\n return {\n 'color': 'black',\n '--background-color': 'var(--sy-surface-light)',\n };\n }\n\n return {\n '--background-image-horizontal-url': url,\n '--background-image-vertical-url': url2,\n 'color': 'white',\n };\n }\n\n private getBackground2Styles() {\n if (this.isQuizStarted) {\n return null;\n }\n\n return {\n background: 'linear-gradient(180deg, rgba(186, 209, 237, 0.4503) 0%, rgba(0, 0, 0, 0.57) 41.46%)',\n };\n }\n\n // Página Inicial\n private initialPage() {\n return (\n
\n Quiz\n
\n {this.quiz.name}\n {this.quiz.description && {this.quiz.description}}\n
\n (this.startButton = el)} label=\"Responda agora\" type=\"accent\" button-type=\"button\" onClick={() => this.createAnswer()}>\n
\n );\n }\n\n private getPaginator() {\n const isLastIconVisible = this.quiz.quizForm.quizAnswerAndQuestion.length === this.questionIndex + 1;\n return (\n
\n
\n {this.questionIndex === 0 ? null : (\n this.previousQuestion()}>\n )}\n \n {this.questionIndex + 1}/{this.quiz.quizForm.quizAnswerAndQuestion.length}\n \n this.nextQuestion()}\n >\n
\n
\n );\n }\n\n // Formulário do Quiz\n private quizForm() {\n if (this.isLastQuestion) {\n return (\n
\n \n Quiz Respondido\n \n (this.submitButton = el)} label=\"Enviar resposta\" type=\"accent\" button-type=\"button\" onClick={() => this.submitQuiz()} />\n
\n );\n }\n return (\n
\n
\n \n Quiz\n \n {this.getPaginator()}\n
\n
(this.shadowBody = el)}>\n
\n
\n
\n {this.questionIndex === null ? null : this.quiz.quizForm.quizAnswerAndQuestion[this.questionIndex].question}\n
\n
\n
\n {this.quiz.quizForm.quizAnswerAndQuestion[this.questionIndex].possibleAnswers.map(alternative => {\n return (\n this.answerQuestion(alternative, this.questionIndex, e.target)}\n label={alternative}\n />\n );\n })}\n
\n
\n );\n }\n\n // Página de resultados\n private getSubmit() {\n return (\n
\n \n Quiz\n \n \n \n Você acertou {this.quizResult.totalOfRightAnswers} das {this.quiz.quizForm.quizAnswerAndQuestion.length} questões!\n \n \n\n \n {'\\n' + this.quiz.finalQuizText}\n \n
\n );\n }\n\n @Watch('shadowBody')\n shadowBodyWatcher(): void {\n if (this.shadowBody) {\n const promise = new Promise(resolve => {\n const observer = new MutationObserver(() => {\n resolve(this.shadowBody);\n });\n observer.observe(this.shadowBody, {\n childList: true,\n });\n });\n\n promise.then(shadowBody => {\n const shadowTop = shadowBody.querySelector('.shadow.top') as HTMLDivElement;\n const shadowBottom = shadowBody.querySelector('.shadow.bottom') as HTMLDivElement;\n const questionBody = shadowBody.querySelector('#question-body') as HTMLDivElement;\n\n const setShadows = () => {\n const contentScrollHeight = questionBody.scrollHeight - shadowBody.offsetHeight;\n const currentScroll = questionBody.scrollTop / contentScrollHeight;\n\n if (questionBody.scrollHeight > shadowBody.offsetHeight) {\n shadowTop.style.opacity = currentScroll.toString();\n shadowBottom.style.opacity = (1 - currentScroll).toString();\n }\n };\n\n const questionBodyObserver = new MutationObserver(() => {\n shadowTop.style.opacity = '0';\n shadowBottom.style.opacity = '0';\n setShadows();\n });\n questionBodyObserver.observe(questionBody, { childList: true, subtree: true, characterData: true });\n\n questionBody.addEventListener('scroll', setShadows);\n });\n }\n }\n\n componentDidLoad() {\n this.shadowBodyWatcher();\n if (getAuthState('isAuthenticated') && this.quizResult) {\n this.el.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }\n }\n\n render() {\n return (\n \n
\n
\n {this.isQuizFinished ? this.getSubmit() : this.isQuizStarted ? this.quizForm() : this.initialPage()}\n
\n
\n
\n );\n }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-progress-spinner-background-color: Background color of the progress spinner background.\n * @prop --sy-progress-spinner-progress-color: Background color of the active part of the progress spinner.\n * @prop --sy-progress-spinner-indeterminate-animation-speed: Indeterminate animation speed of the progress spinner.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: inline-flex;\n margin: 0;\n}\n\nsvg {\n transform: scaleY(-1);\n}\n\ncircle {\n fill: none;\n}\n\n.progress-spinner-background {\n stroke: var(--sy-progress-spinner-background-color, var(--sy-surface-dark));\n}\n\n.progress-spinner-circle {\n stroke: var(--sy-progress-spinner-progress-color, var(--sy-accent));\n}\n\n:host([type=indeterminate]) svg {\n animation: progress-spinner-indeterminate-animation infinite linear;\n animation-duration: var(--sy-progress-spinner-indeterminate-animation-speed, 1s);\n}\n@keyframes progress-spinner-indeterminate-animation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}","import { Component, Host, h, Prop, Watch } from '@stencil/core';\nexport class ProgressSpinner {\n constructor() {\n this.transition = 'none';\n /**\n * State of the progress spinner: 'determinate' means that the percentage of completion is known and the circle filled portion will be defined by 'value',\n * 'indeterminate' means that the percentage is unknown and the circle will play a looping animation.\n */\n this.type = 'determinate';\n /**\n * Radius of the progress spinner circle in pixels.\n */\n this.radius = 100;\n /**\n * Stroke width in percentage of the progress spinner outer circle. Value must be between 1 and 50 (both included).\n */\n this.strokeWidth = 10;\n /**\n * Defines if the progress spinner will have a background circle.\n */\n this.hasBackground = false;\n }\n fixValue() {\n this.value = this.value >= 0 ? (this.value <= 100 ? this.value : 100) : 0;\n this.value = this.type === 'indeterminate' ? 40 : this.value;\n }\n getStrokeWidth() {\n return this.strokeWidth < 1 ? 1 : this.strokeWidth > 50 ? 50 : this.strokeWidth;\n }\n getInnerRadius() {\n return (100 - this.getStrokeWidth()) / 2;\n }\n getRadius() {\n return 2 * this.radius * (this.getInnerRadius() / 100.0);\n }\n getCircumference() {\n return 2 * Math.PI * this.getRadius();\n }\n getStrokeDashoffset() {\n return (this.getCircumference() * (100 - this.value)) / 100;\n }\n getBackgroundCircleStyle() {\n const style = {\n strokeWidth: this.getStrokeWidth() + '%',\n };\n return style;\n }\n getCircleStyle() {\n const style = {\n strokeDashoffset: this.getStrokeDashoffset() + 'px',\n strokeDasharray: this.getCircumference() + 'px',\n strokeWidth: this.getStrokeWidth() + '%',\n transition: this.transition,\n };\n return style;\n }\n lockTransition() {\n this.transition = 'none';\n }\n unlockTransition() {\n this.transition = this.type === 'determinate' ? 'stroke-dashoffset .6s ease' : 'none';\n }\n /**\n * Adjusts invalid values and sets a fixed value if type is indeterminate\n */\n validateValueWatcher() {\n this.fixValue();\n }\n /**\n * Locks the transition temporarily to prevent errors when changing the circle radius\n */\n transitionWatcher() {\n this.lockTransition();\n }\n componentWillLoad() {\n this.fixValue();\n }\n componentDidRender() {\n this.unlockTransition();\n }\n render() {\n return (h(Host, null,\n h(\"svg\", { width: `${2 * this.radius}`, height: `${2 * this.radius}` },\n this.hasBackground ? h(\"circle\", { class: \"progress-spinner-background\", cx: \"50%\", cy: \"50%\", r: `${this.getInnerRadius()}%`, style: this.getBackgroundCircleStyle() }) : '',\n h(\"circle\", { class: \"progress-spinner-circle\", cx: \"50%\", cy: \"50%\", r: `${this.getInnerRadius()}%`, style: this.getCircleStyle() }))));\n }\n static get is() { return \"sy-progress-spinner\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"value\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Percentage of the circle that must be active. Must be a value between 0 and 100. Only applied if the 'type' is 'determinate'.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n },\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'determinate' | 'indeterminate'\",\n \"resolved\": \"\\\"determinate\\\" | \\\"indeterminate\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"State of the progress spinner: 'determinate' means that the percentage of completion is known and the circle filled portion will be defined by 'value',\\n'indeterminate' means that the percentage is unknown and the circle will play a looping animation.\"\n },\n \"attribute\": \"type\",\n \"reflect\": true,\n \"defaultValue\": \"'determinate'\"\n },\n \"radius\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Radius of the progress spinner circle in pixels.\"\n },\n \"attribute\": \"radius\",\n \"reflect\": true,\n \"defaultValue\": \"100\"\n },\n \"strokeWidth\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Stroke width in percentage of the progress spinner outer circle. Value must be between 1 and 50 (both included).\"\n },\n \"attribute\": \"stroke-width\",\n \"reflect\": true,\n \"defaultValue\": \"10\"\n },\n \"hasBackground\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines if the progress spinner will have a background circle.\"\n },\n \"attribute\": \"has-background\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n static get watchers() { return [{\n \"propName\": \"value\",\n \"methodName\": \"validateValueWatcher\"\n }, {\n \"propName\": \"type\",\n \"methodName\": \"validateValueWatcher\"\n }, {\n \"propName\": \"radius\",\n \"methodName\": \"transitionWatcher\"\n }, {\n \"propName\": \"strokeWidth\",\n \"methodName\": \"transitionWatcher\"\n }]; }\n}\n","/** Do not edit directly **/\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n color: var(--sy-accent);\n text-decoration: none;\n}\n\n:host(:hover) {\n text-decoration: underline;\n}\n\n:host {\n display: inline-block;\n cursor: pointer;\n}\n:host a {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n font-family: inherit;\n font-size: inherit;\n font-style: inherit;\n font-weight: inherit;\n font-stretch: inherit;\n line-height: inherit;\n color: inherit;\n text-align: inherit;\n text-decoration: inherit;\n text-indent: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n letter-spacing: inherit;\n white-space: inherit;\n}","import { Component, Host, h, Prop } from '@stencil/core';\nimport { generateAnchorAttributes, openURL } from '../../utils/elements-interface';\nexport class RouterLink {\n constructor() {\n /**\n * HTML
target attribute\n */\n this.target = '_blank';\n this.onClick = (ev) => {\n openURL(this.href, ev);\n };\n }\n render() {\n const AnchorTag = this.stretchedLink ? 'sy-stretched-link' : 'a';\n return (h(Host, { onClick: this.onClick },\n h(AnchorTag, Object.assign({}, generateAnchorAttributes(this)),\n h(\"slot\", null))));\n }\n static get is() { return \"sy-router-link\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\"]\n }; }\n static get properties() { return {\n \"download\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML download attribute\"\n },\n \"attribute\": \"download\",\n \"reflect\": false\n },\n \"href\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML href attribute\"\n },\n \"attribute\": \"href\",\n \"reflect\": false\n },\n \"rel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | undefined\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML rel attribute\"\n },\n \"attribute\": \"rel\",\n \"reflect\": false\n },\n \"target\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'_blank' | '_self' | '_parent' | '_top'\",\n \"resolved\": \"\\\"_blank\\\" | \\\"_parent\\\" | \\\"_self\\\" | \\\"_top\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"HTML target attribute\"\n },\n \"attribute\": \"target\",\n \"reflect\": false,\n \"defaultValue\": \"'_blank'\"\n },\n \"stretchedLink\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"false\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Defines whether the link should be stretched\"\n },\n \"attribute\": \"stretched-link\",\n \"reflect\": true\n }\n }; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-grid-pattern: [PENDING DOC]\n * @prop --sy-grid-gutter-size: [PENDING DOC]\n * @prop --sy-grid-alignment: [PENDING DOC]\n * @prop --sy-grid-count: [PENDING DOC]\n * @prop --sy-grid-offset: [PENDING DOC]\n * @prop --sy-grid-max-width-xs: Grid max width xs.\n * @prop --sy-grid-max-width-sm: Grid max width sm.\n * @prop --sy-grid-max-width-md: Grid max width md.\n * @prop --sy-grid-max-width-lg: Grid max width lg.\n * @prop --sy-grid-max-width-xl: Grid max width xl.\n * @prop --sy-grid-max-width-xxl: Grid max width xxl.\n * @prop --sy-grid-gap: Grid gap - It must be a single number value and defines both row and column gap\n * @prop --sy-grid-row-gap: Grid row gap.\n * @prop --sy-grid-column-gap: Grid column gap.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n display: flex;\n flex-wrap: wrap;\n min-width: 0;\n margin-right: calc(var(--sy-grid-column-gap, var(--sy-grid-gap, var(--sy-spacer-5))) * -.5);\n margin-left: calc(var(--sy-grid-column-gap, var(--sy-grid-gap, var(--sy-spacer-5))) * -.5);\n row-gap: var(--sy-grid-row-gap, var(--sy-grid-gap, var(--sy-spacer-5)));\n}","import { Component, Host, h } from '@stencil/core';\nexport class Row {\n render() {\n return (h(Host, null,\n h(\"slot\", null)));\n }\n static get is() { return \"sy-row\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-sidebar-width: Sidebar width.\n * @prop --sy-sidebar-height: Sidebar height.\n * @prop --sy-sidebar-color: Sidebar color.\n * @prop --sy-sidebar-background-color: Sidebar background color.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n position: fixed;\n z-index: 1050;\n display: block;\n height: 100%;\n}\n\n.sy-sidebar {\n position: absolute;\n z-index: 1050;\n display: flex;\n flex-direction: column;\n width: var(--sy-sidebar-width, var(--sy-spacer-12));\n height: var(--sy-sidebar-height, 100%);\n color: var(--sy-sidebar-color, var(--sy-foreground-high-emphasis));\n background-color: var(--sy-sidebar-background-color, var(--sy-surface));\n}\n\n:host([hide-backdrop]) sy-backdrop {\n --sy-backdrop-background-color: transparent;\n}","import { Component, Host, h, Method, Element, Listen, Event, Prop } from '@stencil/core';\n/**\n * @slot - Designed to fill sidebar's content.\n */\nexport class Sidebar {\n constructor() {\n /**\n * If true, the backdrop won't be shown.\n */\n this.hideBackdrop = false;\n /**\n * If true, the sidebar will be shown.\n */\n this.visible = false;\n }\n /**\n * Method to hide the sidebar.\n */\n async hide() {\n this.visible = false;\n this.sySidebarDidHide.emit();\n }\n /**\n * Method to show the sidebar.\n */\n async show() {\n this.visible = true;\n this.sySidebarDidShow.emit();\n }\n /**\n * Method that toggle the sidebar\n */\n async toggle() {\n if (this.visible) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n onKeydown(ev) {\n if (ev.key === 'Escape' && this.visible) {\n this.hide();\n }\n }\n getBackdroprAttributes() {\n const attributes = !this.visible ? { hidden: true } : {};\n return attributes;\n }\n render() {\n return (h(Host, null,\n h(\"sy-backdrop\", Object.assign({}, this.getBackdroprAttributes(), { onClick: () => this.hide() })),\n h(\"div\", { class: \"sy-sidebar\", style: { visibility: this.visible ? '' : 'hidden' } },\n h(\"slot\", null))));\n }\n static get is() { return \"sy-sidebar\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"hideBackdrop\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the backdrop won't be shown.\"\n },\n \"attribute\": \"hide-backdrop\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"visible\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, the sidebar will be shown.\"\n },\n \"attribute\": \"visible\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n }; }\n static get events() { return [{\n \"method\": \"sySidebarDidHide\",\n \"name\": \"sySidebarDidHide\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the sidebar is hidden.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"sySidebarDidShow\",\n \"name\": \"sySidebarDidShow\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the sidebar is shown.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }]; }\n static get methods() { return {\n \"hide\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Method to hide the sidebar.\",\n \"tags\": []\n }\n },\n \"show\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Method to show the sidebar.\",\n \"tags\": []\n }\n },\n \"toggle\": {\n \"complexType\": {\n \"signature\": \"() => Promise\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise\"\n },\n \"docs\": {\n \"text\": \"Method that toggle the sidebar\",\n \"tags\": []\n }\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get listeners() { return [{\n \"name\": \"keydown\",\n \"method\": \"onKeydown\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }]; }\n}\n",":host {\n display: block;\n --sy-dialog-size-md: 398px;\n --sy-dialog-content-padding-bottom: 24px;\n --sy-dialog-content-padding-left: 24px;\n --sy-dialog-content-padding-right: 24px;\n\n .dialog-content {\n text-align: center;\n margin-bottom: 24px;\n\n sy-text[type=\"h4\"] {\n margin-bottom: 4px;\n }\n\n sy-text[type=\"body\"] {\n color: #495057;\n }\n }\n}\n","import { Component, Host, h, Method, Prop, Event, Listen, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'sy-site-alert-modal',\n styleUrl: 'alert-modal.scss',\n shadow: true,\n})\nexport class AlertModal {\n /**\n * Dialog title\n */\n @Prop() dialogTitle: string;\n\n /**\n * Dialog message\n */\n @Prop() dialogMessage: string;\n\n private dialog: HTMLSyDialogElement;\n\n /**\n * Shows the modal\n */\n @Method()\n async open(): Promise {\n this.dialog.open();\n }\n\n /**\n * Emmitted when sy-dialog is closed\n */\n @Event({ bubbles: true, composed: true }) sySiteAlertModalDidClose: EventEmitter;\n\n @Listen('syDialogDidClose')\n emitSySiteAlertModalDidClose(event: CustomEvent): void {\n this.sySiteAlertModalDidClose.emit(event.detail);\n }\n\n render() {\n return (\n \n (this.dialog = el)} hideClose>\n
\n {this.dialogTitle}\n {this.dialogMessage}\n
\n
\n
\n );\n }\n}\n","import { Component, Host, h, Method, State, Watch } from '@stencil/core';\nimport { getAuthState } from '../sy-site-auth/store/store';\nimport { getBaseURL } from '../../../env/enviroment';\nimport { SiteI18nConfig } from '../../models/i18n';\nimport { Consumes } from '@sydle/sydle-ui';\n\n@Component({\n tag: 'sy-site-api',\n shadow: true,\n})\nexport class SySiteApi {\n private apiUrl = getBaseURL();\n\n private getBearerToken() {\n if (!getAuthState('isAuthenticated')) return null;\n return `Bearer ${getAuthState('user') && getAuthState('user').token}`;\n }\n\n private waitForLanguageResolve;\n private waitForLanguage = new Promise(resolve => {\n this.waitForLanguageResolve = resolve;\n });\n\n @Consumes('i18next:language') @State() acceptLanguage: string;\n\n @Watch('acceptLanguage')\n acceptLanguageWatcher(): void {\n if (this.acceptLanguage) {\n this.waitForLanguageResolve();\n }\n }\n\n /**\n * Method to make a request do siteFacadeSYDLE on site-sydle application\n * @param path\n * @param body\n * @returns\n */\n @Method()\n async sendRequest(path: string, body: any, facade?: string): Promise {\n const token = this.getBearerToken();\n facade = facade || 'siteFacadeSYDLE';\n return fetch(this.apiUrl + 'com.sydle.growth.marketing/' + facade + '/' + path, {\n headers: {\n 'accept': 'application/json',\n 'content-type': 'application/json',\n ...(token && { authorization: token }),\n ...(this.acceptLanguage && { 'accept-language': this.acceptLanguage }),\n },\n body: JSON.stringify(body),\n method: 'POST',\n })\n .then(response => response.json())\n .catch(e => console.log(e));\n }\n\n /**\n * Method try to make a get request do siteFacadeSYDLE on site-sydle application\n */\n @Method()\n async sendRequestGet(path: string, body: any): Promise {\n let url = this.apiUrl + 'com.sydle.growth.marketing/siteFacadeSYDLE/' + path;\n url += `?_body=${encodeURIComponent(JSON.stringify(body))}${this.acceptLanguage ? `&_lang=${this.acceptLanguage}` : ''}`;\n const token = this.getBearerToken();\n\n if (url.length < 2000) {\n return fetch(url, {\n cache: 'force-cache',\n headers: {\n 'accept': 'application/json',\n 'content-type': 'application/json',\n ...(token && { authorization: token }),\n ...(this.acceptLanguage && { 'accept-language': this.acceptLanguage }),\n },\n method: 'GET',\n })\n .then(response => response.json())\n .catch(e => console.log(e));\n } else {\n return this.sendRequest(path, body);\n }\n }\n\n /**\n * Method to get a portal's i18n config\n * TODO: Obter configuração do Site da SYDLE e não do Portal do Blog\n * @param portalId\n */\n @Method()\n async getSiteI18nConfig(portalId: string): Promise {\n return this.sendRequestGet('getSiteI18nConfig', {\n portalId: portalId,\n });\n }\n\n /**\n * Method to get site's language package\n * @param language\n */\n @Method()\n async getTranslationBundle(language: string): Promise {\n return this.sendRequestGet('getTranslationBundle', { language });\n }\n\n /**\n * Method to get user language based on country ip\n */\n @Method()\n async getCountryLanguage(): Promise {\n return this.sendRequest('getCountryLanguage', { headers: null });\n }\n\n /**\n * Method to create a quiz answer\n */\n @Method()\n async createQuizAnswer(quizObj: string): Promise {\n return this.sendRequest(\n 'quizAnswer',\n {\n _id: quizObj,\n },\n 'quizApi',\n );\n }\n\n /**\n *\n * Method to load quiz info\n */\n @Method()\n async loadQuizData(quizObj: string): Promise {\n return this.sendRequest(\n 'getQuiz',\n {\n _id: quizObj,\n },\n 'quizApi',\n );\n }\n\n /**\n *\n * Method to answer a quiz question\n */\n @Method()\n async answerQuizQuestion(quizAnswerObj: string, answerIndex: number, questionIndex: number): Promise {\n return this.sendRequest(\n 'answerQuestion',\n {\n _id: quizAnswerObj,\n answerIndex: answerIndex,\n questionIndex: questionIndex,\n },\n 'quizApi',\n );\n }\n\n /**\n *\n * Method to submit a quiz answer\n */\n @Method()\n async submitQuizAnswer(quizAnswerObj: string): Promise {\n return this.sendRequest(\n 'answerSubmit',\n {\n _id: quizAnswerObj,\n },\n 'quizApi',\n );\n }\n /*\n * Method to get site's menu configuration\n * @param language\n */\n @Method()\n async getMenuConfig(): Promise {\n await this.waitForLanguage;\n return this.sendRequestGet('getMenuConfigs', {});\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n","const TOKEN_RE = /[?&]accessToken=[^&]+/;\nconst ERROR_RE = /[?&]error=[^&]+/;\n\nexport const hasAuthParams = (searchParams = window.location.search): boolean =>\n TOKEN_RE.test(searchParams) ||\n ERROR_RE.test(searchParams);\n\nexport const isPayloadExpired = (payloadExp: number): boolean => {\n return new Date().getTime() > payloadExp * 1000;\n};\n\nexport const lt2DaysToExpire = (payloadExp: number): boolean => {\n const today = new Date().getTime();\n return (today + 2 * 24 * 3600 * 1000 > payloadExp * 1000);\n};\n","import { getBaseURL, getOrg } from \"../../../../env/enviroment\";\nimport { User } from \"../store/store\";\nimport { isPayloadExpired } from \"../utils/utils\";\n\nexport type LoginData = {\n authenticator: `${string}SignIn`;\n redirect: string;\n}\n\nconst AuthClient = {\n\n getAuthenticatedUser(): User {\n let user = null;\n try {\n user = JSON.parse(localStorage[\"siteUser\"]);\n }\n // eslint-disable-next-line no-empty\n catch (e) { }\n\n if (user) {\n if (isPayloadExpired(user.payload.exp)) {\n this.logout();\n return null;\n }\n return user;\n }\n return null;\n },\n\n getToken(withBearer = false): string {\n const user = this.getAuthenticatedUser();\n if(user) {\n let token = user && user.token;\n token = withBearer ? \"Bearer \" + token : token;\n return token;\n }\n return null;\n },\n\n buildAuthorizeUrl(login: LoginData): string {\n const URLI_pos_redirect = window.location.origin + login.redirect;\n return `${getBaseURL()}sys/auth/sso/signin/${getOrg()}/site-sydle.${login.authenticator}SignIn?one_redirect=${URLI_pos_redirect}`;\n },\n\n getUser(): User {\n const siteUser: any = window.localStorage.getItem('siteUser') || '';\n\n if (!siteUser) {\n return null;\n }\n\n const user = JSON.parse(siteUser);\n if (isPayloadExpired(user.exp)) {\n AuthClient.logout();\n return null;\n }\n return user;\n },\n\n loginWithRedirect(data: LoginData): void {\n const url = AuthClient.buildAuthorizeUrl(data);\n window.localStorage['providerSignIn'] = data.authenticator;\n // deve usar o assign ou outra função que permita sair para uma url externa\n // history.push(url);\n window.location.assign(url);\n },\n\n async renewToken(accessToken: string\n ): Promise {\n const user = await fetch(`${getBaseURL()}sys/auth/renewToken?` + accessToken, {\n method: \"GET\",\n mode: 'cors',\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json-patch+json\"\n },\n }).then(response => {\n if (response.ok) {\n return response.json().then(data => data);\n } else {\n response.json().then(err => {\n throw new Error('Erro ao realizar requisição do renewToken: ' + JSON.stringify(err));\n })\n }\n });\n if (user && user.accessToken) {\n window.localStorage.setItem('siteUser', JSON.stringify({\n token: user.accessToken.token,\n ...user.accessToken.payload\n }));\n\n return user;\n\n } else {\n throw new Error('Erro: usuário retornado inválido');\n }\n },\n\n async login(\n ): Promise {\n const obj_url = new URL(window.location.href);\n const queryParams = new URLSearchParams(obj_url.search);\n\n const accessToken = queryParams.get('accessToken') || '';\n\n window.localStorage['providerSignIn'] || null;\n\n return AuthClient.renewToken(accessToken);\n },\n\n isAuthenticated(): boolean {\n const user = AuthClient.getUser();\n return !!user;\n },\n\n logout(): void {\n window.localStorage.removeItem('siteUser');\n window.localStorage.removeItem('providerSignIn');\n },\n\n initEmailAuth(body: any): Promise {\n return fetch(`${getBaseURL()}com.sydle.growth.marketing/siteFacadeSYDLE/initAuthentication/62e8170342163e3547e99fd4`, {\n\n method: \"POST\",\n mode: 'cors',\n headers: {\n \"Authorization\": `${this.getToken(true)}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(body)\n })\n },\n\n emailAuth(params: { email: any; code: any; redirect: any; }): void {\n window.location.replace(`${getBaseURL()}sys/auth/sso/signin/${getOrg()}/site-sydle.emailAuthenticator?email=${params.email}&code=${params.code}&one_redirect=${window.location.origin + params.redirect}`);\n },\n}\n\nexport default AuthClient;\n","import { Component, Host, h, Prop, Method, Listen, State } from '@stencil/core';\nimport AuthClient from './services/authClient';\nimport { hasAuthParams, lt2DaysToExpire } from './utils/utils';\nimport { dispatch } from './store/store';\n@Component({\n tag: 'sy-site-auth',\n shadow: false,\n})\nexport class SySiteAuth {\n private loginComponentEl: any;\n\n private email: string;\n\n private isReadyResolve = null;\n private isReady = new Promise(resolve => {\n this.isReadyResolve = resolve;\n });\n\n /**\n * Resolves when auth is ready, i.e. logged-in user is available\n */\n @Method()\n whenReady(): Promise {\n return this.isReady;\n }\n\n @State() renderLogin = false;\n\n /**\n * Login component\n */\n @Prop() component: string;\n\n /**\n * Login component properties\n */\n @Prop() loginComponentProps: { [prop: string]: any } = {};\n\n private removeAcessTokenFromUrl = () => {\n const url = new URL(window.location.href);\n const queryParams = new URLSearchParams(url.search);\n\n if (queryParams.has('accessToken')) {\n queryParams.delete('accessToken');\n }\n\n return url.pathname + queryParams.toString();\n };\n\n private handleResponse(response: Response) {\n if (!response.ok) {\n throw response;\n }\n return response.json();\n }\n\n @Listen('sySiteLoginDidSubmit')\n handleLogin(event: CustomEvent): void {\n const obj_url = new URL(window.location.href);\n const queryParams = new URLSearchParams(obj_url.search);\n const redirect = queryParams.get('redirect') || window.location.pathname;\n if (event.detail.type === 'social') {\n AuthClient.loginWithRedirect({ authenticator: event.detail.data, redirect });\n } else if (event.detail.type === 'email') {\n this.email = event.detail.data.email;\n AuthClient.initEmailAuth(event.detail.data)\n .then(this.handleResponse)\n .then(() => {\n this.loginComponentEl.changeEmailPhase('token');\n })\n .catch(error => {\n error.json().then(messages => {\n let errorMessage = '';\n messages._messages.forEach(message => (errorMessage += `${message.text} \\n`));\n this.loginComponentEl.setError(errorMessage);\n this.loginComponentEl.changeEmailPhase('error');\n });\n });\n } else if (event.detail.type === 'token') {\n AuthClient.emailAuth({ email: this.email, code: event.detail.data, redirect });\n }\n }\n\n /**\n * Logout user\n */\n @Method()\n async logout(): Promise {\n AuthClient.logout();\n dispatch({ type: 'LOGOUT' });\n }\n\n /**\n * Logs the user in\n */\n @Method()\n async login(): Promise {\n this.loginComponentEl.open();\n }\n\n componentWillRender() {\n const fn = async () => {\n dispatch({ type: 'INITIALISED' });\n\n try {\n if (hasAuthParams()) {\n await AuthClient.login();\n history.replaceState(\n {\n id: 'No token',\n source: 'web',\n },\n 'No token',\n this.removeAcessTokenFromUrl(),\n );\n dispatch({ type: 'COMPLETE', user: AuthClient.getUser() });\n } else {\n if (AuthClient.isAuthenticated()) {\n const user = AuthClient.getUser();\n if (user && lt2DaysToExpire(user.exp)) {\n await AuthClient.renewToken(user.token);\n dispatch({ type: 'COMPLETE', user });\n } else {\n dispatch({ type: 'COMPLETE', user });\n }\n } else {\n dispatch({ type: 'COMPLETE', user: null });\n }\n }\n this.isReadyResolve();\n } catch (error) {\n dispatch({ type: 'ERROR', error: error });\n }\n };\n fn();\n }\n\n render() {\n const LoginComponent = this.component;\n\n return (\n \n (this.loginComponentEl = el)} {...this.loginComponentProps}>\n \n \n );\n }\n}\n",":host {\n display: block;\n\n div {\n margin-top: 20px;\n padding:0;\n width: 30px;\n height: 15px;\n padding: .95rem 1.3rem;\n background-color: transparent;\n border: transparent;\n transform: rotate(0deg);\n transition: .5s ease-in-out;\n cursor: pointer;\n z-index: 3;\n\n &:focus {\n outline: transparent;\n }\n\n span {\n display: block;\n position: absolute;\n height: 2px;\n width: 22px;\n background: #fff;\n opacity: 1;\n left: 0;\n transform: rotate(0deg);\n transition: .25s ease-in-out;\n }\n\n span:nth-child(1) {\n top: 6.5px;\n }\n\n span:nth-child(2), span:nth-child(3) {\n top: calc(6.5px + 6px);\n }\n }\n .open span:nth-child(1) {\n top: calc(6.5px + 6px);\n }\n\n .open span:nth-child(1) {\n transform: rotate(45deg);\n }\n\n .open span:nth-child(2) {\n transform: rotate(-45deg);\n }\n}\n","import { Component, Host, h, State, EventEmitter, Event, Method } from '@stencil/core';\n\n@Component({\n tag: 'sy-site-burger-icon',\n styleUrl: 'site-burger-icon.scss',\n shadow: true,\n})\nexport class SiteBurgerIcon {\n\n private element: HTMLElement;\n @State() opened = false;\n\n /**\n * Emitted when burger is open\n */\n @Event({ bubbles: true }) sySiteBurgerIconDidOpen: EventEmitter;\n\n /**\n * Emitted when burger is closed\n */\n @Event({ bubbles: true }) sySiteBurgerIconDidClose: EventEmitter;\n\n /**\n * Opens the burger\n */\n @Method()\n async open(): Promise {\n this.element.classList.add('open');\n this.opened = true;\n this.sySiteBurgerIconDidOpen.emit();\n }\n\n /**\n * Closes the burger\n */\n @Method()\n async close(): Promise {\n this.element.classList.remove('open');\n this.opened = false;\n this.sySiteBurgerIconDidClose.emit();\n }\n\n /**\n * Toggle the burger\n */\n @Method()\n async toggle(): Promise {\n if (this.opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n render() {\n return (\n \n
this.element = el} onClick={() => this.toggle()}>\n \n \n
\n
\n );\n }\n\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n}\n\nfunction getDefaults() {\n return {\n handleEmptyResourcesAsFailed: true\n };\n}\n\nvar Backend = /*#__PURE__*/function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.backends = [];\n this.type = 'backend';\n this.init(services, options);\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nextOptions = arguments.length > 2 ? arguments[2] : undefined;\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.options.backends && this.options.backends.forEach(function (b, i) {\n _this.backends[i] = _this.backends[i] || createClassOnDemand(b);\n\n _this.backends[i].init(services, _this.options.backendOptions && _this.options.backendOptions[i] || {}, i18nextOptions);\n });\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var _this2 = this;\n\n var bLen = this.backends.length;\n\n var loadPosition = function loadPosition(pos) {\n if (pos >= bLen) return callback(new Error('non of the backend loaded data;', true)); // failed pass retry flag\n\n var isLastBackend = pos === bLen - 1;\n var lengthCheckAmount = _this2.options.handleEmptyResourcesAsFailed && !isLastBackend ? 0 : -1;\n var backend = _this2.backends[pos];\n\n if (backend.read) {\n backend.read(language, namespace, function (err, data) {\n if (!err && data && Object.keys(data).length > lengthCheckAmount) {\n callback(null, data, pos);\n savePosition(pos - 1, data); // save one in front\n } else {\n loadPosition(pos + 1); // try load from next\n }\n });\n } else {\n loadPosition(pos + 1); // try load from next\n }\n };\n\n var savePosition = function savePosition(pos, data) {\n if (pos < 0) return;\n var backend = _this2.backends[pos];\n\n if (backend.save) {\n backend.save(language, namespace, data);\n savePosition(pos - 1, data);\n } else {\n savePosition(pos - 1, data);\n }\n };\n\n loadPosition(0);\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n this.backends.forEach(function (b) {\n if (b.create) b.create(languages, namespace, key, fallbackValue);\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexport default Backend;\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint-disable max-classes-per-file */\nvar Storage = /*#__PURE__*/function () {\n function Storage(options) {\n _classCallCheck(this, Storage);\n\n this.store = options.store;\n }\n\n _createClass(Storage, [{\n key: \"setItem\",\n value: function setItem(key, value) {\n if (this.store) {\n try {\n this.store.setItem(key, value);\n } catch (e) {// f.log('failed to set value for key \"' + key + '\" to localStorage.');\n }\n }\n }\n }, {\n key: \"getItem\",\n value: function getItem(key, value) {\n if (this.store) {\n try {\n return this.store.getItem(key, value);\n } catch (e) {// f.log('failed to get value for key \"' + key + '\" from localStorage.');\n }\n }\n\n return undefined;\n }\n }]);\n\n return Storage;\n}();\n\nfunction getDefaults() {\n return {\n prefix: 'i18next_res_',\n expirationTime: 7 * 24 * 60 * 60 * 1000,\n defaultVersion: undefined,\n versions: {},\n store: typeof window !== 'undefined' ? window.localStorage : null\n };\n}\n\nvar Cache = /*#__PURE__*/function () {\n function Cache(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Cache);\n\n this.init(services, options);\n this.type = 'backend';\n }\n\n _createClass(Cache, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), this.options), options);\n this.storage = new Storage(this.options);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var nowMS = new Date().getTime();\n\n if (!this.storage.store) {\n return callback(null, null);\n }\n\n var local = this.storage.getItem(\"\".concat(this.options.prefix).concat(language, \"-\").concat(namespace));\n\n if (local) {\n local = JSON.parse(local);\n var version = this.getVersion(language);\n\n if ( // expiration field is mandatory, and should not be expired\n local.i18nStamp && local.i18nStamp + this.options.expirationTime > nowMS // there should be no language version set, or if it is, it should match the one in translation\n && version === local.i18nVersion) {\n delete local.i18nVersion;\n delete local.i18nStamp;\n return callback(null, local);\n }\n }\n\n return callback(null, null);\n }\n }, {\n key: \"save\",\n value: function save(language, namespace, data) {\n if (this.storage.store) {\n data.i18nStamp = new Date().getTime(); // language version (if set)\n\n var version = this.getVersion(language);\n\n if (version) {\n data.i18nVersion = version;\n } // save\n\n\n this.storage.setItem(\"\".concat(this.options.prefix).concat(language, \"-\").concat(namespace), JSON.stringify(data));\n }\n }\n }, {\n key: \"getVersion\",\n value: function getVersion(language) {\n return this.options.versions[language] || this.options.defaultVersion;\n }\n }]);\n\n return Cache;\n}();\n\nCache.type = 'backend';\n\nexport default Cache;\n","import { BackendModule, ResourceKey } from \"i18next\";\n\nconst SySiteBackend: BackendModule & { siteApi: HTMLSySiteApiElement } = {\n type: 'backend',\n siteApi: null,\n init(_services, options: { siteApi: HTMLSySiteApiElement }, _i18nextOptions) {\n this.siteApi = options.siteApi;\n },\n read(language, _namespace, callback) {\n this.siteApi.getTranslationBundle(language)\n .then((translationBundle: ResourceKey) => {\n callback(null, translationBundle)\n });\n }\n}\n\nexport default SySiteBackend\n","import { LanguageDetectorAsyncModule } from \"i18next\";\n\nconst SySiteLanguageDetector: LanguageDetectorAsyncModule & { portalId: string, siteApi: HTMLSySiteApiElement } = {\n type: 'languageDetector',\n async: true,\n portalId: \"\",\n siteApi: null,\n init: function(_services, options: { catalogByLanguagePromise: Promise }, _i18nextOptions) {\n this.catalogByLanguagePromise = options.catalogByLanguagePromise;\n },\n detect: async function(callback) {\n const catalogByLanguage = await this.catalogByLanguagePromise;\n \n const getLanguage = () => {\n const findLangByPath = (languagePath) => {\n return catalogByLanguage.find(config => config.path === languagePath)?.language;\n };\n\n const languagePath = window.location.pathname.split(\"/\").find(path => path.match(/^([a-z]{2})$/)) ?? null;\n return findLangByPath(languagePath) ?? \"en\"\n }\n \n window.addEventListener('popstate', (_e: PopStateEvent) => {\n callback(getLanguage());\n });\n\n callback(getLanguage());\n\n },\n cacheUserLanguage: (_lng) => {}\n}\n\nexport default SySiteLanguageDetector\n","import { Component, Element, h, Host, Method, Prop } from '@stencil/core';\nimport i18next, { i18n, TFunction } from 'i18next';\nimport ChainedBackend from 'i18next-chained-backend';\nimport LocalStorageBackend from 'i18next-localstorage-backend';\nimport { SiteI18nConfig } from '../../models/i18n';\nimport SySiteBackend from './sy-site-i18next-backend';\nimport SySiteLanguageDetector from './sy-site-i18next-detector';\n@Component({\n tag: 'sy-site-i18n',\n shadow: false,\n})\nexport class SySiteI18n {\n\n static i18n: i18n = i18next.createInstance();\n static t: TFunction = SySiteI18n.i18n.t.bind(SySiteI18n.i18n);\n\n @Element() host: HTMLSySiteI18nElement;\n\n private isReadyResolve = null;\n private isReady = new Promise(resolve => {\n this.isReadyResolve = resolve;\n });\n\n private catalogByLanguage: any;\n\n @Prop() siteApi!: HTMLSySiteApiElement;\n\n /**\n * _id of Site portal\n */\n @Prop() portalId: string;\n\n /**\n * Translation function\n */\n @Prop({ mutable: true }) t: TFunction;\n\n /**\n * i18next i18n instance\n */\n @Prop({ mutable: true }) i18n: i18n;\n\n @Method()\n whenReady(): Promise {\n return this.isReady;\n }\n\n componentWillLoad() {\n this.i18n = SySiteI18n.i18n;\n this.t = SySiteI18n.t;\n\n const catalogByLanguagePromise = this.siteApi.getSiteI18nConfig(this.portalId)\n .then((siteI18nConfig: SiteI18nConfig) => {\n this.catalogByLanguage = siteI18nConfig.catalogByLanguage;\n return this.catalogByLanguage;\n });\n\n SySiteI18n.i18n\n .use(SySiteLanguageDetector)\n .use(ChainedBackend)\n .init({\n ns: ['site'],\n defaultNS: 'site',\n fallbackLng: false,\n backend: {\n backends: [\n LocalStorageBackend,\n SySiteBackend\n ],\n backendOptions: [\n {\n expirationTime: 7 * 24 * 60 * 60 * 1000, // uma semana\n // expirationTime: 0.1 * 60 * 1000, // 0,1 minuto\n },\n {\n siteApi: this.siteApi\n }\n ]\n },\n detection: {\n catalogByLanguagePromise: catalogByLanguagePromise\n }\n })\n .then((_t) => {\n this.isReadyResolve();\n });\n\n window.addEventListener('popstate', (_e: PopStateEvent) => {\n const findLangByPath = (languagePath) => {\n return this.catalogByLanguage.find(config => config.path === languagePath)?.language;\n };\n\n const languagePath = window.location.pathname.split(\"/\").find(path => path.match(/^([a-z]{2})$/)) ?? null;\n \n this.i18n.changeLanguage(findLangByPath(languagePath) ?? \"en\");\n \n });\n }\n\n render() {\n return (\n \n \n \n );\n }\n\n}\n","import { SySiteI18n } from './sy-site-i18n';\n\n// TODO: reformar pra usar a config do site que também é usada no language detector\nexport function getLanguagePath(lang?: any) {\n const language = lang || SySiteI18n.i18n.language;\n switch (language) {\n case 'pt': {\n return '/br';\n }\n case 'en': {\n return '';\n }\n default: {\n return '/' + language;\n }\n }\n}\n","@import \"tokens\";\n@import \"classes\";\n","import { Component, Host, h, Prop, getAssetPath, State } from '@stencil/core';\nimport { Consumes } from '@sydle/sydle-ui';\nimport { Entry } from '../../models/site';\nimport { getLanguagePath } from '../sy-site-i18n/static-i18n';\nimport { LanguageLink } from '../sy-site-language-buttons/sy-site-language-buttons';\n\nexport declare type Item = {\n title: string;\n link: string;\n}\n\nexport declare type Category = {\n title: string;\n items: Array;\n}\n\n@Component({\n tag: 'sy-site-footer',\n styleUrl: './scss/index.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SySiteFooter {\n\n /**\n * Available languages in footer with fallback links in case alternate page is not available\n */\n @Prop() languages: LanguageLink[];\n\n /**\n * Link to privacy policy page\n */\n @Prop() policyLinks: Array;\n\n /**\n * Current year for copy right\n */\n @Prop() year = new Date().getFullYear();\n\n /**\n * Array of categories and items do be displayed in list\n */\n @Prop() categories: Array;\n\n /**\n * Path to logo image\n */\n @Prop() pathImage = './assets/sydle-logo-white.svg';\n\n /**\n * Footer logo href\n */\n @State() logoHref = '/';\n @Consumes('i18next:language') @State() lang: string;\n\n @State() isMobile = window.screen.width <= 450;\n\n private wrapCategory(category: Entry): HTMLSyColElement[] {\n if (category.children[0].children) {\n return (\n \n \n {category.children.map((child, i) => {\n return (\n \n \n \n )\n })\n }\n \n \n )\n }\n const wrap = new Array(category.colspan ? category.colspan : Math.ceil(category.children.length / 5)).fill([]);\n const colSize = category.colspan ? Math.ceil(category.children.length / category.colspan) : 5;\n return (\n \n \n {wrap.map((_, i) => {\n return (\n \n \n \n )\n })\n }\n \n \n )\n }\n\n private renderMobileCollapse(category: Entry) {\n return (\n \n \n \n )\n }\n\n private setFooterType(resizeQuery: MediaQueryList): void {\n if (resizeQuery.matches) this.isMobile = true;\n else this.isMobile = false;\n }\n\n\n componentWillLoad() {\n const resizeQuery = window.matchMedia('(max-width: 450px)');\n this.setFooterType(resizeQuery);\n resizeQuery.onchange = this.setFooterType.bind(this);\n }\n\n componentWillRender() {\n this.logoHref = window.location.origin + getLanguagePath(this.lang);\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n {this.isMobile ? (\n
\n {this.categories?.map(this.renderMobileCollapse)}\n
\n ) : (\n \n {this.categories?.map(this.wrapCategory)}\n \n )}\n
\n
\n \n
\n \n \n
\n
\n
\n
\n );\n }\n\n}\n","@import \"tokens\";\n@import \"classes\";\n","import { Component, Host, h, Prop, State } from '@stencil/core';\nimport { CookiesWindow } from '../../../models/site';\nimport { Item } from '../sy-site-footer';\n\n@Component({\n tag: 'sy-site-footer-copyright',\n styleUrl: './scss/index.scss',\n shadow: true,\n})\nexport class SySiteFooterCopyright {\n\n /**\n * Array of links to be displayed\n */\n @Prop() links: Array;\n\n /**\n * Current year for copyright\n */\n @Prop() year = new Date().getFullYear();\n\n /**\n * Company name to display in copyright notice\n */\n @Prop() name = \"SYDLE\";\n\n private observer: MutationObserver;\n\n @State() lgpdApi: CookiesWindow;\n\n componentWillLoad() {\n this.observer = new MutationObserver((mutations: MutationRecord[]) => {\n mutations.forEach(() => {\n this.lgpdApi = (window as unknown as CookiesWindow);\n });\n });\n this.observer.observe(document.body, { childList: true });\n }\n\n render() {\n return (\n \n {this.links?.map(item => {\n return (\n {item.title}\n )\n })}\n {this.lgpdApi && (
this.lgpdApi.LGPD_API.openConfigDialog()}>Cookies
)}\n
© {this.year} {this.name}. All rights reserved.
\n
\n );\n }\n\n}\n","@import \"tokens\";\n@import \"classes\";\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { Entry } from '../../../models/site';\n\n@Component({\n tag: 'sy-site-footer-list',\n styleUrl: './scss/index.scss',\n shadow: true,\n})\nexport class SySiteFooterList {\n\n /**\n * List title\n */\n @Prop() category: string;\n\n /**\n * category's subitems list title\n */\n @Prop() subCategory: string;\n\n /**\n * Array of items do be displayed in list\n */\n @Prop() items: Entry[];\n\n render() {\n return (\n \n
{this.category ?? '\\u00A0'}
\n {this.subCategory && (
{this.subCategory}
)}\n
\n \n );\n }\n\n}\n",":host {\n .collapse{\n border-bottom: 1px solid #2D3137;\n }\n ul {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: var(--sy-spacer-5, 24px);\n list-style: none;\n }\n .link {\n color: var(--sy-primary-contrast, #fff);\n text-decoration: none;\n display: block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n\n .link:hover,\n &:focus {\n color: hsla(0, 0%, 100%, .75);\n }\n @keyframes open {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(45deg);\n }\n }\n @keyframes close {\n from {\n transform: rotate(45deg);\n }\n to {\n transform: rotate(0deg);\n }\n }\n .footer-collapse {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n --sy-icon-color: white;\n\n sy-icon{\n animation-duration: 0.2s;\n animation-timing-function: ease-in-out;\n &.open {\n animation-name: open;\n transform: rotate(45deg);\n }\n &.close {\n animation-name: close;\n transform: rotate(0deg);\n }\n }\n\n &:hover {\n cursor: pointer;\n --sy-icon-color: hsla(0, 0%, 100%, .75);\n }\n }\n\n sy-collapse ul {\n margin-top: 16px;\n margin-bottom: 8px;\n margin-left: 16px;\n li {\n border: none;\n padding: 0px;\n font-size: 12px;\n }\n\n .link{\n color: hsla(0, 0%, 100%, .75);\n }\n\n .link:hover,\n &:focus {\n color: #fff;\n }\n }\n}\n","import { Component, Host, h, Prop, State, Listen } from '@stencil/core';\nimport { Entry } from '../../../models/site';\n\n@Component({\n tag: 'sy-site-footer-list-collapse',\n styleUrl: 'sy-site-footer-list-collapse.scss',\n assetsDirs: ['assets'],\n shadow: true,\n})\n\nexport class FooterListCollapse {\n /**\n * Sidebar link grid title\n */\n @Prop() entry: Entry;\n\n @State() isOpen = false;\n\n @Listen('syCollapseDidOpen')\n setOpenIcon(): void {\n this.isOpen = true;\n }\n\n @Listen('syCollapseDidClose')\n setClosedIcon(): void {\n this.isOpen = false;\n }\n\n render() {\n return (\n \n
\n \n {this.entry.title}\n \n
\n \n {this.entry.children[0].children ? (\n this.entry.children.map((child) => {\n return (\n
\n {child.title}\n
    \n {child.children.map((item, index) => {\n return (\n
  • \n \n {item.title}\n \n
  • \n );\n })}\n
\n
\n );\n })\n ) : (\n \n )}\n
\n \n
\n );\n }\n\n}\n","import { getBaseURL } from '../../env/enviroment';\nimport { getAuthState } from '../components/sy-site-auth/store/store';\nimport * as languages from '../components/sy-site-language-buttons/assets/data/languages.json';\n\nconst utils = {\n getImageUrl: (classId: string, objectId: string, photoId: string): string => {\n const token = getAuthState('isAuthenticated') && getAuthState('user').token;\n const link = `${getBaseURL()}_classId/${classId}/_download/${objectId}/${photoId}${token ? `?accessToken=${token}` : ''}`;\n return link;\n },\n locationPathIsNotHome: () => {\n let value = true;\n for (let i = 0; i < languages.circleLanguages.length; i++) {\n if (window.location.pathname === languages.circleLanguages[i].link || window.location.pathname === languages.circleLanguages[i].link.concat('/')) {\n value = false;\n break;\n }\n }\n return value;\n }\n};\n\nexport default utils;\n","@import \"tokens\";\n@import \"classes\";\n","import { Component, Host, h, Prop, getAssetPath, EventEmitter, Event, State, Listen } from '@stencil/core';\nimport utils from '../../utils/utils';\nimport { getAuthState, User } from '../sy-site-auth/store/store';\nimport { getLanguagePath } from '../sy-site-i18n/static-i18n';\nimport { Consumes } from '@sydle/sydle-ui';\n@Component({\n tag: 'sy-site-header',\n styleUrl: './scss/index.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SydleSiteHeader {\n @Consumes('i18next:instance') @State() siteI18n!: HTMLSySiteI18nElement;\n @Consumes('siteAuth') @State() siteAuth!: HTMLSySiteAuthElement;\n @Consumes('i18next:language') @State() lang: string;\n @Consumes('hideUserTab') @State() hideUserTab: boolean;\n\n private ctaButton;\n private user;\n\n @State() logoHref = '/';\n\n @State() searchHref = `/blog/search`;\n\n /**\n * Event emitted on nav button click\n */\n @Event() sySiteHeaderNavigate: EventEmitter;\n\n /**\n * Event emitted on logout\n */\n @Event() sySiteHeaderDidLogout: EventEmitter;\n\n /**\n * Event emitted on site cta click\n */\n @Event() syCtaDidClick: EventEmitter;\n\n /**\n * Text used for logout button\n */\n @Prop() logoutText = 'Sair';\n\n /**\n * Enable to use backlink\n */\n @Prop() backLink = false;\n\n /**\n * Link that backLink leads to\n */\n @Prop() backLinkHref = '/';\n\n /**\n * Title of cta header\n */\n @Prop() ctaTitle;\n\n /**\n * Icon of cta header\n */\n @Prop() ctaIcon;\n\n /**\n * Link that CTA leads to\n */\n @Prop() ctaHref;\n\n /**\n * Enable to use blog search button\n */\n @Prop() searchButton = false;\n\n @Listen('sySiteLoginDidClose', { target: 'body' })\n @Listen('sySiteAlertModalDidClose', { target: 'body' })\n @Listen('syBlogLoginDidClose', { target: 'body' })\n @Listen('syBlogAlertModalDidClose', { target: 'body' })\n enableNewsletterButton(): void {\n this.ctaButton.disabled = false;\n this.ctaButton.loading = false;\n }\n\n @Listen('sySiteLogoutDropdownContentDidLogout')\n logout() {\n this.sySiteHeaderDidLogout.emit(this.user);\n this.siteAuth.logout();\n }\n\n componentWillRender() {\n this.logoHref = window.location.origin + getLanguagePath(this.lang);\n this.searchHref = `${getLanguagePath(this.lang)}/blog/search`;\n }\n\n private handleCtaClick(_event: Event) {\n if (this.ctaHref) {\n window.location.assign(this.ctaHref);\n }\n this.ctaButton.disabled = true;\n this.ctaButton.loading = true;\n this.syCtaDidClick.emit();\n }\n\n render() {\n this.user = getAuthState('user');\n return (\n \n
\n
\n {this.backLink ? (\n \n \n Voltar\n \n ) : (\n \n )}\n
\n\n \n\n
\n {this.ctaTitle && (this.user ? this.ctaTitle.toLowerCase() != 'login' : true) && (\n {\n this.ctaButton = el;\n }}\n onClick={e => this.handleCtaClick(e)}\n icon={this.ctaIcon}\n content=\"icon-right\"\n target=\"_self\"\n >\n {this.ctaTitle}\n \n )}\n\n {this.user && !this.hideUserTab\n ? [\n ,\n \n \n ,\n ]\n : null}\n {this.searchButton ? (\n \n \n \n ) : null}\n
\n
\n
\n );\n }\n}\n","@import \"tokens\";\n@import \"classes\";\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport * as languages from './assets/data/languages.json';\n\nexport declare type LanguageLink = {\n title: string;\n link: string;\n hreflang: string;\n};\n@Component({\n tag: 'sy-site-language-buttons',\n styleUrl: './scss/index.scss',\n assetsDirs: ['assets'],\n shadow: true,\n})\nexport class SySiteLanguageButtons {\n /**\n * Available languages with fallback links in case alternate page is not available\n */\n @Prop({ mutable: true }) languages: LanguageLink[];\n\n /**\n * Type of language display\n */\n @Prop({ reflect: true }) type: 'circle' | 'regular' = 'regular';\n\n private getLinkPathname(link: string) {\n const absoluteUrlRegex = new RegExp('^(?:[a-z+]+:)?//', 'i'); // ref: https://stackoverflow.com/questions/10687099/how-to-test-if-a-url-string-is-absolute-or-relative\n if (link.match(absoluteUrlRegex)) {\n return new URL(link).pathname;\n }\n return new URL(link, window.location.href).pathname;\n }\n\n private isPathOfCurrentLanguage(pathname: string) {\n const pathLanguageRegex = /^(\\/\\w{2})(?:$|\\/)/; // First directory consists of exactly 2 alphanumeric and is followed by / or end of string\n const currentPathLanguage = window.location.pathname.match(pathLanguageRegex)?.[1];\n const linkPathLanguage = pathname.match(pathLanguageRegex)?.[1];\n return currentPathLanguage === linkPathLanguage;\n }\n\n private observer: MutationObserver;\n\n private updateLanguageHrefs(alternateLinks: HTMLLinkElement[]) {\n this.languages = this.languages.map(lang => {\n const alternateLink = alternateLinks.find(link => link.hreflang === lang.hreflang && link.type !== 'application/rss+xml');\n return alternateLink ? { ...lang, link: alternateLink.href } : lang;\n });\n }\n\n componentWillLoad() {\n this.languages = this.type === 'circle' ? languages.circleLanguages : languages.regularlanguages;\n this.updateLanguageHrefs(Array.from(document.head.querySelectorAll('link[rel=alternate]')));\n this.observer = new MutationObserver((mutations: MutationRecord[]) => {\n mutations.forEach(mutation => {\n const linkNodes = Array.from(mutation.addedNodes).filter(node => node.nodeName === 'LINK');\n this.updateLanguageHrefs(linkNodes.map(node => node as HTMLLinkElement));\n });\n });\n\n this.observer.observe(document.head, { childList: true });\n }\n\n render() {\n return (\n \n {this.languages?.map((language, index) => {\n return (\n \n \n {language.title}\n \n \n );\n })}\n \n );\n }\n}\n","import { getElement, forceUpdate } from \"@stencil/core\";\nimport { SySiteI18n } from \"./sy-site-i18n\"\n\n// todo add lista de eventos escutáveis\nexport function i18nUpdateComponent() {\n return (target: any, _propertyKey: string) => {\n const { componentWillLoad } = target;\n target.componentWillLoad = async function () {\n SySiteI18n.i18n.on('languageChanged', _lang => {\n const host = getElement(this);\n forceUpdate(host);\n });\n return componentWillLoad && componentWillLoad.call(this);\n };\n };\n}\n",":host {\n position: sticky;\n top: 0;\n z-index: 10002;\n display: block;\n width: 100%;\n background-color: #237ad9;\n\n .container {\n display: none;\n\n &.open {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n height: 44px;\n padding-right: 15px;\n padding-left: 15px;\n }\n\n a {\n margin-right: auto;\n margin-bottom: 0;\n margin-left: auto;\n color: white;\n }\n\n sy-icon {\n --sy-icon-color: white;\n\n cursor: pointer;\n }\n }\n}\n","import { Component, Host, h, Event, EventEmitter, State, Method, Prop } from '@stencil/core';\nimport { i18nUpdateComponent } from '../sy-site-i18n/sy-site-i18n-hooks';\n\n@Component({\n tag: 'sy-site-language-header',\n styleUrl: 'language-header.scss',\n shadow: true,\n})\nexport class LanguageHeader {\n @i18nUpdateComponent()\n @Prop() siteI18n!: HTMLSySiteI18nElement;\n @Prop() siteApi!: HTMLSySiteApiElement;\n private observer: MutationObserver;\n\n @State() visible = false;\n\n @State() href: string;\n\n @State() chooseLanguage: string;\n\n @State() userLang: string;\n\n /**\n * Emmitted when the language header is open\n */\n @Event() sySiteLanguageHeaderDidOpen: EventEmitter;\n\n /**\n * Emmitted when the language header is closed\n */\n @Event() sySiteLanguageHeaderDidClose: EventEmitter;\n\n private close() {\n this.visible = false;\n this.sySiteLanguageHeaderDidClose.emit();\n }\n\n private open() {\n this.visible = true;\n this.sySiteLanguageHeaderDidOpen.emit();\n }\n\n private getLanguagePreference() {\n return JSON.parse(localStorage.getItem('languagePreference'));\n }\n\n private setLanguagePreference(language) {\n // O idioma preferencial salvo no local storage do usuário deverá ser considerado tendo validade de 7 dias.\n const startDate = new Date().getTime();\n localStorage.setItem('languagePreference', JSON.stringify({ preferredLanguage: language.slice(0, 2), startDate: startDate }));\n }\n\n private isLanguagePreferenceExpired() {\n const daysToExpire = 7;\n const storedPreference = this.getLanguagePreference();\n if (storedPreference) {\n // One day in milliseconds\n const oneDay = 1000 * 60 * 60 * 24;\n // Calculating the time difference between two dates\n const diffInTime = new Date().getTime() - storedPreference.startDate;\n // Calculating the no. of days between two dates\n const diffInDays = Math.floor(diffInTime / oneDay);\n return diffInDays > daysToExpire;\n } else {\n return true;\n }\n }\n\n private async getLang() {\n if (this.isLanguagePreferenceExpired()) {\n if (sessionStorage.getItem('userCountryLanguage')) {\n return sessionStorage.getItem('userCountryLanguage');\n } else {\n return this.siteApi.getCountryLanguage().then(userLang => {\n sessionStorage.setItem('userCountryLanguage', userLang.lang);\n return userLang.lang;\n });\n }\n } else {\n return this.getLanguagePreference().preferredLanguage;\n }\n }\n\n /**\n * Sets up the language preferences\n */\n @Method()\n async setUp(): Promise {\n await this.siteI18n.whenReady();\n this.getLang().then(userLang => {\n this.userLang = userLang;\n const pageLang = this.siteI18n.i18n.language;\n const pageVersions = document.querySelectorAll('link[rel=\"alternate\"]');\n let ifHavePageLang = false;\n let pageVersionHref = '';\n\n pageVersions.forEach((pageVersion: HTMLLinkElement) => {\n if (userLang === pageVersion.hreflang.slice(0, 2) && pageVersion.type !== \"application/rss+xml\") {\n ifHavePageLang = true;\n pageVersionHref = pageVersion.href;\n }\n });\n if (pageLang !== userLang && ifHavePageLang) {\n const language = {\n en: 'Access english content.',\n pt: 'Acessar conteúdo em português.',\n es: 'Acceda a contenido en español.',\n };\n this.href = pageVersionHref;\n this.chooseLanguage = language[userLang];\n this.open();\n }\n });\n }\n\n private handleCloseClick() {\n this.setLanguagePreference(this.siteI18n.i18n.language);\n this.close();\n }\n\n private handleMessageClick() {\n this.setLanguagePreference(this.userLang);\n this.close();\n }\n\n componentWillLoad() {\n this.siteI18n.whenReady().then(() => {\n this.setUp();\n });\n\n this.observer = new MutationObserver((mutations: MutationRecord[]) => {\n mutations.forEach(() => {\n this.setUp();\n });\n });\n\n this.observer.observe(document.head, { childList: true });\n }\n\n render() {\n return (\n \n \n this.handleMessageClick()}>\n {this.chooseLanguage}\n \n this.handleCloseClick()}>\n \n \n );\n }\n}\n",":host {\n display: block;\n\n sy-text {\n padding-right: 40px;\n padding-left: 40px;\n }\n\n sy-divider {\n margin-top: 8px;\n }\n\n .logout {\n display: block;\n padding-top: 8px;\n padding-bottom: 4px;\n\n --sy-heading-h6-font-weight: 400;\n\n &:hover {\n cursor: pointer;\n background: #e9ecef linear-gradient(180deg, rgb(233 236 239 / 85%), #e9ecef) repeat-x;\n }\n }\n}\n","import { Component, Host, h, Prop, EventEmitter, Event, State } from '@stencil/core';\nimport { Consumes } from '@sydle/sydle-ui';\nimport { getAuthState } from '../sy-site-auth/store/store';\n\n@Component({\n tag: 'sy-site-logout-dropdown-content',\n styleUrl: 'scss/sy-site-logout-dropdown-content.scss',\n shadow: true,\n})\nexport class SySiteLogoutDropdownContent {\n @Consumes('siteAuth') @State() siteAuth: HTMLSySiteAuthElement;\n\n /**\n * Text used for logout button\n */\n @Prop() logoutText: string;\n\n /**\n * Event emitted on logout\n */\n @Event() sySiteLogoutDropdownContentDidLogout: EventEmitter;\n\n render() {\n const user = getAuthState('user');\n return (\n \n {user.name}\n \n {\n this.sySiteLogoutDropdownContentDidLogout.emit();\n }}\n >\n {this.logoutText}\n \n \n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, getElement, h, Host, Listen, Method, Prop, State, Watch, Element } from '@stencil/core';\nimport { Provides } from '@sydle/sydle-ui';\nimport { SySiteI18n } from '../sy-site-i18n/sy-site-i18n';\nimport { i18nUpdateComponent } from '../sy-site-i18n/sy-site-i18n-hooks';\nimport * as dataEN from './assets/data/data.en.json';\nimport * as dataES from './assets/data/data.es.json';\nimport * as dataPT from './assets/data/data.pt.json';\n\nconst STATIC_DATA = {\n en: dataEN,\n es: dataES,\n pt: dataPT,\n};\n\nfunction getStaticData(lang: string) {\n return STATIC_DATA[lang] || STATIC_DATA.en;\n}\n\n@Component({\n tag: 'sy-site-shell',\n styleUrl: 'sy-site-shell.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SySiteShell {\n private authResolve = null;\n private isAuthReady = new Promise(resolve => {\n this.authResolve = resolve;\n });\n\n @Element() el: HTMLSySiteShellElement;\n @i18nUpdateComponent() @Provides('i18next:instance') @State() siteI18n: HTMLSySiteI18nElement;\n @Provides('i18next:language') @State() lang = null;\n @Provides('i18next:t') @State() t = null;\n @Provides('siteApi') @State() siteApi: HTMLSySiteApiElement;\n @Provides('siteAuth') @State() siteAuth: HTMLSySiteAuthElement;\n @State() sidebarProps: any;\n @State() footerProps: any;\n @State() loadSidebar = false;\n @State() sidebar: HTMLSySiteSidebarElement;\n\n /**\n * Enable to use backlink\n */\n @Prop() backLink = false;\n\n /**\n * Link that backLink leads to\n */\n @Prop() backLinkHref;\n\n /**\n * Title of cta header\n */\n @Prop() ctaTitle;\n\n /**\n * Icon of cta header\n */\n @Prop() ctaIcon;\n\n /**\n * Link that CTA leads to\n */\n @Prop() ctaHref;\n\n /**\n * Enable to use blog search button\n */\n @Prop() searchButton = false;\n\n /**\n * Controls user tab visibility\n */\n @Provides(\"hideUserTab\") @Prop() hideUserTab = false;\n\n /**\n * Calls internal sidebar close function\n */\n @Method()\n async header_close() {\n getElement(this)?.shadowRoot.querySelector('sy-site-header')?.shadowRoot.querySelector('sy-site-burger-icon').close();\n }\n\n @Watch('lang')\n langWatcher(): void {\n this.siteApi.getMenuConfig().then(config => {\n this.sidebarProps = config.menuEntries;\n this.footerProps = config.footerEntries;\n });\n }\n\n private handleI18nRef(siteI18n) {\n this.siteI18n = siteI18n;\n this.siteI18n.whenReady().then(() => {\n this.lang = this.siteI18n.i18n.language;\n this.t = this.siteI18n.i18n.t;\n });\n\n SySiteI18n.i18n.on('languageChanged', lang => {\n this.lang = lang;\n this.t = this.siteI18n.i18n.t;\n });\n }\n\n private handleAuthRef(auth) {\n this.siteAuth = auth;\n this.authResolve();\n }\n\n @Listen('sySiteBurgerIconDidOpen')\n openSidebar(): void {\n this.loadSidebar = true;\n if (this.sidebar) this.sidebar.show();\n }\n\n @Listen('sySiteBurgerIconDidClose')\n closeSidebar(): void {\n this.sidebar.hide();\n }\n\n @Listen('sySiteSidebarDidShow')\n disableScroll(): void {\n document.body.style.overflow = 'hidden';\n }\n\n @Listen('sySiteSidebarDidHide')\n enableScroll(): void {\n document.body.style.overflow = 'auto';\n }\n\n @Listen('sySiteLanguageHeaderDidOpen')\n shiftSidebarDown(): void {\n this.sidebar.shift('97');\n }\n\n @Listen('sySiteLanguageHeaderDidClose')\n shiftSidebarUp(): void {\n this.sidebar.shift('53');\n }\n\n /**\n * Method to get site API\n */\n @Method()\n async getSiteApi(): Promise {\n return this.siteApi;\n }\n\n /**\n * Method to get site auth\n */\n @Method()\n async getSiteAuth(): Promise {\n await this.isAuthReady;\n return this.siteAuth;\n }\n\n private handleOnLoad(): void {\n this.el.shadowRoot.querySelector('sy-site-footer').style.visibility = 'inherit';\n }\n\n componentDidLoad() {\n setTimeout(() => this.handleOnLoad(), 2000);\n\n const options = {\n root: null,\n threshold: 0,\n };\n const target = this.el.shadowRoot.querySelector('sy-site-footer');\n const observer = new IntersectionObserver(() => {\n this.handleOnLoad();\n }, options);\n setTimeout(() => observer.observe(target), 1000);\n }\n\n render() {\n return (\n \n (this.siteApi = el)} />\n\n {this.siteApi && this.handleI18nRef(el)} siteApi={this.siteApi} portalId=\"5eab2bccc7fa677196cde228\" />}\n\n {this.siteI18n && (\n this.handleAuthRef(el)}\n component=\"sy-site-sign-in-wall\"\n loginComponentProps={{\n supportedNetworks: ['facebook', 'google', 'linkedin'],\n }}\n />\n )}\n\n {this.siteApi && this.siteI18n && }\n\n {this.siteI18n && this.siteAuth && (\n \n )}\n\n (this.sidebar = el)} entries={this.sidebarProps} />\n\n \n \n \n \n );\n }\n}\n","@use \"list\";\n@use \"sidebar\";","import { Component, Event, EventEmitter, getElement, h, Host, Listen, Method, Prop } from '@stencil/core';\nimport { Entry } from '../../models/site';\nimport utils from '../../utils/utils';\n\n@Component({\n tag: 'sy-site-sidebar',\n styleUrl: './scss/index.scss',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class SydleSiteSidebar {\n private sidebar: HTMLSySidebarElement;\n\n /**\n * List of icons to be displayed in the sidebar\n */\n @Prop() entries: Entry[];\n\n /**\n * Active icon\n */\n @Prop() activeIcon: string;\n\n /**\n * Event Emitted when sidebar shows up\n */\n @Event({ bubbles: true, composed: true }) sySiteSidebarDidShow: EventEmitter;\n\n /**\n * Event emitted when sidebar hide\n */\n @Event({ bubbles: true, composed: true }) sySiteSidebarDidHide: EventEmitter;\n\n /**\n * Method to show sidebar\n */\n @Method()\n async show(): Promise {\n const sidebar = this.sidebar;\n this.sidebar.show();\n sidebar.classList.add('open');\n sidebar.classList.remove('closed');\n }\n\n /**\n * Method to hide sidebar\n */\n @Method()\n async hide(): Promise {\n const sidebar = this.sidebar;\n sidebar.classList.add('closed');\n sidebar.classList.remove('open');\n }\n\n /**\n * Method to toggle sidebar visibility\n */\n @Method()\n async toggle(): Promise {\n this.sidebar.toggle();\n }\n\n /**\n * Shifts sidebar to given gap\n */\n @Method()\n async shift(gap: string): Promise {\n (this.sidebar).style.top = gap + 'px';\n }\n\n @Listen('sySidebarDidShow')\n emitShowEvent(): void {\n this.sySiteSidebarDidShow.emit();\n }\n\n @Listen('sySidebarDidHide')\n emitHideEvent(): void {\n this.sySiteSidebarDidHide.emit();\n }\n\n\n componentWillRender() {\n if (utils.locationPathIsNotHome()) {\n this.activeIcon = this.entries?.[0].children.find(icon => icon.href?.includes(window.location.pathname))?.title;\n }\n }\n\n private sidebarCloseHandler(event: Event) {\n event.stopPropagation();\n const shell = (getElement(this)?.parentNode as ShadowRoot)?.host as HTMLSySiteShellElement;\n shell?.header_close();\n }\n\n componentDidRender() {\n const sidebar = this.sidebar as HTMLSySidebarElement;\n const backdrop = sidebar.shadowRoot.querySelector('sy-backdrop');\n if (!backdrop) {\n return;\n }\n\n backdrop.innerHTML = `
`;\n const div = sidebar.shadowRoot.querySelector('sy-backdrop div');\n div.addEventListener('click', (event: Event) => this.sidebarCloseHandler(event));\n }\n\n @Listen('keydown', { target: 'body' })\n escapeKeyHandler(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.sidebar.visible) {\n this.sidebarCloseHandler(event);\n }\n }\n\n private handleAnimation(event: AnimationEvent): void {\n if (event.animationName === 'slide-left') {\n const sidebar = this.sidebar;\n sidebar.hide();\n }\n }\n\n render() {\n return (\n \n this.sidebar = el} onanimationend={(e: AnimationEvent) => this.handleAnimation(e)}>\n
\n \n
    \n {this.entries?.slice(1).map((link) => {\n return (\n
  • \n {link.children && link.children.length > 0 ? (\n \n ) : (\n \n {link.title}\n \n )\n }\n
  • \n );\n\n })}\n
\n \n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n\n --sy-icon-color: var(--sy-primary-contrast, #fff);\n --sy-text-small-font-size: 12.8px;\n\n #title-container {\n margin-bottom: 1rem;\n }\n\n .link {\n color: var(--sy-icon-color, #fff);\n text-decoration: none;\n }\n\n sy-grid {\n sy-cell {\n\n display: flex;\n flex-direction: column;\n\n .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n color: var(--sy-icon-color, #fff);\n text-decoration: none;\n background-color: #282c2f;\n border-color: #282c2f;\n border-radius: 6.4px;\n --sy-icon-stroke-width: 1px;\n\n &:hover,\n &:focus {\n background: #16191a;\n border-color: #111213;\n }\n\n &::before {\n display: block;\n padding-top: 100%;\n content: \"\";\n }\n\n &:focus {\n box-shadow: 0 0 0 .2rem rgb(72 76 78 / 50%);\n }\n\n }\n\n .name {\n text-decoration: none;\n color: unset;\n margin: 2px auto 0 auto;\n text-align: center;\n &:hover,\n &:focus {\n color: transparentize($color: #fff, $amount: 0.25);\n }\n }\n\n .active {\n background: var(--sy-accent, #2068c7);\n border-color: var(--sy-accent, #2068c7);\n\n &:hover,\n &:focus {\n color: #fff;\n background: var(--sy-accent-hover, #237ad9);\n }\n\n &:active {\n background-color: var(--sy-accent-active, #288cec);\n }\n }\n }\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { getBaseURL } from '../../../../env/enviroment';\nimport { Entry } from '../../../models/site';\n\nexport declare type IconLink = {\n icon: string;\n name: string;\n link: string;\n iconFamily: string;\n iconPath?: string;\n iconFillColor?: string;\n iconStrokeColor?: string;\n}\n\n@Component({\n tag: 'sy-site-sidebar-link-grid',\n styleUrl: 'sy-site-sidebar-link-grid.scss',\n assetsDirs: ['assets'],\n shadow: true,\n})\n\nexport class SidebarLinkGrid {\n\n private apiUrl = getBaseURL();\n\n /**\n * Sidebar link grid title\n */\n @Prop() category: string;\n\n /**\n * Array of links to be displayed in grid\n */\n @Prop() icons: Array;\n\n /**\n * Sets which icon is active\n */\n @Prop() activeIcon: string;\n\n private getIcon(icon) {\n if(icon.iconName) {\n return ;\n }\n else if (icon.icon) {\n return (\n \n );\n }\n else {\n return null;\n }\n }\n\n render() {\n return (\n \n
\n {this.category}\n
\n \n {this.icons?.map((icon) => {\n return (\n \n \n \n {this.getIcon(icon)}\n \n \n \n {icon.title}\n \n \n );\n })}\n \n
\n );\n }\n\n}\n",":host {\n ul {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: var(--sy-spacer-5, 24px);\n list-style: none;\n }\n\n .link {\n display: block;\n padding-top: .5rem;\n padding-bottom: .5rem;\n color: var(--sy-primary-contrast, #fff);\n text-decoration: none;\n\n &.active {\n color: var(--sy-accent, #2068c7);\n }\n }\n\n .link:hover,\n &:focus {\n color: hsl(0deg 0% 100% / 75%);\n }\n\n .sidebar-collapse {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n --sy-icon-color: #fff;\n\n &:hover {\n cursor: pointer;\n\n --sy-icon-color: hsl(0deg 0% 100% / 75%);\n }\n }\n\n .sublist {\n margin-left: 8px;\n margin-top: 8px;\n }\n\n sy-collapse ul {\n margin-top: 16px;\n margin-bottom: 8px;\n\n li {\n padding: 0;\n font-size: 12px;\n border: none;\n }\n\n .link {\n color: hsl(0deg 0% 100% / 75%);\n }\n\n .link:hover,\n &:focus {\n color: #fff;\n }\n }\n}\n","import { Component, Host, h, Prop, State, Listen, Fragment } from '@stencil/core';\nimport { Entry } from '../../../models/site';\nimport utils from '../../../utils/utils';\n\n@Component({\n tag: 'sy-site-sidebar-list-collapse',\n styleUrl: 'sy-site-sidebar-list-collapse.scss',\n assetsDirs: ['assets'],\n shadow: true,\n})\nexport class SidebarListCollapse {\n /**\n * Sidebar link grid title\n */\n @Prop() entry: Entry;\n\n @State() isOpen = false;\n\n @Listen('syCollapseDidOpen')\n setOpenIcon(): void {\n this.isOpen = true;\n }\n\n @Listen('syCollapseDidClose')\n setClosedIcon(): void {\n this.isOpen = false;\n }\n\n render() {\n return (\n \n
\n \n \n
    \n {this.entry.children.map((child, index) => {\n return (child.children && child.children.length > 0 ? (\n \n {child.title}\n
      \n {child.children.map((subChild) => {\n return (\n
    • \n \n {subChild.title}\n \n
    • \n );\n })}\n
    \n
    \n ) : (\n
  • \n \n {child.title}\n \n
  • \n\n ));\n })}\n
\n
\n
\n
\n );\n }\n}\n","/** Do not edit directly **/\n/** Do not edit directly **/\n/**\n * @prop --sy-text-h1-font-size: Text h 1 font size.\n * @prop --sy-text-h1-text-decoration: Text h 1 text decoration.\n * @prop --sy-text-h1-font-family: Text h 1 font family.\n * @prop --sy-text-h1-font-weight: Text h 1 font weight.\n * @prop --sy-text-h1-font-style: Text h 1 font style.\n * @prop --sy-text-h1-font-stretch: Text h 1 font stretch.\n * @prop --sy-text-h1-letter-spacing: Text h 1 letter spacing.\n * @prop --sy-text-h1-line-height: Text h 1 line height.\n * @prop --sy-text-h2-font-size: Text h 2 font size.\n * @prop --sy-text-h2-text-decoration: Text h 2 text decoration.\n * @prop --sy-text-h2-font-family: Text h 2 font family.\n * @prop --sy-text-h2-font-weight: Text h 2 font weight.\n * @prop --sy-text-h2-font-style: Text h 2 font style.\n * @prop --sy-text-h2-font-stretch: Text h 2 font stretch.\n * @prop --sy-text-h2-letter-spacing: Text h 2 letter spacing.\n * @prop --sy-text-h2-line-height: Text h 2 line height.\n * @prop --sy-text-h3-font-size: Text h 3 font size.\n * @prop --sy-text-h3-text-decoration: Text h 3 text decoration.\n * @prop --sy-text-h3-font-family: Text h 3 font family.\n * @prop --sy-text-h3-font-weight: Text h 3 font weight.\n * @prop --sy-text-h3-font-style: Text h 3 font style.\n * @prop --sy-text-h3-font-stretch: Text h 3 font stretch.\n * @prop --sy-text-h3-letter-spacing: Text h 3 letter spacing.\n * @prop --sy-text-h3-line-height: Text h 3 line height.\n * @prop --sy-text-h4-font-size: Text h 4 font size.\n * @prop --sy-text-h4-text-decoration: Text h 4 text decoration.\n * @prop --sy-text-h4-font-family: Text h 4 font family.\n * @prop --sy-text-h4-font-weight: Text h 4 font weight.\n * @prop --sy-text-h4-font-style: Text h 4 font style.\n * @prop --sy-text-h4-font-stretch: Text h 4 font stretch.\n * @prop --sy-text-h4-letter-spacing: Text h 4 letter spacing.\n * @prop --sy-text-h4-line-height: Text h 4 line height.\n * @prop --sy-text-h5-font-size: Text h 5 font size.\n * @prop --sy-text-h5-text-decoration: Text h 5 text decoration.\n * @prop --sy-text-h5-font-family: Text h 5 font family.\n * @prop --sy-text-h5-font-weight: Text h 5 font weight.\n * @prop --sy-text-h5-font-style: Text h 5 font style.\n * @prop --sy-text-h5-font-stretch: Text h 5 font stretch.\n * @prop --sy-text-h5-letter-spacing: Text h 5 letter spacing.\n * @prop --sy-text-h5-line-height: Text h 5 line height.\n * @prop --sy-text-h6-font-size: Text h 6 font size.\n * @prop --sy-text-h6-text-decoration: Text h 6 text decoration.\n * @prop --sy-text-h6-font-family: Text h 6 font family.\n * @prop --sy-text-h6-font-weight: Text h 6 font weight.\n * @prop --sy-text-h6-font-style: Text h 6 font style.\n * @prop --sy-text-h6-font-stretch: Text h 6 font stretch.\n * @prop --sy-text-h6-letter-spacing: Text h 6 letter spacing.\n * @prop --sy-text-h6-line-height: Text h 6 line height.\n * @prop --sy-text-body-font-size: Text body font size.\n * @prop --sy-text-body-text-decoration: Text body text decoration.\n * @prop --sy-text-body-font-family: Text body font family.\n * @prop --sy-text-body-font-weight: Text body font weight.\n * @prop --sy-text-body-font-style: Text body font style.\n * @prop --sy-text-body-font-stretch: Text body font stretch.\n * @prop --sy-text-body-letter-spacing: Text body letter spacing.\n * @prop --sy-text-body-line-height: Text body line height.\n * @prop --sy-text-small-font-size: Text small font size.\n * @prop --sy-text-small-text-decoration: Text small text decoration.\n * @prop --sy-text-small-font-family: Text small font family.\n * @prop --sy-text-small-font-weight: Text small font weight.\n * @prop --sy-text-small-font-style: Text small font style.\n * @prop --sy-text-small-font-stretch: Text small font stretch.\n * @prop --sy-text-small-letter-spacing: Text small letter spacing.\n * @prop --sy-text-small-line-height: Text small line height.\n * @prop --sy-text-link-font-size: Text link font size.\n * @prop --sy-text-link-text-decoration: Text link text decoration.\n * @prop --sy-text-link-font-family: Text link font family.\n * @prop --sy-text-link-font-weight: Text link font weight.\n * @prop --sy-text-link-font-style: Text link font style.\n * @prop --sy-text-link-font-stretch: Text link font stretch.\n * @prop --sy-text-link-letter-spacing: Text link letter spacing.\n * @prop --sy-text-link-line-height: Text link line height.\n * @prop --sy-text-code-font-size: Text code font size.\n * @prop --sy-text-code-text-decoration: Text code text decoration.\n * @prop --sy-text-code-font-family: Text code font family.\n * @prop --sy-text-code-font-weight: Text code font weight.\n * @prop --sy-text-code-font-style: Text code font style.\n * @prop --sy-text-code-font-stretch: Text code font stretch.\n * @prop --sy-text-code-letter-spacing: Text code letter spacing.\n * @prop --sy-text-code-line-height: Text code line height.\n * @prop --sy-text-lead-font-size: Text lead font size.\n * @prop --sy-text-lead-text-decoration: Text lead text decoration.\n * @prop --sy-text-lead-font-family: Text lead font family.\n * @prop --sy-text-lead-font-weight: Text lead font weight.\n * @prop --sy-text-lead-font-style: Text lead font style.\n * @prop --sy-text-lead-font-stretch: Text lead font stretch.\n * @prop --sy-text-lead-letter-spacing: Text lead letter spacing.\n * @prop --sy-text-lead-line-height: Text lead line height.\n */\n*,\n:host,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host([type=h1]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=h1]) .sy-text {\n font-size: var(--sy-text-h1-font-size, var(--sy-heading-h1-font-size));\n text-decoration: var(--sy-text-h1-text-decoration, var(--sy-heading-h1-text-decoration));\n font-family: var(--sy-text-h1-font-family, var(--sy-heading-h1-font-family));\n font-weight: var(--sy-text-h1-font-weight, var(--sy-heading-h1-font-weight));\n font-style: var(--sy-text-h1-font-style, var(--sy-heading-h1-font-style));\n font-stretch: var(--sy-text-h1-font-stretch, var(--sy-heading-h1-font-stretch));\n letter-spacing: var(--sy-text-h1-letter-spacing, var(--sy-heading-h1-letter-spacing));\n line-height: var(--sy-text-h1-line-height, var(--sy-heading-h1-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=h2]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=h2]) .sy-text {\n font-size: var(--sy-text-h2-font-size, var(--sy-heading-h2-font-size));\n text-decoration: var(--sy-text-h2-text-decoration, var(--sy-heading-h2-text-decoration));\n font-family: var(--sy-text-h2-font-family, var(--sy-heading-h2-font-family));\n font-weight: var(--sy-text-h2-font-weight, var(--sy-heading-h2-font-weight));\n font-style: var(--sy-text-h2-font-style, var(--sy-heading-h2-font-style));\n font-stretch: var(--sy-text-h2-font-stretch, var(--sy-heading-h2-font-stretch));\n letter-spacing: var(--sy-text-h2-letter-spacing, var(--sy-heading-h2-letter-spacing));\n line-height: var(--sy-text-h2-line-height, var(--sy-heading-h2-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=h3]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=h3]) .sy-text {\n font-size: var(--sy-text-h3-font-size, var(--sy-heading-h3-font-size));\n text-decoration: var(--sy-text-h3-text-decoration, var(--sy-heading-h3-text-decoration));\n font-family: var(--sy-text-h3-font-family, var(--sy-heading-h3-font-family));\n font-weight: var(--sy-text-h3-font-weight, var(--sy-heading-h3-font-weight));\n font-style: var(--sy-text-h3-font-style, var(--sy-heading-h3-font-style));\n font-stretch: var(--sy-text-h3-font-stretch, var(--sy-heading-h3-font-stretch));\n letter-spacing: var(--sy-text-h3-letter-spacing, var(--sy-heading-h3-letter-spacing));\n line-height: var(--sy-text-h3-line-height, var(--sy-heading-h3-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=h4]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=h4]) .sy-text {\n font-size: var(--sy-text-h4-font-size, var(--sy-heading-h4-font-size));\n text-decoration: var(--sy-text-h4-text-decoration, var(--sy-heading-h4-text-decoration));\n font-family: var(--sy-text-h4-font-family, var(--sy-heading-h4-font-family));\n font-weight: var(--sy-text-h4-font-weight, var(--sy-heading-h4-font-weight));\n font-style: var(--sy-text-h4-font-style, var(--sy-heading-h4-font-style));\n font-stretch: var(--sy-text-h4-font-stretch, var(--sy-heading-h4-font-stretch));\n letter-spacing: var(--sy-text-h4-letter-spacing, var(--sy-heading-h4-letter-spacing));\n line-height: var(--sy-text-h4-line-height, var(--sy-heading-h4-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=h5]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=h5]) .sy-text {\n font-size: var(--sy-text-h5-font-size, var(--sy-heading-h5-font-size));\n text-decoration: var(--sy-text-h5-text-decoration, var(--sy-heading-h5-text-decoration));\n font-family: var(--sy-text-h5-font-family, var(--sy-heading-h5-font-family));\n font-weight: var(--sy-text-h5-font-weight, var(--sy-heading-h5-font-weight));\n font-style: var(--sy-text-h5-font-style, var(--sy-heading-h5-font-style));\n font-stretch: var(--sy-text-h5-font-stretch, var(--sy-heading-h5-font-stretch));\n letter-spacing: var(--sy-text-h5-letter-spacing, var(--sy-heading-h5-letter-spacing));\n line-height: var(--sy-text-h5-line-height, var(--sy-heading-h5-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=h6]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=h6]) .sy-text {\n font-size: var(--sy-text-h6-font-size, var(--sy-heading-h6-font-size));\n text-decoration: var(--sy-text-h6-text-decoration, var(--sy-heading-h6-text-decoration));\n font-family: var(--sy-text-h6-font-family, var(--sy-heading-h6-font-family));\n font-weight: var(--sy-text-h6-font-weight, var(--sy-heading-h6-font-weight));\n font-style: var(--sy-text-h6-font-style, var(--sy-heading-h6-font-style));\n font-stretch: var(--sy-text-h6-font-stretch, var(--sy-heading-h6-font-stretch));\n letter-spacing: var(--sy-text-h6-letter-spacing, var(--sy-heading-h6-letter-spacing));\n line-height: var(--sy-text-h6-line-height, var(--sy-heading-h6-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=body]) .sy-text {\n font-size: var(--sy-text-body-font-size, var(--sy-content-regular-body-font-size));\n text-decoration: var(--sy-text-body-text-decoration, var(--sy-content-regular-body-text-decoration));\n font-family: var(--sy-text-body-font-family, var(--sy-content-regular-body-font-family));\n font-weight: var(--sy-text-body-font-weight, var(--sy-content-regular-body-font-weight));\n font-style: var(--sy-text-body-font-style, var(--sy-content-regular-body-font-style));\n font-stretch: var(--sy-text-body-font-stretch, var(--sy-content-regular-body-font-stretch));\n letter-spacing: var(--sy-text-body-letter-spacing, var(--sy-content-regular-body-letter-spacing));\n line-height: var(--sy-text-body-line-height, var(--sy-content-regular-body-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=small]) .sy-text {\n font-size: var(--sy-text-small-font-size, var(--sy-content-regular-small-font-size));\n text-decoration: var(--sy-text-small-text-decoration, var(--sy-content-regular-small-text-decoration));\n font-family: var(--sy-text-small-font-family, var(--sy-content-regular-small-font-family));\n font-weight: var(--sy-text-small-font-weight, var(--sy-content-regular-small-font-weight));\n font-style: var(--sy-text-small-font-style, var(--sy-content-regular-small-font-style));\n font-stretch: var(--sy-text-small-font-stretch, var(--sy-content-regular-small-font-stretch));\n letter-spacing: var(--sy-text-small-letter-spacing, var(--sy-content-regular-small-letter-spacing));\n line-height: var(--sy-text-small-line-height, var(--sy-content-regular-small-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=code]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=code]) pre {\n overflow: auto;\n}\n:host([type=code]) .sy-text {\n font-size: var(--sy-text-code-font-size, var(--sy-content-regular-code-font-size));\n text-decoration: var(--sy-text-code-text-decoration, var(--sy-content-regular-code-text-decoration));\n font-family: var(--sy-text-code-font-family, var(--sy-content-regular-code-font-family));\n font-weight: var(--sy-text-code-font-weight, var(--sy-content-regular-code-font-weight));\n font-style: var(--sy-text-code-font-style, var(--sy-content-regular-code-font-style));\n font-stretch: var(--sy-text-code-font-stretch, var(--sy-content-regular-code-font-stretch));\n letter-spacing: var(--sy-text-code-letter-spacing, var(--sy-content-regular-code-letter-spacing));\n line-height: var(--sy-text-code-line-height, var(--sy-content-regular-code-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host([type=lead]) {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n}\n:host([type=lead]) .sy-text {\n font-size: var(--sy-text-lead-font-size, var(--sy-content-regular-lead-font-size));\n text-decoration: var(--sy-text-lead-text-decoration, var(--sy-content-regular-lead-text-decoration));\n font-family: var(--sy-text-lead-font-family, var(--sy-content-regular-lead-font-family));\n font-weight: var(--sy-text-lead-font-weight, var(--sy-content-regular-lead-font-weight));\n font-style: var(--sy-text-lead-font-style, var(--sy-content-regular-lead-font-style));\n font-stretch: var(--sy-text-lead-font-stretch, var(--sy-content-regular-lead-font-stretch));\n letter-spacing: var(--sy-text-lead-letter-spacing, var(--sy-content-regular-lead-letter-spacing));\n line-height: var(--sy-text-lead-line-height, var(--sy-content-regular-lead-line-height));\n margin-top: 0;\n margin-bottom: 0;\n}","import { Component, Host, h, Prop } from '@stencil/core';\n/**\n * @slot - Designed to receive the text you want to display.\n */\nexport class Text {\n constructor() {\n this.tagType = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n body: 'span',\n small: 'small',\n code: 'pre',\n lead: 'p',\n };\n /**\n * Sets the text type.\n */\n this.type = 'body';\n }\n render() {\n const TextTag = this.tagType[this.type] || 'span';\n return (h(Host, null,\n h(TextTag, { class: \"sy-text\" },\n h(\"slot\", null))));\n }\n static get is() { return \"sy-text\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"scss/index.scss\", \"scss/_tokens.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"./scss/index.css\", \"./scss/_tokens.css\"]\n }; }\n static get properties() { return {\n \"type\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body' | 'small' | 'code' | 'lead'\",\n \"resolved\": \"\\\"body\\\" | \\\"code\\\" | \\\"h1\\\" | \\\"h2\\\" | \\\"h3\\\" | \\\"h4\\\" | \\\"h5\\\" | \\\"h6\\\" | \\\"lead\\\" | \\\"small\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Sets the text type.\"\n },\n \"attribute\": \"type\",\n \"reflect\": true,\n \"defaultValue\": \"'body'\"\n }\n }; }\n}\n"]}