@egjs/svelte-infinitegrid 3.2.5 → 4.0.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/.storybook/main.js +32 -0
  2. package/.storybook/manager.js +5 -0
  3. package/.storybook/preview.js +25 -0
  4. package/README.md +79 -155
  5. package/dist/infinitegrid.cjs.js +203 -533
  6. package/dist/infinitegrid.cjs.js.map +1 -1
  7. package/dist/infinitegrid.esm.js +198 -522
  8. package/dist/infinitegrid.esm.js.map +1 -1
  9. package/global.d.ts +8 -0
  10. package/package.json +41 -50
  11. package/public/global.css +6 -5
  12. package/public/index.html +3 -3
  13. package/rollup.config.js +7 -6
  14. package/src/InfiniteGrid.js +23 -16
  15. package/src/InfiniteGrid.svelte +91 -138
  16. package/src/consts.js +8 -13
  17. package/src/grids/FrameInfiniteGrid.js +17 -0
  18. package/src/grids/JustifiedInfiniteGrid.js +17 -0
  19. package/src/grids/MasonryInfiniteGrid.js +17 -0
  20. package/src/grids/PackingInfiniteGrid.js +17 -0
  21. package/src/index.d.ts +14 -27
  22. package/src/index.js +5 -13
  23. package/src/index.umd.js +2 -6
  24. package/src/{demo/main.js → main.ts} +1 -1
  25. package/stories/1-MasonryInfiniteGrid/0-MasonryInfiniteGrid.stories.ts +4 -0
  26. package/stories/1-MasonryInfiniteGrid/1-MasonryInfiniteGrid.stories.ts +27 -0
  27. package/stories/1-MasonryInfiniteGrid/apps/SvelteMasonryInfiniteGridApp.svelte +42 -0
  28. package/stories/2-JustifiedInfiniteGrid/0-JustifiedInfiniteGrid.stories.ts +5 -0
  29. package/stories/2-JustifiedInfiniteGrid/1-JustifiedInfiniteGrid.stories.ts +10 -0
  30. package/stories/2-JustifiedInfiniteGrid/apps/SvelteJustifiedInfiniteGridApp.svelte +43 -0
  31. package/stories/3-FrameInfiniteGrid/0-FrameInfiniteGrid.stories.ts +5 -0
  32. package/stories/3-FrameInfiniteGrid/1-FrameInfiniteGrid.stories.ts +10 -0
  33. package/stories/3-FrameInfiniteGrid/apps/SvelteFrameInfiniteGridApp.svelte +44 -0
  34. package/stories/4-PackingInfiniteGrid/0-PackingInfiniteGrid.stories.ts +5 -0
  35. package/stories/4-PackingInfiniteGrid/1-PackingInfiniteGrid.stories.ts +10 -0
  36. package/stories/4-PackingInfiniteGrid/apps/SveltePackingInfiniteGridApp.svelte +40 -0
  37. package/stories/5-DataLoading/0-DataLoading.stories.ts +7 -0
  38. package/stories/5-DataLoading/1-WaitNReady.stories.ts +10 -0
  39. package/stories/5-DataLoading/2-Placeholder.stories.ts +10 -0
  40. package/stories/5-DataLoading/3-Loading.stories.ts +10 -0
  41. package/stories/5-DataLoading/apps/SvelteLoadingApp.svelte +54 -0
  42. package/stories/5-DataLoading/apps/SveltePlaceholderApp.svelte +54 -0
  43. package/stories/5-DataLoading/apps/SvelteWaitNReadyApp.svelte +47 -0
  44. package/tsconfig.json +4 -61
  45. package/.editorconfig +0 -3
  46. package/LICENSE +0 -19
  47. package/babel.config.js +0 -10
  48. package/jest.config.js +0 -14
  49. package/rollup_start_dev.js +0 -12
  50. package/src/LoadingChecker.svelte +0 -9
  51. package/src/demo/App.svelte +0 -86
  52. package/src/demo/useFirstRender.svelte +0 -67
  53. package/src/layouts/FrameLayout.js +0 -9
  54. package/src/layouts/GridLayout.js +0 -9
  55. package/src/layouts/JustifiedLayout.js +0 -9
  56. package/src/layouts/PackingLayout.js +0 -9
  57. package/src/layouts/SquareLayout.js +0 -9
  58. package/svelte.config.js +0 -5
  59. package/test/unit/demo.spec.ts +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"infinitegrid.cjs.js","sources":["../src/LoadingChecker.svelte","../src/consts.js","../src/InfiniteGrid.svelte","../src/InfiniteGrid.js","../src/layouts/GridLayout.js","../src/layouts/JustifiedLayout.js","../src/layouts/FrameLayout.js","../src/layouts/SquareLayout.js","../src/layouts/PackingLayout.js","../src/index.umd.js"],"sourcesContent":["<script>\nimport { onMount, onDestroy } from \"svelte\";\n\nexport let hasLoading = true;\n\nonMount(() => {\n hasLoading = false;\n});\n</script>\n","export const PROP_NAMES = [\n\t\"groupBy\",\n\t\"itemBy\",\n\t\"items\",\n\t\"useFirstRender\",\n\t\"loading\",\n\t\"status\",\n\t\"layoutType\",\n\t\"options\",\n\t\"layoutOptions\",\n\t\"_forceCount\",\n\t\"viewer\",\n\t\"container\"\n];\n","<script lang=\"ts\">\n import {\n onMount,\n onDestroy,\n beforeUpdate,\n afterUpdate,\n createEventDispatcher\n } from \"svelte\";\n import VanillaInfiniteGrid, {\n INFINITEGRID_EVENTS,\n GridLayout,\n categorize,\n ItemManager,\n CONTAINER_CLASSNAME\n } from \"@egjs/infinitegrid\";\n import type {\n IInfiniteGridOptions,\n ILayout,\n IInfiniteGridStatus,\n IInfiniteGridItem,\n } from \"@egjs/infinitegrid\";\n import LoadingChecker from \"./LoadingChecker.svelte\";\n import { PROP_NAMES } from \"./consts\";\n\n export let groupBy = (item, index) => item.groupKey;\n export let itemBy = (item, index) => item.key;\n export let items: any[] = [];\n export let useFirstRender = false;\n export let status: IInfiniteGridStatus | null = null;\n export let layoutType: new () => ILayout = GridLayout;\n export let options: Partial<IInfiniteGridOptions> = {};\n export let layoutOptions: { [key: string]: any } = {};\n export let _forceCount = 0;\n\n const dispatch = createEventDispatcher();\n let viewer: HTMLElement;\n let container: HTMLElement;\n let nextFunction = () => {};\n let layoutState;\n let visibleItems: any[] = [];\n let ig: VanillaInfiniteGrid;\n let hasLoadingElement = true;\n let attributes = {};\n let isFirstMount = true;\n\n function toItems(items) {\n return items.map((item, i) => ({\n groupKey: groupBy(item, i),\n itemKey: itemBy(item, i),\n data: item\n }));\n }\n function beforeSync(items) {\n return ig.beforeSync(toItems(items));\n }\n function getLoadingElement() {\n if (hasLoadingElement) {\n const el = container || viewer;\n\n return el!.lastElementChild;\n }\n }\n function getElements() {\n const el = container || viewer;\n const elements = [].slice.call(el!.children);\n\n if (hasLoadingElement) {\n return elements.slice(0, -1);\n }\n return elements;\n }\n function updateAttributes() {\n attributes = { ...$$props };\n\n PROP_NAMES.forEach(name => {\n delete attributes[name];\n });\n }\n\n const groups = categorize(items);\n\n if (status) {\n const { startCursor, endCursor } = status._infinite;\n visibleItems = ItemManager.pluck(\n groups.slice(startCursor, endCursor + 1),\n \"items\"\n ).map(item => item.data);\n } else if (useFirstRender) {\n visibleItems = items;\n }\n beforeUpdate(() => {\n updateAttributes();\n if (!ig) {\n return;\n }\n const result = beforeSync(items);\n\n layoutState = result === \"relayout\" ? result : layoutState || result;\n visibleItems = ig.getRenderingItems().map(item => item.data);\n\n const loadingElement = getLoadingElement();\n\n if (loadingElement) {\n ig.setLoadingBar({\n append: loadingElement,\n prepend: loadingElement\n });\n } else {\n ig.setLoadingBar();\n }\n });\n onMount(() => {\n ig = new VanillaInfiniteGrid(viewer!, {\n ...options,\n renderExternal: true\n }).on(\"render\", ({ next }) => {\n setTimeout(() => {\n nextFunction = next;\n ++_forceCount;\n });\n });\n INFINITEGRID_EVENTS.forEach(name => {\n ig.on(name as any, (e: any) => {\n dispatch(name, e);\n });\n });\n ig.setLayout(layoutType, layoutOptions);\n\n const loadingElement = getLoadingElement();\n\n if (loadingElement) {\n ig.setLoadingBar({\n append: loadingElement,\n prepend: loadingElement\n });\n }\n if (status) {\n setStatus(status, true);\n } else {\n beforeSync(items);\n ig.layout(true);\n }\n });\n afterUpdate(() => {\n if (isFirstMount) {\n isFirstMount = false;\n return;\n }\n const currentNextFunction = nextFunction;\n nextFunction = () => {};\n ig.sync(getElements());\n\n if (layoutState) {\n layoutState = \"\";\n ig.layout(layoutState === \"relayout\");\n }\n currentNextFunction();\n });\n onDestroy(() => {\n ig.destroy();\n });\n\n export function getInstance() {\n return ig;\n }\n export function setStatus(status: IInfiniteGridStatus, applyScrollPos?: boolean, syncElements: HTMLElement[] = getElements()) {\n ig.setStatus(status, applyScrollPos, syncElements);\n return ig;\n }\n</script>\n\n<div {...attributes} bind:this={viewer}>\n {#if options.isOverflowScroll}\n <div class={CONTAINER_CLASSNAME} bind:this={container}>\n <slot {visibleItems} />\n <slot name=\"loading\">\n <LoadingChecker bind:hasLoading={hasLoadingElement} />\n </slot>\n </div>\n {:else}\n <slot {visibleItems} />\n <slot name=\"loading\">\n <LoadingChecker bind:hasLoading={hasLoadingElement} />\n </slot>\n {/if}\n</div>\n","import InfiniteGrid from \"./InfiniteGrid.svelte\";\nimport { INFINITEGRID_METHODS } from \"@egjs/infinitegrid\";\n\nexport default /*#__PURE__*/ (() => {\n const prototype = InfiniteGrid.prototype;\n\n\tfor (const name in INFINITEGRID_METHODS) {\n\t\tif (name in prototype) {\n\t\t\tcontinue;\n\t\t}\n prototype[name] = function (...args) {\n const self = this.getInstance();\n const result = self[name](...args);\n\n if (result === self) {\n return this;\n } else {\n return result;\n }\n };\n\t}\n return InfiniteGrid;\n})();\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { GridLayout as layoutType } from \"@egjs/infinitegrid\";\n\nexport default class GridLayout extends InfiniteGrid {\n\tconstructor(options) {\n\t\toptions.props.layoutType = layoutType;\n\t\tsuper(options);\n\t}\n}\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { JustifiedLayout as layoutType } from \"@egjs/infinitegrid\";\n\nexport default class JustifiedLayout extends InfiniteGrid {\n\tconstructor(options) {\n\t\toptions.props.layoutType = layoutType;\n\t\tsuper(options);\n\t}\n}\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { FrameLayout as layoutType } from \"@egjs/infinitegrid\";\n\nexport default class FrameLayout extends InfiniteGrid {\n\tconstructor(options) {\n\t\toptions.props.layoutType = layoutType;\n\t\tsuper(options);\n\t}\n}\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { SquareLayout as layoutType } from \"@egjs/infinitegrid\";\n\nexport default class SquareLayout extends InfiniteGrid {\n\tconstructor(options) {\n\t\toptions.props.layoutType = layoutType;\n\t\tsuper(options);\n\t}\n}\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { PackingLayout as layoutType } from \"@egjs/infinitegrid\";\n\nexport default class PackingLayout extends InfiniteGrid {\n\tconstructor(options) {\n\t\toptions.props.layoutType = layoutType;\n\t\tsuper(options);\n\t}\n}\n","import InfiniteGrid, * as modules from \"./index\";\n\n\nfor (const name in modules) {\n\tInfiniteGrid[name] = modules[name];\n}\n\nexport default InfiniteGrid;\n"],"names":["hasLoading","onMount","PROP_NAMES","CONTAINER_CLASSNAME","ctx","isOverflowScroll","groupBy","item","index","groupKey","itemBy","key","items","useFirstRender","status","layoutType","GridLayout","options","layoutOptions","_forceCount","dispatch","createEventDispatcher","viewer","container","nextFunction","layoutState","visibleItems","ig","hasLoadingElement","attributes","isFirstMount","toItems","map","i","itemKey","data","beforeSync","getLoadingElement","el","lastElementChild","getElements","elements","slice","call","children","updateAttributes","$$props","forEach","name","groups","categorize","startCursor","endCursor","_infinite","ItemManager","pluck","beforeUpdate","result","getRenderingItems","loadingElement","setLoadingBar","append","prepend","VanillaInfiniteGrid","renderExternal","on","next","setTimeout","INFINITEGRID_EVENTS","e","setLayout","setStatus","layout","afterUpdate","currentNextFunction","sync","onDestroy","destroy","getInstance","applyScrollPos","syncElements","prototype","InfiniteGrid","INFINITEGRID_METHODS","args","self","constructor","props","JustifiedLayout","FrameLayout","SquareLayout","PackingLayout","modules"],"mappings":"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"}
