import { a as __unplugin_components_0 } from './chunk-6003391e.js'; import { a as __unplugin_components_1 } from './chunk-8109fd17.js'; import { _ as _sfc_main$1 } from './chunk-000e277f.js'; import { _ as __unplugin_components_3 } from './chunk-4e7a6a8d.js'; import { NInputNumber } from 'naive-ui'; import { defineComponent, ref, mergeProps, unref, isRef, withCtx, createVNode, toDisplayString, createTextVNode, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer'; import _ from 'lodash'; import { c as computedRefreshable } from './chunk-cc665c88.js'; import { u as useCopy } from './chunk-77c5cc16.js'; import { u as usePartialMacAddressValidation } from './chunk-65bb8b4f.js'; import { useStorage } from '@vueuse/core'; import 'pinia'; import './chunk-bb5bb4f6.js'; import './chunk-11f44f81.js'; import './chunk-35c3d701.js'; function splitPrefix(prefix) { const base = prefix.match(/[^0-9a-f]/i) === null ? prefix.match(/.{1,2}/g) ?? [] : prefix.split(/[^0-9a-f]/i); return base.filter(Boolean).map((byte) => byte.padStart(2, "0")); } function generateRandomMacAddress({ prefix: rawPrefix = "", separator = ":", getRandomByte = () => _.random(0, 255).toString(16).padStart(2, "0") } = {}) { const prefix = splitPrefix(rawPrefix); const randomBytes = _.times(6 - prefix.length, getRandomByte); const bytes = [...prefix, ...randomBytes]; return bytes.join(separator); } const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "mac-address-generator", __ssrInlineRender: true, setup(__props) { const amount = useStorage("mac-address-generator-amount", 1); const macAddressPrefix = useStorage("mac-address-generator-prefix", "64:16:7F"); const prefixValidation = usePartialMacAddressValidation(macAddressPrefix); const casesTransformers = [ { label: "Uppercase", value: (value) => value.toUpperCase() }, { label: "Lowercase", value: (value) => value.toLowerCase() } ]; const caseTransformer = ref(casesTransformers[0].value); const separators = [ { label: ":", value: ":" }, { label: "-", value: "-" }, { label: ".", value: "." }, { label: "None", value: "" } ]; const separator = useStorage("mac-address-generator-separator", separators[0].value); const [macAddresses, refreshMacAddresses] = computedRefreshable(() => { if (!prefixValidation.isValid) { return ""; } const ids = _.times(amount.value, () => caseTransformer.value(generateRandomMacAddress({ prefix: macAddressPrefix.value, separator: separator.value }))); return ids.join("\n"); }); const { copy } = useCopy({ source: macAddresses, text: "MAC addresses copied to the clipboard" }); return (_ctx, _push, _parent, _attrs) => { const _component_n_input_number = NInputNumber; const _component_c_input_text = __unplugin_components_3; const _component_c_buttons_select = _sfc_main$1; const _component_c_card = __unplugin_components_1; const _component_c_button = __unplugin_components_0; _push(`
${ssrInterpolate(unref(macAddresses))}`); } else { return [ createVNode("pre", { "m-0": "", "m-x-auto": "" }, toDisplayString(unref(macAddresses)), 1) ]; } }), _: 1 }, _parent)); _push(`