{"version":3,"file":"hide.mjs","sources":["../../../../../../packages/directives/hide/src/hide.ts"],"sourcesContent":["import type { DirectiveBinding, ObjectDirective } from 'vue'\n\n// 添加类名\nfunction addClass(el: HTMLElement, cls: string) {\n\tif (!cls || !(cls = cls.trim())) return\n\tif (el.classList) {\n\t\tcls.split(/\\s+/).forEach(c => c && el.classList.add(c))\n\t} else {\n\t\tconst cur = ` ${el.getAttribute('class') || ''} `\n\t\tif (cur.indexOf(` ${cls} `) === -1) {\n\t\t\tel.setAttribute('class', (cur + cls).trim())\n\t\t}\n\t}\n}\n\n// 移除类名\nfunction removeClass(el: HTMLElement, cls: string) {\n\tif (!cls || !(cls = cls.trim())) return\n\tif (el.classList) {\n\t\tcls.split(/\\s+/).forEach(c => c && el.classList.remove(c))\n\t} else {\n\t\tconst cur = ` ${el.getAttribute('class') || ''} `\n\t\tconst tar = ` ${cls} `\n\t\tlet val = cur.replace(tar, ' ')\n\t\tval = val.trim()\n\t\tif (val) {\n\t\t\tel.setAttribute('class', val)\n\t\t} else {\n\t\t\tel.removeAttribute('class')\n\t\t}\n\t}\n}\n\n// 设置隐藏\nconst setHide = (el: HTMLElement, binding: DirectiveBinding) => {\n\tif (typeof binding.value === 'string') {\n\t\t// 如果为空则删除\n\t\tif (binding.value === '' && el.className.indexOf('to-hide-tag-') > -1) {\n\t\t\tconst tag = el.className[el.className.indexOf('to-hide-tag-') + 12]\n\t\t\tel.className = el.className.replace('to-hide-tag-' + tag, '')\n\t\t} else if (/^[a-z]$/.test(binding.value)) {\n\t\t\t// 如果已有 tag 则替换，如果没有则添加\n\t\t\tif (el.className.indexOf('to-hide-tag-') > -1) {\n\t\t\t\tconst tag = el.className[el.className.indexOf('to-hide-tag-') + 12]\n\t\t\t\tel.className = el.className.replace('to-hide-tag-' + tag, 'to-hide-tag-' + binding.value)\n\t\t\t} else {\n\t\t\t\taddClass(el, 'to-hide-tag-' + binding.value + ' ')\n\t\t\t}\n\t\t\t// 鼠标悬移显示\n\t\t\tif (binding.arg === 'hover') {\n\t\t\t\taddClass(el, 'to-hide-type-hover')\n\t\t\t} else {\n\t\t\t\tremoveClass(el, 'to-hide-type-hover')\n\t\t\t}\n\t\t}\n\t} else if (typeof binding.value === 'boolean') {\n\t\tif (binding.value) {\n\t\t\taddClass(el, 'to-hide')\n\t\t} else {\n\t\t\tremoveClass(el, 'to-hide')\n\t\t}\n\t}\n\tif (binding.modifiers.keep) {\n\t\taddClass(el, 'to-hide-keep')\n\t}\n\tif (binding.modifiers.print) {\n\t\taddClass(el, 'to-hide-print')\n\t}\n}\n\n// 定义指令\nexport const vHide: ObjectDirective = {\n\t// Vue3的mounted对应Vue2的bind\n\tmounted(el: HTMLElement, binding: DirectiveBinding) {\n\t\tsetHide(el, binding)\n\t},\n\t// Vue3的updated对应Vue2的update\n\tupdated(el: HTMLElement, binding: DirectiveBinding) {\n\t\tsetHide(el, binding)\n\t},\n\t// Vue3的unmounted对应Vue2的unbind\n\tunmounted(_el: HTMLElement) {\n\t\t// Vue3中不再需要手动销毁实例\n\t},\n}\n"],"names":[],"mappings":"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"}