{"version":3,"file":"domHelpers.cjs","names":[],"sources":["../../src/kit/domHelpers.ts"],"sourcesContent":["export const simulatorClass = \"slice-simulator\"\nexport const simulatorRootClass = \"slice-simulator--root\"\n\nexport const getSimulatorDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorClass}`)\n}\n\nexport const getSimulatorRootDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorRootClass}`)\n}\n\nexport const getSliceZoneDOM = (expectedNumberOfChildren: number): Element | null => {\n\t// If SliceZone has been tagged (#5)\n\tlet node = document.querySelector(`.${simulatorClass} [data-slice-zone]`)\n\tif (node) {\n\t\tif (node.children.length !== expectedNumberOfChildren) {\n\t\t\tconsole.warn(\n\t\t\t\t`Flagged SliceZone has an unexpected number of children, found ${node.children.length} but expected ${expectedNumberOfChildren}. This might lead to unexpected behaviors. Are you sure you tagged the right element?`,\n\t\t\t)\n\t\t}\n\n\t\treturn node\n\t}\n\n\t// Start searching\n\tnode = document.querySelector(`.${simulatorClass} .${simulatorRootClass}`)\n\n\tif (!node) {\n\t\treturn null\n\t}\n\n\tconst searchDepth = 5\n\tfor (let i = 0; i < searchDepth; i++) {\n\t\tif (node.children.length === expectedNumberOfChildren) {\n\t\t\t// Return the first node that matches the expected number of children\n\t\t\treturn node\n\t\t} else if (node.children.length) {\n\t\t\t// Continue searching if current node has children\n\t\t\tnode = node.children[0]\n\t\t} else {\n\t\t\t// Stop searching if current node has no children\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Failed to find SliceZone\n\treturn null\n}\n\nexport const getActiveSliceDOM = (\n\t$sliceZone: Element,\n\tmouse: { x: number; y: number },\n): Element | null => {\n\t// Raycast cursor position on DOM\n\tconst raycast = document.elementsFromPoint(mouse.x, mouse.y).reverse()\n\n\t// Find SliceZone in raycast\n\tconst sliceZoneIndex = raycast.indexOf($sliceZone)\n\n\t// SliceZone is not part of raycast\n\tif (sliceZoneIndex === -1) {\n\t\treturn null\n\t}\n\n\tconst $slice = raycast[sliceZoneIndex + 1]\n\n\t// Slice is not part of raycast\n\tif (!$slice) {\n\t\treturn null\n\t}\n\n\treturn $slice\n}\n"],"mappings":";AAAA,MAAa,iBAAiB;AAC9B,MAAa,qBAAqB;AAElC,MAAa,wBAAwC;AACpD,QAAO,SAAS,cAAc,IAAI,iBAAiB;;AAGpD,MAAa,4BAA4C;AACxD,QAAO,SAAS,cAAc,IAAI,qBAAqB;;AAGxD,MAAa,mBAAmB,6BAAqD;CAEpF,IAAI,OAAO,SAAS,cAAc,IAAI,eAAe,oBAAoB;AACzE,KAAI,MAAM;AACT,MAAI,KAAK,SAAS,WAAW,yBAC5B,SAAQ,KACP,iEAAiE,KAAK,SAAS,OAAO,gBAAgB,yBAAyB,uFAC/H;AAGF,SAAO;;AAIR,QAAO,SAAS,cAAc,IAAI,eAAe,IAAI,qBAAqB;AAE1E,KAAI,CAAC,KACJ,QAAO;CAGR,MAAM,cAAc;AACpB,MAAK,IAAI,IAAI,GAAG,IAAI,aAAa,IAChC,KAAI,KAAK,SAAS,WAAW,yBAE5B,QAAO;UACG,KAAK,SAAS,OAExB,QAAO,KAAK,SAAS;KAGrB;AAKF,QAAO;;AAGR,MAAa,qBACZ,YACA,UACoB;CAEpB,MAAM,UAAU,SAAS,kBAAkB,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS;CAGtE,MAAM,iBAAiB,QAAQ,QAAQ,WAAW;AAGlD,KAAI,mBAAmB,GACtB,QAAO;CAGR,MAAM,SAAS,QAAQ,iBAAiB;AAGxC,KAAI,CAAC,OACJ,QAAO;AAGR,QAAO"}