| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- const { template, $, update, close } = require('./base');
- exports.template = template;
- exports.$ = $;
- exports.update = update;
- exports.close = close;
- const { setHidden, isMultipleInvalid, getName, createRadioGroup, setLabel } = require('../utils/prop');
- const fontStyles = ['isBold', 'isItalic', 'isUnderline'];
- exports.style = `
- ui-tab {
- flex: none;
- }
- .fontStyleParent {
- display:flex
- }
- .fontStyle:nth-child(2) {
- margin-left: 5px;
- margin-right: 5px;
- }
- .fontStyle {
- height: 20px;
- width: 42px;
- text-align: center;
- line-height: 20px;
- border: calc(var(--size-normal-border) * 1px) solid var(--color-default-border-weaker);
- border-radius: calc(var(--size-normal-radius) * 1px);
- }
- .fontStyle.invalid {
- background-color: var(--color-default-fill);
- }
- .fontStyle.select {
- background-color: var(--color-info-fill-important);
- border-color: var(--color-focus-border-emphasis);
- }
- .fontStyle.italic {
- font-style: italic;
- }
- .fontStyle.bold {
- font-weight: bold;
- }
- .fontStyle.underline {
- text-decoration-line: underline;
- }
- `;
- exports.ready = function() {
- this.elements = {
- fontFamily: {
- update(element, dump) {
- setHidden(isMultipleInvalid(dump.useSystemFont) || !dump.useSystemFont.value, element);
- },
- },
- font: {
- update(element, dump) {
- setHidden(isMultipleInvalid(dump.useSystemFont) || !!dump.useSystemFont.value, element);
- },
- },
- horizontalAlign: {
- create(dump) {
- const prop = document.createElement('ui-prop');
- prop.dump = dump;
- const label = document.createElement('ui-label');
- label.setAttribute('slot', 'label');
- setLabel(dump, label);
- const content = createRadioGroup({
- enumList: dump.enumList,
- tooltip: dump.tooltip,
- getIconName: (elName) => {
- const iconName = elName.toLocaleLowerCase();
- if (iconName === 'center') {
- return `align-h-${iconName}`;
- }
- return `align-${iconName}`;
- },
- onChange: (event) => {
- const value = Number(event.target.value);
- if (Number.isFinite(value) && value !== -1) {
- dump.value = value;
- if (dump.values) {
- dump.values.forEach((_, index) => dump.values[index] = dump.value);
- }
- prop.dispatch('change-dump');
- prop.dispatch('confirm-dump');
- }
- },
- });
- prop.appendChild(label);
- prop.appendChild(content);
- return prop;
- },
- update(element, dump) {
- const radioGroup = element.querySelector('ui-radio-group');
- if (isMultipleInvalid(dump.horizontalAlign)) {
- radioGroup.value = -1;
- } else {
- radioGroup.value = dump.horizontalAlign.value;
- }
- },
- },
- verticalAlign: {
- create(dump) {
- const prop = document.createElement('ui-prop');
- prop.dump = dump;
- const label = document.createElement('ui-label');
- label.setAttribute('slot', 'label');
- setLabel(dump, label);
- const content = createRadioGroup({
- enumList: dump.enumList,
- tooltip: dump.tooltip,
- getIconName: (elementName) => {
- const iconName = elementName.toLocaleLowerCase();
- if (iconName === 'center') {
- return `align-v-${iconName}`;
- }
- return `align-${iconName}`;
- },
- onChange: (e) => {
- const enumVal = Number(e.target.value);
- if (!Number.isFinite(enumVal) || enumVal === -1) {
- return;
- }
- dump.value = enumVal;
- if (dump.values) {
- dump.values.forEach((_, index) => (dump.values[index] = dump.value));
- }
- prop.dispatch('change-dump');
- prop.dispatch('confirm-dump');
- },
- });
- prop.appendChild(label);
- prop.appendChild(content);
- return prop;
- },
- update(element, dump) {
- const radioGroup = element.querySelector('ui-radio-group');
- if (isMultipleInvalid(dump.verticalAlign)) {
- radioGroup.value = -1;
- } else {
- radioGroup.value = dump.verticalAlign.value;
- }
- },
- },
- };
- };
|