1
+ {"version":3,"file":"infinitegrid.cjs.js","sources":["../src/consts.js","../src/InfiniteGrid.svelte","../src/InfiniteGrid.js","../src/grids/MasonryInfiniteGrid.js","../src/grids/JustifiedInfiniteGrid.js","../src/grids/FrameInfiniteGrid.js","../src/grids/PackingInfiniteGrid.js"],"sourcesContent":["export const SVELTE_INFINITEGRID_PROPS = [\n \"status\",\n \"useFirstRender\",\n \"useLoading\",\n \"usePlaceholder\",\n \"items\",\n \"itemBy\",\n \"groupBy\",\n];\n","<script>\n /**\n * egjs-infinitegrid\n * Copyright (c) 2021-present NAVER Corp.\n * MIT license\n */\n import {\n onMount,\n beforeUpdate,\n createEventDispatcher,\n onDestroy,\n afterUpdate,\n } from \"svelte\";\n import VanillaInfiniteGrid, {\n INFINITEGRID_EVENTS,\n InfiniteGridOptions,\n Renderer,\n CONTAINER_CLASS_NAME,\n getRenderingItems,\n mountRenderingItems,\n } from \"@egjs/infinitegrid\";\n import { SVELTE_INFINITEGRID_PROPS } from \"./consts\";\n export let GridClass;\n\n const dispatch = createEventDispatcher();\n const renderer = new Renderer();\n let wrapper;\n let container;\n let grid;\n let isFirstMount = false;\n let attributes = {};\n let visibleItems = [];\n\n function updateAttributes() {\n attributes = { ...$$props };\n\n const defaultOptions = GridClass.defaultOptions;\n\n delete attributes[\"GridClass\"];\n for (const name in defaultOptions) {\n delete attributes[name];\n }\n SVELTE_INFINITEGRID_PROPS.forEach((name) => {\n delete attributes[name];\n });\n }\n function getItemInfos() {\n const items = $$props.items || [];\n const itemBy = $$props.itemBy || ((item) => item.key);\n const groupBy = $$props.groupBy || ((item) => item.groupKey);\n\n return items.map((item, i) => {\n return {\n groupKey: groupBy(item, i),\n key: itemBy(item, i),\n data: item,\n };\n });\n }\n function updateVisibleChildren() {\n visibleItems = getRenderingItems(getItemInfos(), {\n grid,\n status: $$props.status,\n usePlaceholder: $$props.usePlaceholder,\n useFirstRender: $$props.useFirstRender,\n useLoading: $$props.useLoading,\n horizontal: $$props.horizontal,\n });\n }\n\n beforeUpdate(() => {\n updateAttributes();\n updateVisibleChildren();\n });\n onMount(() => {\n const defaultOptions = GridClass.defaultOptions;\n const options = {};\n\n for (const name in defaultOptions) {\n if (name in $$props) {\n options[name] = $$props[name];\n }\n }\n if (container) {\n options.container = container;\n }\n options.renderer = renderer;\n grid = new GridClass(wrapper, options);\n\n for (const name in INFINITEGRID_EVENTS) {\n const eventName = INFINITEGRID_EVENTS[name];\n\n grid.on(eventName, (e) => {\n dispatch(eventName, e);\n });\n }\n renderer.on(\"requestUpdate\", () => {\n updateVisibleChildren();\n });\n mountRenderingItems(getItemInfos(), {\n grid,\n status: $$props.status,\n usePlaceholder: $$props.usePlaceholder,\n useFirstRender: $$props.useFirstRender,\n useLoading: $$props.useLoading,\n horizontal: $$props.horizontal,\n });\n renderer.updated();\n });\n afterUpdate(() => {\n if (isFirstMount) {\n isFirstMount = false;\n return;\n }\n const propertyTypes = GridClass.propertyTypes;\n\n for (const name in propertyTypes) {\n if (name in $$props) {\n grid[name] = $$props[name];\n }\n }\n renderer.updated();\n });\n onDestroy(() => {\n grid?.destroy();\n });\n export function getInstance() {\n return grid;\n }\n</script>\n\n<div bind:this={wrapper} {...attributes}>\n {#if $$props.container === true}\n <div class={CONTAINER_CLASS_NAME} bind:this={container}>\n <slot {visibleItems} />\n </div>\n {:else}\n <slot {visibleItems} />\n {/if}\n</div>\n","/**\n * egjs-infinitegrid\n * Copyright (c) 2021-present NAVER Corp.\n * MIT license\n */\nimport InfiniteGrid from \"./InfiniteGrid.svelte\";\nimport { INFINITEGRID_METHODS } from \"@egjs/infinitegrid\";\n\nexport default /*#__PURE__*/ (() => {\n const prototype = InfiniteGrid.prototype;\n\n if (prototype) {\n INFINITEGRID_METHODS.forEach(name => {\n if (name in prototype) {\n return;\n }\n prototype[name] = function (...args) {\n const self = this.getInstance();\n const result = self[name](...args);\n\n if (result === self) {\n return this;\n } else {\n return result;\n }\n };\n });\n }\n return InfiniteGrid;\n})();\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { MasonryInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet MasonryInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n MasonryInfiniteGrid = InfiniteGrid;\n} else {\n MasonryInfiniteGrid = class MasonryInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { MasonryInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { JustifiedInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet JustifiedInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n JustifiedInfiniteGrid = InfiniteGrid;\n} else {\n JustifiedInfiniteGrid = class JustifiedInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { JustifiedInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { FrameInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet FrameInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n FrameInfiniteGrid = InfiniteGrid;\n} else {\n FrameInfiniteGrid = class FrameInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { FrameInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.svelte\";\nimport { PackingInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet PackingInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n PackingInfiniteGrid = InfiniteGrid;\n} else {\n PackingInfiniteGrid = class PackingInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { PackingInfiniteGrid };\n"],"names":["SVELTE_INFINITEGRID_PROPS","CONTAINER_CLASS_NAME","insert","ctx","container","GridClass","dispatch","createEventDispatcher","renderer","Renderer","wrapper","grid","attributes","visibleItems","updateAttributes","$$props","defaultOptions","name","forEach","getItemInfos","items","itemBy","item","key","groupBy","groupKey","map","i","data","updateVisibleChildren","getRenderingItems","status","usePlaceholder","useFirstRender","useLoading","horizontal","beforeUpdate","onMount","options","INFINITEGRID_EVENTS","eventName","on","e","mountRenderingItems","updated","afterUpdate","propertyTypes","onDestroy","destroy","getInstance","prototype","InfiniteGrid","INFINITEGRID_METHODS","args","self","result","MasonryInfiniteGrid","constructor","props","JustifiedInfiniteGrid","FrameInfiniteGrid","PackingInfiniteGrid"],"mappings":"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"}