{"ast":null,"code":"import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\nexport var newFocus = function newFocus(innerNodes, outerNodes, activeElement, lastNode) {\n  var cnt = innerNodes.length;\n  var firstFocus = innerNodes[0];\n  var lastFocus = innerNodes[cnt - 1];\n  var isOnGuard = isGuard(activeElement);\n  if (innerNodes.indexOf(activeElement) >= 0) {\n    return undefined;\n  }\n  var activeIndex = outerNodes.indexOf(activeElement);\n  var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n  var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n  var indexDiff = activeIndex - lastIndex;\n  var firstNodeIndex = outerNodes.indexOf(firstFocus);\n  var lastNodeIndex = outerNodes.indexOf(lastFocus);\n  var correctedNodes = correctNodes(outerNodes);\n  var correctedIndexDiff = correctedNodes.indexOf(activeElement) - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n  var returnFirstNode = pickFocusable(innerNodes, 0);\n  var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n  if (activeIndex === -1 || lastNodeInside === -1) {\n    return NEW_FOCUS;\n  }\n  if (!indexDiff && lastNodeInside >= 0) {\n    return lastNodeInside;\n  }\n  if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n    return returnLastNode;\n  }\n  if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n    return returnFirstNode;\n  }\n  if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n    return lastNodeInside;\n  }\n  if (activeIndex <= firstNodeIndex) {\n    return returnLastNode;\n  }\n  if (activeIndex > lastNodeIndex) {\n    return returnFirstNode;\n  }\n  if (indexDiff) {\n    if (Math.abs(indexDiff) > 1) {\n      return lastNodeInside;\n    }\n    return (cnt + lastNodeInside + indexDiff) % cnt;\n  }\n  return undefined;\n};","map":{"version":3,"names":["correctNodes","pickFocusable","isGuard","NEW_FOCUS","newFocus","innerNodes","outerNodes","activeElement","lastNode","cnt","length","firstFocus","lastFocus","isOnGuard","indexOf","undefined","activeIndex","lastIndex","lastNodeInside","indexDiff","firstNodeIndex","lastNodeIndex","correctedNodes","correctedIndexDiff","returnFirstNode","returnLastNode","Math","abs"],"sources":["C:/ldt/LDT/management/node_modules/focus-lock/dist/es2015/solver.js"],"sourcesContent":["import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\nexport var newFocus = function (innerNodes, outerNodes, activeElement, lastNode) {\n    var cnt = innerNodes.length;\n    var firstFocus = innerNodes[0];\n    var lastFocus = innerNodes[cnt - 1];\n    var isOnGuard = isGuard(activeElement);\n    if (innerNodes.indexOf(activeElement) >= 0) {\n        return undefined;\n    }\n    var activeIndex = outerNodes.indexOf(activeElement);\n    var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n    var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n    var indexDiff = activeIndex - lastIndex;\n    var firstNodeIndex = outerNodes.indexOf(firstFocus);\n    var lastNodeIndex = outerNodes.indexOf(lastFocus);\n    var correctedNodes = correctNodes(outerNodes);\n    var correctedIndexDiff = correctedNodes.indexOf(activeElement) - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n    var returnFirstNode = pickFocusable(innerNodes, 0);\n    var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n    if (activeIndex === -1 || lastNodeInside === -1) {\n        return NEW_FOCUS;\n    }\n    if (!indexDiff && lastNodeInside >= 0) {\n        return lastNodeInside;\n    }\n    if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n        return returnLastNode;\n    }\n    if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n        return returnFirstNode;\n    }\n    if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n        return lastNodeInside;\n    }\n    if (activeIndex <= firstNodeIndex) {\n        return returnLastNode;\n    }\n    if (activeIndex > lastNodeIndex) {\n        return returnFirstNode;\n    }\n    if (indexDiff) {\n        if (Math.abs(indexDiff) > 1) {\n            return lastNodeInside;\n        }\n        return (cnt + lastNodeInside + indexDiff) % cnt;\n    }\n    return undefined;\n};\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,sBAAsB;AACnD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,OAAO,QAAQ,YAAY;AACpC,OAAO,IAAIC,SAAS,GAAG,WAAW;AAClC,OAAO,IAAIC,QAAQ,GAAG,SAAXA,QAAQA,CAAaC,UAAU,EAAEC,UAAU,EAAEC,aAAa,EAAEC,QAAQ,EAAE;EAC7E,IAAIC,GAAG,GAAGJ,UAAU,CAACK,MAAM;EAC3B,IAAIC,UAAU,GAAGN,UAAU,CAAC,CAAC,CAAC;EAC9B,IAAIO,SAAS,GAAGP,UAAU,CAACI,GAAG,GAAG,CAAC,CAAC;EACnC,IAAII,SAAS,GAAGX,OAAO,CAACK,aAAa,CAAC;EACtC,IAAIF,UAAU,CAACS,OAAO,CAACP,aAAa,CAAC,IAAI,CAAC,EAAE;IACxC,OAAOQ,SAAS;EACpB;EACA,IAAIC,WAAW,GAAGV,UAAU,CAACQ,OAAO,CAACP,aAAa,CAAC;EACnD,IAAIU,SAAS,GAAGT,QAAQ,GAAGF,UAAU,CAACQ,OAAO,CAACN,QAAQ,CAAC,GAAGQ,WAAW;EACrE,IAAIE,cAAc,GAAGV,QAAQ,GAAGH,UAAU,CAACS,OAAO,CAACN,QAAQ,CAAC,GAAG,CAAC,CAAC;EACjE,IAAIW,SAAS,GAAGH,WAAW,GAAGC,SAAS;EACvC,IAAIG,cAAc,GAAGd,UAAU,CAACQ,OAAO,CAACH,UAAU,CAAC;EACnD,IAAIU,aAAa,GAAGf,UAAU,CAACQ,OAAO,CAACF,SAAS,CAAC;EACjD,IAAIU,cAAc,GAAGtB,YAAY,CAACM,UAAU,CAAC;EAC7C,IAAIiB,kBAAkB,GAAGD,cAAc,CAACR,OAAO,CAACP,aAAa,CAAC,IAAIC,QAAQ,GAAGc,cAAc,CAACR,OAAO,CAACN,QAAQ,CAAC,GAAGQ,WAAW,CAAC;EAC5H,IAAIQ,eAAe,GAAGvB,aAAa,CAACI,UAAU,EAAE,CAAC,CAAC;EAClD,IAAIoB,cAAc,GAAGxB,aAAa,CAACI,UAAU,EAAEI,GAAG,GAAG,CAAC,CAAC;EACvD,IAAIO,WAAW,KAAK,CAAC,CAAC,IAAIE,cAAc,KAAK,CAAC,CAAC,EAAE;IAC7C,OAAOf,SAAS;EACpB;EACA,IAAI,CAACgB,SAAS,IAAID,cAAc,IAAI,CAAC,EAAE;IACnC,OAAOA,cAAc;EACzB;EACA,IAAIF,WAAW,IAAII,cAAc,IAAIP,SAAS,IAAIa,IAAI,CAACC,GAAG,CAACR,SAAS,CAAC,GAAG,CAAC,EAAE;IACvE,OAAOM,cAAc;EACzB;EACA,IAAIT,WAAW,IAAIK,aAAa,IAAIR,SAAS,IAAIa,IAAI,CAACC,GAAG,CAACR,SAAS,CAAC,GAAG,CAAC,EAAE;IACtE,OAAOK,eAAe;EAC1B;EACA,IAAIL,SAAS,IAAIO,IAAI,CAACC,GAAG,CAACJ,kBAAkB,CAAC,GAAG,CAAC,EAAE;IAC/C,OAAOL,cAAc;EACzB;EACA,IAAIF,WAAW,IAAII,cAAc,EAAE;IAC/B,OAAOK,cAAc;EACzB;EACA,IAAIT,WAAW,GAAGK,aAAa,EAAE;IAC7B,OAAOG,eAAe;EAC1B;EACA,IAAIL,SAAS,EAAE;IACX,IAAIO,IAAI,CAACC,GAAG,CAACR,SAAS,CAAC,GAAG,CAAC,EAAE;MACzB,OAAOD,cAAc;IACzB;IACA,OAAO,CAACT,GAAG,GAAGS,cAAc,GAAGC,SAAS,IAAIV,GAAG;EACnD;EACA,OAAOM,SAAS;AACpB,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}