@lattln/editorjs-formdep-utils
Version:
Utility functions for EditorJS custom form block tools
109 lines (108 loc) • 3.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SvgImg = SvgImg;
exports.createRenderOption = createRenderOption;
exports.deleteBlockBtn = deleteBlockBtn;
exports.initalRating = exports.initalQuestion = exports.initalOption = exports.initalGlobal = void 0;
exports.setUpPlaceHolder = setUpPlaceHolder;
var _editorjsFormdepSvgicons = require("@lattln/editorjs-formdep-svgicons");
function setUpPlaceHolder(element, defaultparm, importedData) {
var isInput = element.tagName === 'INPUT' || element.tagName === 'TEXTAREA';
var defaultText = defaultparm;
importedData = importedData !== null || undefined ? importedData : defaultparm;
if (isInput) {
if (!element.value) {
element.placeholder = importedData;
}
} else {
if (importedData && importedData !== defaultparm) {
element.textContent = importedData;
} else if (!importedData || importedData === defaultparm) {
element.textContent = defaultText;
element.classList.add('text-placeholder');
}
}
['click', 'focus'].forEach(function (e) {
element.addEventListener(e, function () {
if (!isInput && element.textContent === defaultText) {
setTimeout(function () {
element.textContent = '';
element.classList.remove('text-placeholder');
element.focus();
}, 100);
} else if (isInput && element.value.trim() === '') {
setTimeout(function () {
element.placeholder = '';
element.focus();
}, 100);
}
});
});
element.addEventListener('blur', function () {
if (!isInput && element.textContent.trim() === '') {
element.textContent = defaultText;
element.classList.add('text-placeholder');
} else if (isInput && element.value.trim() === '') {
element.placeholder = defaultText;
}
});
}
function deleteBlockBtn(wrapper, api) {
var delContainer = document.createElement('div');
var deleteBtn = document.createElement('button');
delContainer.classList.add('deleteBlockBtn-container');
deleteBtn.classList.add('deleteBlockBtn');
deleteBtn.innerHTML = _editorjsFormdepSvgicons.trashCan_Icon;
deleteBtn.addEventListener('click', function () {
return api.blocks["delete"]();
});
delContainer.appendChild(deleteBtn);
wrapper.appendChild(delContainer);
}
var initalQuestion = exports.initalQuestion = 'Enter a question... ';
var initalOption = exports.initalOption = 'Enter Option... ';
var initalRating = exports.initalRating = 'Rating...';
var initalGlobal = exports.initalGlobal = 'Enter ';
function SvgImg(_ref) {
var icon = _ref.icon,
text = _ref.text;
var svgStr = icon;
var svg = new Blob([svgStr], {
type: 'image/svg+xml'
});
var url = URL.createObjectURL(svg);
var inlineStyle = {
display: 'flex'
};
var margin = {
margin: 0,
marginLeft: 5
};
return /*#__PURE__*/React.createElement("div", {
style: inlineStyle
}, /*#__PURE__*/React.createElement("img", {
src: url,
alt: "icon"
}), " ", /*#__PURE__*/React.createElement("p", {
style: margin
}, text));
}
function createRenderOption(name, icon, appendTo, optionTask) {
var optionsContainer = document.createElement('div');
var optionIcon = document.createElement('button');
var optionLabel = document.createElement('p');
optionsContainer.classList.add('cdx-block');
optionsContainer.classList.add('renderSetting-option');
optionIcon.classList.add('renderSetting-button');
optionLabel.classList.add('renderSetting-label');
optionIcon.innerHTML = icon;
optionLabel.textContent = name;
optionsContainer.addEventListener('click', function () {
return optionTask();
});
optionsContainer.appendChild(optionIcon);
optionsContainer.appendChild(optionLabel);
appendTo.appendChild(optionsContainer);
}