Source: lib/dom.js

'use strict';

/* dom操作 */

/** @module dom */

/**
 * 页面加载准备好事件函数
 * @param {Function} callback  页面ready之后的 回调函数
 */
function ready(callback) {
    if (/complete|loaded|interactive/.test(document.readyState)) {
        callback();
    } else {
        document.addEventListener('DOMContentLoaded', function () {
            callback();
        }, false);
    }
}

function singleRender(group_name, data, funcs) {
    document.querySelectorAll('[d-group=\'' + group_name + '\']').forEach(function (dom) {
        let name = dom.getAttribute('name'),
            isFormElem = /input|select|option|textarea/.test(
                dom.nodeName.toLowerCase()
            );
        if (funcs != undefined && name in funcs) {
            let target = dom;
            let o = {
                f: funcs[name],
                set: function (val) {
                    isFormElem ? (target.value = val) : (target.innerHTML = val);
                }
            };
            o.f(data, dom);
        } else {
            isFormElem
                ? (dom.value = (data[name] === undefined) ? '' : data[name])
                : (dom.innerHTML = (data[name] === undefined) ? '' : data[name]);
        }
    });
}


export {
    ready,
    singleRender
};