src/components/editgrid/fixtures/comp-with-custom-default-value.js
export default {
type: 'form',
components: [
{
label: 'Selected Funds',
conditionalAddButton: 'show = !instance.hasOpenRows();',
tableView: false,
templates: {
header: "<div class=\"row\">\r\n {% util.eachComponent(components, function(component) {\r\n if (component.key === 'loadTypeFundCode') { %}\r\n <div class=\"col-sm-2\">\r\n <strong>Fund Code</strong>\r\n </div>\r\n <div class=\"col-sm-2\">\r\n <strong>Load Type</strong>\r\n </div> \r\n {% } else if (component.key !== 'fundClass') { \r\n if (component.key === 'fundName2') { %}\r\n <div class=\"col-sm-2\">\r\n {% } else { %}\r\n <div class=\"col-sm-2\">\r\n {% } %}\r\n <strong>{{ component.label }}</strong>\r\n </div>\r\n {% }\r\n }) %}\r\n</div>",
row: "<div class=\"row\">\r\n {% console.dir(row);\r\n util.eachComponent(components, function(component) { \r\n if (component.key === 'loadTypeFundCode') { \r\n var fundCode = '';\r\n var loadType = '';\r\n var item = component.data.values.find(item=>item.value==row[component.key]);\r\n if (!!item) {\r\n\t var itemParts = item.label.split('/');\r\n loadType = itemParts [0];\r\n\t if (itemParts.length > 1) { \r\n\t fundCode = itemParts [1];\r\n }\r\n }\r\n %}\r\n <div class=\"col-sm-2\">{{ fundCode }}</div>\r\n <div class=\"col-sm-2\">{{ loadType }}</div>\r\n {% } else if (component.key !== 'fundClass') { \r\n if (component.key === 'fundName2') { %}\r\n <div class=\"col-sm-2\">\r\n {% } else { %}\r\n <div class=\"col-sm-2\">\r\n {% } \r\n if (!!component.data && !!Array.isArray(component.data.values)) { \r\n var item = component.data.values.find(item=>item.value==row[component.key]);\r\n if (!!item) { %}\r\n {{item.label}}\r\n {% } else { %}\r\n {{ row[component.key] }}\r\n {% } \r\n } else { %}\r\n {{ row[component.key] }}\r\n {% } %}\r\n </div>\r\n {% }\r\n }) %}\r\n <div class=\"col-sm-2\">\r\n <div class=\"btn-group pull-right\">\r\n {% if (!instance.hasOpenRows()) { %}\r\n <div class=\"btn btn-default btn-sm editRow\"><i class=\"fa fa-edit\"></i></div>\r\n <div class=\"btn btn-danger btn-sm removeRow\"><i class=\"fa fa-trash\"></i></div>\r\n {% } %}\r\n </div>\r\n </div>\r\n</div>"
},
addAnother: 'Add Another Fund',
saveRow: 'Save Fund',
inlineEdit: true,
customDefaultValue: "value = [\n {\n fundClass: 'Class1',\n fundName2: 'Name1',\n loadTypeFundCode: 'dsc602',\n allocationAmount2: 100\n },\n {\n fundClass: 'Class2',\n fundName2: 'Name2',\n loadTypeFundCode: 'll1202',\n allocationAmount2: 200\n },\n {\n fundClass: 'Class3',\n fundName2: 'Name2',\n loadTypeFundCode: 'll1202',\n allocationAmount2: 100\n },\n {\n fundClass: 'Class3',\n fundName2: 'Name2',\n loadTypeFundCode: 'll1202',\n allocationAmount2: 100\n } ,\n {\n fundClass: 'Class3',\n fundName2: 'Name2',\n loadTypeFundCode: 'll1202',\n allocationAmount2: 100\n }\n];",
validate: {
minLength: 1
},
rowDrafts: false,
key: 'selectedFunds2',
type: 'editgrid',
input: true,
components: [
{
label: 'Columns',
columns: [
{
components: [
{
label: 'Fund Class',
widget: 'choicesjs',
tableView: true,
dataSrc: 'custom',
data: {
custom: "values = ['Class1', 'Class2', 'Class3'];"
},
template: '<span>{{ item }}</span>',
validate: {
required: true
},
key: 'fundClass',
type: 'select',
input: true,
hideOnChildrenHidden: false
}
],
width: 6,
offset: 0,
push: 0,
pull: 0,
size: 'md',
currentWidth: 6
},
{
components: [
{
label: 'Fund Name',
widget: 'choicesjs',
tableView: true,
dataSrc: 'custom',
data: {
custom: "values = ['Name1', 'Name2'];"
},
template: '<span>{{ item }}</span>',
validate: {
required: true
},
key: 'fundName2',
logic: [
{
name: 'Disable',
trigger: {
type: 'javascript',
javascript: "result = !row['fundClass'];"
},
actions: [
{
name: 'Disable',
type: 'property',
property: {
label: 'Disabled',
value: 'disabled',
type: 'boolean'
},
state: true
}
]
}
],
type: 'select',
input: true,
hideOnChildrenHidden: false
}
],
width: 6,
offset: 0,
push: 0,
pull: 0,
size: 'md',
currentWidth: 6
}
],
key: 'columns1',
type: 'columns',
tableView: false,
input: false,
hideOnChildrenHidden: false
},
{
label: 'Columns',
columns: [
{
components: [
{
label: 'Load Type / Fund Code',
widget: 'choicesjs',
tableView: true,
data: {
values: [
{
label: 'DSC/602',
value: 'dsc602'
},
{
label: 'NL/702',
value: 'nl702'
},
{
label: 'LL/1202',
value: 'll1202'
},
{
label: 'NL-CB/3002',
value: 'nlCb3002'
},
{
label: 'NL-CB5/5002',
value: 'nlCb55002'
}
]
},
refreshOn: 'editGrid1.fundName2',
validate: {
required: true
},
key: 'loadTypeFundCode',
logic: [
{
name: 'Disable',
trigger: {
type: 'javascript',
javascript: "result = !row['fundName2'];"
},
actions: [
{
name: 'Disable',
type: 'property',
property: {
label: 'Disabled',
value: 'disabled',
type: 'boolean'
},
state: true
}
]
}
],
type: 'select',
input: true,
hideOnChildrenHidden: false
}
],
width: 6,
offset: 0,
push: 0,
pull: 0,
size: 'md',
currentWidth: 6
},
{
components: [
{
label: 'Amount',
mask: false,
spellcheck: true,
tableView: false,
currency: 'USD',
inputFormat: 'plain',
validate: {
required: true
},
key: 'allocationAmount2',
type: 'currency',
input: true,
delimiter: true,
hideOnChildrenHidden: false
}
],
width: 6,
offset: 0,
push: 0,
pull: 0,
size: 'md',
currentWidth: 6
}
],
key: 'columns',
type: 'columns',
input: false,
tableView: false,
hideOnChildrenHidden: false
}
]
},
{
type: 'button',
label: 'Submit',
key: 'submit',
disableOnInvalid: true,
input: true,
tableView: false
}
],
display: 'form',
};