|
|
|
@ -2,6 +2,7 @@ |
|
|
|
// https://www.ag-grid.com/javascript-grid-cell-rendering-components/
|
|
|
|
|
|
|
|
import AttachmentCell from "./AttachmentCell/Button.svelte" |
|
|
|
import ViewDetails from "./ViewDetails/Cell.svelte" |
|
|
|
import Select from "./Select/Wrapper.svelte" |
|
|
|
import DatePicker from "./DateTime/Wrapper.svelte" |
|
|
|
import RelationshipDisplay from "./Relationship/RelationshipDisplay.svelte" |
|
|
|
@ -11,18 +12,19 @@ const renderers = new Map([ |
|
|
|
["attachment", attachmentRenderer], |
|
|
|
["options", optionsRenderer], |
|
|
|
["link", linkedRowRenderer], |
|
|
|
["_id", viewDetailsRenderer], |
|
|
|
]) |
|
|
|
|
|
|
|
export function getRenderer({ type, constraints }, editable) { |
|
|
|
if (renderers.get(type)) { |
|
|
|
return renderers.get(type)(constraints, editable) |
|
|
|
export function getRenderer(schema, editable) { |
|
|
|
if (renderers.get(schema.type)) { |
|
|
|
return renderers.get(schema.type)(schema.options, editable) |
|
|
|
} else { |
|
|
|
return false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* eslint-disable no-unused-vars */ |
|
|
|
function booleanRenderer(constraints, editable) { |
|
|
|
function booleanRenderer(options, editable) { |
|
|
|
return params => { |
|
|
|
const toggle = e => { |
|
|
|
params.value = !params.value |
|
|
|
@ -44,7 +46,7 @@ function booleanRenderer(constraints, editable) { |
|
|
|
} |
|
|
|
} |
|
|
|
/* eslint-disable no-unused-vars */ |
|
|
|
function attachmentRenderer(constraints, editable) { |
|
|
|
function attachmentRenderer(options, editable) { |
|
|
|
return params => { |
|
|
|
const container = document.createElement("div") |
|
|
|
|
|
|
|
@ -66,7 +68,7 @@ function attachmentRenderer(constraints, editable) { |
|
|
|
} |
|
|
|
} |
|
|
|
/* eslint-disable no-unused-vars */ |
|
|
|
function dateRenderer(constraints, editable) { |
|
|
|
function dateRenderer(options, editable) { |
|
|
|
return function(params) { |
|
|
|
const container = document.createElement("div") |
|
|
|
const toggle = e => { |
|
|
|
@ -111,7 +113,7 @@ function optionsRenderer({ inclusion }, editable) { |
|
|
|
} |
|
|
|
} |
|
|
|
/* eslint-disable no-unused-vars */ |
|
|
|
function linkedRowRenderer(constraints, editable) { |
|
|
|
function linkedRowRenderer(options, editable) { |
|
|
|
return params => { |
|
|
|
let container = document.createElement("div") |
|
|
|
container.style.display = "grid" |
|
|
|
@ -129,3 +131,22 @@ function linkedRowRenderer(constraints, editable) { |
|
|
|
return container |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* eslint-disable no-unused-vars */ |
|
|
|
function viewDetailsRenderer(options) { |
|
|
|
return params => { |
|
|
|
let container = document.createElement("div") |
|
|
|
container.style.display = "grid" |
|
|
|
container.style.placeItems = "center" |
|
|
|
container.style.height = "100%" |
|
|
|
|
|
|
|
new ViewDetails({ |
|
|
|
target: container, |
|
|
|
props: { |
|
|
|
url: `${options}/${params.data._id}`, |
|
|
|
}, |
|
|
|
}) |
|
|
|
|
|
|
|
return container |
|
|
|
} |
|
|
|
} |
|
|
|
|