from lnx.logicnode.lnx_nodes import * class CreateElementNode(LnxLogicTreeNode): """Create Element""" bl_idname = 'LNCreateElementNode' bl_label = 'Create Element' bl_description = 'Create Element' lnx_category = 'HTML' lnx_version = 1 data_map = {} @staticmethod def get_enum_id_value(obj, prop_name, value): return obj.bl_rna.properties[prop_name].enum_items[value].identifier @staticmethod def get_count_in(type_name): return { 'a': 0, 'abbr': 1, 'address': 2, 'area': 3, 'article': 4, 'aside': 5, 'audio': 6, 'bold': 7, 'base': 8, 'bdi': 9, 'bdo': 10, 'blockquote': 11, 'body': 12, 'br': 13, 'button': 14, 'canvas': 15, 'caption': 16, 'cite': 17, 'code': 18, 'col': 19, 'colgroup': 20, 'data': 21, 'datalist': 22, 'dd': 23, 'del': 24, 'details': 25, 'dfn': 26, 'dialog': 27, 'div': 28, 'dl': 29, 'dt': 30, 'em': 31, 'embed': 32, 'fieldset': 33, 'figcaption': 34, 'figure': 35, 'footer': 36, 'form': 37, 'h1': 38, 'h2': 39, 'h3': 40, 'h4': 41, 'h5': 42, 'h6': 43, 'head': 44, 'header': 45, 'hgroup': 46, 'hr': 47, 'html': 48, 'i': 49, 'iframe': 50, 'img': 51, 'input': 52, 'ins': 53, 'kdb': 54, 'label': 55, 'legend': 56, 'li': 57, 'link': 58, 'main': 59, 'map': 60, 'mark': 61, 'menu': 62, 'meta': 63, 'meter': 64, 'nav': 65, 'noscript': 66, 'object': 67, 'ol': 68, 'optgroup': 69, 'option': 70, 'output': 71, 'p': 72, 'picture': 73, 'pre': 74, 'progress': 75, 'q': 76, 's': 77, 'samp': 78, 'script': 79, 'section': 80, 'select': 81, 'slot': 82, 'small': 83, 'source': 84, 'span': 85, 'strong': 86, 'style': 87, 'sub': 88, 'summary': 89, 'sup': 90, 'table': 91, 'tbody': 92, 'td': 93, 'template': 94, 'textarea': 95, 'tfoot': 96, 'th': 97, 'thead': 98, 'time': 99, 'title': 100, 'tr': 101, 'track': 102, 'u': 103, 'ul': 104, 'var': 105, 'video': 106, 'wbr': 107, 'custom': 108 }.get(type_name, 72) def get_enum(self): return self.get('property0', 72) def set_enum(self, value): select_current = self.get_enum_id_value(self, 'property0', value) select_prev = self.property0 if select_prev != select_current: for i in range(len(self.inputs)): if type(self.inputs[i]) is str: if len(self.inputs[i].default_value_raw) > 0: self.data_map[self.inputs[i].name] = self.inputs[i].default_value_raw else: self.data_map[self.inputs[i].name] = "" else: self.data_map[self.inputs[i].name] = self.inputs[i].default_value_raw for i in self.inputs: self.inputs.remove(i) index = self.get_count_in(select_current) if (index != 44 and index != 48 and index != 63 and index != 100): if (index != 87): self.add_input('LnxStringSocket', 'Content') self.add_input('LnxStringSocket', 'ID') self.add_input('LnxStringSocket', 'Class') self.add_input('LnxStringSocket', 'Style') match index: case 0: self.add_input('LnxStringSocket', 'Href', default_value='#') case 3: self.add_input('LnxStringSocket', 'Alt') self.add_input('LnxStringSocket', 'Coords') self.add_input('LnxStringSocket', 'Href') case 6: self.add_input('LnxStringSocket', 'Src') case 11: self.add_input('LnxStringSocket', 'Cite', default_value='URL') case 14: self.add_input('LnxStringSocket', 'Type', default_value='Submit') case 15: self.add_input('LnxStringSocket', 'Height', default_value='150px') self.add_input('LnxStringSocket', 'Width', default_value='300px') case 19 | 20: self.add_input('LnxStringSocket', 'Span') case 21: self.add_input('LnxStringSocket', 'Value') case 24 | 53: self.add_input('LnxStringSocket', 'Cite', default_value='URL') self.add_input('LnxStringSocket', 'Datetime', default_value='YYYY-MM-DDThh:mm:ssTZD') case 26: self.add_input('LnxStringSocket', 'Title') case 32: self.add_input('LnxStringSocket', 'Src', default_value='URL') self.add_input('LnxStringSocket', 'Type') self.add_input('LnxStringSocket', 'Height') self.add_input('LnxStringSocket', 'Width') case 33: self.add_input('LnxStringSocket', 'Form') self.add_input('LnxStringSocket', 'Name') case 37: self.add_input('LnxStringSocket', 'Action', default_value='URL') self.add_input('LnxStringSocket', 'Method', default_value='get') case 44: self.add_input('LnxStringSocket', 'Profile', default_value='URI') case 48: self.add_input('LnxBoolSocket', 'xmlns' , default_value=False ) case 50: self.add_input('LnxStringSocket', 'Src', default_value='URL') self.add_input('LnxStringSocket', 'Height' , default_value="150px" ) self.add_input('LnxStringSocket', 'Width', default_value='300px') case 51: self.add_input('LnxStringSocket', 'Src') self.add_input('LnxStringSocket', 'Height' , default_value='150px') self.add_input('LnxStringSocket', 'Width', default_value='150px') case 52: self.add_input('LnxStringSocket', 'Type', default_value='text') self.add_input('LnxStringSocket', 'Value') case 55: self.add_input('LnxStringSocket', 'For', default_value='element_id') self.add_input('LnxStringSocket', 'Form', default_value='form_id') case 57: self.add_input('LnxStringSocket', 'Value') case 58: self.add_input('LnxStringSocket', 'Href', default_value='#') self.add_input('LnxStringSocket', 'Hreflang', default_value='en') self.add_input('LnxStringSocket', 'Title') case 58: self.add_input('LnxStringSocket', 'Name', default_value='mapname') case 63: self.add_input('LnxStringSocket', 'Charset', default_value='character_set') self.add_input('LnxStringSocket', 'Content', default_value='text') case 64: self.add_input('LnxStringSocket', 'form', default_value='form_id') self.add_input('LnxStringSocket', 'high') self.add_input('LnxStringSocket', 'low') self.add_input('LnxStringSocket', 'max') self.add_input('LnxStringSocket', 'min') self.add_input('LnxStringSocket', 'optimum') self.add_input('LnxStringSocket', 'value') case 67: self.add_input('LnxStringSocket', 'data', default_value='URL') self.add_input('LnxStringSocket', 'form', default_value='form_id') self.add_input('LnxStringSocket', 'height', default_value='pixels') self.add_input('LnxStringSocket', 'name', default_value='name') self.add_input('LnxStringSocket', 'type', default_value='media_type') self.add_input('LnxStringSocket', 'usemap', default_value='#mapname') self.add_input('LnxStringSocket', 'width', default_value='pixels') case 68: self.add_input('LnxStringSocket', 'start', default_value='number') case 69: self.add_input('LnxStringSocket', 'label', default_value='text') case 70: self.add_input('LnxStringSocket', 'label', default_value='text') self.add_input('LnxStringSocket', 'value', default_value='value') case 71: self.add_input('LnxStringSocket', 'for', default_value='element_id') self.add_input('LnxStringSocket', 'form', default_value='form_id') self.add_input('LnxStringSocket', 'name', default_value='name') case 75: self.add_input('LnxStringSocket', 'max', default_value='number') self.add_input('LnxStringSocket', 'value', default_value='number') case 76: self.add_input('LnxStringSocket', 'cite', default_value='URL') case 78: self.add_input('LnxStringSocket', 'cite', default_value='URL') case 79: self.add_input('LnxStringSocket', 'integrity' , default_value='filehash') self.add_input('LnxStringSocket', 'Src') self.add_input('LnxStringSocket', 'type', default_value='scripttype') case 81: self.add_input('LnxStringSocket', 'form' , default_value='form_id') self.add_input('LnxStringSocket', 'name' , default_value='text') self.add_input('LnxStringSocket', 'type', default_value='scripttype') self.add_input('LnxStringSocket', 'size', default_value='number') case 84: self.add_input('LnxStringSocket', 'size') self.add_input('LnxStringSocket', 'src' , default_value='URL') self.add_input('LnxStringSocket', 'srcset', default_value='URL') case 87: self.add_input('LnxStringSocket', 'type', default_value='media_type') case 93: self.add_input('LnxStringSocket', 'colspan' , default_value='number') self.add_input('LnxStringSocket', 'headers' , default_value='header_id') self.add_input('LnxStringSocket', 'rowspan', default_value='number') case 95: self.add_input('LnxStringSocket', 'cols' , default_value='number') self.add_input('LnxStringSocket', 'dirname' , default_value='name.dir') self.add_input('LnxStringSocket', 'rowspan', default_value='number') self.add_input('LnxStringSocket', 'form', default_value='form_id') self.add_input('LnxStringSocket', 'maxlength', default_value='number') self.add_input('LnxStringSocket', 'name' , default_value='text') self.add_input('LnxStringSocket', 'placeholder' , default_value='text') self.add_input('LnxStringSocket', 'rows' , default_value='number') case 97: self.add_input('LnxStringSocket', 'abbr' , default_value='text') self.add_input('LnxStringSocket', 'colspan' , default_value='number') self.add_input('LnxStringSocket', 'headers', default_value='header_id') self.add_input('LnxStringSocket', 'rowspan', default_value='number') case 99: self.add_input('LnxStringSocket', 'Datetime', default_value='YYYY-MM-DDThh:mm:ssTZD') case 102: self.add_input('LnxStringSocket', 'Src', default_value='URL') self.add_input('LnxStringSocket', 'srclang', default_value='en') self.add_input('LnxStringSocket', 'label', default_value='text') case 106: self.add_input('LnxStringSocket', 'Src', default_value='URL') self.add_input('LnxStringSocket', 'width', default_value='pixels') self.add_input('LnxStringSocket', 'height', default_value='pixels') self.add_input('LnxStringSocket', 'poster', default_value='URL') for i in range(len(self.inputs)): if self.inputs[i].name in self.data_map: self.inputs[i].default_value_raw = self.data_map[self.inputs[i].name] self['property0'] = value self.data_map = {} property0: HaxeEnumProperty( 'property0', items = [('a', 'A', ': The Anchor element'), ('abbr', 'Abbr', ': The Abbreviation element'), ('address', 'Address', '
: The Contact Address element'), ('area', 'Area', ': The Image Map Area element'), ('article', 'Article', '
: The Article Contents element'), ('aside', 'Aside', '