Spaces:
No application file
No application file
| export function menclose(element, targetParent, previousSibling, nextSibling, ancestors) { | |
| const type = element.attribs?.notation?.split(' ')[0] || 'longdiv' | |
| const targetElement = { | |
| type: 'tag', | |
| name: 'm:e', | |
| attribs: {}, | |
| children: [] | |
| } | |
| if (type === 'longdiv') { | |
| targetParent.children.push({ | |
| type: 'tag', | |
| name: 'm:rad', | |
| attribs: {}, | |
| children: [ | |
| { | |
| type: 'tag', | |
| name: 'm:radPr', | |
| attribs: {}, | |
| children: [{ type: 'tag', name: 'm:degHide', attribs: { 'm:val': 'on' }, children: [] }] | |
| }, | |
| { type: 'tag', name: 'm:deg', attribs: {}, children: [] }, | |
| targetElement | |
| ] | |
| }) | |
| } else { | |
| const hide = { | |
| t: { type: 'tag', name: 'm:hideTop', attribs: { 'm:val': 'on' }, children: [] }, | |
| b: { type: 'tag', name: 'm:hideBot', attribs: { 'm:val': 'on' }, children: [] }, | |
| l: { type: 'tag', name: 'm:hideLeft', attribs: { 'm:val': 'on' }, children: [] }, | |
| r: { type: 'tag', name: 'm:hideRight', attribs: { 'm:val': 'on' }, children: [] } | |
| } | |
| const borderBoxPr = { type: 'tag', name: 'm:borderBoxPr', attribs: {}, children: [] } | |
| const containerElement = { | |
| type: 'tag', | |
| name: 'm:borderBox', | |
| attribs: {}, | |
| children: [] | |
| } | |
| switch (type) { | |
| case 'actuarial': | |
| case 'radical': | |
| case 'box': | |
| containerElement.children = [targetElement] | |
| break | |
| case 'left': | |
| case 'roundedbox': | |
| borderBoxPr.children = [hide.t, hide.b, hide.r] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| case 'right': | |
| case 'circle': | |
| borderBoxPr.children = [hide.t, hide.b, hide.l] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| case 'top': | |
| borderBoxPr.children = [hide.b, hide.l, hide.r] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| case 'bottom': | |
| borderBoxPr.children = [hide.t, hide.l, hide.r] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| case 'updiagonalstrike': | |
| borderBoxPr.children = [ | |
| hide.t, | |
| hide.b, | |
| hide.l, | |
| hide.r, | |
| { type: 'tag', name: 'm:strikeBLTR', attribs: { 'm:val': 'on' }, children: [] } | |
| ] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| case 'downdiagonalstrike': | |
| borderBoxPr.children = [ | |
| hide.t, | |
| hide.b, | |
| hide.l, | |
| hide.r, | |
| { type: 'tag', name: 'm:strikeTLBR', attribs: { 'm:val': 'on' }, children: [] } | |
| ] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| case 'verticalstrike': | |
| borderBoxPr.children = [ | |
| hide.t, | |
| hide.b, | |
| hide.l, | |
| hide.r, | |
| { type: 'tag', name: 'm:strikeV', attribs: { 'm:val': 'on' }, children: [] } | |
| ] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| case 'horizontalstrike': | |
| borderBoxPr.children = [ | |
| hide.t, | |
| hide.b, | |
| hide.l, | |
| hide.r, | |
| { type: 'tag', name: 'm:strikeH', attribs: { 'm:val': 'on' }, children: [] } | |
| ] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| default: | |
| borderBoxPr.children = [hide.t, hide.b, hide.l, hide.r] | |
| containerElement.children = [borderBoxPr, targetElement] | |
| break | |
| } | |
| targetParent.children.push(containerElement) | |
| } | |
| return targetElement | |
| } | |