Sha256: d986a50b047f04a50f8d67487b1893aea4305bd0ed9563df17129af710a13a45

Contents?: true

Size: 746 Bytes

Versions: 25

Compression:

Stored size: 746 Bytes

Contents

export const encodeToTree = (blocks, parentId) => {
  return blocks
    .filter((block) => block.parentId === parentId)
    .map((block) => ({
      sectionBlock: { ...block },
      children: encodeToTree(blocks, block.id),
    }))
}

export const decodeTree = (tree, parentId) => {
  return tree
    .map((treeNode) => {
      return [].concat(
        { ...treeNode.sectionBlock, parentId },
        decodeTree(treeNode.children, treeNode.sectionBlock.id),
      )
    })
    .flat()
}

export const filterRoot = (blockDefinitions, content) => {
  return blockDefinitions.filter((block) => {
    const count = content.filter(({ type }) => block.type === type).length
    return block.root && (block.limit === -1 || block.limit > count)
  })
}

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
maglevcms-1.8.0 app/frontend/editor/services/block.js
maglevcms-1.7.3 app/frontend/editor/services/block.js
maglevcms-1.7.2 app/frontend/editor/services/block.js
maglevcms-1.7.1 app/frontend/editor/services/block.js
maglevcms-1.7.0 app/frontend/editor/services/block.js
maglevcms-1.6.1 app/frontend/editor/services/block.js
maglevcms-1.6.0 app/frontend/editor/services/block.js
maglevcms-1.5.1 app/frontend/editor/services/block.js
maglevcms-1.4.0 app/frontend/editor/services/block.js
maglevcms-1.3.0 app/frontend/editor/services/block.js
maglevcms-1.2.2 app/frontend/editor/services/block.js
maglevcms-1.2.1 app/frontend/editor/services/block.js
maglevcms-1.2.0 app/frontend/editor/services/block.js
maglevcms-1.1.7 app/frontend/editor/services/block.js
maglevcms-1.1.6 app/frontend/editor/services/block.js
maglevcms-1.1.5 app/frontend/editor/services/block.js
maglevcms-1.1.4 app/frontend/editor/services/block.js
maglevcms-1.1.3 app/frontend/editor/services/block.js
maglevcms-1.1.2 app/frontend/editor/services/block.js
maglevcms-1.1.1 app/frontend/editor/services/block.js