UNPKG

9.16 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/dom.ts"],"names":["docStyle","window","document","documentElement","style","getContainer","domId","$dom","getElementById","trim","str","replace","splitWords","split","testProp","props","i","create","tagName","className","container","el","createElement","appendChild","remove","parent","parentNode","removeChild","addClass","name","classList","undefined","classes","len","length","add","hasClass","getClass","setClass","removeClass","contains","RegExp","test","HTMLElement","baseVal","SVGElement","correspondingElement","empty","firstChild","transformProp","setTransform","value","triggerResize","Event","dispatchEvent","evt","createEvent","initUIEvent","printCanvas","canvas","css","height","width","toDataURL","console","log","join"],"mappings":"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","sourcesContent":["const docStyle = window.document.documentElement.style;\ntype ELType = HTMLElement | SVGElement;\nexport function getContainer(domId: string | HTMLDivElement) {\n let $dom = domId as HTMLDivElement;\n if (typeof domId === 'string') {\n $dom = document.getElementById(domId) as HTMLDivElement;\n }\n return $dom;\n}\n\nexport function trim(str: string) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n// @function splitWords(str: String): String[]\n// Trims and splits the string on whitespace and returns the array of parts.\nexport function splitWords(str: string) {\n return trim(str).split(/\\s+/);\n}\n\nfunction testProp(props: string[]): string {\n if (!docStyle) {\n return props[0];\n }\n for (const i in props) {\n if (props[i] && props[i] in docStyle) {\n return props[i];\n }\n }\n\n return props[0];\n}\nexport function create(\n tagName: string,\n className?: string,\n container?: HTMLElement,\n) {\n const el = document.createElement(tagName);\n el.className = className || '';\n\n if (container) {\n container.appendChild(el);\n }\n return el;\n}\n// @function remove(el: HTMLElement)\n// Removes `el` from its parent element\nexport function remove(el: ELType) {\n const parent = el.parentNode;\n if (parent) {\n parent.removeChild(el);\n }\n}\n\n// @function addClass(el: HTMLElement, name: String)\n// Adds `name` to the element's class attribute.\nexport function addClass(el: ELType, name: string) {\n if (el.classList !== undefined) {\n const classes = splitWords(name);\n for (let i = 0, len = classes.length; i < len; i++) {\n el.classList.add(classes[i]);\n }\n } else if (!hasClass(el, name)) {\n const className = getClass(el);\n setClass(el, (className ? className + ' ' : '') + name);\n }\n}\n\n// @function removeClass(el: HTMLElement, name: String)\n// Removes `name` from the element's class attribute.\nexport function removeClass(el: ELType, name: string) {\n if (el.classList !== undefined) {\n el.classList.remove(name);\n } else {\n setClass(\n el,\n trim((' ' + getClass(el) + ' ').replace(' ' + name + ' ', ' ')),\n );\n }\n}\n\n// @function hasClass(el: HTMLElement, name: String): Boolean\n// Returns `true` if the element's class attribute contains `name`.\nexport function hasClass(el: ELType, name: string) {\n if (el.classList !== undefined) {\n return el.classList.contains(name);\n }\n const className = getClass(el);\n return (\n className.length > 0 &&\n new RegExp('(^|\\\\s)' + name + '(\\\\s|$)').test(className)\n );\n}\n\n// @function setClass(el: HTMLElement, name: String)\n// Sets the element's class.\nexport function setClass(el: ELType, name: string) {\n if (el instanceof HTMLElement) {\n el.className = name;\n } else {\n // in case of SVG element\n el.className.baseVal = name;\n }\n}\n\n// @function getClass(el: HTMLElement): String\n// Returns the element's class.\nexport function getClass(el: ELType) {\n // Check if the element is an SVGElementInstance and use the correspondingElement instead\n // (Required for linked SVG elements in IE11.)\n if (el instanceof SVGElement) {\n el = el.correspondingElement;\n }\n return el.className.baseVal === undefined\n ? el.className\n : el.className.baseVal;\n}\n\nexport function empty(el: ELType) {\n while (el && el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n\nconst transformProp = testProp(['transform', 'WebkitTransform']);\n\nexport function setTransform(el: ELType, value: string) {\n // @ts-ignore\n el.style[transformProp] = value;\n}\n\nexport function triggerResize() {\n if (typeof Event === 'function') {\n // modern browsers\n window.dispatchEvent(new Event('resize'));\n } else {\n // for IE and other old browsers\n // causes deprecation warning on modern browsers\n const evt = window.document.createEvent('UIEvents');\n // @ts-ignore\n evt.initUIEvent('resize', true, false, window, 0);\n window.dispatchEvent(evt);\n }\n}\n\nexport function printCanvas(canvas: HTMLCanvasElement) {\n const css = [\n 'padding: ' + (canvas.height / 2 - 8) + 'px ' + canvas.width / 2 + 'px;',\n 'line-height: ' + canvas.height + 'px;',\n 'background-image: url(' + canvas.toDataURL() + ');',\n ];\n // tslint:disable-next-line:no-console\n console.log('%c\\n', css.join(''));\n}\n"],"file":"dom.js"}
\No newline at end of file