diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..0941f4d --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +dativejs.js.org diff --git a/index.html b/index.html index f207e1e..64fa4a9 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,8 @@ name="google-site-verification" content="a7n_cTyTmbns8JfCUF8u-meb0amydz586-i7sNzIB64" /> + :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.75rem * var(--tw-space-x-reverse)); + margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-x-5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1.25rem * var(--tw-space-x-reverse)); + margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-y-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +} + +.space-y-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); +} + +.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.125rem * var(--tw-space-y-reverse)); +} + +.space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); +} + +.space-x-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem * var(--tw-space-x-reverse)); + margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); +} + +.overflow-hidden { + overflow: hidden; +} + +.overflow-x-auto { + overflow-x: auto; +} + +.overflow-y-auto { + overflow-y: auto; +} + +.scroll-smooth { + scroll-behavior: smooth; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-xl { + border-radius: 0.75rem; +} + +.rounded-lg { + border-radius: 0.5rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.border { + border-width: 1px; +} + +.border-t { + border-top-width: 1px; +} + +.border-b { + border-bottom-width: 1px; +} + +.border-nav-500 { + --tw-border-opacity: 1; + border-color: rgb(5 73 183 / var(--tw-border-opacity)); +} + +.border-slate-200 { + --tw-border-opacity: 1; + border-color: rgb(226 232 240 / var(--tw-border-opacity)); +} + +.border-nav-400 { + --tw-border-opacity: 1; + border-color: rgb(7 99 248 / var(--tw-border-opacity)); +} + +.bg-slate-100\/70 { + background-color: rgb(241 245 249 / 0.7); +} + +.bg-transparent { + background-color: transparent; +} + +.bg-gray-50 { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} + +.bg-neutral-300 { + --tw-bg-opacity: 1; + background-color: rgb(212 212 212 / var(--tw-bg-opacity)); +} + +.bg-slate-200 { + --tw-bg-opacity: 1; + background-color: rgb(226 232 240 / var(--tw-bg-opacity)); +} + +.bg-indigo-600 { + --tw-bg-opacity: 1; + background-color: rgb(79 70 229 / var(--tw-bg-opacity)); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-nav-800 { + --tw-bg-opacity: 1; + background-color: rgb(2 30 74 / var(--tw-bg-opacity)); +} + +.bg-neutral-700 { + --tw-bg-opacity: 1; + background-color: rgb(64 64 64 / var(--tw-bg-opacity)); +} + +.bg-opacity-\[1\] { + --tw-bg-opacity: 1; +} + +.bg-mesh { + background-image: url('/public/mesh.png'); +} + +.bg-cover { + background-size: cover; +} + +.bg-no-repeat { + background-repeat: no-repeat; +} + +.object-cover { + -o-object-fit: cover; + object-fit: cover; +} + +.object-fill { + -o-object-fit: fill; + object-fit: fill; +} + +.p-\[40px_0_0\] { + padding: 40px 0 0; +} + +.p-0 { + padding: 0px; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.py-7 { + padding-top: 1.75rem; + padding-bottom: 1.75rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.pb-12 { + padding-bottom: 3rem; +} + +.pt-\[60px\] { + padding-top: 60px; +} + +.pb-5 { + padding-bottom: 1.25rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.pb-2 { + padding-bottom: 0.5rem; +} + +.pb-4 { + padding-bottom: 1rem; +} + +.pt-3 { + padding-top: 0.75rem; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + +.pt-12 { + padding-top: 3rem; +} + +.pt-20 { + padding-top: 5rem; +} + +.pb-60 { + padding-bottom: 15rem; +} + +.pt-7 { + padding-top: 1.75rem; +} + +.pb-\[72px\] { + padding-bottom: 72px; +} + +.pt-\[54px\] { + padding-top: 54px; +} + +.pb-6 { + padding-bottom: 1.5rem; +} + +.pb-8 { + padding-bottom: 2rem; +} + +.pt-5 { + padding-top: 1.25rem; +} + +.text-center { + text-align: center; +} + +.font-poppins_regular { + font-family: poppins-regular; +} + +.font-poppins_semibold { + font-family: poppins-semibold; +} + +.font-poppins_medium { + font-family: poppins-medium; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-7xl { + font-size: 4.5rem; + line-height: 1; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-5xl { + font-size: 3rem; + line-height: 1; +} + +.font-bold { + font-weight: 700; +} + +.font-semibold { + font-weight: 600; +} + +.font-medium { + font-weight: 500; +} + +.capitalize { + text-transform: capitalize; +} + +.text-emerald-500 { + --tw-text-opacity: 1; + color: rgb(16 185 129 / var(--tw-text-opacity)); +} + +.text-nav-500 { + --tw-text-opacity: 1; + color: rgb(5 73 183 / var(--tw-text-opacity)); +} + +.text-slate-800 { + --tw-text-opacity: 1; + color: rgb(30 41 59 / var(--tw-text-opacity)); +} + +.text-nav-200 { + --tw-text-opacity: 1; + color: rgb(131 177 252 / var(--tw-text-opacity)); +} + +.text-green-500 { + --tw-text-opacity: 1; + color: rgb(34 197 94 / var(--tw-text-opacity)); +} + +.text-green-400 { + --tw-text-opacity: 1; + color: rgb(74 222 128 / var(--tw-text-opacity)); +} + +.text-emerald-400 { + --tw-text-opacity: 1; + color: rgb(52 211 153 / var(--tw-text-opacity)); +} + +.text-emerald-600 { + --tw-text-opacity: 1; + color: rgb(5 150 105 / var(--tw-text-opacity)); +} + +.text-zinc-50 { + --tw-text-opacity: 1; + color: rgb(250 250 250 / var(--tw-text-opacity)); +} + +.text-neutral-900 { + --tw-text-opacity: 1; + color: rgb(23 23 23 / var(--tw-text-opacity)); +} + +.text-black { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} + +.text-nav-400 { + --tw-text-opacity: 1; + color: rgb(7 99 248 / var(--tw-text-opacity)); +} + +.text-red-800 { + --tw-text-opacity: 1; + color: rgb(153 27 27 / var(--tw-text-opacity)); +} + +.text-green-800 { + --tw-text-opacity: 1; + color: rgb(22 101 52 / var(--tw-text-opacity)); +} + +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.text-indigo-600 { + --tw-text-opacity: 1; + color: rgb(79 70 229 / var(--tw-text-opacity)); +} + +.text-neutral-800 { + --tw-text-opacity: 1; + color: rgb(38 38 38 / var(--tw-text-opacity)); +} + +.text-gray-800 { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +.text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.text-blue-600 { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity)); +} + +.text-neutral-300 { + --tw-text-opacity: 1; + color: rgb(212 212 212 / var(--tw-text-opacity)); +} + +.underline { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; +} + +.decoration-neutral-800 { + -webkit-text-decoration-color: #262626; + text-decoration-color: #262626; +} + +.decoration-emerald-600 { + -webkit-text-decoration-color: #059669; + text-decoration-color: #059669; +} + +.decoration-sky-700 { + -webkit-text-decoration-color: #0369a1; + text-decoration-color: #0369a1; +} + +.opacity-60 { + opacity: 0.6; +} + +.mix-blend-lighten { + mix-blend-mode: lighten; +} + +.shadow-md { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.blur { + --tw-blur: blur(8px); + filter: var(--tw-filter); +} + +.backdrop-blur-\[12px\] { + --tw-backdrop-blur: blur(12px); + -webkit-backdrop-filter: var(--tw-backdrop-filter); + backdrop-filter: var(--tw-backdrop-filter); +} + +.backdrop-blur-xl { + --tw-backdrop-blur: blur(24px); + -webkit-backdrop-filter: var(--tw-backdrop-filter); + backdrop-filter: var(--tw-backdrop-filter); +} + +.backdrop-filter { + -webkit-backdrop-filter: var(--tw-backdrop-filter); + backdrop-filter: var(--tw-backdrop-filter); +} + +.transition-transform { + transition-property: transform; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition { + transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.duration-\[2s\] { + transition-duration: 2s; +} + +.ease-in-out { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +*::-webkit-scrollbar { + height: 8px; + width: 8px; +} + +*::-webkit-scrollbar-track { + background-color: rgb(4 60 149 / 0.4); +} + +*::-webkit-scrollbar-thumb { + border-radius: 100vh; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(246 247 237 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(4 60 149 / var(--tw-bg-opacity)); +} + +@font-face { + font-family: "poppins-medium"; + + src: url("/public/fonts/Poppins-Medium.ttf"); +} + +@font-face { + font-family: "poppins-semibold"; + + src: url("/public/fonts/Poppins-SemiBold.ttf"); +} + +@font-face { + font-family: "poppins-regular"; + + src: url("/public/fonts/Poppins-Regular.ttf"); +} + +@font-face { + font-family: "poppins-light"; + + src: url("/public/fonts/Poppins-Light.ttf"); +} + +.scrollbar::-webkit-scrollbar { + height: 8px; + width: 8px; +} + +/* rounded-[100vh] */ + +@media (prefers-color-scheme: dark) { + .scrollbar::-webkit-scrollbar-track { + background-color: transparent; + } +} + +.scrollbar::-webkit-scrollbar-thumb { + border-radius: 100vh; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(246 247 237 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(5 73 183 / var(--tw-bg-opacity)); +} + +/* .scrollbar::-web */ + +pre::-webkit-scrollbar { + height: 8px; + width: 8px; +} + +/* rounded-[100vh] */ + +@media (prefers-color-scheme: dark) { + pre::-webkit-scrollbar-track { + background-color: transparent; + } +} + +pre::-webkit-scrollbar-thumb { + border-radius: 100vh; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(246 247 237 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(7 99 248 / var(--tw-bg-opacity)); +} + +/* @layer base { +} */ + +.hover\:bg-white\/90:hover { + background-color: rgb(255 255 255 / 0.9); +} + +.hover\:text-slate-500:hover { + --tw-text-opacity: 1; + color: rgb(100 116 139 / var(--tw-text-opacity)); +} + +.hover\:underline:hover { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; +} + +.hover\:opacity-50:hover { + opacity: 0.5; +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.focus\:ring:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.active\:text-indigo-500:active { + --tw-text-opacity: 1; + color: rgb(99 102 241 / var(--tw-text-opacity)); +} + +@media (prefers-color-scheme: dark) { + .dark\:neon { + background: transparent; + box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); + border: 1px solid transparent; + } + + .dark\:border-neutral-200 { + --tw-border-opacity: 1; + border-color: rgb(229 229 229 / var(--tw-border-opacity)); + } + + .dark\:border-neutral-700 { + --tw-border-opacity: 1; + border-color: rgb(64 64 64 / var(--tw-border-opacity)); + } + + .dark\:bg-nav-500 { + --tw-bg-opacity: 1; + background-color: rgb(5 73 183 / var(--tw-bg-opacity)); + } + + .dark\:bg-nav-700 { + --tw-bg-opacity: 1; + background-color: rgb(3 44 109 / var(--tw-bg-opacity)); + } + + .dark\:bg-transparent { + background-color: transparent; + } + + .dark\:bg-nav-800 { + --tw-bg-opacity: 1; + background-color: rgb(2 30 74 / var(--tw-bg-opacity)); + } + + .dark\:bg-nav-400 { + --tw-bg-opacity: 1; + background-color: rgb(7 99 248 / var(--tw-bg-opacity)); + } + + .dark\:bg-nav-600 { + --tw-bg-opacity: 1; + background-color: rgb(4 60 149 / var(--tw-bg-opacity)); + } + + .dark\:bg-opacity-90 { + --tw-bg-opacity: 0.9; + } + + .dark\:text-slate-100 { + --tw-text-opacity: 1; + color: rgb(241 245 249 / var(--tw-text-opacity)); + } + + .dark\:text-gray-200 { + --tw-text-opacity: 1; + color: rgb(229 231 235 / var(--tw-text-opacity)); + } + + .dark\:text-transparent { + color: transparent; + } + + .dark\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + } + + .dark\:text-gray-50 { + --tw-text-opacity: 1; + color: rgb(249 250 251 / var(--tw-text-opacity)); + } + + .dark\:first-letter\:text-4xl::first-letter { + font-size: 2.25rem; + line-height: 2.5rem; + } + + .dark\:first-letter\:font-black::first-letter { + font-weight: 900; + } +} + +@media (min-width: 640px) { + .sm\:top-\[290px\] { + top: 290px; + } + + .sm\:mt-0 { + margin-top: 0px; + } + + .sm\:flex { + display: flex; + } + + .sm\:hidden { + display: none; + } + + .sm\:h-52 { + height: 13rem; + } + + .sm\:w-full { + width: 100%; + } + + .sm\:items-center { + align-items: center; + } + + .sm\:justify-between { + justify-content: space-between; + } + + .sm\:overflow-hidden { + overflow: hidden; + } + + .sm\:rounded-none { + border-radius: 0px; + } + + .sm\:px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + + .sm\:px-0 { + padding-left: 0px; + padding-right: 0px; + } + + .sm\:py-0 { + padding-top: 0px; + padding-bottom: 0px; + } + + .sm\:pb-6 { + padding-bottom: 1.5rem; + } + + .sm\:text-left { + text-align: left; + } +} + +@media (min-width: 768px) { + .md\:relative { + position: relative; + } + + .md\:right-8 { + right: 2rem; + } + + .md\:z-10 { + z-index: 10; + } + + .md\:mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; + } + + .md\:mb-0 { + margin-bottom: 0px; + } + + .md\:flex { + display: flex; + } + + .md\:hidden { + display: none; + } + + .md\:h-24 { + height: 6rem; + } + + .md\:w-56 { + width: 14rem; + } + + .md\:w-\[216px\] { + width: 216px; + } + + .md\:w-24 { + width: 6rem; + } + + .md\:flex-shrink-0 { + flex-shrink: 0; + } + + .md\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .md\:grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + + .md\:gap-x-2 { + -moz-column-gap: 0.5rem; + column-gap: 0.5rem; + } + + .md\:space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); + } + + .md\:space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); + } + + .md\:space-x-6 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1.5rem * var(--tw-space-x-reverse)); + margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse))); + } + + .md\:rounded-full { + border-radius: 9999px; + } + + .md\:px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; + } + + .md\:px-8 { + padding-left: 2rem; + padding-right: 2rem; + } + + .md\:pb-20 { + padding-bottom: 5rem; + } + + .md\:pb-0 { + padding-bottom: 0px; + } + + .md\:text-left { + text-align: left; + } + + .md\:text-center { + text-align: center; + } + + .md\:text-9xl { + font-size: 8rem; + line-height: 1; + } + + .md\:text-5xl { + font-size: 3rem; + line-height: 1; + } + + .md\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + } +} + +@media (min-width: 1024px) { + .lg\:z-10 { + z-index: 10; + } + + .lg\:mx-32 { + margin-left: 8rem; + margin-right: 8rem; + } + + .lg\:h-\[reset\] { + height: reset; + } + + .lg\:w-56 { + width: 14rem; + } + + .lg\:border-gray-500 { + --tw-border-opacity: 1; + border-color: rgb(107 114 128 / var(--tw-border-opacity)); + } + + .lg\:px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + + .lg\:pr-0 { + padding-right: 0px; + } + + .lg\:pt-8 { + padding-top: 2rem; + } + + .lg\:text-center { + text-align: center; + } +} +/* html { + --prism-foreground: inherit; + --prism-background: #fbfbfb; + --prism-class: #9807af; + --prism-builtin: #9807af; + --prism-function: #9807af; + --prism-keyword: #096d7c; + --prism-string: #679c0d; + --prism-number: #679c0d; + --prism-selector: #679c0d; + --prism-boolean: #679c0d; + --prism-property: #078ce5; + --prism-punctuation: #078ce5; + --prism-comment: #758575; + --prism-literal: #429988; + --prism-variable: inherit; + --prism-constant: #9807af; + --prism-deleted: #a14f55; + --prism-namespace: #9807af; + --prism-decorator: #9807af; + --prism-regex: #679c0d; + --prism-json-property: #078ce5; + --prism-line-number: #888888; + --prism-line-number-gutter: #eeeeee; + --prism-line-highlight-background: #444444; + --prism-selection-background: #444444; +} + */ + +html { + --prism-foreground: #eee; + --prism-background: #111; + --prism-class: #e879f9; + --prism-builtin: #e879f9; + --prism-function: #e879f9; + --prism-keyword: #22d3ee; + --prism-string: #bef264; + --prism-number: #bef264; + --prism-selector: #bef264; + --prism-boolean: #bef264; + --prism-property: #e0f2fe; + --prism-punctuation: #e0f2fe; + --prism-comment: #a0ada0; + --prism-literal: #2f8a89; + --prism-constant: #e879f9; + --prism-namespace: #e879f9; + --prism-decorator: #e879f9; + --prism-regex: #bef264; + --prism-json-property: #22d3ee; +} + +code[class*="language-"], +pre[class*="language-"] { + color: var(--prism-foreground); + background: none; + font-family: "source-code"; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; + /* border-radius: 0.3em; */ +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: var(--prism-background); +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + /* border-radius: 0.3em; */ + white-space: normal; +} + +.token.tag, +.token.class-name, +.token.selector, +.token.selector .class, +.token.selector.class, +.token.function { + color: rgb(244 114 182 / var(--tw-text-opacity)); +} + +.token.keyword { + color: rgb(8 145 178 / var(--tw-text-opacity)); +} + +.token.attr-name, +.token.rule, +.token.pseudo-class, +.token.important { + color: rgb(203 213 225 / var(--tw-text-opacity)); +} + +.token.attr-value, +.token.class, +.token.string { + color: rgb(125 211 252 / var(--tw-text-opacity)); +} + +.token.punctuation, +.token.attr-equals { + color: rgb(100 116 139 / var(--tw-text-opacity)); +} + +.token.attr-value * { + color: rgb(125 211 252 / var(--tw-text-opacity)); +} + +.token.attr-value .attr-equals, +.token.attr-value .attr-equals + .punctuation, +.token.attr-value > .punctuation:last-child { + color: rgb(100 116 139 / var(--tw-text-opacity)); +} + +.token.property { + color: rgb(243 244 246 / var(--tw-text-opacity)); +} + +.token.unit { + color: rgb(153 246 228 / var(--tw-text-opacity)); +} + +.language-shell .token.function { + color: rgb(244 114 182 / var(--tw-text-opacity)); +} + +.language-css .token.function { + color: rgb(153 246 228 / var(--tw-text-opacity)); +} +.token.module { + color: rgb(91 33 182 / var(--tw-text-opacity)); +} + +.token.class-name { + color: rgb(7 89 133 / var(--tw-text-opacity)); +} + +.token.comment, +.token.operator, +.token.combinator { + color: rgb(148 163 184 / var(--tw-text-opacity)); +} + +.token.unchanged { + display: block; +} + +.token.deleted, +.token.inserted { + display: block; + position: relative; + margin-left: -2.25rem; + margin-right: -2.25rem; + padding-left: 2rem; + padding-right: 1.25rem; + border-left-width: 4px; +} + +.token.deleted, +.token.inserted::before { + position: absolute; + top: 0px; + left: 1rem; +} + +.token.inserted { + background-color: rgb(45 212 191 / 0.15); + border-color: rgb(45 212 191 / var(--tw-border-opacity)); +} + +.token.inserted::before { + --tw-content: "+"; + content: var(--tw-content); + color: rgb(45 212 191 / var(--tw-text-opacity)); +} + +.token.deleted { + background-color: rgb(244 63 94 / 0.15); + border-color: rgb(251 113 133 / var(--tw-border-opacity)); +} + +.token.deleted::before { + --tw-content: "-"; + content: var(--tw-content); + --tw-text-opacity: 1; + color: rgb(251 113 133 / var(--tw-text-opacity)); +} + +pre[class^="language-diff-"] { + display: flex; + padding-left: 2.25rem; + padding-right: 2.25rem; +} + +pre[class^="language-diff-"] > code { + flex: none; + min-width: 100%; +} + +div.code-toolbar { + position: relative; +} + +div.code-toolbar > .toolbar { + position: absolute; + z-index: 10; + top: 0.3em; + right: 0.2em; + transition: opacity 0.3s ease-in-out; + opacity: 0; +} + +div.code-toolbar:hover > .toolbar { + opacity: 1; +} + +/* Separate line b/c rules are thrown out if selector is invalid. + IE11 and old Edge versions don't support :focus-within. */ +div.code-toolbar:focus-within > .toolbar { + opacity: 1; +} + +div.code-toolbar > .toolbar > .toolbar-item { + display: inline-block; +} + +div.code-toolbar > .toolbar > .toolbar-item > a { + cursor: pointer; +} + +div.code-toolbar > .toolbar > .toolbar-item > button { + background: none; + border: 0; + color: inherit; + font: inherit; + line-height: normal; + overflow: visible; + padding: 0; + -webkit-user-select: none; /* for button */ + -moz-user-select: none; + -ms-user-select: none; +} + +div.code-toolbar > .toolbar > .toolbar-item > a, +div.code-toolbar > .toolbar > .toolbar-item > button, +div.code-toolbar > .toolbar > .toolbar-item > span { + color: #99aeb4; + font-size: 0.6em; + padding: 0 0.5em; + padding-top: 2px; + background: transparent; +} + +div.code-toolbar > .toolbar > .toolbar-item > a:hover, +div.code-toolbar > .toolbar > .toolbar-item > a:focus, +div.code-toolbar > .toolbar > .toolbar-item > button:hover, +div.code-toolbar > .toolbar > .toolbar-item > button:focus, +div.code-toolbar > .toolbar > .toolbar-item > span:hover, +div.code-toolbar > .toolbar > .toolbar-item > span:focus { + color: inherit; + text-decoration: none; +} + +/** + + +/* .token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: var(--prism-comment); +} + +.token.function { + color: var(--prism-function); +} + +.token.punctuation { + color: var(--prism-punctuation); +} + +.token.constant, +.token.symbol, +.token.deleted { + color: var(--prism-deleted); +} + +.token.property { + color: var(--prism-property); +} + +.token.boolean { + color: var(--prism-boolean) +} +.token.number { + color: var(--prism-number); +} + +.token.attr-name { + color: var(--prism-punctuation); +} +.token.char, +.token.builtin, +.token.inserted { + color: var(--prism-builtin); +} + +.token.string { + color: var(--prism-string) +} + +.token.selector { + color: var(--prism-selector) +} +.token.class-name { + color: var(--prism-class) +} +.token.tag { + color: var(--prism-namespace) +} + +.token.operator { + color: #eeeeee; +} +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: var(--prism-constant); +} + + +.token.atrule, +.token.attr-value{ + color: var(--prism-string); +} + +.token.keyword { + color: var(--prism-keyword); +} + +.token.regex, +.token.important { + color: var(--prism-regex); +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +@media screen and (-ms-high-contrast: active) { + code[class*="language-"], + pre[class*="language-"] { + color: windowText; + background: window; + } + + :not(pre) > code[class*="language-"], + pre[class*="language-"] { + background: window; + } + + .token.important { + background: highlight; + color: window; + font-weight: normal; + } + + .token.atrule, + .token.attr-value, + .token.function, + .token.keyword, + .token.operator, + .token.selector { + font-weight: bold; + } + + .token.attr-value, + .token.doctype, + .token.operator { + color: var(--prism-literal) + } + + .token.keyword { + color: var(--prism-keyword) + } + + + .token.property { + color: var(--prism-property) + } + .token.function { + color: var(--prism-function); + + } + + .token.string { + color: var(--prism-string) + } + .token.comment { + color: var(--prism-comment) + } + + .token.attr-value, + .token.url { + font-weight: normal; + } +} */ + +/** + + +.token.tag, +.token.class-name, +.token.selector, +.token.selector .class, +.token.selector.class, +.token.function { + @apply text-pink-400; +} + +.token.attr-name, +.token.keyword, +.token.rule, +.token.pseudo-class, +.token.important { + @apply text-slate-300; +} + +.token.attr-value, +.token.class, +.token.string { + @apply text-sky-300; +} + +.token.punctuation, +.token.attr-equals { + @apply text-slate-500; +} + +.token.attr-value * { + @apply text-sky-300; +} + +.token.attr-value .attr-equals, +.token.attr-value .attr-equals + .punctuation, +.token.attr-value > .punctuation:last-child { + @apply text-slate-500; +} + +.token.property { + @apply text-sky-300; +} + +.token.unit { + @apply text-teal-200; +} + +.language-shell .token:not(.comment), +.token.atapply .token:not(.rule):not(.important):not(.punctuation) { + color: inherit; +} + +.language-css .token.function { + @apply text-teal-200; +} + +.token.comment, +.token.module, +.token.operator, +.token.combinator { + @apply text-slate-400; +} + +.token.unchanged { + @apply block; +} + +.token.deleted, +.token.inserted { + @apply block relative -mx-9 pl-8 pr-5 border-l-4 before:absolute before:top-0 before:left-4; +} + +.token.inserted { + @apply bg-teal-400/[0.15] border-teal-400 before:content-['+'] before:text-teal-400; +} + +.token.deleted { + @apply bg-rose-500/[0.15] border-rose-400 before:content-['-'] before:text-rose-400; +} + +pre[class^='language-diff-'] { + @apply flex px-9; +} + +pre[class^='language-diff-'] > code { + @apply flex-none min-w-full; +} +**/ +@font-face { + font-family: "Bahoo"; + src: url("/public/fonts/BalooBhaijaan2-Medium.ttf"); +} + +@font-face { + font-family: "Raleway-Medium"; + src: url("/public/fonts/Raleway-Medium.ttf"); +} + +@font-face { + font-family: "Raleway-VariableFont"; + src: url("/public/fonts/Raleway-VariableFont_wght.ttf"); +} +@font-face { + font-family: "Fuzzy"; + src: url("/public/fonts/FuzzyBubbles-Regular.ttf"); +} + + +@font-face { + font-family: "Comforta-medium"; + src: url("/public/fonts/Comfortaa-Medium.ttf"); +} + +@font-face { + font-family: "Comforta-light"; + src: url("/public/fonts/Comfortaa-Light.ttf"); +} + +@font-face { + font-family: "kiona"; + src: url("/public/fonts/Kiona-Regular.ttf"); +} +@font-face { + font-family: "source-code"; + src: url("/public/fonts/Source_Code_Pro.ttf"); +} + + +.font-bahoo{ + font-family: "Bahoo"; +} + +.font-rale-way { + font-family: "Raleway-Medium" +} + +.font-rale-way-italics { + font-family: "Raleway-VariableFont" +} + +.font-fuzzy { + font-family: "Fuzzy"; +} + +.font-comforta-medium { + font-family: "Comforta-medium"; +} + +.font-comforta-light { + font-family: "Comforta-light"; +} + +.font-kiona { + font-family: "kiona"; +} + +.font-source-code { + font-family: "source-code" +}/*! + * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2022 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fa, +.fas, +.fa-solid, +.far, +.fa-regular, +.fal, +.fa-light, +.fat, +.fa-thin, +.fad, +.fa-duotone, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0); + animation-delay: var(--fa-animation-delay, 0); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-a::before { + content: "\41"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-at::before { + content: "\40"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-award::before { + content: "\f559"; } + +.fa-b::before { + content: "\42"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-box::before { + content: "\f466"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-c::before { + content: "\43"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-code::before { + content: "\f121"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-d::before { + content: "\44"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-download::before { + content: "\f019"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-e::before { + content: "\45"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-f::before { + content: "\46"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-film::before { + content: "\f008"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-font::before { + content: "\f031"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-g::before { + content: "\47"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-h::before { + content: "\48"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-2::before { + content: "\f254"; } + +.fa-hourglass-half::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f252"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-i::before { + content: "\49"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-images::before { + content: "\f302"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-info::before { + content: "\f129"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-j::before { + content: "\4a"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-k::before { + content: "\4b"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-key::before { + content: "\f084"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-l::before { + content: "\4c"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-m::before { + content: "\4d"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-map::before { + content: "\f279"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-music::before { + content: "\f001"; } + +.fa-n::before { + content: "\4e"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-o::before { + content: "\4f"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-om::before { + content: "\f679"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-p::before { + content: "\50"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-q::before { + content: "\51"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-question::before { + content: "\3f"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-r::before { + content: "\52"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-road::before { + content: "\f018"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-s::before { + content: "\53"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-school::before { + content: "\f549"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-section::before { + content: "\e447"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-server::before { + content: "\f233"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-share::before { + content: "\f064"; } + +.fa-arrow-turn-right::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-star::before { + content: "\f005"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-t::before { + content: "\54"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-train::before { + content: "\f238"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-train-tram::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-u::before { + content: "\55"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-user::before { + content: "\f007"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-v::before { + content: "\56"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-w::before { + content: "\57"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-water::before { + content: "\f773"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-x::before { + content: "\58"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-y::before { + content: "\59"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-z::before { + content: "\5a"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands"; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-square-font-awesome:before { + content: "\f425"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } +:root, :host { + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } +:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-family: 'Font Awesome 6 Free'; + font-weight: 900; } +@font-face { + font-family: "Font Awesome 5 Brands"; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); + unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); + unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F250,U+F252,U+F27A; } +.token.treeview-part .entry-line { + position: relative; + text-indent: -99em; + display: inline-block; + vertical-align: top; + width: 1.2em; +} +.token.treeview-part .entry-line:before, +.token.treeview-part .line-h:after { + content: ""; + position: absolute; + top: 0; + left: 50%; + width: 50%; + height: 100%; +} +.token.treeview-part .line-h:before, +.token.treeview-part .line-v:before { + border-left: 1px solid #ccc; +} +.token.treeview-part .line-v-last:before { + height: 50%; + border-left: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} +.token.treeview-part .line-h:after { + height: 50%; + border-bottom: 1px solid #ccc; +} +.token.treeview-part .entry-name { + position: relative; + display: inline-block; + vertical-align: top; +} +.token.treeview-part .entry-name.dotfile { + opacity: 0.5; +} + +/* @GENERATED-FONT */ +@font-face { + font-family: "PrismTreeview"; + /** + * This font is generated from the .svg files in the `icons` folder. See the `treeviewIconFont` function in + * `gulpfile.js/index.js` for more information. + * + * Use the following escape sequences to refer to a specific icon: + * + * - \ea01 file + * - \ea02 folder + * - \ea03 image + * - \ea04 audio + * - \ea05 video + * - \ea06 text + * - \ea07 code + * - \ea08 archive + * - \ea09 pdf + * - \ea0a excel + * - \ea0b powerpoint + * - \ea0c word + */ + src: url("data:application/font-woff;base64,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") + format("woff"); +} + +.token.treeview-part .entry-name:before { + content: "\ea01"; + font-family: "PrismTreeview"; + font-size: inherit; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 2.5ex; + display: inline-block; +} + +.token.treeview-part .entry-name.dir:before { + content: "\ea02"; +} +.token.treeview-part .entry-name.ext-bmp:before, +.token.treeview-part .entry-name.ext-eps:before, +.token.treeview-part .entry-name.ext-gif:before, +.token.treeview-part .entry-name.ext-jpe:before, +.token.treeview-part .entry-name.ext-jpg:before, +.token.treeview-part .entry-name.ext-jpeg:before, +.token.treeview-part .entry-name.ext-png:before, +.token.treeview-part .entry-name.ext-svg:before, +.token.treeview-part .entry-name.ext-tiff:before { + content: "\ea03"; +} +.token.treeview-part .entry-name.ext-cfg:before, +.token.treeview-part .entry-name.ext-conf:before, +.token.treeview-part .entry-name.ext-config:before, +.token.treeview-part .entry-name.ext-csv:before, +.token.treeview-part .entry-name.ext-ini:before, +.token.treeview-part .entry-name.ext-log:before, +.token.treeview-part .entry-name.ext-md:before, +.token.treeview-part .entry-name.ext-nfo:before, +.token.treeview-part .entry-name.ext-txt:before { + content: "\ea06"; +} +.token.treeview-part .entry-name.ext-asp:before, +.token.treeview-part .entry-name.ext-aspx:before, +.token.treeview-part .entry-name.ext-c:before, +.token.treeview-part .entry-name.ext-cc:before, +.token.treeview-part .entry-name.ext-cpp:before, +.token.treeview-part .entry-name.ext-cs:before, +.token.treeview-part .entry-name.ext-css:before, +.token.treeview-part .entry-name.ext-h:before, +.token.treeview-part .entry-name.ext-hh:before, +.token.treeview-part .entry-name.ext-htm:before, +.token.treeview-part .entry-name.ext-html:before, +.token.treeview-part .entry-name.ext-jav:before, +.token.treeview-part .entry-name.ext-java:before, +.token.treeview-part .entry-name.ext-js:before, +.token.treeview-part .entry-name.ext-php:before, +.token.treeview-part .entry-name.ext-rb:before, +.token.treeview-part .entry-name.ext-xml:before { + content: "\ea07"; +} +.token.treeview-part .entry-name.ext-7z:before, +.token.treeview-part .entry-name.ext-bz:before, +.token.treeview-part .entry-name.ext-bz2:before, +.token.treeview-part .entry-name.ext-gz:before, +.token.treeview-part .entry-name.ext-rar:before, +.token.treeview-part .entry-name.ext-tar:before, +.token.treeview-part .entry-name.ext-tgz:before, +.token.treeview-part .entry-name.ext-zip:before { + content: "\ea08"; +} +.token.treeview-part .entry-name.ext-aac:before, +.token.treeview-part .entry-name.ext-au:before, +.token.treeview-part .entry-name.ext-cda:before, +.token.treeview-part .entry-name.ext-flac:before, +.token.treeview-part .entry-name.ext-mp3:before, +.token.treeview-part .entry-name.ext-oga:before, +.token.treeview-part .entry-name.ext-ogg:before, +.token.treeview-part .entry-name.ext-wav:before, +.token.treeview-part .entry-name.ext-wma:before { + content: "\ea04"; +} +.token.treeview-part .entry-name.ext-avi:before, +.token.treeview-part .entry-name.ext-flv:before, +.token.treeview-part .entry-name.ext-mkv:before, +.token.treeview-part .entry-name.ext-mov:before, +.token.treeview-part .entry-name.ext-mp4:before, +.token.treeview-part .entry-name.ext-mpeg:before, +.token.treeview-part .entry-name.ext-mpg:before, +.token.treeview-part .entry-name.ext-ogv:before, +.token.treeview-part .entry-name.ext-webm:before { + content: "\ea05"; +} +.token.treeview-part .entry-name.ext-pdf:before { + content: "\ea09"; +} +.token.treeview-part .entry-name.ext-xls:before, +.token.treeview-part .entry-name.ext-xlsx:before { + content: "\ea0a"; +} +.token.treeview-part .entry-name.ext-doc:before, +.token.treeview-part .entry-name.ext-docm:before, +.token.treeview-part .entry-name.ext-docx:before { + content: "\ea0c"; +} +.token.treeview-part .entry-name.ext-pps:before, +.token.treeview-part .entry-name.ext-ppt:before, +.token.treeview-part .entry-name.ext-pptx:before { + content: "\ea0b"; +} diff --git a/public/build/bundle.js b/public/build/bundle.js new file mode 100644 index 0000000..af06481 --- /dev/null +++ b/public/build/bundle.js @@ -0,0 +1,16 @@ +!function(){"use strict";var c=void 0!==document?document:{},C={slient:!!!c,mode:"development",noop:function(){},CurrentInstance:null};function e(c,...e){!1===C.slient&&console.error("[dative Warn]: ",c,...e)}function t(c,...e){!1===C.slient&&console.warn("[dative tips]: ",c,...e)}function a(c){const C=`${c}`.charCodeAt(0);return 36===C||95===C}function n(c){let C,e,t={},a=t.toString,n=t.hasOwnProperty,r=n.toString,l=r.call(Object);return!(!c||"[object Object]"!==a.call(c))&&(C=Object.getPrototypeOf(c),!C||(e=n.call(C,"constructor")&&C.constructor,"function"==typeof e&&r.call(e)===l))}let r=0;class l{constructor(){this.id=r++,this.subs={}}addSub(c){this.subs[c.uid]||(this.subs[c.uid]=c)}notify(){for(let c in this.subs)this.subs[c].update()}}function s(c,C){let e=c[C],t=new l;return Object.defineProperty(c,C,{get:()=>(l.target&&t.addSub(l.target),e),set(c){e=c,t.notify()}}),c}function i(c){if("object"==function(c){let C={},e=C.toString.call(c);return null==c?c+"":("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" ").forEach((c=>{C[`[object ${c}]`]=c.toLowerCase()})),"object"==typeof c||"function"==typeof c?C[e]||"object":typeof c)}(c)){var C;for(let e in c)C=s(c,e);return C}}function o(c){return c.replace(/javascript:/gi,"").replace(/[^\w-_. ]/gi,(function(c){return`&#${c.charCodeAt(0)};`}))}l.target=null;var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(c){return typeof c}:function(c){return c&&"function"==typeof Symbol&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c};function z(c){var C={},e=C.toString.call(c);return null==c?""+c:("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" ").forEach((function(c){return C["[object "+c+"]"]=c.toLowerCase()})),"object"===(void 0===c?"undefined":h(c))||"function"==typeof c?C[e]||"object":void 0===c?"undefined":h(c))}function M(c,C){return`if (${C}) {`}function f(c,C){return`} else if (${C}) {`}function d(c,C){return"} else {"}function v(c,C){return`with (${C}) {`}function p(c,C){return`_c(console[console.debug ? 'debug' : 'log']({${C}}));\n debugger`}function L(c,C,e){return`/** ${e} **/`}function m(c,C){return`let ${C};`}function u(c){return"function"==typeof c}var H="undefined"!=typeof window;var V=/`/g;function b(c,C,t){c=c.trim();var a,n=/{{(.+?)}}/g,r=/(^( )?(var|let|const|await|if|for|else|{|}|#each|\/each|#if|:else|:else if|\/if|#with|\/with|debugger|@debug|\$:|;))(.*)?/g,l="with(obj) { var r=[]; ",s=0,i="";l+="var _c = (msg)=>{ return r.push(msg)}; ";for(var o=function(c,C){return l+=C?c.match(r)?c.replace(/#each ((?:.|)+)/g,((c,C)=>{C.includes("as")||e("Expected keyword 'as' But got ' '");var t=(C=C.replace(/as/,"of")).split("of");return`for (const ${t[1].includes(",")?function(c){if(c[1].startsWith("{")&&c[1].split(" ")&&c[1].endsWith("}")){var C=c[1].split(" ");for(const{}in C){var e=C.join(",");return`[${c[0]}, ${e}]`}}return`[${c[0]},${c[1]}]`}(t[1].split(",")):(t[1].startsWith("{")&&t[1].endsWith("}"),t[1])} of ${!t[1].startsWith("{")&&t[1].includes(",")?`Object.entries(${t[0].trim()})`:t[0]}) {`})).replace(/\/each/g,"\n}").replace(/#if ((?:.|)+)/g,M).replace(/:else if ((?:.|)+)/g,f).replace(/:else/g,d).replace(/\/if/g,"}").replace(/#with ((?:.|)+)/g,v).replace(/\/with/g,(c=>"}")).replace(/@debug\s+?((?:.|)+)/g,p).replace(/\$:\s+((?:.|)+)/g,m)+"\n":"_c("+c.replace(/!(--)?((?:.|)+)?/g,L)+");\n":""!=c?"_c(`"+c.replace(V,"\\`").replace(/\${/g,"$\\{")+"`);":"",o};a=n.exec(c);)o(c.slice(s,a.index))(a[1],!0),s=a.index+a[0].length;o(c.substr(s,c.length-s)),l=(l+'return r.join(""); }').replace(/[\t]/g,"").trim();try{i=new Function("obj",l).apply(C,[C])}catch(c){e("Compiler "+c.name+": "+c.message+" at \n"+function(c,C=0,e=c.length){let t=c.split(/(\r?\n)/);const a=t.filter(((c,C)=>C%2==1));t=t.filter(((c,C)=>C%2==0));let n=0;const r=[];for(let c=0;c=C){for(let l=c-2;l<=c+2||e>n;l++){if(l<0||l>=t.length)continue;const s=l+1;r.push(`${s}${" ".repeat(Math.max(3-String(s).length,0))}| ${t[l]}`);const i=t[l].length,o=a[l]&&a[l].length||0;if(l===c){const c=C-(n-(i+o)),t=Math.max(1,e>n?i-c:e-C);r.push(" | "+" ".repeat(c)+"^".repeat(t))}else if(l>c){if(e>n){const c=Math.max(Math.min(e-n,i),1);r.push(" | "+"^".repeat(c))}n+=i+o}}break}return r.join("\n")}(C.template))}return i}function g(c){return c.childNodes&&c.childNodes.length?null:c.textContent}function A(c,C){return c.nodeType!==C.nodeType||c.tagName!==C.tagName||c.id!==C.id||c.src!==C.src}function y(c,C,e=[]){let t=C.childNodes,a=c.childNodes;a.forEach((function(a,n){if(c.querySelectorAll("template")){var r=c.querySelectorAll("template");for(var l of r){const c=document.createElement("div");c.innerHTML=l.innerHTML,l.replaceWith(c)}}if(!t[n])return void C.append(a.cloneNode(!0));if(A(a,t[n])){let c=function(c,C,e){return Array.from(C).slice(e+1).find((function(C){return!A(c,C)}))}(a,t,n);if(!c)return void t[n].before(a.cloneNode(!0));t[n].before(c)}if(e.filter((function(c){return![3,8].includes(a.nodeType)&&a.matches(c)})).length>0)return;let s=g(a);if(s&&s!==g(t[n])&&(t[n].textContent=s),t[n].childNodes.length>0&&a.childNodes.length<1)t[n].innerHTML="";else{if(t[n].childNodes.length<1&&a.childNodes.length>0){let c=document.createDocumentFragment();return y(a,c,e),void t[n].appendChild(c)}a.childNodes.length>0&&y(a,t[n],e)}})),function(c,C){let e=c.length-C.length;if(!(e<1))for(;e>0;e--)c[c.length-1].remove()}(t,a)}var S=function(c,C,t){if(c instanceof Element){var a=(n=C,(new DOMParser).parseFromString(n,"text/html").body);if(a.childElementCount>1)return void e("Multiple root nodes returned from template. Template","should return a single root node. \n",a.innerHTML,"\n"+"^".repeat(a.innerHTML.length/a.lastChild.textContent.length-2));a.querySelector("script")&&e("`);\r\n return;\r\n }\r\n return el && el.innerHTML;\r\n}\r\n\r\nfunction s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n}\r\nfunction uuid_() {\r\n return (\r\n s4() +\r\n s4() +\r\n \"-\" +\r\n s4() +\r\n \"-\" +\r\n s4() +\r\n \"-\" +\r\n s4() +\r\n \"-\" +\r\n s4() +\r\n s4() +\r\n s4()\r\n );\r\n}\r\n/**\r\n * Prefix for directives\r\n */\r\nfunction prefix(subject = \"\") {\r\n return \"dv-\" + subject;\r\n}\r\nfunction valps(val, data) {\r\n var sub = val.split(\".\");\r\n if (sub.length > 1) {\r\n var temp = data;\r\n sub.forEach((item) => {\r\n if (!temp[item]) return;\r\n temp = temp[item];\r\n });\r\n return temp;\r\n } else if (!data[val]) return;\r\n return data[val];\r\n}\r\n\r\n/**\r\n * @param {Dative} Dative\r\n */\r\nfunction initRender(Dative) {\r\n /**\r\n * @param {string|object} obj new object for the data\r\n * @param {any} data new object for the data\r\n **/\r\n Dative.prototype.set = function set(obj, data) {\r\n var $this = this;\r\n if (typeof obj !== \"object\") {\r\n $this[obj] = data;\r\n $this.render();\r\n } else {\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n $this[key] = obj[key];\r\n $this.render();\r\n }\r\n }\r\n }\r\n };\r\n Dative.prototype.get = function get(value = \"\") {\r\n return value === \"\" ? this : valps(value, this);\r\n };\r\n function kebabToCamel(str, options = { prefix: \"\", ignorePrefix: \"\" }) {\r\n const { prefix, ignorePrefix } = options;\r\n let ignoredStr = str;\r\n if (\r\n ignorePrefix !== undefined &&\r\n ignorePrefix !== null &&\r\n ignorePrefix !== \"\"\r\n ) {\r\n ignoredStr = ignoredStr.replace(new RegExp(`^${ignorePrefix}-`), \"\");\r\n }\r\n const camelStr = ignoredStr\r\n .split(\"-\")\r\n .filter((s) => s !== \"\")\r\n .reduce((r, s) => (r = r + `${s[0].toUpperCase()}${s.slice(1)}`));\r\n if (prefix !== undefined && prefix !== null && prefix !== \"\") {\r\n return `${prefix}${camelStr.replace(/^([a-z])/, (m, p) =>\r\n p.toUpperCase()\r\n )}`;\r\n }\r\n return camelStr;\r\n }\r\n /**\r\n *\r\n * @param {Element} target\r\n * @param {string} key\r\n * @param {Element} elem\r\n * @param {boolean} isDirective\r\n */\r\n var warnDuplicate$ = function (target, key, elem, isDirective = false) {\r\n target &&\r\n warn(\r\n `'${key}' is in ${elem} already.Do not duplicate ${\r\n isDirective ? \"directives\" : \"attributes\"\r\n }`\r\n );\r\n };\r\n\r\n /**\r\n *\r\n * @param {Array} polyps\r\n * @param {any} dv\r\n * @returns {void}\r\n */\r\n function renderPolyps(polyps, dv) {\r\n if (!polyps) return;\r\n polyps.forEach(function (component) {\r\n if (component.attached.includes(dv))\r\n return err(\r\n `\"${dv.$el}\" has attached nodes that it is also attached to, creating an infinite loop.`\r\n );\r\n if (\"render\" in component) component.render();\r\n });\r\n }\r\n /**\r\n * Credits: DativeAnimate\r\n * @link https://tobithedev.github.io/dative-animation\r\n * @param {HTMLElement|Element} el Element to be animated\r\n * @param {Number} duration duration for the animation\r\n * @param {Number} delay\r\n * @param {Boolean} once\r\n */\r\n function fadeIn(el, duration, delay = 0, once = true) {\r\n var op = 0;\r\n var animate = el.animate([{ opacity: op }, { display: \"block\" }], {\r\n duration,\r\n delay,\r\n easing: \"linear\",\r\n });\r\n var timer = setInterval(function () {\r\n if (op >= 1.0) {\r\n clearInterval(timer);\r\n if (once) {\r\n animate.pause();\r\n }\r\n }\r\n animate = el.animate([{ transition: \"2s\" }, { opacity: op }], {\r\n duration,\r\n delay,\r\n easing: \"linear\",\r\n });\r\n op = op + 0.1;\r\n if (once) {\r\n animate.cancel();\r\n }\r\n }, duration);\r\n }\r\n\r\n /**\r\n * Credits: DativeAnimate\r\n * @param {HTMLElement|Element} el Element to be animated\r\n * @param {Number} duration duration for the animation\r\n * @param {Number} delay\r\n * @param {Boolean} once\r\n */\r\n function bounce(el, duration, delay = 0, once = false) {\r\n var animate = el.animate(\r\n [\r\n {\r\n animationTimingFunction: \"cubic-bezier(0.8,0,1,1)\",\r\n transform: \"translateY(-25%)\",\r\n },\r\n {\r\n animationTimingFunction: \"cubic-bezier(0,0,0.2,1)\",\r\n transform: \"translateY(0)\",\r\n },\r\n ],\r\n {\r\n duration,\r\n delay,\r\n easing: \"linear\",\r\n iterations: Infinity,\r\n }\r\n );\r\n if (once === true) {\r\n animate.cancel();\r\n }\r\n }\r\n /**\r\n * returns the template to the dom\r\n * @returns {Element}\r\n **/\r\n Dative.prototype.render = function () {\r\n var $app = this;\r\n $app.kebabToCamel = kebabToCamel;\r\n let template = this.options.template || \"\";\r\n if (typeof template === \"string\") {\r\n if (template[0] === \"#\") {\r\n template = idToTemplate(template);\r\n }\r\n }\r\n /** @type {string} */\r\n this.template = template;\r\n $app.isMounted = true;\r\n $app.isUnmounted = false;\r\n $app.$el.dative_app = $app;\r\n /** @type {Element} */\r\n var elem = this.$el;\r\n if ($app.isMounted) {\r\n $app.attached.map(function (polyp) {\r\n return polyp.$el;\r\n });\r\n processor(elem, template.trim(), this);\r\n\r\n renderPolyps($app.attached, $app);\r\n for (const el of elem.querySelectorAll(\"*\")) {\r\n if ($app.options.css) {\r\n el.setAttribute(\"data-dative-css\", $app.cssId_);\r\n }\r\n for (const name of el.getAttributeNames()) {\r\n if (name.startsWith(prefix(\"on:\")) || name.startsWith(\"on:\")) {\r\n var eventName = name.slice(6);\r\n if (name.startsWith(\"on:\")) {\r\n eventName = name.slice(3);\r\n }\r\n\r\n const handlerName = el.getAttribute(name);\r\n if ($app.events) {\r\n for (const events in $app.events) {\r\n const vall = $app.events[events];\r\n // console.log(events,vall);\r\n if (eventName === events) {\r\n vall(el, event.bind(this));\r\n }\r\n }\r\n }\r\n el.addEventListener(eventName, (evt) => {\r\n event(this, handlerName, el, evt);\r\n });\r\n\r\n el.removeAttribute(name);\r\n } else if (name.startsWith(\"transition\")) {\r\n name.slice(11);\r\n var transyName = el.getAttribute(name);\r\n let modifiersregexp = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\r\n let modifiers = modifiersregexp.map((i) => i.replace(\".\", \"\"));\r\n var transitionMap = {\r\n enter: function enter(klass) {\r\n el.classList.add(klass + \"-enter\");\r\n },\r\n \"before-enter\": function enter(klass) {\r\n el.classList.add(klass + \"-before-enter\");\r\n },\r\n leave: function enter(klass) {\r\n el.classList.add(klass + \"-leave\");\r\n },\r\n \"before-leave\": function enter(klass) {\r\n el.classList.add(klass + \"-before-leave\");\r\n },\r\n };\r\n if (transyName !== null) {\r\n modifiers.map(($value) => {\r\n if ($value == \"leave\") transitionMap[$value](transyName);\r\n else if ($value == \"enter\") transitionMap[$value](transyName);\r\n else if ($value == \"before-enter\")\r\n transitionMap[$value](transyName);\r\n else if ($value == \"before-leave\")\r\n transitionMap[$value](transyName);\r\n });\r\n } else {\r\n modifiers.map(($value) => {\r\n if ($value == \"leave\") {\r\n el.style.transition = {\r\n opacity: 0,\r\n transform: `scale(1)`,\r\n };\r\n } else if ($value == \"enter\") {\r\n el.style.transition = {\r\n opacity: 1,\r\n transform: `scale(1)`,\r\n };\r\n } else if ($value == \"before-enter\") {\r\n el.style.transition = {\r\n opacity: 0,\r\n transform: `scale(1)`,\r\n };\r\n } else if ($value == \"before-leave\") {\r\n el.style.transition = {\r\n opacity: 1,\r\n transform: `scale(1)`,\r\n };\r\n }\r\n });\r\n }\r\n el.removeAttribute(name);\r\n } else if (name.startsWith(\"animate:\") || name.startsWith(\"@\")) {\r\n var animation_name = name.slice(8);\r\n if (name.startsWith(\"@\")) {\r\n animation_name = name.slice(1);\r\n }\r\n const checkani = el.getAttribute(name).split(\",\");\r\n\r\n var animationName = {\r\n duration: checkani[0],\r\n delay: checkani[1],\r\n ease: checkani[2],\r\n };\r\n const delay = animationName.delay;\r\n const duration = animationName.duration;\r\n const ease = animationName.ease;\r\n if ($app.animate) {\r\n for (const animate in $app.animate) {\r\n const vall = $app.animate[animate];\r\n const setStyle = (options) => {\r\n for (const key in options) {\r\n if (Object.hasOwnProperty.call(options, key)) {\r\n const property = options[key];\r\n el.style[key] = property;\r\n }\r\n }\r\n };\r\n if (animation_name === animate) {\r\n vall({\r\n animate: el.animate.bind(el),\r\n setStyle,\r\n duration: Number(duration),\r\n delay: Number(delay),\r\n ease: ease,\r\n });\r\n }\r\n }\r\n }\r\n if (animation_name === \"fadein\") {\r\n fadeIn(el, Number(duration) || 200, Number(delay) || 200);\r\n } else if (animation_name === \"bounce\") {\r\n bounce(el, Number(duration) || 200, Number(delay) || 200);\r\n }\r\n el.removeAttribute(name);\r\n } else if (name === prefix(\"ref\") || name === \"ref\") {\r\n if (el.ref) {\r\n warnDuplicate$(el, \"ref\", el, true);\r\n return;\r\n }\r\n const refName = el.getAttribute(name);\r\n this.$ref[refName] = el;\r\n el.removeAttribute(name);\r\n } else if (name.startsWith(\"#\")) {\r\n if (el.ref) {\r\n warnDuplicate$(el, \"ref\", el, true);\r\n return;\r\n }\r\n const refName = name.slice(1);\r\n this.$ref[refName] = el;\r\n el.removeAttribute(name);\r\n } else if (\r\n name.startsWith(prefix(\"bind:\")) ||\r\n name.startsWith(\"bind:\")\r\n ) {\r\n let propName = name.slice(8);\r\n if (name.startsWith(\"bind:\")) {\r\n propName = name.slice(5);\r\n }\r\n const dataName = el.getAttribute(name);\r\n if (propName === \"this\") {\r\n if (el.ref) {\r\n warnDuplicate$(el, \"bind:this\", el, true);\r\n return;\r\n }\r\n this.$ref[dataName] = el;\r\n el.removeAttribute(name);\r\n } else {\r\n el[this.kebabToCamel(propName)] = attributeparser(\r\n this,\r\n dataName,\r\n el\r\n );\r\n el.removeAttribute(name);\r\n }\r\n } else if (name === prefix(\"cloak\")) {\r\n if (el.getAttribute(name) !== \"\") {\r\n warn(\r\n \"`dv-cloak` doesn't accepts any value.\\nShould be\\n<\" +\r\n el.tagName.toLowerCase() +\r\n \" dv-cloak ...>...\"\r\n );\r\n }\r\n queueMicrotask(() => el.removeAttribute(name));\r\n }\r\n\r\n for (var keys in $app.directives) {\r\n var val = $app.directives[keys];\r\n if (typeof val === \"function\") {\r\n var $name = keys;\r\n if (name.startsWith(prefix($name))) {\r\n var binding = el.getAttribute(name);\r\n let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\r\n val(el, {\r\n bind: {\r\n value: attributeparser(this, binding, el),\r\n args: name.split(\":\")[1],\r\n name: name,\r\n expression: binding,\r\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\r\n },\r\n });\r\n val._dv_directives_ = el._dv_directives_ = {\r\n active: true,\r\n args: name.split(\":\")[1],\r\n value: attributeparser(this, binding, el),\r\n expression: binding,\r\n name: name,\r\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\r\n };\r\n el.removeAttribute(name);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return elem;\r\n }\r\n };\r\n /**\r\n * Attach a component to this one\r\n * @param {Function|Array} component The component(s) to attach\r\n */\r\n Dative.prototype.attach = function (component) {\r\n var ref = this;\r\n // Attach components\r\n let polyps = type(component) === \"array\" ? component : [component];\r\n for (let polyp of polyps) {\r\n ref.attached.push(polyp);\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * Detach a linked component to this one\r\n * @param {Function|Array} component The linked component(s) to detach\r\n */\r\nDative.prototype.detach = function (component) {\r\n // Detach components\r\n let polyps = type(component) === \"array\" ? component : [component];\r\n for (let polyp of polyps) {\r\n let index = this.attached.indexOf(polyp);\r\n if (index < 0) return;\r\n this.attached.splice(index, 1);\r\n }\r\n};\r\n/**\r\n * @param {String} str\r\n * @param {boolean} expectsLowerCase\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n const map = Object.create(null);\r\n const list = str.split(\",\");\r\n for (let lists in list) {\r\n map[list[lists]] = true;\r\n }\r\n return expectsLowerCase\r\n ? (val) => !!map[val.toLowerCase()]\r\n : (val) => !!map[val];\r\n}\r\n\r\nvar BuiltinNames = makeMap(\r\n \"object, function,switch,const,eval,var,let,Object,Array,in,of,if,else,instanceof,this,class,export,import,default,try,catch\"\r\n);\r\n\r\n/**\r\n * @param {Dative} dative\r\n */\r\nfunction initMethods(dative) {\r\n let methods = dative.methods;\r\n if (methods) {\r\n for (const key in methods) {\r\n if (key in dative.data) {\r\n warnDuplicate(this, key, \"data\");\r\n return;\r\n }\r\n if (BuiltinNames(key)) {\r\n warn(\r\n \"Don't use Valid Javascript Builtin names for functions in methods to avoid errors\"\r\n );\r\n }\r\n if (typeof methods[key] !== \"function\") {\r\n warn(\r\n `Method \"${key}\" has type \"${typeof methods[\r\n key\r\n ]}\" in the component definition. ` +\r\n `Did you reference the function correctly?`\r\n );\r\n return;\r\n }\r\n if (key in dative && isReserved(key)) {\r\n warn(\r\n `Method \"${key}\" conflicts with an existing Dative instance method. ` +\r\n `Avoid defining component methods that start with _ or $.`\r\n );\r\n return;\r\n }\r\n dative[key] =\r\n methods[key] == null\r\n ? config.noop\r\n : typeof methods[key] == \"function\"\r\n ? methods[key].bind(dative)\r\n : \"\";\r\n dative[key]._dv_function = true;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * idtotemplate converter for style\r\n * @param {string} id\r\n */\r\nfunction idToTemplate$1(id) {\r\n var el = query(id);\r\n if (el.tagName.toLowerCase() !== \"style\") {\r\n warn(\r\n `Template element with id ${id}, must be a `\r\n );\r\n return;\r\n }\r\n return el && el.innerHTML;\r\n}\r\n/** @type {Number} */\r\nvar $$uid = 0;\r\n\r\n/**\r\n * Install Dative plugin\r\n * @param {Array} args The Dative plugin\r\n */\r\nfunction use() {\r\n var arguments$1 = arguments;\r\n\r\n var _this = this;\r\n var plugins = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n plugins[_i] = arguments$1[_i];\r\n }\r\n plugins.forEach(function (p) {\r\n if (p.install && isFunction(p.install)) {\r\n p.install({\r\n proto: _this.constructor.prototype,\r\n Dative: _this.constructor,\r\n instance: _this,\r\n });\r\n } else {\r\n p({\r\n proto: _this.constructor.prototype,\r\n Dative: _this.constructor,\r\n instance: _this,\r\n });\r\n }\r\n });\r\n return this;\r\n}\r\nvar ReservedProperties = makeMap(\"el,ref\");\r\n\r\nclass DeprecatedError extends Error {\r\n constructor(message) {\r\n super(message);\r\n this.name = \"DeprecatedError\";\r\n this.message = message;\r\n }\r\n}\r\n\r\nfunction depd(namespace) {\r\n return function deprecated(message) {\r\n console.warn(new DeprecatedError(`${namespace} ${message}`));\r\n };\r\n}function _init($this) {\r\n $this.oncreated = $this.options.oncreated || config.noop;\r\n $this.onmounted = $this.options.onmounted || config.noop;\r\n $this.methods = $this.options.methods || Object.create(null);\r\n $this.directives = $this.options.directives || Object.create(null);\r\n $this.animate = $this.options.animate || Object.create(null);\r\n $this.$ref = Object.create(null);\r\n $this.isUnmounted = false;\r\n $this.isMounted = false;\r\n $this.ondestroy = $this.options.ondestroy || config.noop;\r\n $this.attached = [];\r\n $this.sanitize = $this.options.sanitize === undefined ? false : $this.options.sanitize;\r\n $this.events = $this.options.events;\r\n if ($this.options.css) $this.cssId_ = uuid_();\r\n initData($this.options,$this);\r\n initMethods($this);\r\n var attach = $this.options.attach ? (type($this.options.attach) === 'array' ? $this.options.attach : [$this.options.attach]) : [];\r\n if ($this.oncreated !== undefined && $this.oncreated !== null) {\r\n $this.oncreated();\r\n } \t\r\n var target = $this.options.el;\r\n if (target) {\r\n $this.mount(target);\r\n }\r\n $this._uid = $$uid+=1;\r\n if ($this.options.store) {\r\n tip('store options has been deprecated in Dyte '+(config.dyte ? config.dyte.version : '')+' and in DativeJs '+Dative.version+'.Access it globally after installing Dyte.\\n`app.use(store);`');\r\n }\r\n if ($this.options.update) {\r\n tip('update options has been deprecated in '+Dative.version+'');\r\n }\r\n \r\n /**\r\n * initialize mounted hooks\r\n **/ \r\n if ($this.onmounted !== undefined && $this.onmounted !== null && ($this.$el instanceof Node)) {\r\n $this.onmounted();\r\n }else if($this.isUnmounted && $this.ondestroy !== null && $this.ondestroy !== undefined){\r\n $this.ondestroy();\r\n }\r\n const computed = $this.options.computed || Object.create(null);\r\n if (!computed) return false;\r\n for (let key in computed) {\r\n const value = computed[key];\r\n if (key in $this.data || key in $this.methods) {\r\n warnDuplicate($this,key, key in $this.data ? 'data' : 'methods');\r\n return;\r\n }\r\n if (typeof value === 'function') {\r\n Object.defineProperty($this, key, {\r\n get: value,\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n }else if (typeof value === 'string' || typeof value !== 'function' && typeof value !== 'object') {\r\n warn(\r\n 'computed options accepts ``Object|Function`` but got '+typeof value \r\n );\r\n return;\r\n }else if (typeof value === 'object') {\r\n Object.defineProperty($this, key, {\r\n get: value.get || config.noop,\r\n set: value.set || config.noop,\r\n configurable: true,\r\n });\r\n }\r\n }\r\n var property$ = $this.options.property || Object.create(null);\r\n for (var prop in property$) {\r\n const vall = property$[prop];\r\n if (typeof vall === 'function'){\r\n Object.defineProperty($this,'$'+prop,{\r\n get: function propertygetter(){ \r\n return vall($this)\r\n },\r\n configurable: true\r\n });\r\n }\r\n }\r\n \r\n \r\n \r\n \r\n if (attach.length) {\r\n attach.forEach(function(component) {\r\n if ('attach' in component) {\r\n component.attach($this);\r\n }\r\n });\r\n }\r\n \r\n if ($this.$el) $this.render();\r\n \r\n}\r\n\r\n/**\r\n * Create the Dative Application\r\n * @param {Object} options The component options\r\n */\r\nfunction Dative(options) {\r\n options = options || {};\r\n if (!('DOMParser' in window)) warn('Your Browser Doesnt support DativeJs.');\r\n if (!(this instanceof Dative)) warn('Dative Must be called as a constructor');\r\n var $this = this;\r\n $this.options = options;\r\n config.CurrentInstance = $this;\r\n var $plugins = $this.options.use || [];\r\n var styles = $this.options.css;\r\n \r\n if (styles) {\r\n warn('css options is not supported on per-instance. Use it in \\n var Component = Dative.extend({ \\n ...,\\n css: \\'/** Your css **/\\' });\\n var comp = new Component({ ... });');\r\n }\r\n if ($plugins) {\r\n if (Array.isArray($this.options.use)){ $this.use.apply($this, $this.options.use); }\r\n }\r\n _init($this);\r\n}\r\n\r\nDative.prototype.mount = function(el){\r\n var $app = this;\r\n if (el) {\r\n $app.$el = query(el);\r\n $app.$el.setAttribute('data-dative-app','');\r\n }\r\n if ($app.$el == document.documentElement || $app.$el == document.body) {\r\n this.$el.remove();\r\n $app.isUnmounted = true;\r\n warn('Can\\'t mount on or ');\r\n }\r\n $app.render();\r\n return $app \r\n};\r\n\r\n/**\r\n * Destroys the current instance\r\n */\r\nDative.prototype.$destroy = function () {\r\n var $this = this;\r\n if ($this.isUnmounted) {\r\n warn(\"Instance can't be unmounted again\");\r\n }\r\n if ($this.isMounted) {\r\n this.$el.firstChild.remove();\r\n delete this.onmounted;\r\n delete this.$el.dative_app;\r\n $this.isUnmounted = true;\r\n $this.isMounted = false;\r\n $this.ondestroy();\r\n } else {\r\n warn(\"Cannot use $destroy() on an instance that's not mounted\");\r\n }\r\n};\r\n\r\ninitRender(Dative);\r\nDative.prototype.proxy = proxy;\r\nDative.prototype.use = use;\r\n\r\nvar configs = { enumerable: true, configurable: true };\r\nconfigs.get = function () {\r\n return config;\r\n};\r\n{\r\n configs.set = function () {\r\n warn(\r\n \"Do not replace the Dative.config object, set individual fields instead.\"\r\n );\r\n };\r\n}\r\nObject.defineProperty(Dative, \"config\", configs);\r\nvar WarnReserved$ = function (key, target) {\r\n warn(\r\n [\"`\" + key + \"` is a reserved property.\\n\", \"Try using another name\"].join(\r\n \"\"\r\n ),\r\n target\r\n );\r\n};\r\n\r\n/**\r\n * @param {string} name name of the property\r\n * @param {Function} callback callback function\r\n */\r\n\r\nvar property = function (name, callback) {\r\n if (ReservedProperties(name)) {\r\n WarnReserved$(name);\r\n return;\r\n }\r\n Object.defineProperty(Dative.prototype, \"$\" + name, {\r\n get: function propertygetter() {\r\n return callback();\r\n },\r\n set: function propertysetter(v) {\r\n warn(\"Dative.defineProperty is readonly\");\r\n },\r\n configurable: true,\r\n enumerable: true,\r\n });\r\n};\r\n\r\n/**\r\n * @param {any} options\r\n */\r\nvar defineApp = function defineApp(options) {\r\n if (options.data) {\r\n if (typeof options.data !== \"function\") {\r\n warn(`Data should be a function,But got ${typeof options.data}`);\r\n return;\r\n }\r\n }\r\n return new Dative(options);\r\n};\r\n\r\nfunction initProps(options, dative, prop) {\r\n let props = options.props;\r\n props = dative.props = props || Object.create(null);\r\n if (!Array.isArray(props) && !isPlainObject(props)) {\r\n props = {};\r\n warn(\"options props should return an object.\");\r\n }\r\n\r\n const props_ = prop;\r\n for (let propss in props_) {\r\n if (typeof prop[propss] === \"string\" && dative.sanitize) {\r\n prop[propss] = sanitizeStr(prop[propss]);\r\n }\r\n if (!isReserved())\r\n dative.proxyProps(\r\n `props`,\r\n propss,\r\n props_[propss].type || props_[propss],\r\n propss,\r\n props_[propss].default\r\n );\r\n }\r\n observe(props);\r\n}\r\nfunction proxyProps(sourceKey, key, value, name, defaultvalue) {\r\n let self = this;\r\n Object.defineProperty(self, key, {\r\n configurable: true,\r\n enumerable: true,\r\n get: function reactivepropsgetter() {\r\n var va = self[sourceKey][key];\r\n if (value === String && typeof va !== \"string\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires String as the value but got ' +\r\n typeof va\r\n );\r\n return \"undefined\";\r\n } else if (value === Number && typeof va !== \"number\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Number as the value but got ' +\r\n typeof va\r\n );\r\n return \"undefined\";\r\n } else if (value === Number && typeof va !== \"number\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Number as the value but got ' +\r\n typeof va\r\n );\r\n return \"undefined\";\r\n } else if (value === Function && typeof va !== \"function\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Function as the value but got ' +\r\n typeof va\r\n );\r\n return \"undefined\";\r\n } else if (value === Object && typeof va !== \"object\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Object as the value but got ' +\r\n typeof va\r\n );\r\n return \"undefined\";\r\n } else if (value === Array && type(va) !== \"array\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Array as the value but got ' +\r\n typeof va\r\n );\r\n return \"undefined\";\r\n } else if (value === Boolean && typeof va !== \"boolean\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Boolean as the value but got ' +\r\n typeof va\r\n );\r\n return \"undefined\";\r\n } else if (value === null) {\r\n return self[sourceKey][key] || defaultvalue;\r\n } else {\r\n return self[sourceKey][key] || defaultvalue;\r\n }\r\n },\r\n set: function reactivepropssetter(newVal) {\r\n if (value === String && typeof newVal !== \"string\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires String as the value but got ' +\r\n typeof newVal\r\n );\r\n return;\r\n } else if (value === Number && typeof newVal !== \"number\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Number as the value but got ' +\r\n typeof newVal\r\n );\r\n return;\r\n } else if (value === Function && typeof newVal !== \"function\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Function as the value but got ' +\r\n typeof newVal\r\n );\r\n return;\r\n } else if (value === Object && typeof newVal !== \"object\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Object as the value but got ' +\r\n typeof newVal\r\n );\r\n return;\r\n } else if (value === Boolean && typeof newVal !== \"boolean\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Boolean as the value but got ' +\r\n typeof newVal\r\n );\r\n return;\r\n } else if (value === Array && type(newVal) !== \"array\") {\r\n warn(\r\n 'Props \"' +\r\n name +\r\n '\" requires Array as the value but got ' +\r\n typeof newVal\r\n );\r\n return;\r\n } else if (value === null) {\r\n self[sourceKey][key] = newVal;\r\n self.render();\r\n } else {\r\n self[sourceKey][key] = newVal;\r\n self.render();\r\n return true;\r\n }\r\n },\r\n });\r\n}\r\n\r\nvar PREFIX = \"/* Dative.js component styles */\";\r\nfunction makeStyle(id) {\r\n if (doc) {\r\n var el = doc.createElement(\"style\");\r\n el.type = \"text/css\";\r\n el.setAttribute(\"data-dative-css\", id || \"\");\r\n doc.getElementsByTagName(\"head\")[0].appendChild(el);\r\n return el;\r\n }\r\n}\r\nfunction getStyle(id) {\r\n return (\r\n doc &&\r\n (doc.querySelector('[data-dative-css=\"' + id + '\"]') || makeStyle(id))\r\n );\r\n}\r\n\r\nvar remove = /\\/\\*(?:[\\s\\S]*?)\\*\\//g;\r\nvar escape =\r\n /url\\(\\s*(['\"])(?:\\\\[\\s\\S]|(?!\\1).)*\\1\\s*\\)|url\\((?:\\\\[\\s\\S]|[^)])*\\)|(['\"])(?:\\\\[\\s\\S]|(?!\\2).)*\\2/gi;\r\nvar value = /\\0(\\d+)/g;\r\n/**\r\n * Removes comments and strings from the given CSS to make it easier to parse.\r\n *\r\n * @param css\r\n * @param callback receives the cleaned CSS\r\n * @param additionalReplaceRules\r\n */\r\nfunction cleanCss(css, callback, additionalReplaceRules) {\r\n if (additionalReplaceRules === void 0) {\r\n additionalReplaceRules = [];\r\n }\r\n var values = [];\r\n css = css\r\n .replace(escape, function (match) {\r\n return \"\\0\" + (values.push(match) - 1);\r\n })\r\n .replace(remove, \"\");\r\n additionalReplaceRules.forEach(function (pattern) {\r\n css = css.replace(pattern, function (match) {\r\n return \"\\0\" + (values.push(match) - 1);\r\n });\r\n });\r\n var reconstruct = function (css) {\r\n return css.replace(value, function (_match, n) {\r\n return values[n];\r\n });\r\n };\r\n return callback(css, reconstruct);\r\n}\r\nvar selectorsPattern = /(?:^|\\}|\\{|\\x01)\\s*([^\\{\\}\\0\\x01]+)\\s*(?=\\{)/g;\r\nvar importPattern = /@import\\s*\\([^)]*\\)\\s*;?/gi;\r\nvar importEndPattern = /\\x01/g;\r\nvar keyframesDeclarationPattern =\r\n /@keyframes\\s+[^\\{\\}]+\\s*\\{(?:[^{}]+|\\{[^{}]+})*}/gi;\r\nvar selectorUnitPattern =\r\n /((?:(?:\\[[^\\]]+\\])|(?:[^\\s\\+\\>~:]))+)((?:::?[^\\s\\+\\>\\~\\(:]+(?:\\([^\\)]+\\))?)*\\s*[\\s\\+\\>\\~]?)\\s*/g;\r\nvar excludePattern = /^(?:@|\\d+%)/;\r\nvar globe = /^(?:\\:|\\d+%)/g;\r\nvar dataRvcGuidPattern = /\\[data-dative-css~=\"[a-z0-9-]\"]/g;\r\nfunction trim(str) {\r\n return str.trim();\r\n}\r\nfunction extractString(unit) {\r\n return unit.str;\r\n}\r\nfunction transformSelector(selector, parent) {\r\n var selectorUnits = [];\r\n var match;\r\n while ((match = selectorUnitPattern.exec(selector))) {\r\n selectorUnits.push({\r\n str: match[0],\r\n base: match[1],\r\n modifiers: match[2],\r\n });\r\n }\r\n // For each simple selector within the selector, we need to create a version\r\n // that a) combines with the id, and b) is inside the id\r\n var base = selectorUnits.map(extractString);\r\n var transformed = [];\r\n var i = selectorUnits.length;\r\n while (i--) {\r\n var appended = base.slice();\r\n // Pseudo-selectors should go after the attribute selector\r\n var unit = selectorUnits[i];\r\n appended[i] = unit.base + parent + unit.modifiers || \"\";\r\n var prepended = base.slice();\r\n prepended[i] = parent + \" \" + prepended[i];\r\n transformed.push(appended.join(\" \"), prepended.join(\" \"));\r\n }\r\n return transformed.join(\", \");\r\n}\r\nfunction transformCss(css, id) {\r\n var dataAttr = '[data-dative-css~=\"' + id + '\"]';\r\n var transformed;\r\n if (dataRvcGuidPattern.test(css)) {\r\n transformed = css.replace(dataRvcGuidPattern, dataAttr);\r\n } else {\r\n transformed = cleanCss(\r\n css,\r\n function (css, reconstruct) {\r\n css = css\r\n .replace(importPattern, \"$&\\x01\")\r\n .replace(selectorsPattern, function (match, $1) {\r\n // don't transform at-rules and keyframe declarations\r\n if (excludePattern.test($1)) {\r\n return match;\r\n }\r\n if (globe.test($1)) return match;\r\n var selectors = $1.split(\",\").map(trim);\r\n var transformed =\r\n selectors\r\n .map(function (selector) {\r\n return transformSelector(selector, dataAttr);\r\n })\r\n .join(\", \") + \" \";\r\n return match.replace($1, transformed);\r\n })\r\n .replace(importEndPattern, \"\");\r\n return reconstruct(css);\r\n },\r\n [keyframesDeclarationPattern]\r\n );\r\n }\r\n return PREFIX + \"\\n\" + transformed;\r\n}\r\n\r\nvar extend = function extend(options) {\r\n if (options.el || options.target) {\r\n warn(\r\n `Dative.extend doesn't accept ${\r\n options.el\r\n ? \"el: \" + options.el\r\n : options.target\r\n ? \"target: \" + options.target\r\n : \"\"\r\n }.\\nThe el or target should be pass to the var app = Dative.extend({...});\\n new app({ ${\r\n options.el\r\n ? \"el: '\" + options.el + \"'\"\r\n : options.target\r\n ? \"target: '\" + options.target + \"'\"\r\n : \"\"\r\n }',.... })`\r\n );\r\n return;\r\n }\r\n /** @type {Dative} */\r\n var Parent = this;\r\n function DativeComponent(initialProps) {\r\n if (!(this instanceof DativeComponent)) {\r\n warn(\"Dative.extend class has to be called with the `new` keyboard\");\r\n return;\r\n }\r\n var $this = this;\r\n $this.options = options;\r\n if (initialProps.el || initialProps.target) {\r\n $this.options.el = initialProps.el || initialProps.target;\r\n } else {\r\n $this.options.el = doc.createDocumentFragment();\r\n }\r\n var $plugins = $this.options.use || [];\r\n if ($plugins) {\r\n if (Array.isArray($this.options.use)) {\r\n $this.use.apply($this, $this.options.use);\r\n }\r\n }\r\n\r\n if ($this.options.data) {\r\n if (typeof $this.options.data !== \"function\") {\r\n tip(\r\n `Data should be a function,But got ${typeof $this.options.data}\\n ${\r\n typeof $this.options.data === \"object\"\r\n ? \"Replace data:{ \\n \\t msg: '....' \\n } with data(){ return{ \\n \\t msg:'....' \\n } }\"\r\n : \"\"\r\n }`\r\n );\r\n }\r\n }\r\n\r\n if (!$this.options.attach && initialProps.attach) {\r\n $this.options.attach = initialProps.attach;\r\n }\r\n\r\n if (options.props && initialProps.props)\r\n initProps(initialProps, $this, options.props);\r\n\r\n _init($this);\r\n var styles = $this.options.css;\r\n $this.cssScoped = $this.options.cssScoped || true;\r\n const scoped = $this.cssScoped;\r\n if (styles) {\r\n if (styles[0] === \"#\") {\r\n styles = idToTemplate$1(styles);\r\n }\r\n\r\n var compiled_styles = parse(styles, $this);\r\n if (scoped) {\r\n var compiled = transformCss(compiled_styles, $this.cssId_);\r\n $this.css = {\r\n value: compiled_styles,\r\n transformed: { active: true, value: compiled },\r\n };\r\n if (doc.querySelector(\"style[data-dative-css]\")) {\r\n var st = doc.querySelector(\"style[data-dative-css]\");\r\n st.innerHTML = st.innerHTML + compiled;\r\n } else {\r\n var style = getStyle();\r\n style.innerHTML = compiled;\r\n }\r\n }\r\n }\r\n }\r\n initRender(DativeComponent);\r\n var proto = Object.create(Parent.prototype);\r\n proto.constructor = DativeComponent;\r\n //DativeComponent['super']\r\n DativeComponent.prototype = proto;\r\n DativeComponent.prototype.proxyProps = proxyProps;\r\n\r\n Object.defineProperties(DativeComponent, {\r\n extend: { value: Parent.extend, configurable: true, enumerable: true },\r\n defineApp: {\r\n value: Parent.defineApp,\r\n configurable: true,\r\n enumerable: true,\r\n },\r\n defineProperty: {\r\n value: Parent.defineProperty,\r\n configurable: true,\r\n enumerable: true,\r\n },\r\n utlis: {\r\n value: { warn: Parent.utlis.warn },\r\n configurable: true,\r\n enumerable: true,\r\n },\r\n version: { value: Parent.version, configurable: true, enumerable: true },\r\n });\r\n return DativeComponent;\r\n};\r\n\r\nvar __version__ = \"V2.0.0-alpha\";\r\nDative.version = __version__;\r\nDative.defineProperty = property;\r\nDative.defineApp = defineApp;\r\nObject.defineProperty(Dative, \"utlis\", {\r\n value: {\r\n warn: warn,\r\n },\r\n configurable: true,\r\n enumerable: true,\r\n});\r\nDative.extend = extend;\r\n\r\nvar deprecatedMethods = [\r\n \"use\",\r\n \"importStyle\",\r\n \"ref\",\r\n \"reactive\",\r\n \"watchEffect\",\r\n];\r\n\r\ndeprecatedMethods.forEach((methods) => {\r\n Object.defineProperty(Dative, methods, {\r\n /** @deprecated */\r\n value: function () {\r\n var deprecate = depd(methods);\r\n // tip(`${methods} Has been deprecated in v2-alpha`)\r\n deprecate(`Has been deprecated in v2-alpha`);\r\n },\r\n configurable: true,\r\n enumerable: true,\r\n });\r\n});\r\n\r\nif (inBrowser) {\r\n var welcomeIntro_1 = [\r\n \"%cDative.js %c\" + Dative.version + \" %cin debug mode, %cmore...\",\r\n \"color: #FF3E00;font-weight: bold;\",\r\n \"color: #111; font-weight: 600;\",\r\n \"color: rgb(85, 85, 255); font-weight: normal;\",\r\n \"color: rgb(82, 140, 224); font-weight: normal; text-decoration: underline;\",\r\n ];\r\n var message = [\r\n `You're running Dative ${Dative.version} in debug mode - messages will be printed to the console to help you fix problems and optimise your application.\r\n \r\n To disable debug mode, add this line at the start of your app:\r\n Dative.config.slient = true;\r\n \r\n Get help and support:\r\n http://dativejs.js.org`,\r\n ];\r\n if (config.slient === false) {\r\n if (typeof console !== \"undefined\") {\r\n var hasCollpased = !!console.groupCollapsed;\r\n if (hasCollpased) {\r\n console[hasCollpased ? \"groupCollapsed\" : \"group\"].apply(\r\n console,\r\n welcomeIntro_1\r\n );\r\n console[console.info ? \"info\" : \"log\"].apply(console, message);\r\n console.groupEnd();\r\n } else {\r\n console[console.info ? \"info\" : \"log\"].apply(console, message);\r\n }\r\n }\r\n }\r\n}\n\nexport { Dative as default, defineApp, property as defineProperty, __version__ as version, warn };\n//# sourceMappingURL=dative.esm.js.map\n","/**\n * dytejs v1.0.1-alpha\n * (c) 2021-2022 Tobithedev \n * https://github.com/dytejs/dytejs\n * Released under the MIT License.\n*/\nfunction tip() {\r\n console.warn('[Dyte Tips]: ', arguments[0]);\r\n}\r\nlet Dative;\r\nfunction setDative(_Dative) {\r\n Dative = _Dative;\r\n}\r\nfunction assert(condition, msg) {\r\n {\r\n if (!condition) { throw new Error(`[Dyte err] ${msg}`) }\r\n }\r\n}\r\nfunction isObject(obj) {\r\n return obj !== null && typeof obj === 'object'\r\n}\r\n/**\r\n * Validate whether given map is valid or not\r\n * @param {*} map\r\n * @return {Boolean}\r\n */\r\nfunction isValidMap(map) {\r\n return Array.isArray(map) || isObject(map)\r\n}\r\n/**\r\n * Normalize the map\r\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\r\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\r\n * @param {Array|Object} map\r\n * @return {Object}\r\n */\r\nfunction normalizeMap(map) {\r\n if (!isValidMap(map)) {\r\n return []\r\n }\r\n return Array.isArray(map) ?\r\n map.map(function (key) { return ({ key: key, val: key }); }) :\r\n Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\r\n}\r\n\r\n\r\n\r\n\r\nvar mapState = function (states) {\r\n var res = {};\r\n assert(isValidMap(states), 'mapState: mapper parameter must be either an Array or an Object');\r\n normalizeMap(states).forEach(function (ref) {\r\n var key = ref.key;\r\n var val = ref.val;\r\n\r\n res[key] = function mappedState() {\r\n var state = this.$store.state;\r\n var getters = this.$store.getters;\r\n return typeof val === 'function' ?\r\n val(state, getters) :\r\n state[val]\r\n };\r\n });\r\n return res\r\n};\r\n/**\r\n * Reduce the code which written in Dative.js for getting the getters\r\n * @param {String} \r\n * @param {Object|Array} getters\r\n * @return {Object}\r\n */\r\nvar mapGetters = function (getters) {\r\n var res = {};\r\n if (!isValidMap(getters)) {\r\n console.error('[dyte] mapGetters: mapper parameter must be either an Array or an Object');\r\n }\r\n normalizeMap(getters).forEach(function (ref) {\r\n var key = ref.key;\r\n var val = ref.val;\r\n res[key] = function mappedGetter() {\r\n if (!(val in this.$store.getters)) {\r\n console.error((\"[dyte] unknown getter: \" + val));\r\n return\r\n }\r\n return this.$store.getters[val]\r\n };\r\n });\r\n return res\r\n};\r\n\r\nvar mapActions = function (actions) {\r\n var res = {};\r\n if (!isValidMap(actions)) {\r\n console.error('[dyte] mapActions: mapper parameter must be either an Array or an Object');\r\n }\r\n normalizeMap(actions).forEach(function (ref) {\r\n var key = ref.key;\r\n var val = ref.val;\r\n\r\n res[key] = function mappedAction() {\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n\r\n // get dispatch function from store\r\n var dispatch = this.$store.dispatch;\r\n return typeof val === 'function'\r\n ? val.apply(this, [dispatch].concat(args))\r\n : dispatch.apply(this.$store, [val].concat(args))\r\n };\r\n });\r\n return res\r\n};\r\n\r\nfunction unifyObjectStyle(type, payload, options) {\r\n if (isObject(type) && type.type) {\r\n options = payload;\r\n payload = type;\r\n type = type.type;\r\n }\r\n\r\n {\r\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\r\n }\r\n\r\n return { type: type, payload: payload, options: options }\r\n}\r\n\r\nfunction genericSubscribe(fn, subs, options) {\r\n if (subs.indexOf(fn) < 0) {\r\n options && options.prepend\r\n ? subs.unshift(fn)\r\n : subs.push(fn);\r\n }\r\n return function () {\r\n var i = subs.indexOf(fn);\r\n if (i > -1) {\r\n subs.splice(i, 1);\r\n }\r\n }\r\n}\r\n\r\n\r\nvar $$store;\r\nfunction defineStore(options) {\r\n $$store = new Store(options);\r\n return $$store;\r\n}\r\n/**\r\n * @returns {Store}\r\n*/\r\nfunction useStore() {\r\n return $$store\r\n}\r\n\r\n/**\r\n * @param {object} options options for the Store\r\n*/\r\nfunction Store(options) {\r\n options = options || {};\r\n assert(this instanceof Store, \"store must be called with the new operator.\");\r\n var $this = this;\r\n $this.options = options;\r\n $this.actions = $this.options.actions || Object.create(null);\r\n $this.use = $this.options.use || Object.create(null);\r\n $this.subscriber = [];\r\n var store = this;\r\n var ref = this;\r\n var dispatch = ref.dispatch;\r\n this.dispatch = function boundDispatch(type, payload) {\r\n return dispatch.call(store, type, payload)\r\n };\r\n\r\n var $state = typeof $this.options.state === 'function' ? $this.options.state.apply($this, [$this]) : $this.options.state || Object.create(null);\r\n $this._state = new Proxy($state, {\r\n set(state, key, value) {\r\n state[key] = value;\r\n return true;\r\n }\r\n });\r\n\r\n for (const state in $this._state) {\r\n Object.defineProperty($this, state, {\r\n get: function reactivegetter() {\r\n return $this._state[state]\r\n },\r\n set: function reactivestatesetter(newValue) {\r\n $this._state[state] = newValue;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n\r\n for (const action in $this.actions) {\r\n Object.defineProperty($this, action, {\r\n get: function reactiveactionsgetter() {\r\n return $this.actions[action]\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n\r\n if ($this.use === void 0) $this.use = [];\r\n\r\n var plugin_store = [];\r\n $this.installed_plugins = plugin_store;\r\n\r\n if (typeof $this.use === 'function' || Array.isArray($this.use)) {\r\n if (typeof $this.use === 'function') $this.use = $this.use();\r\n $this.use.forEach(function (plugins) {\r\n\r\n if (typeof plugins === 'function') {\r\n plugins($this);\r\n plugin_store.push(plugins($this));\r\n } else {\r\n Dative.warn('[Dyte warn]: Plugin should be a function');\r\n }\r\n });\r\n\r\n }\r\n\r\n $this.getters = {};\r\n const getters = $this.options.getters;\r\n if (!getters) return false;\r\n for (let key in getters) {\r\n const value = getters[key];\r\n Object.defineProperty($this.getters, key, {\r\n get: function reactivegetter() { return value.call(store) },\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n }\r\n}\r\n\r\nvar prototypeAccessors = { state: { configurable: true } };\r\nprototypeAccessors.state.get = function () {\r\n return this._state\r\n};\r\n\r\nprototypeAccessors.state.set = function (v) {\r\n {\r\n assert(false, \"use store.replaceState() to explicit replace store state.\");\r\n }\r\n};\r\nObject.defineProperties(Store.prototype, prototypeAccessors);\r\n/**\r\n * @param {string} _action for the actions\r\n * @param {string|object} _payload payload for the action\r\n **/\r\nStore.prototype.dispatch = function dispatch(_action, _payload) {\r\n var store = this;\r\n var { type, payload } = unifyObjectStyle(_action, _payload);\r\n assert(this.actions[type], `action ${type} is undefined`);\r\n this.actions[type].call(store,\r\n {\r\n dispatch: store.dispatch,\r\n getters: store.getters,\r\n state: store.state\r\n },\r\n payload\r\n );\r\n\r\n this.subscriber.slice().forEach(subscribe => subscribe((this.state)));\r\n};\r\n/**\r\n * @param {function} fn subscribe to change in the mutations\r\n * @param {*} options\r\n **/\r\nStore.prototype.subscribe = function subscribe(fn, options) {\r\n return genericSubscribe(fn, this.subscriber, options)\r\n};\r\n\r\nStore.prototype.replaceState = function replaceState(state) {\r\n var $this = this;\r\n $this._state = state;\r\n};\r\n\r\nvar $destroy = function $destroy() {\r\n var $this = this;\r\n $this._state = Object.create(null);\r\n $this.actions = Object.create(null);\r\n $this.plugins = [];\r\n $this.getters = Object.create(null);\r\n};\r\nStore.prototype.$reset = function $reset() {\r\n var $store = this;\r\n $store.$destroy = $destroy;\r\n this.$destroy();\r\n};\r\nStore.prototype.hotUpdate = function hotUpdate(rawModule) {\r\n if (rawModule.actions) {\r\n this.actions = rawModule.actions;\r\n }\r\n if (rawModule.getters) {\r\n this.getters = rawModule.getters;\r\n }\r\n};\r\n/**\r\n * @param {Dative} dative installs Dyte to DativeJs\r\n **/\r\nStore.prototype.install = function install(dative) {\r\n if (Dative) {\r\n tip(`Dyte is already installed. app.use(store) should be called only once.`);\r\n return;\r\n }\r\n var _this = this;\r\n dative.proto.$store = _this;\r\n setDative(dative.Dative);\r\n};\r\n/**\r\n * \r\n * Re-renders the Dative instance whenever the Dyte Store changes \r\n*/\r\n\r\nvar connect = function connect() {\r\n /**\r\n * @param {typeof Dative} app\r\n */\r\n return (app) => {\r\n\r\n useStore().subscribe(() => app.render());\r\n }\r\n};\r\nvar __VERSION__ = 'v1.0.1-alpha';\n\nexport { connect, defineStore, mapActions, mapGetters, mapState, useStore, __VERSION__ as version };\n//# sourceMappingURL=dyte.esm.js.map\n","/**\n * @dativejs/helper v1.0.0\n * (c) 2022-2022 Tobithedev \n * https://github.com/dativeJs/helper\n * Released under the MIT License.\n*/\nvar index = {\r\n install({Dative}){\r\n var $range = function (start, stop, step) {\r\n if (step === void 0) {\r\n step = 1;\r\n }\r\n \r\n // Accept $range(10) and expect 1...10\r\n if (typeof stop === 'undefined') {\r\n stop = start;\r\n start = start ? 1 : 0;\r\n } // Accept $range(20, 10) and expect 20...10\r\n \r\n \r\n var reverse = start > stop;\r\n \r\n if (reverse) {\r\n var _ref = [stop, start];\r\n start = _ref[0];\r\n stop = _ref[1];\r\n } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Sequence_generator_range\r\n var range = Array.from({\r\n length: (stop - start) / step + 1\r\n }, function (_, i) {\r\n return start + i * step;\r\n });\r\n return reverse ? range.reverse() : range;\r\n };\r\n Dative.defineProperty('range',()=>{\r\n return (start, stop, step)=>{\r\n return $range(start, stop, step)\r\n }\r\n });\r\n /**\r\n * @param {Function} callback (()=> console.log('hi'))\r\n * @param {Number} time delay\r\n */\r\n var $interval = function(callback,time){\r\n if (time == void 0) {\r\n time = 0;\r\n }\r\n return setInterval(callback,time);\r\n };\r\n var $timeout = function(callback,time){\r\n if (time == void 0) {\r\n time = 0;\r\n }\r\n return setTimeout(callback, time);\r\n };\r\n \r\n Dative.defineProperty('interval',()=>{\r\n return (callback,time)=>{\r\n return $interval(callback,time)\r\n }\r\n });\r\n \r\n Dative.defineProperty('timeout', () => {\r\n return (callback, time) => {\r\n return $timeout(callback, time)\r\n }\r\n });\r\n \r\n \r\n \r\n Dative.defineProperty('truncate', () => {\r\n return (...parameters) => {\r\n if (typeof parameters[0] !== 'string') return parameters[0]\r\n \r\n // If the second parameter isn't truthy, return the full string\r\n if (!parameters[1]) return parameters[0]\r\n \r\n // if only a number or string is passed in, keep it simple\r\n if (typeof parameters[1] !== 'object') {\r\n return appendEllipsis(parameters[0].slice(0, parameters[1]), parameters)\r\n }\r\n \r\n // If words or characters is set, also check that they are truthy. Setting to 0, for example, shoudld show all\r\n if (Object.prototype.hasOwnProperty.call(parameters[1], 'words') && parameters[1].words) {\r\n return appendEllipsis(parameters[0].split(' ').splice(0, parameters[1].words).join(' '), parameters)\r\n }\r\n if (Object.prototype.hasOwnProperty.call(parameters[1], 'characters') && parameters[1].characters) {\r\n return appendEllipsis(parameters[0].slice(0, parameters[1].characters), parameters)\r\n }\r\n return parameters[0]\r\n }\r\n });\r\n \r\n function appendEllipsis(string, parameters) {\r\n if (parameters[0].length <= string.length) return string\r\n let ellipsis = '…';\r\n // 3rd parameter is an optional '…' override (soon to be deprecated)\r\n if (typeof parameters[2] !== 'undefined') {\r\n ellipsis = parameters[2];\r\n }\r\n // If the second parameter is an object\r\n if (Object.prototype.hasOwnProperty.call(parameters[1], 'ellipsis')) {\r\n ellipsis = parameters[1].ellipsis;\r\n }\r\n return string + ellipsis\r\n }\r\n class Config {\r\n constructor() {\r\n this.values = {\r\n breakpoints: {\r\n xs: 0,\r\n sm: 640,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1280,\r\n '2xl': 1536,\r\n },\r\n };\r\n }\r\n \r\n get(property) {\r\n return this.values[property] ? this.values[property] : null\r\n }\r\n }\r\n \r\n const config = new Config();\r\n \r\n Dative.defineProperty('screen', () => {\r\n return (breakpoint) => {\r\n // Get current window width\r\n const width = window.innerWidth;\r\n \r\n // Early return if breakpoint is provided as number\r\n if (Number.isInteger(breakpoint)) return breakpoint <= width\r\n \r\n // Get breakpoints from Config\r\n const configBreakpoints = config.get('breakpoints');\r\n \r\n // Check if breakpoint exists\r\n if (configBreakpoints[breakpoint] === undefined) {\r\n Dative.utlis.warn('Undefined $screen property: ' + breakpoint);\r\n }\r\n \r\n // Finally compare breakpoint with window width and return as boolean\r\n return configBreakpoints[breakpoint] <= width\r\n }\r\n });\r\n }\r\n };\n\nexport { index as default };\n//# sourceMappingURL=dative-helper.esm.js.map\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n\n var _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n styleDefault: 'solid',\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n };\n\n var _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n var config = {};\n Object.keys(_config).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n });\n WINDOW.FontAwesomeConfig = config;\n var _onChangeCb = [];\n function onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n }\n\n var d = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n function bunker(fn) {\n try {\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 fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n function nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n }\n function toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n }\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n }\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n\n var baseStyles = \":host,:root{--fa-font-solid:normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";--fa-font-regular:normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";--fa-font-light:normal 300 1em/1 \\\"Font Awesome 6 Light\\\";--fa-font-thin:normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";--fa-font-duotone:normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";--fa-font-brands:normal 400 1em/1 \\\"Font Awesome 6 Brands\\\"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}\";\n\n function css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n }\n\n var _cssInserted = false;\n\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n }\n\n var InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n };\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n var functions = [];\n\n var listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n\n var loaded = false;\n\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n }\n\n function domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n };\n\n /**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n function ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n\n function toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n }\n function codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n }\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n }\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n }), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n }), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n })];\n\n var styles = namespace.styles,\n shims = namespace.shims;\n var LONG_STYLE = Object.values(PREFIX_TO_LONG_STYLE);\n var _defaultUsablePrefix = null;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n var _byOldUnicode = {};\n var _byAlias = {};\n var PREFIXES = Object.keys(PREFIX_TO_STYLE);\n\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n\n function getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault);\n };\n onChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault);\n });\n build();\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n function byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n }\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n function byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n }\n function getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n }\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n function getCanonicalPrefix(styleOrPrefix) {\n var style = PREFIX_TO_STYLE[styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[styleOrPrefix] || STYLE_TO_PREFIX[style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n }\n function getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE.includes(cls) ? LONG_STYLE_TO_PREFIX[cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES.indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls);\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n }\n\n var Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n var longPrefix = PREFIX_TO_LONG_STYLE[key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n }();\n\n var _plugins = [];\n var _hooks = {};\n var providers = {};\n var defaultProviderKeys = Object.keys(providers);\n function registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n }\n function chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n }\n function callHooks(hook) {\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 var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n }\n function callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n }\n\n function findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n var library = new Library();\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n };\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n };\n var parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.familyPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n };\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n };\n\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n\n function bootstrap(plugins) {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n\n domready(function () {\n autoReplace();\n callHooks('bootstrap');\n });\n }\n\n namespace.hooks = _objectSpread2(_objectSpread2({}, namespace.hooks), {}, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n build();\n autoReplace();\n },\n addPacks: function addPacks(packs) {\n packs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n prefix = _ref2[0],\n icons = _ref2[1];\n\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n });\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n build();\n autoReplace();\n }\n });\n }\n\n function domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n\n function asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n\n function asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n }\n\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n\n var styles$1 = namespace.styles;\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n var missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n };\n\n function maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n }\n\n function findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n }\n\n var noop$1 = function noop() {};\n\n var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"6.0.0\\\"\";\n\n var begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n\n var end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n\n var perf = {\n begin: begin,\n end: end\n };\n\n var noop$2 = function noop() {};\n\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n\n function hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n }\n\n function hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n }\n\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n\n function createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n\n function createElement(tag) {\n return DOCUMENT.createElement(tag);\n }\n\n function convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n }\n\n function nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n }\n\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n\n function performOperationSync(op) {\n op();\n }\n\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n var disabled = false;\n function disableObservation() {\n disabled = true;\n }\n function enableObservation() {\n disabled = false;\n }\n var mo = null;\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n }\n\n function classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n }\n\n function attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n }\n\n function blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n function parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n }\n\n var styles$2 = namespace.styles;\n\n function generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n }\n\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$2);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n }\n\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n }\n\n var render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n };\n var ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n };\n\n var LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n };\n\n var LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n };\n\n var CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\n var SECONDARY_UNICODE_RANGE = [1105920, 1112319];\n function hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n }\n\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n\n function replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n }\n\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n\n function searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n\n var PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n };\n\n var _unwatched = false;\n var MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n };\n\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n };\n var PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n };\n\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n\n function fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n }\n\n function deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n }\n\n var Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n };\n\n var SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n };\n\n var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\n registerPlugins(plugins, {\n mixoutsTo: api\n });\n bunker(bootstrap);\n\n}());\n","import { defineStore } from 'dytejs'\r\nimport { teams } from './teams.store'\r\nimport { icons } from './icons.store'\r\n\r\n\r\n\r\nexport default defineStore({\r\n state: {\r\n title: \"Dative.js\",\r\n teams,\r\n icons,\r\n social_icon: [\r\n { name: \"github\", link: \"https://github.com/dativeJs/dativejs\" },\r\n { name: \"twitter\", link: \"https://twitter.com/dativejs\" },\r\n // { name: \"discord\", link: \"https://discord.com/xa2xqedax\" },\r\n ],\r\n },\r\n actions: {\r\n useMedia: (str) => matchMedia(str).matches,\r\n capitalize: (str) => str.charAt(0).toUpperCase() + str.slice(1),\r\n },\r\n getters: {\r\n uppercaseTitle() {\r\n return this.title.toUpperCase();\r\n },\r\n },\r\n});","export let teams = [\r\n {\r\n name: \"TobitheAlpha\",\r\n base: \"Dativejs/Dytejs\",\r\n location: \"Nigeria\",\r\n language: \"English\",\r\n region: \"africa\",\r\n link: \"https://github.com/Tobithedev\",\r\n image: \"https://avatars.githubusercontent.com/u/61181645?v=4\",\r\n social_media: [\r\n {\r\n name: \"facebook\",\r\n link: \"https://facebook.com/tobithealpha\",\r\n },\r\n {\r\n name: \"instagram\",\r\n link: \"https://instagram.com/tobithealpha\",\r\n },\r\n {\r\n name: \"twitter\",\r\n link: \"https://twitter.com/tobithealpha_\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"Gideon\",\r\n base: \"@dativejs/animations\",\r\n location: \"Ghana\",\r\n language: \"English\",\r\n region: \"africa\",\r\n link: \"https://github.com/gideonadcodez\",\r\n image: \"https://avatars.githubusercontent.com/u/64356627?v=4\",\r\n social_media: [\r\n {\r\n name: \"facebook\",\r\n link: \"https://facebook.com/gideon.aboagyedacosta.9\",\r\n },\r\n {\r\n name: \"twitter\",\r\n link: \"https://twitter.com/gadacosta_\",\r\n },\r\n ],\r\n },\r\n ]","export let icons = [\r\n {\r\n icon: \"svg\",\r\n title: \"Dative Cli Soon\",\r\n descriptions: \"A new experience for easy scaffolding\",\r\n svg: ``,\r\n },\r\n {\r\n icon: \"svg\",\r\n title: \"Helper Kits For DativeJS\",\r\n descriptions:\r\n \"Brand New plugins,blocks,Directives and Animation Support For Making Development for easy\",\r\n svg: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n },\r\n {\r\n icon: \"svg\",\r\n title: \"TypeScript Support Soon\",\r\n descriptions: \"Support For TypeScript With DativeJs\",\r\n svg: `\r\n \r\n `,\r\n },\r\n {\r\n icon: \"svg\",\r\n title: \"DevTools Soon\",\r\n descriptions: \"Easy Debugging with the Dative DevTools\",\r\n svg: ` `,\r\n },\r\n];\r\n","import Dative from \"dativejs\";\r\nimport template from \"./sidebar.dative.html\";\r\n\r\nexport let SideBar = Dative.extend({\r\n template,\r\n props: {\r\n sidebar: Object,\r\n },\r\n});\r\n","import Dative from \"dativejs\";\r\nimport { swing } from \"dativejs/animation\";\r\nimport template from \"./navbar.dative.html\";\r\n\r\nexport let NavBar = Dative.extend({\r\n template,\r\n props: {\r\n logo: String,\r\n icons: Array,\r\n toggleSidebar: Function,\r\n },\r\n animate: {\r\n swing,\r\n },\r\n});","export function flip({ animate, duration, delay }) {\r\n animate(\r\n [\r\n {\r\n transform:\r\n \"perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg)\",\r\n },\r\n {\r\n transform:\r\n \"perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg)\",\r\n },\r\n {\r\n transform:\r\n \"perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg)\",\r\n },\r\n {\r\n transform:\r\n \"perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg)\",\r\n },\r\n {\r\n transform:\r\n \"perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg)\",\r\n },\r\n ],\r\n {\r\n duration,\r\n delay,\r\n easing: \"ease-in-out\",\r\n }\r\n );\r\n}\r\n\r\nexport function fadeOut({ animate, duration, delay }) {\r\n animate([{ opacity: 0 }, { opacity: 1 }], {\r\n delay,\r\n duration,\r\n easing: \"ease-in-out\",\r\n });\r\n}\r\n\r\nexport function bubble({ animate, duration, delay }) {\r\n animate(\r\n [\r\n { transform: \"scale3d(1, 1, 1)\" },\r\n { transform: \"scale3d(1.05, 1.05, 1.05)\" },\r\n { transform: \"scale3d(1, 1, 1)\" },\r\n ],\r\n {\r\n delay,\r\n duration,\r\n easing: \"ease-in-out\",\r\n }\r\n );\r\n}\r\n\r\nexport function swing({ animate, duration, delay }) {\r\n animate(\r\n [\r\n { transform: \"rotate3d(0, 0, 1, 15deg)\" },\r\n { transform: \"rotate3d(0, 0, 1, -10deg)\" },\r\n { transform: \"rotate3d(0, 0, 1, 5deg)\" },\r\n { transform: \"rotate3d(0, 0, 1, -5deg)\" },\r\n { transform: \"rotate3d(0, 0, 1, 0deg)\" },\r\n ],\r\n {\r\n delay,\r\n duration,\r\n easing: \"ease-in-out\",\r\n }\r\n );\r\n}\r\n","import Dative from \"dativejs\";\r\nimport footer from \"./footer.dative.html\";\r\n\r\nexport let Footer = Dative.extend({\r\n template: footer,\r\n data() {\r\n return {\r\n year: () => new Date().getFullYear(),\r\n };\r\n },\r\n props: {\r\n transformer: Function,\r\n },\r\n});","import Dative from 'dativejs'\r\nimport template from './ads.dative.html'\r\n\r\n\r\nexport let Ads = Dative.extend({\r\n template,\r\n data() {\r\n var hrefs = document.querySelectorAll('h1[id]');\r\n var href = [];\r\n hrefs.forEach(value => {\r\n href.push(value.id);\r\n })\r\n return {\r\n hrefs: href\r\n }\r\n }\r\n})","import Dative from \"dativejs\";\r\nimport { connect } from \"dytejs\";\r\nimport helper from \"@dativejs/helpers\";\r\nimport Prism from \"prismjs\";\r\nimport \"prismjs/plugins/toolbar/prism-toolbar\";\r\nimport \"prismjs/plugins/treeview/prism-treeview\";\r\n// import 'prismjs/plugins/show-language/prism-show-language'\r\nimport \"prismjs/components/prism-json\";\r\nimport \"prismjs/components/prism-jsx\";\r\nimport \"prismjs/components/prism-typescript\";\r\nimport \"prismjs/components/prism-tsx\";\r\nimport \"prismjs/components/prism-bash\";\r\nimport \"prismjs/components/prism-js-extras\";\r\nimport \"prismjs/components/prism-js-templates\";\r\nimport \"@fortawesome/fontawesome-free/js/all\";\r\nimport store from \"../src/stores\";\r\nimport { slidein, slideright, fadein } from \"./animations\";\r\nimport { SideBar } from \"./sidebar/sidebar.dative\";\r\nimport { NavBar } from \"./navbar/navbar.dative\";\r\nimport { Footer } from \"./footer/footer.dative\";\r\nimport { Ads } from \"./ads/ads.dative\";\r\nimport Home from \"./home/home.dative.html\";\r\nimport Teams from \"./teams/teams.dative.html\";\r\nimport Api from \"./api/api.dative.html\";\r\nimport Guide from \"./guide/guide.dative.html\";\r\nimport Migration from \"./migration/migration.dative.html\";\r\nimport logo from \"../public/logo.png\";\r\nimport \"../public/output.css\";\r\nimport \"../assets/css/prism.css\";\r\nimport \"../assets/css/style.css\";\r\nimport \"@fortawesome/fontawesome-free/css/all.css\";\r\nimport \"prismjs/plugins/treeview/prism-treeview.css\";\r\n\r\nlet sidebar, navbar, footer;\r\n\r\nlet app = new Dative({\r\n el: \"#app\",\r\n onmounted() {\r\n setTimeout(() => Prism.highlightAll(), 0);\r\n },\r\n data: () => ({\r\n name: \"Dativejs\",\r\n head_list: [\"Home\", \"Github\"],\r\n dark: \"(prefers-color-scheme: dark)\",\r\n }),\r\n use: [store, helper],\r\n animate: {\r\n slideright,\r\n slidein,\r\n fadein,\r\n },\r\n template:\r\n location.pathname === \"/\" || location.pathname === \"/index.html\"\r\n ? Home\r\n : location.pathname === \"/teams\" ||\r\n location.pathname === \"/teams/index.html\"\r\n ? Teams\r\n : location.pathname === \"/api\" || location.pathname === \"/api/index.html\"\r\n ? Api\r\n : location.pathname === \"/guide\" ||\r\n location.pathname === \"/guide/index.html\"\r\n ? Guide\r\n : location.pathname === \"/migration\" ||\r\n location.pathname === \"/migration/index.html\"\r\n ? Migration\r\n : 404,\r\n methods: {\r\n /**\r\n * @param timestamp timestamp for the date\r\n */\r\n transformer: (timestamp) => {\r\n const date = new Date(timestamp);\r\n const digits = [\r\n date.getFullYear(),\r\n date.getMonth() + 1,\r\n date.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds(),\r\n ].map((num) => String(num).padStart(1, 1));\r\n return \"{0}-{1}-{2}, {3}:{4}:{5}\".replace(\r\n /{(\\d)}/g,\r\n (_, num) => digits[num]\r\n );\r\n }\r\n }\r\n});\r\n// app.use(store)\r\nconnect()(app);\r\nwindow.app = app;\r\n\r\nif (document.querySelector(\"#sidebar\")) {\r\n sidebar = new SideBar({\r\n el: \"#sidebar\",\r\n props: {\r\n sidebar: [\r\n {\r\n title: \"Guide\",\r\n path: \"/guide/index.html\",\r\n children: [\r\n {\r\n title: \"Introduction\",\r\n path: \"/guide/index.html\",\r\n },\r\n {\r\n title: \"Installation\",\r\n path: \"/guide/index.html#installation\",\r\n },\r\n {\r\n title: \"Data and Methods\",\r\n path: \"/guide/index.html#data-and-methods\",\r\n },\r\n {\r\n title: \"Computed\",\r\n path: \"/guide/index.html#computed\",\r\n },\r\n {\r\n title: \"#if\",\r\n path: \"/guide/index.html#conditional-rendering\",\r\n },\r\n {\r\n title: \"#each\",\r\n path: \"/guide/index.html#for-loop\",\r\n },\r\n {\r\n title: \"Extend\",\r\n path: \"/guide/index.html#extend\",\r\n },\r\n {\r\n title: \"Event\",\r\n path: \"/guide/index.html#event\",\r\n },\r\n {\r\n title: \"Property\",\r\n path: \"/guide/index.html#property\",\r\n },\r\n {\r\n title: \"Plugin\",\r\n path: \"/guide/index.html#plugin\",\r\n },\r\n {\r\n title: \"@debug\",\r\n path: \"/guide/index.html#debug\",\r\n },\r\n {\r\n title: \"#with\",\r\n path: \"/guide/index.html#with\",\r\n },\r\n {\r\n title: \"Directives\",\r\n path: \"/guide/index.html#directives\",\r\n },\r\n {\r\n title: \"define Api\",\r\n path: \"/guide/index.html#define-api\",\r\n },\r\n {\r\n title: \"Comment\",\r\n path: \"/guide/index.html#comment\",\r\n },\r\n {\r\n title: \"Variable\",\r\n path: \"/guide/index.html#variable\",\r\n },\r\n {\r\n title: \"Animations\",\r\n path: \"/guide/index.html#animation\",\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Api\",\r\n path: \"/api/index.html\",\r\n },\r\n {\r\n title: \"Teams\",\r\n path: \"/teams/index.html\",\r\n },\r\n {\r\n title: \"Migration\",\r\n path: \"/migration/index.html\",\r\n },\r\n ],\r\n },\r\n attach: app,\r\n });\r\n}\r\n\r\nif (document.querySelector(\"#navbar\")) {\r\n navbar = new NavBar({\r\n el: \"#navbar\",\r\n attach: app,\r\n props: {\r\n logo: logo,\r\n icons: [\r\n { name: \"github\", link: \"https://github.com/dativeJs/dativejs\" },\r\n { name: \"twitter\", link: \"https://twitter.com/dativejs\" },\r\n ],\r\n toggleSidebar() {\r\n var navi = sidebar.$ref.navbar;\r\n if (navi.style.width === \"0px\") navi.style.width = \"50%\";\r\n else navi.style.width = \"0px\";\r\n },\r\n },\r\n });\r\n}\r\n\r\nif (document.querySelector(\"#footer\")) {\r\n footer = new Footer({\r\n el: \"#footer\",\r\n attach: app,\r\n props: {\r\n /**\r\n * @param timestamp timestamp for the date\r\n */\r\n transformer: (timestamp) => {\r\n const date = new Date(timestamp);\r\n const digits = [\r\n date.getFullYear(),\r\n date.getMonth() + 1,\r\n date.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds(),\r\n ].map((num) => String(num).padStart(1, 1));\r\n return \"{0}-{1}-{2}, {3}:{4}:{5}\".replace(\r\n /{(\\d)}/g,\r\n (_, num) => digits[num]\r\n );\r\n },\r\n },\r\n });\r\n}\r\n\r\nif (document.querySelector(\"#ads\")) {\r\n new Ads({\r\n target: \"#ads\",\r\n attach: app,\r\n });\r\n}\r\n\r\nif (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.register(\"/sw.js\");\r\n}\r\n","export let slidein = function ({ animate, duration, delay }) {\r\n animate(\r\n [\r\n {\r\n transform: \"translate3d(-100%, 0, 0)\",\r\n visibility: \"visible\",\r\n },\r\n {\r\n transform: \"translate3d(0, 0, 0)\",\r\n },\r\n ],\r\n {\r\n duration,\r\n delay,\r\n easing: \"ease\",\r\n }\r\n );\r\n },\r\n slideright = function ({ animate, duration, delay }) {\r\n animate(\r\n [\r\n {\r\n transform: \"translate3d(0,100%, 0)\",\r\n visibility: \"visible\",\r\n },\r\n {\r\n transform: \"translate3d(0, 0, 0)\",\r\n },\r\n ],\r\n {\r\n duration,\r\n delay,\r\n easing: \"ease\",\r\n }\r\n );\r\n};\r\nexport let fadein = function ({ animate, duration, delay }) {\r\n animate(\r\n [\r\n {\r\n transform: \"translateY(-\" + window.innerWidth + \"px)\",\r\n opacity: 0,\r\n },\r\n {\r\n transform: \"translateY(0)\",\r\n opacity: 1,\r\n },\r\n {\r\n transform: \"translateY(-140px)\",\r\n opacity: 1,\r\n },\r\n {\r\n transform: \"translateY(0)\",\r\n opacity: 1,\r\n },\r\n {\r\n transform: \"translateY(-60px)\",\r\n opacity: 1,\r\n },\r\n {\r\n transform: \"translateY(0)\",\r\n opacity: 1,\r\n },\r\n ],\r\n {\r\n duration: duration,\r\n delay: delay,\r\n easing: \"ease\",\r\n }\r\n );\r\n}","var img = \"data:image/png;base64,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\";\n export default img;"],"names":["doc","undefined","document","config","slient","mode","noop","CurrentInstance","warn","msg","others","console","error","tip","isReserved","string","char","charCodeAt","isPlainObject","object","proto","ctor","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","Object","getPrototypeOf","constructor","uid","Dep$1","this","id","subs","addSub","sub","notify","update","defineReactive","key","value","dep","defineProperty","get","target","set","newValue","observe","data","type","split","forEach","toLowerCase","_type$$","obj","sanitizeStr","replace","c","_typeof$1","Symbol","iterator","prototype","ifparse","_","elseifparse","elseparse","withparse","debugparse","commentparse","charr","variableparse","isFunction","val","inBrowser","window","string$","parse","html","options","elem","trim","match","re","reExp","code","cursor","result","add","line","js","includes","each","startsWith","endsWith","space","cx","join","d","exec","slice","index","length","substr","Function","apply","err","name","message","source","start","end","lines","newlineSequences","filter","idx","count","res","i","j","push","repeat","Math","max","String","lineLength","newLineSeqLength","pad","min","generateCodeFrame","template","getNodeContent","node","childNodes","textContent","isDifferentNode","node1","node2","nodeType","tagName","src","compiler","polyps","domMap","templateMap","querySelectorAll","temps","temp","fragg","createElement","innerHTML","replaceWith","append","cloneNode","ahead","existingNodes","Array","from","find","branch","aheadInTree","before","polyp","matches","templateContent","fragment","createDocumentFragment","appendChild","templateNodes","extra","remove","trimExtraNodes","processor","Element","str","DOMParser","parseFromString","body","childElementCount","lastChild","querySelector","stringToHTML$__","event","expression","evt","_$","outerHTML","attributeparser","elem$$","self","warnDuplicate","property","query","el","shadowRoot","host","s4","floor","random","substring","prefix","subject","initRender","Dative","kebabToCamel","ignorePrefix","ignoredStr","RegExp","camelStr","s","reduce","r","toUpperCase","m","p","$this","render","item","valps","warnDuplicate$","isDirective","fadeIn","duration","delay","once","op","animate","opacity","display","easing","timer","setInterval","clearInterval","pause","transition","cancel","bounce","animationTimingFunction","transform","iterations","Infinity","$app","hasAttribute","getAttribute","idToTemplate","isMounted","isUnmounted","$el","dative_app","dv","attached","map","component","css","setAttribute","cssId_","getAttributeNames","eventName","handlerName","events","vall","bind","addEventListener","removeAttribute","transyName","modifiers","transitionMap","enter","klass","classList","leave","$value","style","animation_name","checkani","animationName","ease","setStyle","Number","ref","refName","$ref","propName","dataName","queueMicrotask","keys","directives","$name","binding","args","_dv_directives_","active","attach","makeMap","expectsLowerCase","create","list","lists","detach","indexOf","splice","BuiltinNames","$$uid","ReservedProperties","DeprecatedError","Error","super","_init","oncreated","onmounted","methods","ondestroy","sanitize","dative","proxy","initData","_dv_function","initMethods","mount","_uid","store","dyte","version","Node","computed","enumerable","configurable","property$","prop","$plugins","use","isArray","documentElement","$destroy","firstChild","sourceKey","newVal","arguments$1","arguments","_this","plugins","_i","install","instance","configs","proxyProps","defaultvalue","va","Boolean","getStyle","getElementsByTagName","makeStyle","escape","selectorsPattern","importPattern","importEndPattern","keyframesDeclarationPattern","selectorUnitPattern","excludePattern","globe","dataRvcGuidPattern","extractString","unit","transformCss","dataAttr","PREFIX","test","callback","additionalReplaceRules","values","pattern","_match","n","cleanCss","reconstruct","$1","transformed","selector","parent","selectorUnits","base","appended","prepended","transformSelector","v","defineApp","extend","Parent","DativeComponent","defineProperties","utlis","initialProps","props","props_","propss","default","initProps","styles","cssScoped","scoped","idToTemplate$1","compiled_styles","compiled","st","namespace","deprecate","welcomeIntro_1","hasCollpased","groupCollapsed","info","groupEnd","assert","condition","$$store","Store","actions","subscriber","dispatch","payload","$state","state","_state","Proxy","action","plugin_store","installed_plugins","getters","prototypeAccessors","_action","_payload","unifyObjectStyle","subscribe","fn","prepend","unshift","genericSubscribe","replaceState","$reset","hotUpdate","rawModule","_Dative","$store","stop","step","reverse","_ref","range","$range","appendEllipsis","parameters","ellipsis","time","$interval","setTimeout","$timeout","words","characters","breakpoints","xs","sm","md","lg","xl","breakpoint","width","innerWidth","isInteger","configBreakpoints","Prism","_self","lang","uniqueId","plainTextGrammar","manual","disableWorkerMessageHandler","util","encode","tokens","Token","content","alias","o","objId","clone","deepClone","visited","getLanguage","element","className","parentElement","setLanguage","language","currentScript","stack","scripts","isActive","defaultActivation","no","contains","languages","plain","plaintext","text","txt","redef","insertBefore","inside","insert","root","grammar","ret","token","newToken","old","DFS","propertyType","highlightAll","async","highlightAllUnder","container","env","hooks","run","elements","highlightElement","nodeName","insertHighlightedCode","highlightedCode","Worker","worker","filename","onmessage","postMessage","JSON","stringify","immediateClose","highlight","tokenize","rest","tokenList","LinkedList","addAfter","head","matchGrammar","array","next","tail","toArray","all","callbacks","matchedStr","matchPattern","pos","lookbehind","lastIndex","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","greedy","global","flags","currentNode","reach","removeCount","to","k","matchStr","after","removeFrom","prev","removeRange","nestedRematch","newNode","e","tag","classes","attributes","aliases","close","script","highlightAutomaticallyCallback","readyState","defer","requestAnimationFrame","WorkerGlobalScope","module","exports","markup","comment","prolog","doctype","punctuation","cdata","entity","includedCdataInside","def","attrName","mathml","svg","xml","ssml","atom","rss","atrule","rule","keyword","url","function","important","addInlined","addAttribute","clike","boolean","number","operator","javascript","regex","parameter","constant","hashbang","interpolation","msMatchesSelector","webkitMatchesSelector","EXTENSIONS","py","rb","ps1","psm1","sh","bat","h","tex","STATUS_ATTR","STATUS_LOADING","STATUS_LOADED","SELECTOR","pre","extension","autoloader","loadLanguages","success","xhr","XMLHttpRequest","open","onreadystatechange","status","responseText","FAILURE_MESSAGE","statusText","send","loadFile","comma","parseRange","fileHighlight","logged","toolbar","registerButton","opts","onClick","href","hook","parentNode","wrapper","elementCallbacks","order","getOrder","treeview","folderPattern","parts","shift","json","null","webmanifest","braces","spread","jsx","stringifyToken","walkTokens","openedTags","notTagNorBrace","pop","openedBraces","plainText","typescript","builtin","typeInside","decorator","at","generic","ts","tsx","envVars","commandAfterHeredoc","insideString","bash","environment","variable","shebang","toBeCopied","shell","withId","method","imports","arrow","dom","maybeClassNameTokens","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","getPlaceholder","counter","tokenizeWithHooks","tokenizeInterpolationExpression","tempGrammar","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedTokens","placeholder","interpolationExpression","placeholders","middle","replacement","afterTokens","concat","supportedLanguages","stringContent","findTemplateStrings","l","embedded","_WINDOW","_DOCUMENT","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","writable","_arrayLikeToArray","arr","len","arr2","PRODUCTION","oneToTen","oneToTwenty","DUOTONE_CLASSES","solid","regular","light","thin","duotone","brands","kit","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","TypeError","_nonIterableSpread","w","shims","normalizeIcons","icons","acc","iconName","icon","defineIcons","params","_params$skipHooks","skipHooks","normalized","addPack","accusoft","adn","adversal","affiliatetheme","airbnb","algolia","alipay","amazon","amilia","android","angellist","angrycreative","angular","apper","apple","artstation","asymmetrik","atlassian","audible","autoprefixer","avianex","aviato","aws","bandcamp","behance","bilibili","bimobject","bitbucket","bitcoin","bity","blackberry","blogger","bluetooth","bootstrap","bots","btc","buffer","buromobelexperte","buysellads","centercode","centos","chrome","chromecast","cloudflare","cloudscale","cloudsmith","cloudversify","cmplid","codepen","codiepie","confluence","connectdevelop","contao","cpanel","css3","cuttlefish","dailymotion","dashcube","deezer","delicious","deploydog","deskpro","dev","deviantart","dhl","diaspora","digg","discord","discourse","dochub","docker","draft2digital","dribbble","dropbox","drupal","dyalog","earlybirds","ebay","edge","elementor","ello","ember","empire","envira","erlang","ethereum","etsy","evernote","expeditedssl","facebook","fedex","fedora","figma","firefox","firstdraft","flickr","flipboard","fly","fonticons","forumbee","foursquare","freebsd","fulcrum","gg","git","github","gitkraken","gitlab","gitter","glide","gofore","golang","goodreads","google","gratipay","grav","gripfire","grunt","guilded","gulp","hackerrank","hashnode","hips","hive","hooli","hornbill","hotjar","houzz","html5","hubspot","ideal","imdb","instagram","instalod","intercom","invision","ioxhost","itunes","java","jenkins","jira","joget","joomla","jsfiddle","kaggle","keybase","keycdn","kickstarter","korvue","laravel","lastfm","leanpub","less","linkedin","linode","linux","lyft","magento","mailchimp","mandalorian","markdown","mastodon","maxcdn","mdb","medapps","medium","medrt","meetup","megaport","mendeley","microblog","microsoft","mix","mixcloud","mixer","mizuni","modx","monero","napster","neos","nimblr","npm","ns8","nutritionix","odnoklassniki","opencart","openid","opera","orcid","osi","padlet","page4","pagelines","palfed","patreon","paypal","perbyte","periscope","phabricator","php","pinterest","pix","playstation","pushed","python","qq","quinscape","quora","ravelry","react","reacteurope","readme","rebel","reddit","redhat","renren","replyd","researchgate","resolving","rev","rocketchat","rockrms","rust","safari","salesforce","sass","schlix","scribd","searchengin","sellcast","sellsy","servicestack","shirtsinbulk","shopify","shopware","simplybuilt","sistrix","sith","sitrox","sketch","skyatlas","skype","slack","slideshare","snapchat","soundcloud","sourcetree","speakap","spotify","squarespace","stackpath","staylinked","steam","strava","stripe","studiovinari","stumbleupon","superpowers","supple","suse","swift","symfony","teamspeak","telegram","themeco","themeisle","tiktok","trello","tumblr","twitch","twitter","typo3","uber","ubuntu","uikit","umbraco","uncharted","uniregistry","unity","unsplash","untappd","ups","usb","usps","ussunnah","vaadin","viacoin","viadeo","viber","vimeo","vine","vk","vnv","vuejs","waze","weebly","weibo","weixin","whatsapp","whmcs","windows","wirsindhandwerk","wix","wodu","wordpress","wpbeginner","wpexplorer","wpforms","wpressr","xbox","xing","yahoo","yammer","yandex","yarn","yelp","yoast","youtube","zhihu","_len","_key","bunker","bell","bookmark","building","calendar","circle","clipboard","clock","comments","compass","copy","copyright","envelope","eye","file","flag","folder","futbol","gem","hand","handshake","heart","hospital","hourglass","image","images","keyboard","lemon","lightbulb","moon","newspaper","paste","registered","snowflake","square","star","sun","user","a","anchor","ankh","archway","asterisk","award","b","baby","backward","bacon","bacteria","bacterium","bahai","ban","bandage","barcode","bars","baseball","basketball","bath","bed","bicycle","binoculars","biohazard","blender","blog","bold","bolt","bomb","bone","bong","book","box","braille","brain","briefcase","broom","brush","bug","bullhorn","bullseye","burger","bus","calculator","camera","campground","cannabis","capsules","car","caravan","carrot","cat","certificate","chair","chalkboard","check","cheese","chess","child","church","city","clapperboard","cloud","clover","coins","compress","cookie","couch","crop","cross","crosshairs","crow","crown","crutch","cube","cubes","database","democrat","desktop","dharmachakra","diamond","dice","disease","divide","dna","dog","dolly","dove","download","dragon","droplet","drum","dumbbell","dumpster","dungeon","egg","eject","elevator","equals","eraser","ethernet","exclamation","expand","f","fan","faucet","fax","feather","fill","film","fingerprint","fire","fish","flask","font","football","forward","frog","g","gamepad","gauge","gavel","gear","gears","genderless","ghost","gift","gifts","glasses","gopuram","grip","guitar","gun","hammer","hamsa","hands","hanukiah","hashtag","heading","headphones","headset","helicopter","highlighter","hippo","horse","hotdog","hotel","house","icicles","igloo","inbox","indent","industry","infinity","italic","jedi","joint","kaaba","khanda","landmark","laptop","leaf","link","lock","lungs","magnet","marker","mars","mask","maximize","medal","memory","menorah","mercury","meteor","microchip","microphone","microscope","minimize","minus","mitten","mobile","monument","mosque","motorcycle","mountain","music","neuter","om","otter","outdent","pager","paintbrush","palette","pallet","panorama","paperclip","paragraph","passport","paw","peace","pen","pencil","percent","person","phone","pills","plane","play","plug","plus","podcast","poo","poop","prescription","print","q","qrcode","question","radiation","rainbow","receipt","recycle","reply","republican","restroom","retweet","ribbon","ring","road","robot","rocket","rotate","route","ruler","sailboat","satellite","school","scissors","screwdriver","scroll","section","seedling","server","shapes","share","shield","ship","shirt","shop","shower","shrimp","shuffle","signal","signature","sink","sitemap","skull","slash","sleigh","sliders","smog","smoking","snowman","snowplow","soap","socks","sort","spa","spider","spinner","splotch","spoon","stairs","stamp","stethoscope","stopwatch","strikethrough","stroopwafel","subscript","suitcase","superscript","swatchbook","synagogue","syringe","t","table","tablet","tablets","tags","tape","taxi","teeth","terminal","thermometer","thumbtack","ticket","timeline","toilet","toolbox","tooth","tractor","trademark","trailer","train","transgender","trash","tree","trophy","truck","tty","tv","u","umbrella","underline","unlock","upload","users","utensils","vault","venus","vest","vial","vials","video","vihara","virus","viruses","voicemail","volleyball","wallet","warehouse","water","wheelchair","wifi","wind","wrench","x","xmark","y","z","_typeof","_defineProperties","descriptor","_slicedToArray","_arrayWithHoles","_s","_e","_arr","_n","_d","done","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","MutationObserver","performance","MUTATION_OBSERVER","PERFORMANCE","IS_BROWSER","IS_DOM","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PREFIX_TO_STYLE","fas","far","fal","fat","fad","fab","fak","fa","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","normal","ATTRIBUTES_WATCHED_FOR_MUTATION","RESERVED_CLASSES","initial","FontAwesomeConfig","_ref2","attr","coerce","getAttrConfig","_config","familyPrefix","styleDefault","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","_onChangeCb","cb","meaninglessTransform","size","flipX","flipY","nextUniqueId","classArray","htmlEscape","joinStyles","styleName","transformIsMeaningful","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","headChildren","beforeChild","insertCss","InjectCSS","mixout","beforeDOMElementCreation","beforeI2svg","functions","loaded","domready","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","children","attributeName","joinAttributes","iconFromMapping","mapping","doScroll","listener","removeEventListener","initialValue","thisContext","func","bindInternal4","toHex","unicode","decoded","output","ucs2decode","LONG_STYLE","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","build","lookup","reducer","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","defined","getCanonicalIcon","_params$skipLookups","skipLookups","givenPrefix","canonical","aliasIconName","Library","Constructor","_classCallCheck","definitions","protoProps","staticProps","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","accumulator","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","Promise","reject","watch","autoReplaceSvgRoot","autoReplace","_icon","canonicalIcon","_prefix","api","noAuto","_params$autoReplaceSv","domVariants","abstractCreator","abstract","makeInlineSvgAbstract","_params$icons","main","symbol","title","maskId","titleId","_params$watchable","watchable","found","height","isUploadedIcon","attrClass","class","role","xmlns","viewBox","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","missingIconResolutionMixin","findIcon","resolve","maybeNotifyMissing","noop$1","preamble","perf","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","mutators","mutation","createComment","nodeAsComment","replaceChild","nest","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","perform","mutations","callbackFunction","frame","mutator","disabled","disableObservation","enableObservation","mo","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","childList","characterData","subtree","styleParser","classParser","existingPrefix","existingIconName","innerText","ligature","byLigature","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","onTree","htmlClassList","hclAdd","suffix","hclRemove","prefixes","prefixesDomQuery","candidates","then","resolvedMutations","catch","onNode","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","_hexValueFromContent","cleaned","codePoint","second","first","codePointAt","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","iconIdentifier","iconName4","meta","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","isNaN","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cy","nextPlugins","mixoutsTo","plugin","tk","sk","registerPlugins","pseudoElements2svg","unwatch","disconnect","symbolData","FontAwesome","addPacks","packs","addShims","_namespace$shims","teams","location","region","social_media","descriptions","social_icon","useMedia","capitalize","charAt","uppercaseTitle","SideBar","sidebar","NavBar","logo","toggleSidebar","swing","Footer","year","Date","getFullYear","transformer","Ads","hrefs","app","head_list","dark","helper","slideright","visibility","slidein","fadein","pathname","timestamp","date","digits","getMonth","getDate","getHours","getMinutes","getSeconds","num","padStart","connect","navi","navbar","serviceWorker","register"],"mappings":"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"} \ No newline at end of file diff --git a/src/ads/ads.dative.html b/src/ads/ads.dative.html deleted file mode 100644 index 11d0c75..0000000 --- a/src/ads/ads.dative.html +++ /dev/null @@ -1,17 +0,0 @@ -{{#if $screen('md')}} -
-
-

Table Of Content

-
    - {{#each hrefs as ids}} - {{#if ids === 'question' || ids === 'answer'}} -
  • {{ids}}
  • - {{:else}} -
  • {{ids}}
  • - {{/if}} - {{/each}} -
-
-
- -{{/if}} diff --git a/src/ads/ads.dative.js b/src/ads/ads.dative.js deleted file mode 100644 index d521ad3..0000000 --- a/src/ads/ads.dative.js +++ /dev/null @@ -1,17 +0,0 @@ -import Dative from 'dativejs' -import template from './ads.dative.html' - - -export let Ads = Dative.extend({ - template, - data() { - var hrefs = document.querySelectorAll('h1[id]'); - var href = []; - hrefs.forEach(value => { - href.push(value.id); - }) - return { - hrefs: href - } - } -}) \ No newline at end of file diff --git a/src/animations/index.js b/src/animations/index.js deleted file mode 100644 index bfb104f..0000000 --- a/src/animations/index.js +++ /dev/null @@ -1,71 +0,0 @@ -export let slidein = function ({ animate, duration, delay }) { - animate( - [ - { - transform: "translate3d(-100%, 0, 0)", - visibility: "visible", - }, - { - transform: "translate3d(0, 0, 0)", - }, - ], - { - duration, - delay, - easing: "ease", - } - ); - }, - slideright = function ({ animate, duration, delay }) { - animate( - [ - { - transform: "translate3d(0,100%, 0)", - visibility: "visible", - }, - { - transform: "translate3d(0, 0, 0)", - }, - ], - { - duration, - delay, - easing: "ease", - } - ); -}; -export let fadein = function ({ animate, duration, delay }) { - animate( - [ - { - transform: "translateY(-" + window.innerWidth + "px)", - opacity: 0, - }, - { - transform: "translateY(0)", - opacity: 1, - }, - { - transform: "translateY(-140px)", - opacity: 1, - }, - { - transform: "translateY(0)", - opacity: 1, - }, - { - transform: "translateY(-60px)", - opacity: 1, - }, - { - transform: "translateY(0)", - opacity: 1, - }, - ], - { - duration: duration, - delay: delay, - easing: "ease", - } - ); -} \ No newline at end of file diff --git a/src/api/api.dative.html b/src/api/api.dative.html deleted file mode 100644 index 356de40..0000000 --- a/src/api/api.dative.html +++ /dev/null @@ -1,711 +0,0 @@ -
- - -
-
-
-

Api

-
-
-

Global Config

-
-
-

- Dative.config is an object containing Dative's - global configurations You can modify its properties listed below - before bootstraping your application -

-
-
- slient -
-
  • Type: boolean
  • -
    -
  • Default: false
  • -
    -
  • Usage:
  • -
    -
    Dative.config.slient = true
    -

    Suppress all Dative Logs and warnings

    -
    -
    -

    Global API

    -
    -
    -
    -
  • Arguments:
  • -

    -

  • {Object} options
  • -

    -
  • Usage:
  • -
    -

    - Create a "subclass" of the base Dative constructor. The argument - should be an object containing component options -

    -
    -

    - The special case to note here is the - data options - it must be a function when used - with Dative.extend
    -

    -
    -
    <div id="base-mount"></div>
    -
    var Account = Dative.extend({
    -    template: '<p>{\{username}} Your NetWorth is {\{networth}}</p>'
    -    data(){
    -        return {
    -            username: 'Emeka Tobi',
    -            networth: '100M'
    -        }
    -    } 
    -})
    -
    -new Account({ el: '#base-mount' })
    -
    -

    Passing of props

    -
    -
    <div id="base-mount"></div>
    -
    var Account = Dative.extend({
    -    template: '<p>{\{username}} Your NetWorth is {\{networth}}</p>',
    -    props: {
    -        username: String,
    -        networth: String
    -    }
    -})
    -
    -new Account({ 
    -    el: '#base-mount', 
    -    props: { 
    -        username: 'Emeka Tobi',
    -        networth: '100M'
    -     } 
    -})
    -
    -

    Props with type

    -
    -
    <div id="base-mount"></div>
    -
    var Account = Dative.extend({
    -    template: '<p>{\{username}} Your NetWorth is {\{networth}}</p>',
    -    props: {
    -        username: { 
    -          type: String
    -        },
    -        networth: { 
    -          type: String
    -        }
    -    }
    -})
    -
    -new Account({ 
    -    el: '#base-mount', 
    -    props: { 
    -        username: 'Emeka Tobi',
    -        networth: '100M'
    -     } 
    -})
    -
    -
    -

    Dative.version

    -
    -
    -
    -
  • - Details: Provides the installed version of Dative as a string -
  • -
    -
    -
    -

    Application api

    -
    -
    -
    -

    ;

    -
    -
    -
    -
  • Details: Used to render the application
  • -
  • Returns: The element that the application is mounted to
  • -

    It is used to render the component to mount element

    -
    -
    -

    app.$destroy()

    -
    -
    -
    -
  • Details: Used to destroy the application
  • -

    - Triggers the ondestroy function
    - It disconnects the application from the element .
    -

    -
  • Usage:
  • -
    -
    var app = new Dative({
    -  el: '#app',
    -  template: '<div>Hello!</div>',
    -  ondestroy(){
    -    console.log('Destroy')
    -  }
    -})
    -app.$destroy()
    -
    -
    -

    app.use()

    -
    -
    -
    -
  • Details: Used to install dative plugin to the application
  • -

    - For Plugins that needs to access the template
    - You need to use the mount function instead of the - el options
    - Or Else You'll Get An Error -

    -
  • Usage:
  • -
    -
    var richPlugin = function({ instance }){
    -    instance.title = 'Dative v2-alpha has been released'
    -    instance.author = 'Emeka (Tobithealpha)'
    -}
    -var app = new Dative({
    -  el: '#app',
    -  template: `
    -    <div>
    -      <p>{\{title}}</p>
    -      <p>By -- {\{author}}</p>
    -    </div>
    -  `,
    -})
    -app.use(richPlugin)
    -
    -
    -
    -

    app.set(obj)

    -
    -
    -
    -
  • - Details: Used to set an existing property in the application -
  • -

    - {{"Note".toUpperCase()}}: If the Property you are setting - does not exists you might get an error or the property will not be - reactive -

    -
  • Usage:
  • -
    -
    var app = new Dative({
    -    data: {
    -      msg: 'Hola!'
    -    },
    -    oncreated() {
    -      console.log(this.msg)// =>  Hola!
    -    }
    -})
    -
    -app.set({
    -  msg: 'Salut'
    -})
    -console.log(app.msg) // => Salut
    -
    -
    -// Or with Non-Object Style 
    -app.set('msg', 'Salut')
    -console.log(app.msg) // => Salut
    -
    -
    -

    app.get(value?: string)

    -
    -
    -
    -
  • - Details: Used to get an existing property in the application -
  • -

    - {{"Note".toUpperCase()}}: If the Property you are getting - does not exists you might get an error -

    -
  • Usage:
  • -
    -
    var app = new Dative({
    -    data: {
    -      api: {
    -        id: 'xasc-ewdxwqed-xdwqa'
    -      },
    -      msg: 'Hola!'
    -    },
    -    oncreated() {
    -      console.log(this.get('msg'))// =>  Hola!
    -      console.log(this.get('api.id'))// =>  xasc-ewdxwqed-xdwqa
    -      // Leaving the params with no parameter will return the whole instance
    -      console.log(this.get())// =>  Dative { }
    -    }
    -})
    -
    -console.log(app.get('msg')) // => Hola!
    -console.log(app.get('api.id'))// =>  xasc-ewdxwqed-xdwqa
    -
    -
    -

    - app.attach(component: Function|Array<Function>) -

    -
    -
    -
    -
  • Details: Used to attach a component to the application
  • -

    - See - Dative.extend -

    -

    - In Dative creating multiple instances the main and sub-instance - works well but when using the sub-instance in the main - instance.
    - When the Main Instance Re-renders the sub-instance will be cleared - so we introduce the attach methods to help -

    -
  • Usage:
  • -
    -
    var Wallet = Dative.extend({
    -  template: `
    -  <div>
    -    <h1>Hola {\{username}}</h1>
    -    <h1>Your Wallet Balance is {\{balance}}</h1>
    -  <div>
    -  `,
    -  props: {
    -    username: {
    -      type: String
    -    },
    -    balance: {
    -      type: Number
    -    }
    -  }  
    -})
    -
    -var app = new Dative({
    -  el: '#app'
    -  template: `
    -  <div>
    -    <h1>Hello World</h1>
    -  <div id="sub"></div>
    -  </div>`
    -})
    -
    -
    -var wallet = new Wallet({
    -  el: '#sub',
    -  props: {
    -    username: 'Emeka (Tobithealpha)',
    -    balance: '29032'
    -  }
    -})
    -
    -app.attach(wallet)
    -// Or
    -app.attach([wallet])
    -
    -
    -
    -

    - app.detach(component: Function|Array<Function>) -

    -
    -
    -
    -
  • - Details: Used to detach (unlink/remove) a component to the - application -
  • -

    - It's used to remove a sub instance thats already attached to the - component -

    -
  • Usage:
  • -
    -
    var Wallet = Dative.extend({
    -  template: `
    -  <div>
    -    <h1>Hola {\{username}}</h1>
    -    <h1>Your Wallet Balance is {\{balance}}</h1>
    -  <div>
    -  `,
    -  props: {
    -    username: {
    -      type: String
    -    },
    -    balance: {
    -      type: Number
    -    }
    -  }  
    -})
    -
    -var app = new Dative({
    -  el: '#app'
    -  template: `
    -  <div>
    -    <h1>Hello World</h1>
    -  <div id="sub"></div>
    -  </div>`
    -})
    -
    -
    -var wallet = new Wallet({
    -  el: '#sub',
    -  props: {
    -    username: 'Emeka (Tobithealpha)',
    -    balance: '29032'
    -  }
    -})
    -
    -
    -app.detach(wallet)
    -// Or
    -app.detach([wallet])
    -
    -
    -
    -
    -
    -
    -

    Options API

    -
    -
    -
    - el -
    -
  • Type: string | Element
  • -
    -
  • Details:
  • -

    - Provide the Dative instance an existing DOM element to mount on. -
    - It can be a class, id selector or an actual Element. -
    - After the instance is mounted, the resolved element will be - accessible via app.$el.
    -

    -
    -
    -
    - sanitize -
    -
  • Type: boolean
  • -
    -
  • Details:
  • -

    - When the sanitize options is true, all the html inside the data - property will be sanitized -
    - That means -
    - If you have a property in data like this -

    -
    {
    -  data() {
    -    return {
    -      content: '<h1>Hello</h1>'
    -    }
    -  },
    -  sanitize: true,
    -  onmounted() {
    -    console.log(this.content) // => &\#38;lt&\#59;h1&\#62;Hello&\#38;lt&\#59;&\#47;h1&\#62;
    -  }
    -}
    -
    -
    -
    - template -
    -
  • Type: string
  • -
    -
  • Details:
  • -

    - A string template to be used as the markup for the dativejs - instance.
    - The template will replaced the mounted element.
    - Any existing markup inside the mounted element be ignored. -

    -
    -

    - If the string starts with # it will be used as - a querySelector and use the selected element's innerHTML as the - template string.
    - This allows the use of the common - <script type="text/dative"> trick to include - templates -

    -
    -
    -

    - From a security perspective, you should only use Dative templates - that You can trust. Never use user-generated content as your - template -

    -
    -
    -
    - computed -
    -
  • - Type: - { [x: string]: Function | { get: Function, set: Function } - } -
  • -
    -
  • Details:
  • -

    - Computed properties to be mixed into the Dative instance.
    - Computed properties are cached, and only re-computed on reactive - dependency changes. Note that if a certain dependency is out of the - instance's scope (not reactive), the computed property will not be - updated -

    -
    -
    - methods -
    -
  • - Type: { [x: string]: Function } -
  • -
    -
  • Details:
  • -

    - Methods to be mixed into the Dative instance. You Can access these - methods directly on the instance, or use them in the directives - expressions. All methods will have their - this context automagically bound to the Dative - Instance. -

    -
    -
    -

    - Note that - you should not use arrow function to define a methods (e.g. - inc: ()=> this.count++). The reason is arrow - functions bind the parent context, so - this will not be the Dative instance as you - expect and this.count will be undefined -

    -
    -
    -
    -

    - Note: Also, Never try doing this - <button on:click="{\{inc()}}"></button>. Reason Why Is Because it will do infinite calls to the function - without even clicking the button -

    -
    -
    -
    - - attach -
    -
  • - Type: - Dative | DativeComponent | Array<DativeComponent | - Dative> -
  • -
    -
  • Details:
  • -

    - It is used to attach dative Component to an instance
    - See - Attach Methods For - More Explanation -

    -
    -
    var Wallet = Dative.extend({
    -  template: `
    -  <div>
    -    <h1>Hola {\{username}}</h1>
    -    <h1>Your Wallet Balance is {\{balance}}</h1>
    -  <div>
    -  `,
    -  props: {
    -    username: {
    -      type: String
    -    },
    -    balance: {
    -      type: Number
    -    }
    -  }  
    -})
    -
    -var app = new Dative({
    -  el: '#app'
    -  template: `
    -  <div>
    -    <h1>Hello World</h1>
    -  <div id="sub"></div>
    -  </div>`
    -})
    -
    -
    -var wallet = new Wallet({
    -  el: '#sub',
    -  attach: app,
    -  props: {
    -    username: 'Emeka (Tobithealpha)',
    -    balance: '29032'
    -  }
    -})
    -
    -
    - animate -
    -
  • - Type: - { [x: string]: DativeAnimate } -
  • -
    -
  • Details:
  • -

    - It is used to create custom animations in the current instance -
    - See - Animation For - More Explanation -

    -
    -
    - use -
    -
  • - Type: Array<DativePlugin> -
  • -
    -
  • Details:
  • -

    - It is used to install plugins into the dative instance
    - See Plugins For - More Explanation -

    -
    -
    - property -
    -
  • - Type: - { [x: string]: DativeProperty } -
  • -
    -
  • Details:
  • -

    - It is used to create custom property
    - See Property For - More Explanation -

    -
    -
    - props -
    -
  • - Type: - { [x: string]: DativeComponentProps } | - DativeComponentProps -
  • -
    -
  • Details:
  • -
    -
    - {{"NOTE".bold()}}: The props options Works Only in the Dative.extend -
    -
    -

    - It is used to create props for a dative extended instance
    - See - Dative.extend For - More Explanation -

    -
    -
    - css -
    -
  • Type: string
  • -
    -
  • Details:
  • -
    -
    - {{"NOTE".bold()}}: The props options Works Only in the Dative.extend -
    -
    -

    - It is used to create styles in a dative extended instance
    - See - Dative.extend For - More Explanation -

    -
    -
    - onmounted -
    -
  • Type: onmounted(): void
  • -
    -
  • Details:
  • -
    -
    - {{"NOTE".bold()}}: The mounted was renamed to - onmounted in Dative 2-alpha -
    -
    -

    It is invoked when the application has been mounted

    -
    -
    - oncreated -
    -
  • Type: oncreated(): void
  • -
    -
  • Details:
  • -
    -
    - {{"NOTE".bold()}}: The created was renamed to - oncreated in Dative 2-alpha -
    -
    -

    It is invoked when the application is created

    -
    -
    - ondestroy -
    -
  • Type: ondestroy(): void
  • -
    -
  • Details:
  • -
    -
    - The ondestroy is a new options in Dative - 2-alpha
    - See $destroy For More - Explanation -
    -
    -

    It is invoked when the application has been destroyed

    -
    -
    -
    -
    -

    - Last Modified: {{transformer(Date.now())}} -

    -
    -
    - -
    diff --git a/src/footer/footer.dative.html b/src/footer/footer.dative.html deleted file mode 100644 index a94b7fd..0000000 --- a/src/footer/footer.dative.html +++ /dev/null @@ -1,20 +0,0 @@ -
    -
    -
    - (c) 2021-{{year()}} MIT Licensed. Made By TexxaLabs Teams -
    -
    -
    - {{#each $store.social_icon as icons}} -
    - - - -
    - {{/each}} -
    -
    -
    -
    diff --git a/src/footer/footer.dative.js b/src/footer/footer.dative.js deleted file mode 100644 index c7628eb..0000000 --- a/src/footer/footer.dative.js +++ /dev/null @@ -1,14 +0,0 @@ -import Dative from "dativejs"; -import footer from "./footer.dative.html"; - -export let Footer = Dative.extend({ - template: footer, - data() { - return { - year: () => new Date().getFullYear(), - }; - }, - props: { - transformer: Function, - }, -}); \ No newline at end of file diff --git a/src/global.d.ts b/src/global.d.ts deleted file mode 100644 index ca6d93d..0000000 --- a/src/global.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -declare module "*.dative.html" { - const component: string; - export default component; -} - -declare module "*.png" { - const img: string; - export default img; -} - -declare module "*.jpg" { - const img: string; - export default img; -} -declare module "*.css" { - const css: string; - export default css; -} diff --git a/src/guide/guide.dative.html b/src/guide/guide.dative.html deleted file mode 100644 index 90d57d3..0000000 --- a/src/guide/guide.dative.html +++ /dev/null @@ -1,1229 +0,0 @@ -
    - - -
    -
    -
    -

    Getting Started

    -
    -
    -

    What Is DativeJS

    -

    -

    DativeJS is a Mordern Ui JavaScript Framework

    -

    Usage


    -
    # use this to create a dative template
    -npx degit dativeJs/template my-app
    -cd my-app
    -npm install
    -
    -

    The template scaffolded contains all the necessary dependencies needed to get started with dativejs as a Beginner

    -

    The template scaffolded also uses Rollup to Bundle and Serve the Project Behind the Scene

    -
    -

    Installation

    -
    -

    DativeJs v2-alpha is a new approach. It's syntax is quiet different from the v2-v1.The installation is easy.There are two ways to install it.

    -
      -
        -
      • Cdn
      • -
      • Npm
      • -
      • Yarn
      • -
      -
    -
    -

    Cdn

    -
    <!-- Development -->
    -<script src="https://unpkg.com/dativejs@v2.0.0-alpha.1/dist/dative.js"></script>
    -<!-- Production -->
    -<script src="https://unpkg.com/dativejs@v2.0.0-alpha.1/dist/dative.min.js"></script>
    -<!-- Es Module -->
    -<script type="module">
    -  import Dative from 'https://unpkg.com/dativejs@v2.0.0-alpha.1?module'
    -  
    -  /* Notice the we did not do app.render()  again. In DativeJs v2-alpha the application will automatically render when there is el/target options {{'\n'}} Also notice the template: '#template' DativeJs v2-alpha can now accept id in the template the id must be from a script tag */
    -
    -  
    -  var app = new Dative({
    -    el: '#app',
    -    data: ()=>({
    -      name: 'John'
    -    }),
    -    template: '#template'
    -  })
    -</script>
    -
    -

    -
    -

    - -

    - Data And Methods Property -

    -
    -

    - Data property -

    -
    -
    -
    -

    - Data Property in Your Dative Instance is the store for your - instance, Which Means it's what hold all the reactivity of your - application. -

    -

    - If you Coming from reactjs, data property is similar to the - state property : -

    -
    -
    // reactjs
    -  ...
    -
    -class App extends React.Component {
    -  ...
    -  state = {
    -    foo: 'bar'
    -  }
    -  render() {
    -    return (
    -      <>
    -        <h1>Hello {this.state.foo}</h1>
    -      </>
    -    )
    -  }
    -}
    -
    -

    - If you Coming from vuejs, data property is similar to the - data property : -

    -
    -
    <!-- vuejs -->
    -<template>
    -  <h1>Hello {\{foo}}</h1>
    -</template>
    -<script>
    -export default {
    -  ...,
    -  data: () => ({
    -    foo: 'bar'
    -  }),
    -  ...
    -}   
    -</script>
    -
    -

    - How To Write The data property in Your - dative instance -

    -

    - The data property can be either - object or function -

    -
    <div>
    -  <h1>Hello {\{foo}}</h1>
    -</div>
    -
    -
    import Dative from 'dativejs';
    -
    -var app = new Dative({
    -  ...,
    -  data: {
    -    foo: 'bar'
    -  },
    -})
    -
    -
    -
    import Dative from 'dativejs';
    -
    -var app = new Dative({
    -  ...,
    -  data: function() {
    -    return {
    -      foo: 'bar'
    -    }
    -  },
    -})
    -
    -
    -
    import Dative from 'dativejs';
    -
    -var app = new Dative({
    -  ...,
    -  data: () => ({
    -    return {
    -      foo: 'bar'
    -    }
    -  }),
    -})
    -
    -
    - - -

    Quiet Easy Right, And it's same as in Vuejs

    -
    -

    Computed

    -
    -

    - The Template Interpolation - {\{expression}} - are very convenient, but they are meant for simple operations. - Putting too much logic in your templates can make them bloated and - hard to maintain.
    - For example: -

    -
    <div>
    -  {\{ username.split(' ')[0].charAt(0) }}
    -</div>
    -
    -

    - Now the template is no longer simple and declarative. You have to - look at it for a second before you can understand the code. The - problem is made worse when you want to include the code in your - template more than once. -

    -
    -

    - That's why for a complex logic, You need to use a computed property -

    -

    Basic Example

    -
    <div>
    -  {\{ splitted }}
    -</div>
    -
    -
    var app = new Dative({
    -  ...,
    -  data: () => ({
    -    username: "Tobi theAlpha"
    -  }),
    -  computed: {
    -    splitted: function(){
    -      return this.username.split(' ')[0].charAt(0)
    -    }
    -  }
    -})
    -
    -

    - Here we have declared a computed property - splitted. The function we provided - will be used as the getter function for the property - app.splitted: -

    -
    console.log(app.splitted) // => T
    -  app.username = 'Dev Tobi'
    -  console.log(app.splitted) // => D 
    -
    -
    -

    - Computed Getter and Setter -

    -

    - By Default, Computed are getters only, but you can also provide a - setter when you need -

    -
    // ... 
    -  computed: {
    -    fullname: {
    -      get: function() {
    -        return this.firstName + " " + this.lastName
    -      }, 
    -      set: function(val) {
    -        const value = val.split(' ')
    -        this.firstName = value[0]
    -        this.lastName = value[1]
    -      }
    -    }
    -  }
    -// ... 
    -
    -

    - Now when you run - app.fullname = 'Chuck Norris', the - setter will be invoked and - app.firstName and - app.lastName will be updated - accordingly -

    -

    -

    Conditional Rendering

    -
    -

    In DativeJs v2-alpha the dv-if has been deprecated

    -

    But You might be asking why?

    -
    -
    -
      -
    • First, The dv-if directive doesn't work well something
    • -
    • Secondly, It doesn't have dv-else | dv-else-if
    • -
    -
    -
    -

    So in DativeJs v2-alpha we introduced the{\{#if condition}} Block.Which also have{\{:else if condition}} and{\{:else}} and end the block with{\{/if}}

    -
    -

    Usage

    -
    import Dative from 'dativejs';
    -var app = new Dative({
    -  el: '#app',
    -  data: ()=>({
    -    msg: 'DativeJs v2-alpha is litt',
    -    show: true
    -  }),
    -  template: '#template'
    -});

    -
    <div>
    -  {\{#if show}}
    -    <h1>{\{msg}}</h1>
    -  {\{/if}}
    -</div>
    -

    {\{:else if}}

    -
    <div>
    -  {\{#if show}}
    -    <h1>{\{msg}}</h1>
    -  {\{:else if show && !msg}}
    -    <h1>Elseif</h1>
    -  {\{/if}}
    -</div>
    -

    {\{:else}}

    -
    <div>
    -  {\{#if show}}
    -    <h1>{\{msg}}</h1>
    -  {\{:else if show && !msg}}
    -    <h1>Elseif</h1>
    -  {\{:else}}
    -    <h1>Else</h1>
    -  {\{/if}}
    -</div>
    -

    -

    For Loop

    -
    -

    In DativeJs v2-alpha looping in an array is more easier

    -
    -
      -

      Before we do something like this

      -
      template: `
      -  <div>
      -    ${this.data.todos.map((data)=>{
      -    return `<h1>${data}</h1>`
      -    }).join("")}
      -  </div>
      -` 
      -
    -
    -
    -

    So Now in DativeJs v2-alpha we introduced the{\{#each}} Block which ends the block with{\{/each}}

    -
    -

    Usage

    -
    import Dative from 'dativejs';
    -var app = new Dative({
    -  el: '#app',
    -  data: ()=>({
    -  todos: [
    -    {
    -      id: 0,
    -      title: 'Working'
    -    },
    -    {
    -      id: 1,
    -      title: 'Testing'
    -    }
    -  ]
    -  }),
    -  template: '#template'
    -});

    -
    <div>
    -<!--'todos' is the property and the 'todo' is the alias-->
    -{\{#each todos as todo}}
    -  <h1>{\{todo.title}}</h1>
    -{\{/each}}
    -</div>
    -

    With Index

    -
    <div>
    -  {\{#each todos as i,todo}}
    -    <h1>{\{i}}: {\{todo.title}}</h1>
    -  {\{/each}}
    -</div>

    - -
    -
    -

    Deconstruction

    -
    -

    The#each deconstruction doesn't work well

    -

    So you'll have to use the #with to deconstruct

    -

    -
    import Dative from 'dativejs';
    -var app = new Dative({
    -  el: '#app',
    -  data: ()=>({
    -  items: [
    -    {
    -      message: 'Hello world',
    -      rating: 6
    -    },
    -    {
    -      message: 'Hello mic!!',
    -      rating: 9
    -    }
    -  ]
    -  }),
    -  template: '#template'
    -});

    -
    <ul>
    -{\{#each items as i,items}}
    -  {\{#with items}}
    -    <li>{\{message}} {\{rating}}</li>
    -  {\{/with}}
    -{\{/each}}
    -</ul>

    -

    Looping of number

    -

    Looping of number with the #each block can not work


    -

    So we made a solution for that. Install dative-helper to get some cool powerful helper functions to use with Dativejs


    -

    The dative-helper has a $range function which converts a single number into an array.
    You want to learn about dative-helper visit Dative-helper docs site


    -
    {\{#each $range(6) as n}}
    -  <h{\{n}}>{\{n}}</h{\{n}}>
    -{\{/each}}

    -

    -

    Extend

    -
    -

    In DativeJs v2-alpha we've added a new Global methods Dative.extend()

    -
    -
    -
      -
    • The extend methods is used to make a component with DativeJs
    • -
    -
    -
    -

    Usage

    -
    import Dative from 'dativejs';
    -
    -// Create first Component
    -const Component1 = Dative.extend({
    -  template: `
    -    <h1>Hello world</h1>
    -  `
    -})
    -
    -// Initialize the component
    -
    -var app = new Component1({
    -  el: 'app-component', // or an id or a class selector
    -})
    -
    -

    Usage in html

    -
    <!DOCTYPE html>
    -<html>
    -  <head>
    -    <script src="/public/build/bundle.js"></script>
    -  </head>
    -  <body>
    -    <app-component><\/app-component>
    -  </body>
    -</html>

    -

    Css in Dative.extend

    -

    By default component css are scoped

    -
    import Dative from 'dativejs';
    -
    -// Create first Component
    -const Component1 = Dative.extend({
    -  template: `
    -    <h1 class="big">Hello world</h1>
    -  `,
    -  css: `
    -    .big{
    -      font-size: 60px;
    -      color: red;
    -    }
    -  `
    -})

    -

    How does the scoped css works

    -
    -

    Dative will add a dynamic attribute with a unique key to all the child of the instance with the css options.Example

    -

    -

    This will be turned into

    -
    <h1 class="big">Hello world</h1>

    -
    <h1 class="big" data-dative-css="2364c-26442ag-9522">Hello world</h1>

    -

    And the css will be turned into

    -
    .big{
    -  font-size: 60px;
    -  color: red;
    -}

    -
    .big[data-dative-css~="2364c-26442ag-9522"],[data-dative-css~="2364c-26442ag-9522"] .big {
    -  font-size: 60px;
    -  color: red;
    -}

    - -

    Just like the idtotemplate converter for the Template option, The css options also have it so it means that the css can be written externally and brought to the css options with the id

    -
    - {{"Note".toUpperCase()}}: If you are going to write the css styles externally,it should be in a style tag -

    -
    import Dative from 'dativejs';
    - 
    - // Create first Component
    - const Component1 = Dative.extend({
    -   template: `
    -     <h1 class="big">Hello world</h1>
    -   `,
    -   css: "#css"
    - })

    -

    "text/dss" is to tell the browser that this is not css so it doesn't compile it as css.Dss stands for dative stylesheet


    -
    <style type="text/dss" id="css">
    -.big{
    -  font-size: 60px;
    -  color: red;
    -}</style>

    -
    - {{"Note".toUpperCase()}}: mustache also works in the css -

    -
    import Dative from 'dativejs';
    - 
    - // Create first Component
    - const Component1 = Dative.extend({
    -   data(){
    -     return {
    -       colors: ['red','blue','green']
    -     }
    -   },
    -   template: `
    -     <h1 class="big">Hello world</h1>
    -   `,
    -   css: "#css"
    - })

    -
    <style type="text/dss" id="css">
    -.big{
    -  font-size: 60px;
    -  color: red;
    -}
    -{\{#each colors as color}}
    -  .bg-{\{color}} {
    -    background: {\{color}};
    -  }
    -  .text-{\{color}} {
    -    color: {\{color}};
    -  }
    -{\{/each}}
    -</style>

    -
    - {{"Note".toUpperCase()}}: pseudo must be after a selector.
    - :global() does not work in the component css -

    -

    Props

    -

    Props in Dative.extend works can be done by doing some few things.Props is always written in an object syntax with a "type" (optional)


    -
    import Dative from 'dativejs';
    - 
    - // Create first Component
    - const Component1 = Dative.extend({
    -   template: `
    -     <h1>Hello {\{name}}</h1>
    -   `,
    -   props:{
    -     name: {
    -       type: String
    -     }
    -   }
    - })

    -

    Or without type


    -
    import Dative from 'dativejs';
    - 
    - // Create first Component
    - const Component1 = Dative.extend({
    -   template: `
    -     <h1>Hello {\{name}}</h1>
    -   `,
    -   props:{
    -     name: String
    -   }
    - })

    -

    Using the props

    -
    import Dative from 'dativejs';
    -
    -var app = new Component1({
    -  el: 'app-component',
    -  props:{
    -    name: 'World'
    -  }
    -})


    -

    Event handling

    -
    -

    Listening to Events

    -
    -

    We can use the dv-on directive to listen to DOM events and run some JavaScript when they’re triggered.

    -

    -For example: -

    -
    import Dative from 'dativejs';
    -var app = new Dative({
    -  el: '#app',
    -  data: ()=>({
    -    count: 0
    -  })
    -});

    -
    <div>
    -  <h1>{\{count}}</h1>
    -  <button dv-on:click="count+=1">Increment</button>
    -</div>
    -

    Using the methods options

    -
    -
    import Dative from 'dativejs';
    -var app = new Dative({
    -  el: '#app',
    -  data: ()=>({
    -    count: 0
    -  }),
    -  methods:{
    -    add(){
    -      this.count++
    -    }
    -  },
    -});
    -
    <div>
    -  <h1>{\{count}}</h1>
    -  <button dv-on:click="add()">Increment</button>
    -</div>


    -

    Property DativeJs

    -
    -

    - The defineProperty is an alias of the - Dative.prototype -

    -

    - That means the defineProperty is used - to make global property. -

    -
    -

    What Is a Property

    -
    -
    -

    - A Property in Dative is Just like the data property but the property - is prefixed with a $ at the beginning - of the property -

    -

    - Dative v2-alpha now provide a new option and global method for - defining a property -

    -
    -
  • Global (Constructor) method
  • -
    -
    defineProperty(name: string, callback: ()=> any): void
    -
    -
    import { defineProperty } from 'dativejs';
    -defineProperty('foo', function(){ 
    -  return 'bar'
    -})
    -
    -
  • Options
  • -
    -
    interface property {
    -  [x:string]: Function
    -}
    -
    -
    import Dative from 'dativejs';
    -new Dative({
    -  ...,
    -  property: {
    -    foo: function() {
    -      return 'bar'
    -    }
    -  }
    -})
    -
    -

    - Why Two Ways of defining Property? -

    -

    - The Reason of the having two ways is that one is accessable - everywhere (globally) in Your application and the other one is - scoped to only a particular instance -

    -

    Question

    -
  • Which of one is Global and which Scoped ?
  • -

    Answer

    -

    1. Global method is global (already mentioned by the name)

    -

    2. Options is Scoped to the instance it's created in

    -
    -

    How to Access the Property in the template


    -
    -
    -
    <div>
    -  <h1>{\{$foo}}</h1>
    -</div>


    -

    Plugin DativeJs

    -
    -

    Dative v2-alpha plugin are quiet similar

    -

    But the difference is the way of appying it

    -

    The Global Function

    -
    -
    Dative.use(plugin: DativePlugin): { install(Dative: Dative) }
    -
    -

    The Function Has Been deprecated

    -

    So we added a new option and instance method

    -

    1. Option

    -
    -
    new Dative({
    -  ...,  
    -  use: [function({ instance, proto, Dative }: { instance: this, proto: Dative.prototype, Dative: Dative }){
    -    ...
    -  }]
    -})
    -

    2. Instance Method

    -
    -
    var app = new Dative({...})
    -app.use(function({ instance, proto, Dative }: { instance: this, proto: Dative.prototype, Dative: Dative }){
    -  ...
    -})
    -
    -

    - What's Plugin Used For -

    -
    -
    -
    -

    - Plugins usually add global-level functionality to Dative. There is - no strictly defined scoped for a plugin - there are typically - several types of plugins you can write: -

    -
  • - Add some global methods or properties. eg - - @dativejs/helpers -
  • -

    - A Dative.js plugin can expose an - install - method or without. The method will be called with a deconstructed - params with three options, - { instance, proto, Dative } -

    -
    var MyPlugin = function({ instance, proto, Dative }){
    -// Dative=> the Dative constructor
    -// instance=> the current instance of your application
    -// proto=> the Dative prototype
    -
    -// 1. Let's make a global property
    -Dative.defineProperty('appName',function(){
    -  return 'Dative News'
    -})
    -}
    -
    -

    Using a Plugin

    -

    1. Option

    -
    -
    new Dative({
    -  ...,  
    -  use: [MyPlugin]
    -})
    -

    2. Instance Method

    -
    -
    var app = new Dative({...})
    -app.use(MyPlugin)
    - 
    -
    -

    Question

    -

    - You may ask question like "Why is there two ways for using plugins"? -

    -

    Answer

    -

    - First, Dative templates are scoped and not exposed before mounted, - So for developer's making plugins that are to access the template, - the developers are to use the instance method access it -

    -
    -

    - Second, Variaty which means a developer may like the options way and - hate the instance method way and others may be vice-versa -

    -

    -

    Creating A Plugin for Global Usuage

    -

    File Structure


    -
     - my-plugin
    - -- dist 
    -   -- my-plugin.esm.js // Es Module
    -   -- my-plugin.cjs.js // Common Js
    -   -- my-plugin.js // iife 
    - -- src 
    -   -- index.js 
    - -- test 
    -   --index.test.js
    - -- index.mjs // Es Module
    - -- index.js // Common js
    - -- types // not compulsory (for typings)
    - -- rollup.config.js // bundler file
    - -- readme.md
    - --package.json
    -

    -

    package.json


    -
    - {{"Note".toUpperCase()}}
    -

    Your plugin name must be prefixed with @dativejs. Example

    -

    - @dativejs/my-plugin -

    -

    - -
    {
    -  "name": "@dativejs/<your-plugin-name>",
    -  "version": "1.0.0",
    -  "description": "<your-plugin-description>",
    -  "main": "dist/<your-plugin-name>.cjs.js",
    -  "module": "dist/<your-plugin-name>.esm.js",
    -  "types": "src/<your-plugin-name>.d.ts",
    -  "unpkg": "dist/<your-plugin-name>.js",
    -  "jsdelivr": "dist/<your-plugin-name>.js",
    -  "files": [
    -    "index.js",
    -    "index.mjs",
    -    "dist",
    -    "types",
    -    "rollup.config.js",
    -    "src",
    -    "readme.md"
    -  ],
    -  "scripts": {
    -    "build": "rollup -c"
    -  },
    -  "exports": {
    -    ".": {
    -      "import": {
    -        "node": "./index.mjs",
    -        "default": "./dist/<your-plugin-name>.esm.js"
    -      },
    -      "require": "./index.js"
    -    },
    -    "./package.json": "./package.json"
    -  },
    -  "buildOptions": {
    -    "name": "<your-plugin-name>",
    -    "formats": [
    -      "esm-bundler",
    -      "cjs",
    -      "global"
    -    ]
    -  },
    -  "repository": {
    -    "type": "git",
    -    "url": "git+https://github.com/<yourusername>/<your-plugin-name>.git"
    -  },
    -  "keywords": [
    -    "<your-plugin-name>",
    -    "Dativejs"
    -  ],
    -  "author": "Your Name",
    -  "license": "<Your License>",
    -  "bugs": {
    -    "url": "https://github.com/<yourusername>/<your-plugin-name>/issues"
    -  },
    -  "homepage": "<YOUR_HOMEPAGE>"
    -}

    - - -
    - {{"Note".toUpperCase()}}
    -

    Your plugin Should be Upload To dative plugins github repo

    -

    - Click Here -

    -

    - -
    -

    Official Plugins For DativeJs

    -

    - Click Here -

    -
    -
    -
    -

    Debug

    -
    -

    - The debug expression is uses to log a code in the browser and the - special thing it does is that it adds a - debugger - keyword to it -

    -
    -
    {\{@debug variable}}
    -
    -
    -

    - Note: the debug accepts object - property only.
    - That means string, - arrays,function will not - work -

    -

    -
    {\{@debug 'hi'}}
    -{\{@debug ['hu']}}
    -{\{@debug ()=> 'hi'}}
    -// all these will not work

    -

    The debug expression also accepts multiple params seperated by a comma


    -
    {\{@debug variable1,variable2,variable3}}
    -
    -
    -

    With block

    -
    -

    The with block extends the scope chain for a statement

    -
    -

    - The With block is same as the with statement in - javascript -

    - -

    Syntax

    -
    -
    {\{#with expression}}
    -  statement
    -{\{/with}}
    -

    -

    In Vanilla Javascript

    -
    with (expression){
    -   statement
    -}
    -
    -
    -
    -

    - What is the with block used for? -

    -

    -

    - The with block is used just like the - with statement in javascript.
    - It adds the given object to the head of this scope chain during the - evaluation of it's body. If an unqualified name used in the body - matches a property in the scope chain, then the name is bound to the - property and the object containing the property. Otherwise a - - ReferenceError - - is thrown -

    -

    -

    Example

    -

    - The following with block specifies that the - Math object is the default object.
    - The blocks following the with block refer to - the PI property and other Math Property and methods, without - specifying an object. -



    -
    {\{$: r = 10;}}
    -{\{#with Math}}
    -    <h1>{\{PI * r * r}}</h1>          
    -    <h1>{\{PI * cos(PI)}}</h1>          
    -    <h1>{\{PI * sin(r * r)}}</h1>          
    -{\{/with}}
    -
    -


    -

    Directives

    -
    -

    Event Directives

    -
    -
    -
    import Dative from 'dativejs';
    -var app = new Dative({
    -  el: '#app',
    -  data: ()=>({
    -    count: 0
    -  }),
    -  template: '#template'
    -});
    -
    -
    <div>
    -  <h1>{\{count}}</h1>
    -  <button dv-on:click="count+=1">Increment</button> 
    -</div>
    -
    -

    Using the methods options

    -
    -
    import Dative from 'dativejs';
    -var app = new Dative({
    -  el: '#app',
    -  data: ()=>({
    -    count: 0
    -  }),
    -  methods:{
    -    add(){
    -      this.count++
    -    }
    -  },
    -  template: '#template'
    -});
    -
    -
    <div>
    -  <h1>{\{count}}</h1>
    -  <button dv-on:click="add()">Increment</button>
    -</div>
    -
    -

    - on:<event> is a short form for - dv-on:<event> -

    -
    -
    -

    Animate Directives

    -
    -
    -
    <div>
    -  <h1 animate:bounce="1000,50">Bounce</h1>
    -</div>
    -
    -
    -

    - Note: The animate directives is on experimental mode, So it - doesn't work that well -

    -

    - Learn More About Animate Directive -

    Define Api

    -
    -

    - The define api is a new way to create a dative instance and - also a shorter way -

    -

    The define api has two methods:

    -
    -
  • defineApp
  • -
  • defineProperty
  • -
    -

    The first methods is to create the dative instance

    -

    Example:

    -

    With the new function defineApp

    -
    -
    function defineApp(options: any): Dative
    -
    -

    You don't need to call the new keyword

    -
    import { defineApp } from 'dativejs';
    -
    -var app = defineApp({
    -    el: "#app",
    -    template: ""
    -})
    -
    -
    -


    -

    - Commenting -

    -
    -

    DativeJS v2-alpha has a new way for commenting now

    -

    There are two ways:

    -
      -
    • Html Comment
    • -
    • Dative Comment
    • -
    -
    -

    1. Html Comment

    -

    - The Html Comment is the normal comment you use everyday with html. - That's the: -

    -
    -
    <!-- this is  html comment -->
    -
    -

    - The Html Comment is been rendered to the Dom and dative sees it as a - normal tag. That's the dative interpolation's will be parsed in the - html comment and will give error if it finds a variable thats not - registered in the dative instance -

    -
    -

    2. Dative Comment

    -

    - The Dative Comment is quiet different from the normal comment,but if - you coming from hbs(handlebars/mustache) You Can Understand the - dative comment. That's the: -

    -
    -
    {\{!this is  dative comment}}
    -
    -

    - The Dative Comment is not been rendered to the Dom and dative doesn't sees it as a - normal tag but as a comment. That's the dative interpolation's will not be parsed in the - html comment and will not give error if it finds a variable thats not - registered in the dative instance -

    -


    -

    Variable

    -
    -

    - Variable in Dativejs uses the js label syntax - $: similar to sveltejs -

    -
    <!-- svelte -->
    -<script> 
    -   $: app = 'yes'
    -</script>
    -
    -<h1>{app}</h1>
    -
    -

    - The variable in dativejs is quiet the same with sveltejs but the - different in it is that dativejs variable are in-between the - expression {\{ expression }} -

    -
    -
    {\{$: foo = ()=> 'bar';}} {\{! as a function }}
    -{\{$: foo = 'bar';}} {\{! as a string}}
    -{\{!literally the variable can accept anything the normal js variable can accept}}
    -
    -

    What is the variable Used for?

    -

    - The Variable is used to store local properties inside your template - only without having to the the template file.
    - It works like the computed property. -

    -
    -

    - Note: The variable block uses let under the hood -

    -
    - Learn More About Computed Property
    -

    Example

    -
    -
    -
    -
    {\{$: names = ['Foo','Bar'];}}
    -<div> 
    -  <ul> 
    -    {\{#each names as name}}
    -      <li>{\{name}}</li>
    -    {\{/each}}
    -  </ul>
    -</div>
    -
    -
    - Note: Do Not Use This in an application that requires - reactivity because it's not reactive. -
    -
    -

    -
    -

    Animation

    -

    We've Introduced the animate options has been introduced in dativejs

    -

    What is the Animate options used For ??

    -

    - The animate Options is Used To Define Animation in DativeJs. -
    - Then You Might Be Like. - How Can I Use It -

    -
    -

    {{"Note".toUpperCase()}}: DativeJs animate Api Uses the Web Animation Api

    -
    -

    Usage:

    -
    import {defineApp} from 'dativejs';
    -    
    -  var app = defineApp({
    -    el: '#app',
    -    template: `
    -      <div>
    -        <h1>Hola!!</h1>
    -      </div>
    -    `,
    -    animate: {
    -      flash: function({animate,duration,delay}) {
    -        animate([
    -          {
    -            opacity: 1
    -          },
    -          {
    -            opacity: 0
    -          },
    -        ],{
    -          duration,
    -          delay,
    -          easing: "linear",
    -        })
    -      }
    -    }
    -  })
    -
    -

    Using in the template

    -
    -
    ...,
    -template:`
    -<div>
    -   <h1 animate:flash="3000,50">Hola!!</h1>
    -</div>
    -`
    -
    -

    How to Understand the Animate Directives


    -
    <h1 animate:flash="<duration>,<delay>">Hola!!</h1>

    -
    import {defineApp} from 'dativejs';
    -    
    -  var app = defineApp({
    -    el: '#app',
    -    template: `
    -      <div>
    -        <h1>Hola!!</h1>
    -      </div>
    -    `,
    -    animate: {
    -      flash: function({animate,duration,delay}) {
    -        // animate is an alias to the current element.animate 
    -        // duration comes from the directive
    -        // delay also comes from the directive
    -      }
    -    }
    -  })
    -

    Short Way Form For the Animate directives is @<animation-name>

    - -

    The parameter in each animation receive 4 options

    -
    -
    type Animate = {
    -   animate: (keyframes: Keyframe[] | PropertyIndexedKeyframes, options?: number | KeyframeAnimationOptions)=> Animation,
    -   duration: number,
    -   delay: number,
    -   setStyle: (options: CSSStyleDeclaration)=> void
    -}
    -
    -type DativeAnimateOptions = {
    -  [x:string]: function({ animate,duration,delay, setStyle }: Animate) => void
    -}
    -

    - DativeJS Animation Api Doesn't have much Animations So We Introduced @dativejs/animation - For More Information Click here -

    -
    -
    -
    -

    - Last Modified: {{transformer(Date.now())}} -

    -
    - -
    - \ No newline at end of file diff --git a/src/home/home.dative.html b/src/home/home.dative.html deleted file mode 100644 index d17c2ed..0000000 --- a/src/home/home.dative.html +++ /dev/null @@ -1,82 +0,0 @@ -
    - -
    -
    -
    -
    -
    -

    - {{ $store.getters.uppercaseTitle }} -

    -
    -
    -

    - A Modern UI JavaScript framework -

    -
    -
    - - -
    -
    -
    -
    - - -
    -

    With new features

    -

    - Dative v2-alpha has been re-architected with more tools for better - developer experience. -

    -
    - {{#each $store.icons as icons}} -
    - {{#if icons.icon !== 'svg'}} -
    - -
    -
    - {{:else}} -

    {{icons.svg}}

    - {{/if}} -

    {{icons.title}}

    -

    {{icons.descriptions}}

    -
    - {{/each}} -
    - -
    -
    - -
    -
    -
    diff --git a/src/index.js b/src/index.js deleted file mode 100644 index d9c35f3..0000000 --- a/src/index.js +++ /dev/null @@ -1,244 +0,0 @@ -import Dative from "dativejs"; -import { connect } from "dytejs"; -import helper from "@dativejs/helpers"; -import Prism from "prismjs"; -import "prismjs/plugins/toolbar/prism-toolbar"; -import "prismjs/plugins/treeview/prism-treeview"; -// import 'prismjs/plugins/show-language/prism-show-language' -import "prismjs/components/prism-json"; -import "prismjs/components/prism-jsx"; -import "prismjs/components/prism-typescript"; -import "prismjs/components/prism-tsx"; -import "prismjs/components/prism-bash"; -import "prismjs/components/prism-js-extras"; -import "prismjs/components/prism-js-templates"; -import "@fortawesome/fontawesome-free/js/all"; -import store from "../src/stores"; -import { slidein, slideright, fadein } from "./animations"; -import { SideBar } from "./sidebar/sidebar.dative"; -import { NavBar } from "./navbar/navbar.dative"; -import { Footer } from "./footer/footer.dative"; -import { Ads } from "./ads/ads.dative"; -import Home from "./home/home.dative.html"; -import Teams from "./teams/teams.dative.html"; -import Api from "./api/api.dative.html"; -import Guide from "./guide/guide.dative.html"; -import Migration from "./migration/migration.dative.html"; -import logo from "../public/logo.png"; -import "../public/output.css"; -import "../assets/css/prism.css"; -import "../assets/css/style.css"; -import "@fortawesome/fontawesome-free/css/all.css"; -import "prismjs/plugins/treeview/prism-treeview.css"; - -let sidebar, navbar, footer; - -let app = new Dative({ - el: "#app", - onmounted() { - setTimeout(() => Prism.highlightAll(), 0); - }, - data: () => ({ - name: "Dativejs", - head_list: ["Home", "Github"], - dark: "(prefers-color-scheme: dark)", - }), - use: [store, helper], - animate: { - slideright, - slidein, - fadein, - }, - template: - location.pathname === "/" || location.pathname === "/index.html" - ? Home - : location.pathname === "/teams" || - location.pathname === "/teams/index.html" - ? Teams - : location.pathname === "/api" || location.pathname === "/api/index.html" - ? Api - : location.pathname === "/guide" || - location.pathname === "/guide/index.html" - ? Guide - : location.pathname === "/migration" || - location.pathname === "/migration/index.html" - ? Migration - : 404, - methods: { - /** - * @param timestamp timestamp for the date - */ - transformer: (timestamp) => { - const date = new Date(timestamp); - const digits = [ - date.getFullYear(), - date.getMonth() + 1, - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - ].map((num) => String(num).padStart(1, 1)); - return "{0}-{1}-{2}, {3}:{4}:{5}".replace( - /{(\d)}/g, - (_, num) => digits[num] - ); - } - } -}); -// app.use(store) -connect()(app); -window.app = app; - -if (document.querySelector("#sidebar")) { - sidebar = new SideBar({ - el: "#sidebar", - props: { - sidebar: [ - { - title: "Guide", - path: "/guide/index.html", - children: [ - { - title: "Introduction", - path: "/guide/index.html", - }, - { - title: "Installation", - path: "/guide/index.html#installation", - }, - { - title: "Data and Methods", - path: "/guide/index.html#data-and-methods", - }, - { - title: "Computed", - path: "/guide/index.html#computed", - }, - { - title: "#if", - path: "/guide/index.html#conditional-rendering", - }, - { - title: "#each", - path: "/guide/index.html#for-loop", - }, - { - title: "Extend", - path: "/guide/index.html#extend", - }, - { - title: "Event", - path: "/guide/index.html#event", - }, - { - title: "Property", - path: "/guide/index.html#property", - }, - { - title: "Plugin", - path: "/guide/index.html#plugin", - }, - { - title: "@debug", - path: "/guide/index.html#debug", - }, - { - title: "#with", - path: "/guide/index.html#with", - }, - { - title: "Directives", - path: "/guide/index.html#directives", - }, - { - title: "define Api", - path: "/guide/index.html#define-api", - }, - { - title: "Comment", - path: "/guide/index.html#comment", - }, - { - title: "Variable", - path: "/guide/index.html#variable", - }, - { - title: "Animations", - path: "/guide/index.html#animation", - }, - ], - }, - { - title: "Api", - path: "/api/index.html", - }, - { - title: "Teams", - path: "/teams/index.html", - }, - { - title: "Migration", - path: "/migration/index.html", - }, - ], - }, - attach: app, - }); -} - -if (document.querySelector("#navbar")) { - navbar = new NavBar({ - el: "#navbar", - attach: app, - props: { - logo: logo, - icons: [ - { name: "github", link: "https://github.com/dativeJs/dativejs" }, - { name: "twitter", link: "https://twitter.com/dativejs" }, - ], - toggleSidebar() { - var navi = sidebar.$ref.navbar; - if (navi.style.width === "0px") navi.style.width = "50%"; - else navi.style.width = "0px"; - }, - }, - }); -} - -if (document.querySelector("#footer")) { - footer = new Footer({ - el: "#footer", - attach: app, - props: { - /** - * @param timestamp timestamp for the date - */ - transformer: (timestamp) => { - const date = new Date(timestamp); - const digits = [ - date.getFullYear(), - date.getMonth() + 1, - date.getDate(), - date.getHours(), - date.getMinutes(), - date.getSeconds(), - ].map((num) => String(num).padStart(1, 1)); - return "{0}-{1}-{2}, {3}:{4}:{5}".replace( - /{(\d)}/g, - (_, num) => digits[num] - ); - }, - }, - }); -} - -if (document.querySelector("#ads")) { - new Ads({ - target: "#ads", - attach: app, - }); -} - -if ("serviceWorker" in navigator) { - navigator.serviceWorker.register("/sw.js"); -} diff --git a/src/migration/migration.dative.html b/src/migration/migration.dative.html deleted file mode 100644 index e2a73e6..0000000 --- a/src/migration/migration.dative.html +++ /dev/null @@ -1,185 +0,0 @@ -
    - - -
    -
    -
    -

    Migration Guide

    -
    -
    - If I Upgrade to Dative 2-alpha, will i also have to upgrade Dyte? -
    -
    -

    - Yes, Because the version 1 of dyte is not compatible with the Dative - 2-alpha
    So You'll Have To Follow the - migration path for Dyte -

    -
    -

    Templates

    -
    -
    -
    -
    - Fragment Instances   - removed -
    -

    - Every instance must have exactly one root element.
    Fragment - instances are no longer allowed. if you have a template like this: -

    -
    <p>bar</p>
    -<p>foo</p>
    -
    -

    - It's Recommend to wrap the entire contents in a new element, like this: -

    -
    -
    <div>
    -  <p>bar</p>
    -  <p>foo</p>
    -</div>
    -
    -
    -
    -
    -
    - Upgrade Path
    -

    - Run your end-to-end test suite or app after upgrading and look for - console warnings about multiple root elements in a template -

    -
    -


    - -

    Lifecycle Hooks

    -
    -

    -
    - created   - replaced

    -

    Use the oncreated hooks instead

    -
    - mounted   - replaced

    -

    Use the onmounted hooks instead

    -

    - update   - removed -
    -

    -

    Directives

    -
    -

    -
    - dv-html   - removed

    - dv-text   - removed

    - dv-if   - removed -

    Use the #if block

    -
    {\{#if condition}}
    -    do something here
    -{\{/if}}
    -

    - :class   - removed -

    - Use the native class attribute with some mustache expressions -

    -
    <div class="{\{show ? 'show' : 'hide' }}"></div>
    -

    - dv-show   - removed

    - dv-on   - removed -

    Use the dv-on: directives

    -
    <div dv-on:click="one()"></div>
    -

    - :style   - removed -

    - Use the native style attribute with some mustache expressions -

    -
    <div style="background: {\{warning ? 'yellow' : 'green' }}"></div>
    -

    - on:   - readded -
    <div on:click="one()"></div>
    -

    - dv-on:   - changed -

    - With the dv-on: directives funtions from the methods should have the - `()` with it to show it's a function else it will not - work -

    -
    <div dv-on:click="one()"></div>
    -

    - dv-bind:   - changed -

    You can use the short way also like this:

    -
    <div bind:title="title"></div>
    -

    - :<attribute>   - removed -

    Use either bind or dv-bind

    -

    - @<eventname>   - changed -

    It's now used with the animation api

    -
    <div @bounce="4000,50">I'm Bouncing</div>
    -
    -


    -

    Last Modified: {{transformer(Date.now())}}

    -
    -
    - -
    \ No newline at end of file diff --git a/src/navbar/navbar.dative.html b/src/navbar/navbar.dative.html deleted file mode 100644 index 93b2b5f..0000000 --- a/src/navbar/navbar.dative.html +++ /dev/null @@ -1,60 +0,0 @@ -
    - - -
    diff --git a/src/navbar/navbar.dative.js b/src/navbar/navbar.dative.js deleted file mode 100644 index 60e32e7..0000000 --- a/src/navbar/navbar.dative.js +++ /dev/null @@ -1,15 +0,0 @@ -import Dative from "dativejs"; -import { swing } from "dativejs/animation"; -import template from "./navbar.dative.html"; - -export let NavBar = Dative.extend({ - template, - props: { - logo: String, - icons: Array, - toggleSidebar: Function, - }, - animate: { - swing, - }, -}); \ No newline at end of file diff --git a/src/sidebar/sidebar.dative.html b/src/sidebar/sidebar.dative.html deleted file mode 100644 index 2ca9a22..0000000 --- a/src/sidebar/sidebar.dative.html +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -
      - {{#each sidebar as page}} - {{$: hoverclass = 'px-1 py-1 hover:text-slate-500'}} - {{$: hover = page.title === 'Guide' ?'' : hoverclass}} -
    • - {{page.title}} - {{#if page.children}} -
        - {{#each page.children as sub}} -
      • - {{sub.title}} -
      • - {{/each}} -
      - {{/if}} -
    • - {{/each}} -
    -
    -
    diff --git a/src/sidebar/sidebar.dative.js b/src/sidebar/sidebar.dative.js deleted file mode 100644 index 8dc1982..0000000 --- a/src/sidebar/sidebar.dative.js +++ /dev/null @@ -1,9 +0,0 @@ -import Dative from "dativejs"; -import template from "./sidebar.dative.html"; - -export let SideBar = Dative.extend({ - template, - props: { - sidebar: Object, - }, -}); diff --git a/src/stores/icons.store.js b/src/stores/icons.store.js deleted file mode 100644 index 6761684..0000000 --- a/src/stores/icons.store.js +++ /dev/null @@ -1,58 +0,0 @@ -export let icons = [ - { - icon: "svg", - title: "Dative Cli Soon", - descriptions: "A new experience for easy scaffolding", - svg: ``, - }, - { - icon: "svg", - title: "Helper Kits For DativeJS", - descriptions: - "Brand New plugins,blocks,Directives and Animation Support For Making Development for easy", - svg: ` - - - - - - - - - `, - }, - { - icon: "svg", - title: "TypeScript Support Soon", - descriptions: "Support For TypeScript With DativeJs", - svg: ` - - `, - }, - { - icon: "svg", - title: "DevTools Soon", - descriptions: "Easy Debugging with the Dative DevTools", - svg: ` `, - }, -]; diff --git a/src/stores/index.js b/src/stores/index.js deleted file mode 100644 index 95aa559..0000000 --- a/src/stores/index.js +++ /dev/null @@ -1,27 +0,0 @@ -import { defineStore } from 'dytejs' -import { teams } from './teams.store' -import { icons } from './icons.store' - - - -export default defineStore({ - state: { - title: "Dative.js", - teams, - icons, - social_icon: [ - { name: "github", link: "https://github.com/dativeJs/dativejs" }, - { name: "twitter", link: "https://twitter.com/dativejs" }, - // { name: "discord", link: "https://discord.com/xa2xqedax" }, - ], - }, - actions: { - useMedia: (str) => matchMedia(str).matches, - capitalize: (str) => str.charAt(0).toUpperCase() + str.slice(1), - }, - getters: { - uppercaseTitle() { - return this.title.toUpperCase(); - }, - }, -}); \ No newline at end of file diff --git a/src/stores/teams.store.js b/src/stores/teams.store.js deleted file mode 100644 index 2565a20..0000000 --- a/src/stores/teams.store.js +++ /dev/null @@ -1,44 +0,0 @@ -export let teams = [ - { - name: "TobitheAlpha", - base: "Dativejs/Dytejs", - location: "Nigeria", - language: "English", - region: "africa", - link: "https://github.com/Tobithedev", - image: "https://avatars.githubusercontent.com/u/61181645?v=4", - social_media: [ - { - name: "facebook", - link: "https://facebook.com/tobithealpha", - }, - { - name: "instagram", - link: "https://instagram.com/tobithealpha", - }, - { - name: "twitter", - link: "https://twitter.com/tobithealpha_", - }, - ], - }, - { - name: "Gideon", - base: "@dativejs/animations", - location: "Ghana", - language: "English", - region: "africa", - link: "https://github.com/gideonadcodez", - image: "https://avatars.githubusercontent.com/u/64356627?v=4", - social_media: [ - { - name: "facebook", - link: "https://facebook.com/gideon.aboagyedacosta.9", - }, - { - name: "twitter", - link: "https://twitter.com/gadacosta_", - }, - ], - }, - ] \ No newline at end of file diff --git a/src/teams/teams.dative.html b/src/teams/teams.dative.html deleted file mode 100644 index bef9e68..0000000 --- a/src/teams/teams.dative.html +++ /dev/null @@ -1,46 +0,0 @@ -
    - - -
    -
    -

    Core Teams

    -

    -
    - {{#each $store.teams as i,team}} {{$: duration = 2000*(Number(i)+3);}} -
    -
    - -
    -
    -

    - {{team.name}} -

    -

    {{team.base}}

    -
    -
    - {{#each team.social_media as social}} - - {{/each}} -
    -
    -
    -
    -
    - {{/each}} -
    -
    -
    -

    - -
    diff --git a/src/teams/teams.dative.js b/src/teams/teams.dative.js deleted file mode 100644 index bc1cc30..0000000 --- a/src/teams/teams.dative.js +++ /dev/null @@ -1,6 +0,0 @@ -import Dative from "../../packages/dative"; -import template from "./teams.dative.html"; - -export let Teams = Dative.extend({ - template -});