class CCPInputWidgetEditorController extends HTMLElement{
#input = null
#index = null
#type = null
#messages = {
"en" : {
"input_id_help" : "The Id of the input. This has to be unique accross all the inputs the method. This is used as variable expansion in scripts.",
"input_delete_help" : "Delete this input",
"title" : "Title",
"title_help" : "Title of the input. This is how the input will appear in forms.",
"description" : "Description",
"description_help" : "A description for this input",
"min_occurs" : "Min. count",
"max_occurs" : "Max. count",
"min_occurs_help" : "Minimum cardinality of this input",
"max_occurs_help" : "Maximum cardinality of this input",
"type" : "Type",
"type_help" : "Set the type of the input. Either String or Enumeration",
"mime" : "Mime",
"mime_help" : "Set MIME type of expected input",
"format" : "Format",
"format_help" : "Set specific format to tune the widget that will be used in forms",
"readonly" : "Read only",
"readonly_help" : "If enabled this input will not be editable in forms",
"string" : "String",
"enum" : "Enumerated",
"options" : "Options",
"options_help" : "A comma separated list of options for this enumerated input",
"options_ext_help" : "Comma separated list of options",
"choice" : "Single choice",
"multichoice" : "Multiple choices",
"default" : "Default value",
"default_help" : "The default value applied for this input when nothing is set explicitly"
}
}
#delete_icon = `
`
constructor(){
super();
}
connectedCallback(){
}
getLabel(key, localehint){
const locale = localehint ? localehint : navigator.language
const actlocale = this.#messages[locale] ? locale : "en"
const msg = this.#messages[actlocale][key]
return msg == null || msg == undefined ? key : this.#messages[actlocale][key]
}
get index(){
return this.#index
}
isSelectedFormat(fmt){
return this.#input.schema.format === fmt
}
renderDefaultByType(){
return ``
}
renderDeleteButton(){
return ``
}
render(input, i, reopen){
this.#index = i
this.#input = input
this.#type = input.schema.enum ? "enum" : "string"
const minOccurs = input.minOccurs = Number(input.minOccurs) ? Number(input.minOccurs) : 0
const maxOccurs = input.maxOccurs = Number(input.maxOccurs) ? Number(input.maxOccurs) : 0
this.innerHTML = `
${ input.id !== 'ccpimage' ? this.renderDeleteButton() : ''}