@empoleon/nprogress
Version:
Navigation progress bar
1 lines • 4.71 kB
Source Map (JSON)
{"version":3,"file":"NavigationProgress.mjs","sources":["../src/NavigationProgress.tsx"],"sourcesContent":["import { createEffect, JSX, mergeProps, splitProps } from 'solid-js';\nimport {\n ElementProps,\n getDefaultZIndex,\n EmpoleonColor,\n OptionalPortal,\n PortalProps,\n Progress,\n} from '@empoleon/core';\nimport {\n NprogressStore,\n nprogressStore,\n resetNavigationProgressAction,\n useNprogress,\n} from './nprogress.store';\nimport classes from './NavigationProgress.module.css';\n\nexport interface NavigationProgressProps extends ElementProps<'div'> {\n /** Component store, controls state */\n store?: NprogressStore;\n\n /** Initial progress value, `0` by default */\n initialProgress?: number;\n\n /** Key of `theme.colors` of any other valid CSS color, `theme.primaryColor` by default */\n color?: EmpoleonColor;\n\n /** Controls height of the progress bar */\n size?: number;\n\n /** Step interval in ms, `500` by default */\n stepInterval?: number;\n\n /** Determines whether the progress bar should be rendered within `Portal`, `true` by default */\n withinPortal?: boolean;\n\n /** Props to pass down to the `Portal` when `withinPortal` is `true` */\n portalProps?: Omit<PortalProps, 'children' | 'withinPortal'>;\n\n /** Progressbar z-index, `9999` by default */\n zIndex?: JSX.CSSProperties['z-index'];\n}\n\nexport function NavigationProgress(_props: NavigationProgressProps) {\n const props = mergeProps({\n initialProgress: 0,\n size: 3,\n stepInterval: 500,\n withinPortal: true,\n zIndex: getDefaultZIndex('max'),\n store: nprogressStore,\n }, _props);\n\n const [local, others] = splitProps(props, [\n 'initialProgress',\n 'color',\n 'size',\n 'stepInterval',\n 'withinPortal',\n 'portalProps',\n 'zIndex',\n 'store',\n ]);\n\n local.store.initialize({\n mounted: false,\n progress: local.initialProgress,\n interval: -1,\n step: 1,\n stepInterval: local.stepInterval,\n timeouts: [],\n });\n\n const state = useNprogress(local.store);\n\n createEffect(() => () => resetNavigationProgressAction(local.store), [local.store]);\n\n return (\n <OptionalPortal {...local.portalProps} withinPortal={local.withinPortal}>\n <Progress\n radius={0}\n value={state().progress}\n size={local.size}\n color={local.color}\n classNames={classes}\n data-mounted={state().mounted || undefined}\n __vars={{ '--nprogress-z-index': local.zIndex?.toString() }}\n {...others}\n />\n </OptionalPortal>\n );\n}\n\nNavigationProgress.displayName = '@empoleon/nprogress/NavigationProgress';\n"],"names":["NavigationProgress","_props","props","mergeProps","initialProgress","size","stepInterval","withinPortal","zIndex","getDefaultZIndex","store","nprogressStore","local","others","splitProps","initialize","mounted","progress","interval","step","timeouts","state","useNprogress","createEffect","resetNavigationProgressAction","_$createComponent","OptionalPortal","_$mergeProps","portalProps","children","Progress","radius","value","color","classNames","classes","data-mounted","__vars","toString","displayName"],"mappings":";;;;;;AA2CO,SAASA,mBAAmBC,MAAA,EAAiC;EAClE,MAAMC,QAAQC,UAAA,CAAW;AACvBC,IAAAA,eAAA,EAAiB,CAAA;AACjBC,IAAAA,IAAA,EAAM,CAAA;AACNC,IAAAA,YAAA,EAAc,GAAA;AACdC,IAAAA,YAAA,EAAc,IAAA;AACdC,IAAAA,MAAA,EAAQC,iBAAiB,KAAK,CAAA;AAC9BC,IAAAA,KAAA,EAAOC;KACNV,MAAM,CAAA;EAET,MAAM,CAACW,KAAA,EAAOC,MAAM,CAAA,GAAIC,WAAWZ,KAAA,EAAO,CACxC,iBAAA,EACA,OAAA,EACA,MAAA,EACA,cAAA,EACA,cAAA,EACA,aAAA,EACA,QAAA,EACA,OAAA,CACD,CAAA;AAEDU,EAAAA,KAAA,CAAMF,MAAMK,UAAA,CAAW;AACrBC,IAAAA,OAAA,EAAS,KAAA;IACTC,UAAUL,KAAA,CAAMR,eAAA;IAChBc,QAAA,EAAU,EAAA;AACVC,IAAAA,IAAA,EAAM,CAAA;IACNb,cAAcM,KAAA,CAAMN,YAAA;AACpBc,IAAAA,UAAU;AACZ,GAAC,CAAA;AAED,EAAA,MAAMC,KAAA,GAAQC,YAAA,CAAaV,KAAA,CAAMF,KAAK,CAAA;AAEtCa,EAAAA,YAAA,CAAa,MAAM,MAAMC,6BAAA,CAA8BZ,KAAA,CAAMF,KAAK,CAAA,EAAG,CAACE,KAAA,CAAMF,KAAK,CAAC,CAAA;EAElF,OAAAe,eAAA,CACGC,cAAA,EAAAC,YAAA,CAAA,MAAmBf,KAAA,CAAMgB,WAAA,EAAA;AAAA,IAAA,IAAarB,YAAAA,GAAA;MAAA,OAAcK,MAAML,YAAA;AAAA,IAAA,CAAA;AAAA,IAAA,IAAAsB,QAAAA,GAAA;AAAA,MAAA,OAAAJ,eAAA,CACxDK,QAAA,EAAAH,YAAA,CAAA;AACCI,QAAAA,MAAA,EAAQ,CAAA;AAAA,QAAA,IACRC,KAAAA,GAAA;AAAA,UAAA,OAAOX,OAAM,CAAEJ,QAAA;AAAA,QAAA,CAAA;AAAA,QAAA,IACfZ;iBAAMO,KAAA,CAAMP,IAAA;AAAA,QAAA,CAAA;AAAA,QAAA,IACZ4B;iBAAOrB,KAAA,CAAMqB,KAAA;AAAA,QAAA,CAAA;AACbC,QAAAA,UAAA,EAAYC,OAAA;AAAA,QAAA,KAAA,cAAA,CAAAC,GAAA;AAAA,UAAA,OACEf,KAAA,EAAM,CAAEL,OAAA,IAAW,MAAA;AAAA,QAAA,CAAA;AAAA,QAAA,IACjCqB;iBAAQ;AAAE,YAAA,qBAAA,EAAuBzB,KAAA,CAAMJ,MAAA,EAAQ8B;WAAW;AAAA,QAAA;AAAA,OAAA,EACtDzB,MAAA,CAAA,CAAA;AAAA,IAAA;AAAA,GAAA,CAAA,CAAA;AAIZ;AAEAb,kBAAA,CAAmBuC,WAAA,GAAc,wCAAA;;;;"}