UNPKG

flyonui

Version:

The easiest, free and open-source Tailwind CSS component library with semantic classes.

102 lines (96 loc) 4.06 kB
/* * HSStaticMethods * @version: 3.2.2 * @author: Preline Labs Ltd. * @license: Licensed under MIT and Preline UI Fair Use License (https://preline.co/docs/license.html) * Copyright 2024 Preline Labs Ltd. */ import { getClassProperty, afterTransition } from '../utils' import { COLLECTIONS } from '../spa/index' import { IStaticMethods } from '../static/interfaces' import type HSAccessibilityObserver from '../plugins/accessibility-manager' import { ICollectionItem } from '../interfaces' import type HSCopyMarkup from '../plugins/copy-markup' import type HSAccordion from '../plugins/accordion' import type HSCarousel from '../plugins/carousel' import type HSCollapse from '../plugins/collapse' import type HSComboBox from '../plugins/combobox' import type HSDataTable from '../plugins/datatable' import type HSDropdown from '../plugins/dropdown' import type HSFileUpload from '../plugins/file-upload' import type HSInputNumber from '../plugins/input-number' import type HSOverlay from '../plugins/overlay' import type HSPinInput from '../plugins/pin-input' import type HSRangeSlider from '../plugins/range-slider' import type HSRemoveElement from '../plugins/remove-element' import type HSScrollspy from '../plugins/scrollspy' import type HSSelect from '../plugins/select' import type HSStepper from '../plugins/stepper' import type HSStrongPassword from '../plugins/strong-password' import type HSTabs from '../plugins/tabs' import type HSToggleCount from '../plugins/toggle-count' import type HSTogglePassword from '../plugins/toggle-password' import type HSTooltip from '../plugins/tooltip' import type HSTreeView from '../plugins/tree-view' declare global { interface Window { HSStaticMethods: IStaticMethods HSAccessibilityObserver: HSAccessibilityObserver $hsCopyMarkupCollection: ICollectionItem<HSCopyMarkup>[] $hsAccordionCollection: ICollectionItem<HSAccordion>[] $hsCarouselCollection: ICollectionItem<HSCarousel>[] $hsCollapseCollection: ICollectionItem<HSCollapse>[] $hsComboBoxCollection: ICollectionItem<HSComboBox>[] $hsDataTableCollection: ICollectionItem<HSDataTable>[] $hsDropdownCollection: ICollectionItem<HSDropdown>[] $hsFileUploadCollection: ICollectionItem<HSFileUpload>[] $hsInputNumberCollection: { id: number; element: HSInputNumber }[] $hsOverlayCollection: ICollectionItem<HSOverlay>[] $hsPinInputCollection: ICollectionItem<HSPinInput>[] $hsRangeSliderCollection: ICollectionItem<HSRangeSlider>[] $hsRemoveElementCollection: ICollectionItem<HSRemoveElement>[] $hsScrollspyCollection: ICollectionItem<HSScrollspy>[] $hsSelectCollection: ICollectionItem<HSSelect>[] $hsStepperCollection: ICollectionItem<HSStepper>[] $hsStrongPasswordCollection: ICollectionItem<HSStrongPassword>[] $hsTabsCollection: ICollectionItem<HSTabs>[] $hsToggleCountCollection: ICollectionItem<HSToggleCount>[] $hsTogglePasswordCollection: ICollectionItem<HSTogglePassword>[] $hsTooltipCollection: ICollectionItem<HSTooltip>[] $hsTreeViewCollection: ICollectionItem<HSTreeView>[] } } const HSStaticMethods: IStaticMethods = { getClassProperty, afterTransition, autoInit(collection: string | string[] = 'all') { if (collection === 'all') { COLLECTIONS.forEach(({ fn }) => { fn?.autoInit() }) } else { COLLECTIONS.forEach(({ key, fn }) => { if (collection.includes(key)) fn?.autoInit() }) } }, cleanCollection(name: string | string[] = 'all') { if (name === 'all') { COLLECTIONS.forEach(({ collection }) => { if ((window as any)[collection] instanceof Array) { ;(window as any)[collection] = [] } }) } else { COLLECTIONS.forEach(({ key, collection }) => { if (name.includes(key) && (window as any)[collection] instanceof Array) { ;(window as any)[collection] = [] } }) } } } if (typeof window !== 'undefined') { window.HSStaticMethods = HSStaticMethods } export default HSStaticMethods