@egjs/svelte-infinitegrid 4.9.0 → 4.10.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,34 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.10.0](https://github.com/naver/egjs-infinitegrid/compare/@egjs/svelte-infinitegrid@4.9.0...@egjs/svelte-infinitegrid@4.10.0) (2023-05-26)
7
+
8
+
9
+ ### :rocket: New Features
10
+
11
+ * add infoBy prop for frameworks (#538) ([6fd5c0b](https://github.com/naver/egjs-infinitegrid/commit/6fd5c0b36f2aded59d3fce54d880f8882b2a3ec6))
12
+
13
+
14
+ ### :mega: Other
15
+
16
+ * update packages versions ([dce9a8c](https://github.com/naver/egjs-infinitegrid/commit/dce9a8c79342d01190b59197b82bf11d25c5665c))
17
+
18
+
19
+
20
+ ## [4.9.0](https://github.com/naver/egjs-infinitegrid/compare/@egjs/svelte-infinitegrid@4.8.1...@egjs/svelte-infinitegrid@4.9.0) (2023-03-17)
21
+
22
+
23
+ ### :bug: Bug Fix
24
+
25
+ * fix svelte module naming (#529) ([5e3d9fe](https://github.com/naver/egjs-infinitegrid/commit/5e3d9fefbc45066e1256a408a909045f7c4c70f7))
26
+
27
+
28
+ ### :mega: Other
29
+
30
+ * update packages versions ([f628845](https://github.com/naver/egjs-infinitegrid/commit/f628845d3e3a8d0cb91f1802c352d12944b6a2a7))
31
+
32
+
33
+
6
34
  ## [4.8.1](https://github.com/naver/egjs-infinitegrid/compare/@egjs/svelte-infinitegrid@4.7.1...@egjs/svelte-infinitegrid@4.8.1) (2023-01-27)
7
35
 
8
36
 
@@ -4,7 +4,7 @@ name: @egjs/svelte-infinitegrid
4
4
  license: MIT
5
5
  author: NAVER Corp.
6
6
  repository: https://github.com/naver/egjs-infinitegrid
7
- version: 4.9.0
7
+ version: 4.10.1
8
8
  */
9
9
  'use strict';
10
10
 
@@ -14,7 +14,7 @@ var infinitegrid = require('@egjs/infinitegrid');
14
14
 
15
15
  const SVELTE_INFINITEGRID_PROPS = ["status", "useFirstRender", "useLoading", "usePlaceholder", "items", "itemBy", "groupBy"];
16
16
 
17
- /* src/InfiniteGrid.svelte generated by Svelte v3.52.0 */
17
+ /* src/InfiniteGrid.svelte generated by Svelte v3.58.0 */
18
18
  const get_default_slot_changes_1 = dirty => ({
19
19
  visibleItems: dirty & /*visibleItems*/8
20
20
  });
@@ -28,7 +28,7 @@ const get_default_slot_context = ctx => ({
28
28
  visibleItems: /*visibleItems*/ctx[3]
29
29
  });
30
30
 
31
- // (138:2) {:else}
31
+ // (147:2) {:else}
32
32
  function create_else_block(ctx) {
33
33
  let current;
34
34
  const default_slot_template = /*#slots*/ctx[9].default;
@@ -65,7 +65,7 @@ function create_else_block(ctx) {
65
65
  };
66
66
  }
67
67
 
68
- // (134:2) {#if $$props.container === true}
68
+ // (143:2) {#if $$props.container === true}
69
69
  function create_if_block(ctx) {
70
70
  let div;
71
71
  let current;
@@ -216,11 +216,20 @@ function instance($$self, $$props, $$invalidate) {
216
216
  const items = $$props.items || [];
217
217
  const itemBy = $$props.itemBy || (item => item.key);
218
218
  const groupBy = $$props.groupBy || (item => item.groupKey);
219
+ const infoBy = $$props.infoBy || (() => ({}));
219
220
  return items.map((item, i) => {
221
+ const {
222
+ data,
223
+ ...rest
224
+ } = infoBy(item, i) || {};
220
225
  return {
221
226
  groupKey: groupBy(item, i),
222
227
  key: itemBy(item, i),
223
- data: item
228
+ ...rest,
229
+ data: {
230
+ ...data,
231
+ ...item
232
+ }
224
233
  };
225
234
  });
226
235
  }
@@ -1 +1 @@
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 {\n INFINITEGRID_EVENTS,\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 export let vanillaGrid = null;\n\n const dispatch = createEventDispatcher();\n const renderer = new Renderer();\n let wrapper;\n let container;\n let isFirstMount = false;\n let attributes = {};\n let visibleItems = [];\n\n function updateAttributes(props) {\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(props) {\n visibleItems = getRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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($$props);\n updateVisibleChildren($$props);\n });\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 vanillaGrid = new GridClass(wrapper, options);\n\n for (const name in INFINITEGRID_EVENTS) {\n const eventName = INFINITEGRID_EVENTS[name];\n\n vanillaGrid.on(eventName, (e) => {\n dispatch(eventName, e);\n });\n }\n renderer.on(\"requestUpdate\", () => {\n updateVisibleChildren($$props);\n });\n\n mountRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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 vanillaGrid[name] = $$props[name];\n }\n }\n renderer.updated();\n });\n onDestroy(() => {\n vanillaGrid && vanillaGrid.destroy();\n });\n export function getInstance() {\n return vanillaGrid;\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.js\";\nimport { MasonryInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteMasonryInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteMasonryInfiniteGrid = InfiniteGrid;\n} else {\n SvelteMasonryInfiniteGrid = class SvelteMasonryInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteMasonryInfiniteGrid as MasonryInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { JustifiedInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteJustifiedInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteJustifiedInfiniteGrid = InfiniteGrid;\n} else {\n SvelteJustifiedInfiniteGrid = class SvelteJustifiedInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteJustifiedInfiniteGrid as JustifiedInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { FrameInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteFrameInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteFrameInfiniteGrid = InfiniteGrid;\n} else {\n SvelteFrameInfiniteGrid = class SvelteFrameInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteFrameInfiniteGrid as FrameInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { PackingInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SveltePackingInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SveltePackingInfiniteGrid = InfiniteGrid;\n} else {\n SveltePackingInfiniteGrid = class SveltePackingInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SveltePackingInfiniteGrid as PackingInfiniteGrid };\n"],"names":["SVELTE_INFINITEGRID_PROPS","CONTAINER_CLASS_NAME","insert","target","div","anchor","ctx","container","GridClass","$$props","vanillaGrid","dispatch","createEventDispatcher","renderer","Renderer","wrapper","attributes","visibleItems","updateAttributes","props","$$invalidate","defaultOptions","name","forEach","getItemInfos","items","itemBy","item","key","groupBy","groupKey","map","i","data","updateVisibleChildren","getRenderingItems","grid","status","usePlaceholder","useFirstRender","useLoading","horizontal","beforeUpdate","onMount","options","INFINITEGRID_EVENTS","eventName","on","e","mountRenderingItems","updated","afterUpdate","propertyTypes","onDestroy","destroy","getInstance","$$value","prototype","InfiniteGrid","INFINITEGRID_METHODS","args","self","result","SvelteMasonryInfiniteGrid","constructor","SvelteJustifiedInfiniteGrid","SvelteFrameInfiniteGrid","SveltePackingInfiniteGrid"],"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 {\n INFINITEGRID_EVENTS,\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 export let vanillaGrid = null;\n\n const dispatch = createEventDispatcher();\n const renderer = new Renderer();\n let wrapper;\n let container;\n let isFirstMount = false;\n let attributes = {};\n let visibleItems = [];\n\n function updateAttributes(props) {\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 const infoBy = $$props.infoBy || (() => ({}));\n\n return items.map((item, i) => {\n const {\n data,\n ...rest\n } = infoBy(item, i) || {};\n return {\n groupKey: groupBy(item, i),\n key: itemBy(item, i),\n ...rest,\n data: {\n ...data,\n ...item,\n },\n };\n });\n }\n function updateVisibleChildren(props) {\n visibleItems = getRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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($$props);\n updateVisibleChildren($$props);\n });\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 vanillaGrid = new GridClass(wrapper, options);\n\n for (const name in INFINITEGRID_EVENTS) {\n const eventName = INFINITEGRID_EVENTS[name];\n\n vanillaGrid.on(eventName, (e) => {\n dispatch(eventName, e);\n });\n }\n renderer.on(\"requestUpdate\", () => {\n updateVisibleChildren($$props);\n });\n\n mountRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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 vanillaGrid[name] = $$props[name];\n }\n }\n renderer.updated();\n });\n onDestroy(() => {\n vanillaGrid && vanillaGrid.destroy();\n });\n export function getInstance() {\n return vanillaGrid;\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.js\";\nimport { MasonryInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteMasonryInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteMasonryInfiniteGrid = InfiniteGrid;\n} else {\n SvelteMasonryInfiniteGrid = class SvelteMasonryInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteMasonryInfiniteGrid as MasonryInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { JustifiedInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteJustifiedInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteJustifiedInfiniteGrid = InfiniteGrid;\n} else {\n SvelteJustifiedInfiniteGrid = class SvelteJustifiedInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteJustifiedInfiniteGrid as JustifiedInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { FrameInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteFrameInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteFrameInfiniteGrid = InfiniteGrid;\n} else {\n SvelteFrameInfiniteGrid = class SvelteFrameInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteFrameInfiniteGrid as FrameInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { PackingInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SveltePackingInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SveltePackingInfiniteGrid = InfiniteGrid;\n} else {\n SveltePackingInfiniteGrid = class SveltePackingInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SveltePackingInfiniteGrid as PackingInfiniteGrid };\n"],"names":["SVELTE_INFINITEGRID_PROPS","CONTAINER_CLASS_NAME","insert","target","div","anchor","ctx","container","GridClass","$$props","vanillaGrid","dispatch","createEventDispatcher","renderer","Renderer","wrapper","attributes","visibleItems","updateAttributes","props","$$invalidate","defaultOptions","name","forEach","getItemInfos","items","itemBy","item","key","groupBy","groupKey","infoBy","map","i","data","rest","updateVisibleChildren","getRenderingItems","grid","status","usePlaceholder","useFirstRender","useLoading","horizontal","beforeUpdate","onMount","options","INFINITEGRID_EVENTS","eventName","on","e","mountRenderingItems","updated","afterUpdate","propertyTypes","onDestroy","destroy","getInstance","$$value","prototype","InfiniteGrid","INFINITEGRID_METHODS","args","self","result","SvelteMasonryInfiniteGrid","constructor","SvelteJustifiedInfiniteGrid","SvelteFrameInfiniteGrid","SveltePackingInfiniteGrid"],"mappings":"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"}
@@ -4,7 +4,7 @@ name: @egjs/svelte-infinitegrid
4
4
  license: MIT
5
5
  author: NAVER Corp.
6
6
  repository: https://github.com/naver/egjs-infinitegrid
7
- version: 4.9.0
7
+ version: 4.10.1
8
8
  */
9
9
  import { SvelteComponent, init, safe_not_equal, assign, element, set_attributes, insert, group_outros, transition_out, check_outros, transition_in, get_spread_update, detach, exclude_internal_props, binding_callbacks, create_slot, update_slot_base, get_all_dirty_from_scope, get_slot_changes, attr } from 'svelte/internal';
10
10
  import { createEventDispatcher, beforeUpdate, onMount, afterUpdate, onDestroy } from 'svelte';
@@ -12,7 +12,7 @@ import { Renderer, INFINITEGRID_EVENTS, mountRenderingItems, getRenderingItems,
12
12
 
13
13
  const SVELTE_INFINITEGRID_PROPS = ["status", "useFirstRender", "useLoading", "usePlaceholder", "items", "itemBy", "groupBy"];
14
14
 
15
- /* src/InfiniteGrid.svelte generated by Svelte v3.52.0 */
15
+ /* src/InfiniteGrid.svelte generated by Svelte v3.58.0 */
16
16
  const get_default_slot_changes_1 = dirty => ({
17
17
  visibleItems: dirty & /*visibleItems*/8
18
18
  });
@@ -26,7 +26,7 @@ const get_default_slot_context = ctx => ({
26
26
  visibleItems: /*visibleItems*/ctx[3]
27
27
  });
28
28
 
29
- // (138:2) {:else}
29
+ // (147:2) {:else}
30
30
  function create_else_block(ctx) {
31
31
  let current;
32
32
  const default_slot_template = /*#slots*/ctx[9].default;
@@ -63,7 +63,7 @@ function create_else_block(ctx) {
63
63
  };
64
64
  }
65
65
 
66
- // (134:2) {#if $$props.container === true}
66
+ // (143:2) {#if $$props.container === true}
67
67
  function create_if_block(ctx) {
68
68
  let div;
69
69
  let current;
@@ -214,11 +214,20 @@ function instance($$self, $$props, $$invalidate) {
214
214
  const items = $$props.items || [];
215
215
  const itemBy = $$props.itemBy || (item => item.key);
216
216
  const groupBy = $$props.groupBy || (item => item.groupKey);
217
+ const infoBy = $$props.infoBy || (() => ({}));
217
218
  return items.map((item, i) => {
219
+ const {
220
+ data,
221
+ ...rest
222
+ } = infoBy(item, i) || {};
218
223
  return {
219
224
  groupKey: groupBy(item, i),
220
225
  key: itemBy(item, i),
221
- data: item
226
+ ...rest,
227
+ data: {
228
+ ...data,
229
+ ...item
230
+ }
222
231
  };
223
232
  });
224
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"infinitegrid.esm.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 {\n INFINITEGRID_EVENTS,\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 export let vanillaGrid = null;\n\n const dispatch = createEventDispatcher();\n const renderer = new Renderer();\n let wrapper;\n let container;\n let isFirstMount = false;\n let attributes = {};\n let visibleItems = [];\n\n function updateAttributes(props) {\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(props) {\n visibleItems = getRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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($$props);\n updateVisibleChildren($$props);\n });\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 vanillaGrid = new GridClass(wrapper, options);\n\n for (const name in INFINITEGRID_EVENTS) {\n const eventName = INFINITEGRID_EVENTS[name];\n\n vanillaGrid.on(eventName, (e) => {\n dispatch(eventName, e);\n });\n }\n renderer.on(\"requestUpdate\", () => {\n updateVisibleChildren($$props);\n });\n\n mountRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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 vanillaGrid[name] = $$props[name];\n }\n }\n renderer.updated();\n });\n onDestroy(() => {\n vanillaGrid && vanillaGrid.destroy();\n });\n export function getInstance() {\n return vanillaGrid;\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.js\";\nimport { MasonryInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteMasonryInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteMasonryInfiniteGrid = InfiniteGrid;\n} else {\n SvelteMasonryInfiniteGrid = class SvelteMasonryInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteMasonryInfiniteGrid as MasonryInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { JustifiedInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteJustifiedInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteJustifiedInfiniteGrid = InfiniteGrid;\n} else {\n SvelteJustifiedInfiniteGrid = class SvelteJustifiedInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteJustifiedInfiniteGrid as JustifiedInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { FrameInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteFrameInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteFrameInfiniteGrid = InfiniteGrid;\n} else {\n SvelteFrameInfiniteGrid = class SvelteFrameInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteFrameInfiniteGrid as FrameInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { PackingInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SveltePackingInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SveltePackingInfiniteGrid = InfiniteGrid;\n} else {\n SveltePackingInfiniteGrid = class SveltePackingInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SveltePackingInfiniteGrid as PackingInfiniteGrid };\n"],"names":["SVELTE_INFINITEGRID_PROPS","CONTAINER_CLASS_NAME","insert","target","div","anchor","ctx","container","GridClass","$$props","vanillaGrid","dispatch","createEventDispatcher","renderer","Renderer","wrapper","attributes","visibleItems","updateAttributes","props","$$invalidate","defaultOptions","name","forEach","getItemInfos","items","itemBy","item","key","groupBy","groupKey","map","i","data","updateVisibleChildren","getRenderingItems","grid","status","usePlaceholder","useFirstRender","useLoading","horizontal","beforeUpdate","onMount","options","INFINITEGRID_EVENTS","eventName","on","e","mountRenderingItems","updated","afterUpdate","propertyTypes","onDestroy","destroy","getInstance","$$value","prototype","InfiniteGrid","INFINITEGRID_METHODS","args","self","result","SvelteMasonryInfiniteGrid","constructor","SvelteJustifiedInfiniteGrid","SvelteFrameInfiniteGrid","SveltePackingInfiniteGrid"],"mappings":"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"}
1
+ {"version":3,"file":"infinitegrid.esm.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 {\n INFINITEGRID_EVENTS,\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 export let vanillaGrid = null;\n\n const dispatch = createEventDispatcher();\n const renderer = new Renderer();\n let wrapper;\n let container;\n let isFirstMount = false;\n let attributes = {};\n let visibleItems = [];\n\n function updateAttributes(props) {\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 const infoBy = $$props.infoBy || (() => ({}));\n\n return items.map((item, i) => {\n const {\n data,\n ...rest\n } = infoBy(item, i) || {};\n return {\n groupKey: groupBy(item, i),\n key: itemBy(item, i),\n ...rest,\n data: {\n ...data,\n ...item,\n },\n };\n });\n }\n function updateVisibleChildren(props) {\n visibleItems = getRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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($$props);\n updateVisibleChildren($$props);\n });\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 vanillaGrid = new GridClass(wrapper, options);\n\n for (const name in INFINITEGRID_EVENTS) {\n const eventName = INFINITEGRID_EVENTS[name];\n\n vanillaGrid.on(eventName, (e) => {\n dispatch(eventName, e);\n });\n }\n renderer.on(\"requestUpdate\", () => {\n updateVisibleChildren($$props);\n });\n\n mountRenderingItems(getItemInfos(), {\n grid: vanillaGrid,\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 vanillaGrid[name] = $$props[name];\n }\n }\n renderer.updated();\n });\n onDestroy(() => {\n vanillaGrid && vanillaGrid.destroy();\n });\n export function getInstance() {\n return vanillaGrid;\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.js\";\nimport { MasonryInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteMasonryInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteMasonryInfiniteGrid = InfiniteGrid;\n} else {\n SvelteMasonryInfiniteGrid = class SvelteMasonryInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteMasonryInfiniteGrid as MasonryInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { JustifiedInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteJustifiedInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteJustifiedInfiniteGrid = InfiniteGrid;\n} else {\n SvelteJustifiedInfiniteGrid = class SvelteJustifiedInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteJustifiedInfiniteGrid as JustifiedInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { FrameInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SvelteFrameInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SvelteFrameInfiniteGrid = InfiniteGrid;\n} else {\n SvelteFrameInfiniteGrid = class SvelteFrameInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SvelteFrameInfiniteGrid as FrameInfiniteGrid };\n","import InfiniteGrid from \"../InfiniteGrid.js\";\nimport { PackingInfiniteGrid as GridClass } from \"@egjs/infinitegrid\";\n\n\nlet SveltePackingInfiniteGrid;\n\nif (typeof InfiniteGrid === \"object\") {\n SveltePackingInfiniteGrid = InfiniteGrid;\n} else {\n SveltePackingInfiniteGrid = class SveltePackingInfiniteGrid extends InfiniteGrid {\n constructor(options) {\n options.props.GridClass = GridClass;\n super(options);\n }\n }\n}\nexport { SveltePackingInfiniteGrid as PackingInfiniteGrid };\n"],"names":["SVELTE_INFINITEGRID_PROPS","CONTAINER_CLASS_NAME","insert","target","div","anchor","ctx","container","GridClass","$$props","vanillaGrid","dispatch","createEventDispatcher","renderer","Renderer","wrapper","attributes","visibleItems","updateAttributes","props","$$invalidate","defaultOptions","name","forEach","getItemInfos","items","itemBy","item","key","groupBy","groupKey","infoBy","map","i","data","rest","updateVisibleChildren","getRenderingItems","grid","status","usePlaceholder","useFirstRender","useLoading","horizontal","beforeUpdate","onMount","options","INFINITEGRID_EVENTS","eventName","on","e","mountRenderingItems","updated","afterUpdate","propertyTypes","onDestroy","destroy","getInstance","$$value","prototype","InfiniteGrid","INFINITEGRID_METHODS","args","self","result","SvelteMasonryInfiniteGrid","constructor","SvelteJustifiedInfiniteGrid","SvelteFrameInfiniteGrid","SveltePackingInfiniteGrid"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@egjs/svelte-infinitegrid",
3
- "version": "4.9.0",
3
+ "version": "4.10.1",
4
4
  "description": "A Svelte component that can arrange items infinitely according to the type of grids",
5
5
  "sideEffects": false,
6
6
  "svelte": "src/index.js",
@@ -74,6 +74,6 @@
74
74
  "typescript": "^4.5.0 <4.6.0"
75
75
  },
76
76
  "dependencies": {
77
- "@egjs/infinitegrid": "~4.9.0"
77
+ "@egjs/infinitegrid": "~4.10.0"
78
78
  }
79
79
  }
@@ -47,12 +47,21 @@
47
47
  const items = $$props.items || [];
48
48
  const itemBy = $$props.itemBy || ((item) => item.key);
49
49
  const groupBy = $$props.groupBy || ((item) => item.groupKey);
50
+ const infoBy = $$props.infoBy || (() => ({}));
50
51
 
51
52
  return items.map((item, i) => {
53
+ const {
54
+ data,
55
+ ...rest
56
+ } = infoBy(item, i) || {};
52
57
  return {
53
58
  groupKey: groupBy(item, i),
54
59
  key: itemBy(item, i),
55
- data: item,
60
+ ...rest,
61
+ data: {
62
+ ...data,
63
+ ...item,
64
+ },
56
65
  };
57
66
  });
58
67
  }
package/src/index.d.ts CHANGED
@@ -11,6 +11,9 @@ export interface SveltInfiniteGridOptions {
11
11
  usePlaceholder?: boolean;
12
12
  useLoading?: boolean;
13
13
  status?: InfiniteGridStatus;
14
+ itemBy?: (item: any, index: number) => string | number;
15
+ groupBy?: (item: any, index: number) => string | number;
16
+ infoBy?: (item: any, index: number) => Record<string, any>;
14
17
  }
15
18
 
16
19
  export default abstract class InfiniteGrid<T extends InfiniteGridOptions> extends SvelteComponentDev {