@lisn.js/react
Version:
LISN.js for React.
1 lines • 16.3 kB
Source Map (JSON)
{"version":3,"file":"OpenableComponent.cjs","names":["Object","defineProperty","exports","value","PopupTriggerComponent","PopupComponent","OffcanvasTriggerComponent","OffcanvasComponent","ModalTriggerComponent","ModalComponent","CollapsibleTriggerComponent","CollapsibleComponent","_react","require","_lisn","_useWidget","_util","_excluded","_excluded2","_excluded3","_excluded4","_excluded5","_excluded6","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","_ref","config","widgetRef","props","elementRef","useOpenable","newCollapsible","createOpenableElement","name","element","HTMLElement","Collapsible","assign","triggers","getElementsFromRefs","_ref2","newPopup","Popup","_ref3","newModal","Modal","_ref4","newOffcanvas","Offcanvas","allProps","TriggerComponent","_ref5","as","children","contentId","configStr","prop","createElement","newWidget","useWidget","useEffect","current","Element","classList","remove","_ref6","className","baseProps","ref","join"],"sources":["../../src/OpenableComponent.tsx"],"sourcesContent":["\"use client\";\nimport {\n useEffect,\n createElement,\n ElementType,\n RefObject,\n ComponentRef,\n ComponentPropsWithoutRef,\n} from \"react\";\n\nimport {\n Collapsible,\n CollapsibleConfig,\n Popup,\n PopupConfig,\n Modal,\n ModalConfig,\n Offcanvas,\n OffcanvasConfig,\n OpenableTriggerConfig,\n Openable,\n} from \"lisn.js\";\n\nimport { useWidget } from \"./useWidget\";\nimport { getElementsFromRefs } from \"./util\";\nimport {\n WidgetComponentRef,\n WidgetComponentProps,\n GenericComponentProps,\n} from \"./types\";\n\nexport type CollapsibleComponentRef = WidgetComponentRef<Collapsible>;\n\nexport type CollapsibleComponentConfig = Omit<CollapsibleConfig, \"triggers\"> & {\n triggers?: RefObject<Element | null>[];\n};\n\nexport type CollapsibleComponentProps<T extends ElementType> =\n WidgetComponentProps<T, Collapsible, CollapsibleComponentConfig> & {\n contentId?: string;\n };\n\nexport const CollapsibleComponent = <T extends ElementType = \"div\">({\n config,\n widgetRef,\n ...props\n}: CollapsibleComponentProps<T>) => {\n const elementRef = useOpenable<T, Collapsible, CollapsibleComponentConfig>(\n newCollapsible,\n config,\n widgetRef,\n );\n\n return createOpenableElement<T>({\n name: \"collapsible\",\n elementRef,\n ...props,\n } as OpenableProps<T>);\n};\n\nconst newCollapsible = (\n element: Element,\n config?: CollapsibleComponentConfig,\n) =>\n element instanceof HTMLElement\n ? new Collapsible(\n element,\n Object.assign({}, config, {\n triggers: getElementsFromRefs(config?.triggers),\n }),\n )\n : null;\n\n// ----------\n\nexport type PopupComponentRef = WidgetComponentRef<Popup>;\n\nexport type PopupComponentConfig = Omit<PopupConfig, \"triggers\"> & {\n triggers?: RefObject<Element | null>[];\n};\n\nexport type PopupComponentProps<T extends ElementType> = WidgetComponentProps<\n T,\n Popup,\n PopupComponentConfig\n> & { contentId?: string };\n\nexport const PopupComponent = <T extends ElementType = \"div\">({\n config,\n widgetRef,\n ...props\n}: PopupComponentProps<T>) => {\n const elementRef = useOpenable<T, Popup, PopupComponentConfig>(\n newPopup,\n config,\n widgetRef,\n );\n\n return createOpenableElement<T>({\n name: \"popup\",\n elementRef,\n ...props,\n } as OpenableProps<T>);\n};\n\nconst newPopup = (element: Element, config?: PopupComponentConfig) =>\n element instanceof HTMLElement\n ? new Popup(\n element,\n Object.assign({}, config, {\n triggers: getElementsFromRefs(config?.triggers),\n }),\n )\n : null;\n\n// ----------\n\nexport type ModalComponentRef = WidgetComponentRef<Modal>;\n\nexport type ModalComponentConfig = Omit<ModalConfig, \"triggers\"> & {\n triggers?: RefObject<Element | null>[];\n};\n\nexport type ModalComponentProps<T extends ElementType> = WidgetComponentProps<\n T,\n Modal,\n ModalComponentConfig\n> & { contentId?: string };\n\nexport const ModalComponent = <T extends ElementType = \"div\">({\n config,\n widgetRef,\n ...props\n}: ModalComponentProps<T>) => {\n const elementRef = useOpenable<T, Modal, ModalComponentConfig>(\n newModal,\n config,\n widgetRef,\n );\n\n return createOpenableElement<T>({\n name: \"modal\",\n elementRef,\n ...props,\n } as OpenableProps<T>);\n};\n\nconst newModal = (element: Element, config?: ModalComponentConfig) =>\n element instanceof HTMLElement\n ? new Modal(\n element,\n Object.assign({}, config, {\n triggers: getElementsFromRefs(config?.triggers),\n }),\n )\n : null;\n\n// ----------\n\nexport type OffcanvasComponentRef = WidgetComponentRef<Offcanvas>;\n\nexport type OffcanvasComponentConfig = Omit<OffcanvasConfig, \"triggers\"> & {\n triggers?: RefObject<Element | null>[];\n};\n\nexport type OffcanvasComponentProps<T extends ElementType> =\n WidgetComponentProps<T, Offcanvas, OffcanvasComponentConfig> & {\n contentId?: string;\n };\n\nexport const OffcanvasComponent = <T extends ElementType = \"div\">({\n config,\n widgetRef,\n ...props\n}: OffcanvasComponentProps<T>) => {\n const elementRef = useOpenable<T, Offcanvas, OffcanvasComponentConfig>(\n newOffcanvas,\n config,\n widgetRef,\n );\n\n return createOpenableElement<T>({\n name: \"offcanvas\",\n elementRef,\n ...props,\n } as OpenableProps<T>);\n};\n\nconst newOffcanvas = (element: Element, config?: OffcanvasComponentConfig) =>\n element instanceof HTMLElement\n ? new Offcanvas(\n element,\n Object.assign({}, config, {\n triggers: getElementsFromRefs(config?.triggers),\n }),\n )\n : null;\n\n// ----------\n\nexport type OpenableTriggerComponentConfig = OpenableTriggerConfig;\n\nexport type OpenableTriggerComponentProps<T extends ElementType> =\n GenericComponentProps<T> & {\n as?: T;\n config?: OpenableTriggerComponentConfig;\n contentId?: string;\n };\n\nexport const CollapsibleTriggerComponent = <T extends ElementType = \"div\">(\n allProps: OpenableTriggerComponentProps<T>,\n) =>\n TriggerComponent({\n name: \"collapsible\",\n ...allProps,\n });\n\nexport const PopupTriggerComponent = <T extends ElementType = \"div\">(\n allProps: OpenableTriggerComponentProps<T>,\n) =>\n TriggerComponent({\n name: \"popup\",\n ...allProps,\n });\n\nexport const ModalTriggerComponent = <T extends ElementType = \"div\">(\n allProps: OpenableTriggerComponentProps<T>,\n) =>\n TriggerComponent({\n name: \"modal\",\n ...allProps,\n });\n\nexport const OffcanvasTriggerComponent = <T extends ElementType = \"div\">(\n allProps: OpenableTriggerComponentProps<T>,\n) =>\n TriggerComponent({\n name: \"offcanvas\",\n ...allProps,\n });\n\nconst TriggerComponent = <T extends ElementType = \"div\">({\n name,\n as,\n children,\n config,\n contentId,\n ...props\n}: OpenableTriggerComponentProps<T> & { name: string }) => {\n // Since a trigger config object can only be passed as part of the widget\n // configuration (in a trigger map) and that is created in another component,\n // we have to use data attributes to pass the config.\n let configStr = \"\";\n let prop: keyof OpenableTriggerConfig;\n config = config || {};\n for (prop in config) {\n configStr += (configStr ? \"|\" : \"\") + prop + \"=\" + String(config[prop]);\n }\n\n return createElement(\n as || \"div\",\n {\n [`data-lisn-${name}-trigger`]: configStr,\n ...(contentId ? { [`data-lisn-${name}-content-id`]: contentId } : {}),\n ...props,\n },\n children,\n );\n};\n\n// --------------------\n\nconst useOpenable = <\n T extends ElementType,\n W extends Openable,\n C extends object,\n>(\n newWidget: (element: Element, config?: C) => W | null,\n config?: C,\n widgetRef?: RefObject<WidgetComponentRef<W> | null>,\n) => {\n const elementRef = useWidget<T, W, C>(newWidget, config, widgetRef);\n\n useEffect(() => {\n const element = elementRef.current;\n if (element instanceof Element) {\n element.classList.remove(\"lisn-undisplay\");\n }\n }, [elementRef]);\n\n return elementRef;\n};\n\ntype OpenableProps<T extends ElementType> = {\n name: string;\n elementRef: RefObject<ComponentRef<T> | null>;\n as?: T;\n contentId?: string;\n} & ComponentPropsWithoutRef<T>;\n\nconst createOpenableElement = <T extends ElementType = \"div\">({\n name,\n as,\n contentId,\n elementRef,\n className,\n children,\n ...baseProps\n}: OpenableProps<T>) => {\n return createElement(\n as || \"div\",\n {\n ref: elementRef,\n ...(contentId ? { [`data-lisn-${name}-content-id`]: contentId } : {}),\n className: [className ?? \"\", \"lisn-undisplay\"].join(\" \"),\n ...baseProps,\n },\n children,\n );\n};\n"],"mappings":"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","ignoreList":[]}