io3fix
Version:
toolkit for interior apps
77 lines (69 loc) • 2.16 kB
JavaScript
// import sceneStructure types
import generic from './generic'
import box from './by-type/box.js'
import cameraBookmark from './by-type/camera-bookmark.js'
import closet from './by-type/closet.js'
import column from './by-type/column.js'
import curtain from './by-type/curtain.js'
import door from './by-type/door.js'
import floor from './by-type/floor.js'
import floorplan from './by-type/floorplan.js'
import group from './by-type/group'
import interior from './by-type/interior'
import kitchen from './by-type/kitchen.js'
import level from './by-type/level.js'
import object from './by-type/object.js'
import plan from './by-type/plan.js'
import polybox from './by-type/polybox.js'
import polyfloor from './by-type/polyfloor.js'
import railing from './by-type/railing.js'
import stairs from './by-type/stairs.js'
import tag from './by-type/tag.js'
import wall from './by-type/wall.js'
import window from './by-type/window.js'
import defaults from 'lodash/defaults'
export default function getDefaultsByType (type) {
var types = {
box: box,
'camera-bookmark': cameraBookmark,
closet: closet,
column: column,
curtain: curtain,
door: door,
floor: floor,
floorplan: floorplan,
group: group,
interior: interior,
kitchen: kitchen,
level: level,
object: object,
plan: plan,
polybox: polybox,
polyfloor: polyfloor,
railing: railing,
stairs: stairs,
tag: tag,
wall: wall,
window: window
}
if (type && types[type]) {
return {
params: defaults({}, generic.params, types[type].params),
childrenTypes: types[type].childrenTypes,
parentTypes: types[type].parentTypes,
aframeComponent: types[type].aframeComponent
}
} else {
var typeSpecificValidations = {}
Object.keys(types).forEach(function (key) {
generic.type = key
typeSpecificValidations[key] = {
params: defaults({}, generic.params, types[key].params),
childrenTypes: types[key].childrenTypes,
parentTypes: types[key].parentTypes,
aframeComponent: types[key].aframeComponent
}
})
return typeSpecificValidations
}
}