UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

80 lines 10.3 kB
/** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ /** * Sync from rc-util [https://github.com/react-component/util] */ import { canUseDom } from './can-use-dom'; const MARK_KEY = `rc-util-key`; function getMark({ mark } = {}) { if (mark) { return mark.startsWith('data-') ? mark : `data-${mark}`; } return MARK_KEY; } function getContainer(option) { if (option.attachTo) { return option.attachTo; } const head = document.querySelector('head'); return head || document.body; } export function injectCSS(css, options = {}) { if (!canUseDom()) { return null; } const styleNode = document.createElement('style'); if (options.cspNonce) { styleNode.nonce = options.cspNonce; } styleNode.innerHTML = css; const container = getContainer(options); const { firstChild } = container; if (options.prepend && container.prepend) { // Use `prepend` first container.prepend(styleNode); } else if (options.prepend && firstChild) { // Fallback to `insertBefore` like IE not support `prepend` container.insertBefore(styleNode, firstChild); } else { container.appendChild(styleNode); } return styleNode; } const containerCache = new Map(); function findExistNode(key, option = {}) { const container = getContainer(option); return Array.from(containerCache.get(container)?.children || []).find(node => node.tagName === 'STYLE' && node.getAttribute(getMark(option)) === key); } export function removeCSS(key, option = {}) { const existNode = findExistNode(key, option); existNode?.parentNode?.removeChild(existNode); } export function updateCSS(css, key, options = {}) { const container = getContainer(options); // Get real parent if (!containerCache.has(container)) { const placeholderStyle = injectCSS('', options); // @ts-ignore const { parentNode } = placeholderStyle; containerCache.set(container, parentNode); parentNode.removeChild(placeholderStyle); } const existNode = findExistNode(key, options); if (existNode) { if (options.cspNonce && existNode.nonce !== options.cspNonce) { existNode.nonce = options.cspNonce; } if (existNode.innerHTML !== css) { existNode.innerHTML = css; } return existNode; } const newNode = injectCSS(css, options); newNode?.setAttribute(getMark(options), key); return newNode; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvcmUvdXRpbC9keW5hbWljLWNzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFJSDs7R0FFRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxRQUFRLEdBQUcsYUFBMEIsQ0FBQztBQUU1QyxTQUFTLE9BQU8sQ0FBQyxFQUFFLElBQUksS0FBYyxFQUFFO0lBQ3JDLElBQUksSUFBSSxFQUFFO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7S0FDekQ7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBU0QsU0FBUyxZQUFZLENBQUMsTUFBZTtJQUNuQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7UUFDbkIsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO0tBQ3hCO0lBRUQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxPQUFPLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVcsRUFBRSxVQUFtQixFQUFFO0lBQzFELElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUNoQixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDcEIsU0FBUyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0tBQ3BDO0lBQ0QsU0FBUyxDQUFDLFNBQVMsR0FBRyxHQUFHLENB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ZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbi8qKlxuICogU3luYyBmcm9tIHJjLXV0aWwgW2h0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvdXRpbF1cbiAqL1xuaW1wb3J0IHsgY2FuVXNlRG9tIH0gZnJvbSAnLi9jYW4tdXNlLWRvbSc7XG5cbmNvbnN0IE1BUktfS0VZID0gYHJjLXV0aWwta2V5YCBhcyBOelNhZmVBbnk7XG5cbmZ1bmN0aW9uIGdldE1hcmsoeyBtYXJrIH06IE9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gIGlmIChtYXJrKSB7XG4gICAgcmV0dXJuIG1hcmsuc3RhcnRzV2l0aCgnZGF0YS0nKSA/IG1hcmsgOiBgZGF0YS0ke21hcmt9YDtcbiAgfVxuICByZXR1cm4gTUFSS19LRVk7XG59XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgYXR0YWNoVG8/OiBFbGVtZW50O1xuICBjc3BOb25jZT86IHN0cmluZyB8IG51bGw7XG4gIHByZXBlbmQ/OiBib29sZWFuO1xuICBtYXJrPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRDb250YWluZXIob3B0aW9uOiBPcHRpb25zKTogSFRNTEVsZW1lbnQgfCBFbGVtZW50IHtcbiAgaWYgKG9wdGlvbi5hdHRhY2hUbykge1xuICAgIHJldHVybiBvcHRpb24uYXR0YWNoVG87XG4gIH1cblxuICBjb25zdCBoZWFkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpO1xuICByZXR1cm4gaGVhZCB8fCBkb2N1bWVudC5ib2R5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q1NTKGNzczogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zID0ge30pOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCB7XG4gIGlmICghY2FuVXNlRG9tKCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIGlmIChvcHRpb25zLmNzcE5vbmNlKSB7XG4gICAgc3R5bGVOb2RlLm5vbmNlID0gb3B0aW9ucy5jc3BOb25jZTtcbiAgfVxuICBzdHlsZU5vZGUuaW5uZXJIVE1MID0gY3NzO1xuXG4gIGNvbnN0IGNvbnRhaW5lciA9IGdldENvbnRhaW5lcihvcHRpb25zKTtcbiAgY29uc3QgeyBmaXJzdENoaWxkIH0gPSBjb250YWluZXI7XG5cbiAgaWYgKG9wdGlvbnMucHJlcGVuZCAmJiBjb250YWluZXIucHJlcGVuZCkge1xuICAgIC8vIFVzZSBgcHJlcGVuZGAgZmlyc3RcbiAgICBjb250YWluZXIucHJlcGVuZChzdHlsZU5vZGUpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMucHJlcGVuZCAmJiBmaXJzdENoaWxkKSB7XG4gICAgLy8gRmFsbGJhY2sgdG8gYGluc2VydEJlZm9yZWAgbGlrZSBJRSBub3Qgc3VwcG9ydCBgcHJlcGVuZGBcbiAgICBjb250YWluZXIuaW5zZXJ0QmVmb3JlKHN0eWxlTm9kZSwgZmlyc3RDaGlsZCk7XG4gIH0gZWxzZSB7XG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHN0eWxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3R5bGVOb2RlO1xufVxuXG5jb25zdCBjb250YWluZXJDYWNoZSA9IG5ldyBNYXA8RWxlbWVudCwgTm9kZSAmIFBhcmVudE5vZGU+KCk7XG5cbmZ1bmN0aW9uIGZpbmRFeGlzdE5vZGUoa2V5OiBzdHJpbmcsIG9wdGlvbjogT3B0aW9ucyA9IHt9KTogSFRNTFN0eWxlRWxlbWVudCB7XG4gIGNvbnN0IGNvbnRhaW5lciA9IGdldENvbnRhaW5lcihvcHRpb24pO1xuXG4gIHJldHVybiBBcnJheS5mcm9tKGNvbnRhaW5lckNhY2hlLmdldChjb250YWluZXIpPy5jaGlsZHJlbiB8fCBbXSkuZmluZChcbiAgICBub2RlID0+IG5vZGUudGFnTmFtZSA9PT0gJ1NUWUxFJyAmJiBub2RlLmdldEF0dHJpYnV0ZShnZXRNYXJrKG9wdGlvbikpID09PSBrZXlcbiAgKSBhcyBIVE1MU3R5bGVFbGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQ1NTKGtleTogc3RyaW5nLCBvcHRpb246IE9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICBjb25zdCBleGlzdE5vZGUgPSBmaW5kRXhpc3ROb2RlKGtleSwgb3B0aW9uKTtcblxuICBleGlzdE5vZGU/LnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKGV4aXN0Tm9kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDU1MoY3NzOiBzdHJpbmcsIGtleTogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25zID0ge30pOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGNvbnRhaW5lciA9IGdldENvbnRhaW5lcihvcHRpb25zKTtcblxuICAvLyBHZXQgcmVhbCBwYXJlbnRcbiAgaWYgKCFjb250YWluZXJDYWNoZS5oYXMoY29udGFpbmVyKSkge1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyU3R5bGUgPSBpbmplY3RDU1MoJycsIG9wdGlvbnMpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IHBhcmVudE5vZGUgfSA9IHBsYWNlaG9sZGVyU3R5bGU7XG4gICAgY29udGFpbmVyQ2FjaGUuc2V0KGNvbnRhaW5lciwgcGFyZW50Tm9kZSk7XG4gICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwbGFjZWhvbGRlclN0eWxlKTtcbiAgfVxuXG4gIGNvbnN0IGV4aXN0Tm9kZSA9IGZpbmRFeGlzdE5vZGUoa2V5LCBvcHRpb25zKTtcblxuICBpZiAoZXhpc3ROb2RlKSB7XG4gICAgaWYgKG9wdGlvbnMuY3NwTm9uY2UgJiYgZXhpc3ROb2RlLm5vbmNlICE9PSBvcHRpb25zLmNzcE5vbmNlKSB7XG4gICAgICBleGlzdE5vZGUubm9uY2UgPSBvcHRpb25zLmNzcE5vbmNlO1xuICAgIH1cblxuICAgIGlmIChleGlzdE5vZGUuaW5uZXJIVE1MICE9PSBjc3MpIHtcbiAgICAgIGV4aXN0Tm9kZS5pbm5lckhUTUwgPSBjc3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4aXN0Tm9kZTtcbiAgfVxuXG4gIGNvbnN0IG5ld05vZGUgPSBpbmplY3RDU1MoY3NzLCBvcHRpb25zKTtcbiAgbmV3Tm9kZT8uc2V0QXR0cmlidXRlKGdldE1hcmsob3B0aW9ucyksIGtleSk7XG4gIHJldHVybiBuZXdOb2RlO1xufVxuIl19