You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.6 KiB
34 lines
1.6 KiB
import { createContainerComponent, createDivOverlayComponent, createLeafComponent } from './component.js'; |
|
import { createControlHook } from './control.js'; |
|
import { createElementHook, createElementObject } from './element.js'; |
|
import { createLayerHook } from './layer.js'; |
|
import { createDivOverlayHook } from './div-overlay.js'; |
|
import { createPathHook } from './path.js'; |
|
export function createControlComponent(createInstance) { |
|
function createElement(props, context) { |
|
return createElementObject(createInstance(props), context); |
|
} |
|
const useElement = createElementHook(createElement); |
|
const useControl = createControlHook(useElement); |
|
return createLeafComponent(useControl); |
|
} |
|
export function createLayerComponent(createElement, updateElement) { |
|
const useElement = createElementHook(createElement, updateElement); |
|
const useLayer = createLayerHook(useElement); |
|
return createContainerComponent(useLayer); |
|
} |
|
export function createOverlayComponent(createElement, useLifecycle) { |
|
const useElement = createElementHook(createElement); |
|
const useOverlay = createDivOverlayHook(useElement, useLifecycle); |
|
return createDivOverlayComponent(useOverlay); |
|
} |
|
export function createPathComponent(createElement, updateElement) { |
|
const useElement = createElementHook(createElement, updateElement); |
|
const usePath = createPathHook(useElement); |
|
return createContainerComponent(usePath); |
|
} |
|
export function createTileLayerComponent(createElement, updateElement) { |
|
const useElement = createElementHook(createElement, updateElement); |
|
const useLayer = createLayerHook(useElement); |
|
return createLeafComponent(useLayer); |
|
}
|
|
|