@ui5/webcomponents-base 2.8.0 → 2.9.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  const VersionInfo = {
2
- version: "2.8.0",
2
+ version: "2.9.0-rc.0",
3
3
  major: 2,
4
- minor: 8,
4
+ minor: 9,
5
5
  patch: 0,
6
- suffix: "",
6
+ suffix: "-rc.0",
7
7
  isNext: false,
8
- buildTime: 1741075456,
8
+ buildTime: 1741853330,
9
9
  };
10
10
  export default VersionInfo;
11
11
  //# sourceMappingURL=VersionInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../src/generated/VersionInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IACnB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.8.0\",\n\tmajor: 2,\n\tminor: 8,\n\tpatch: 0,\n\tsuffix: \"\",\n\tisNext: false,\n\tbuildTime: 1741075456,\n};\nexport default VersionInfo;"]}
1
+ {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../src/generated/VersionInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IACnB,OAAO,EAAE,YAAY;IACrB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.9.0-rc.0\",\n\tmajor: 2,\n\tminor: 9,\n\tpatch: 0,\n\tsuffix: \"-rc.0\",\n\tisNext: false,\n\tbuildTime: 1741853330,\n};\nexport default VersionInfo;"]}
@@ -1,2 +1,2 @@
1
- "use strict";const e={version:"2.8.0",major:2,minor:8,patch:0,suffix:"",isNext:!1,buildTime:1741075456};export default e;
1
+ "use strict";const e={version:"2.9.0-rc.0",major:2,minor:9,patch:0,suffix:"-rc.0",isNext:!1,buildTime:1741853330};export default e;
2
2
  //# sourceMappingURL=VersionInfo.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/generated/VersionInfo.ts"],
4
- "sourcesContent": ["const VersionInfo = {\n\tversion: \"2.8.0\",\n\tmajor: 2,\n\tminor: 8,\n\tpatch: 0,\n\tsuffix: \"\",\n\tisNext: false,\n\tbuildTime: 1741075456,\n};\nexport default VersionInfo;"],
5
- "mappings": "aAAA,MAAMA,EAAc,CACnB,QAAS,QACT,MAAO,EACP,MAAO,EACP,MAAO,EACP,OAAQ,GACR,OAAQ,GACR,UAAW,UACZ,EACA,eAAeA",
4
+ "sourcesContent": ["const VersionInfo = {\n\tversion: \"2.9.0-rc.0\",\n\tmajor: 2,\n\tminor: 9,\n\tpatch: 0,\n\tsuffix: \"-rc.0\",\n\tisNext: false,\n\tbuildTime: 1741853330,\n};\nexport default VersionInfo;"],
5
+ "mappings": "aAAA,MAAMA,EAAc,CACnB,QAAS,aACT,MAAO,EACP,MAAO,EACP,MAAO,EACP,OAAQ,QACR,OAAQ,GACR,UAAW,UACZ,EACA,eAAeA",
6
6
  "names": ["VersionInfo"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";import n from"../../types/MovePlacement.js";import p from"../../types/Orientation.js";const A=(t,s,a,r)=>{const e=Math.abs(t-s),o=Math.abs(t-a),l=Math.abs(t-r),i=Math.min(e,o,l);let c=[];switch(i){case e:c=[n.Before];break;case o:c=[n.On,e<l?n.Before:n.After];break;case l:c=[n.After];break}return c},w=(t,s,a)=>{let r=Number.POSITIVE_INFINITY,e=null;for(let m=0;m<t.length;m++){const u=t[m],{left:g,width:E,top:P,height:T}=u.getBoundingClientRect();let h;a===p.Vertical?h=P+T/2:h=g+E/2;const d=Math.abs(s-h);d<r&&(r=d,e=u)}if(!e)return null;const{width:o,height:l,left:i,right:c,top:b,bottom:M}=e.getBoundingClientRect();let f;return a===p.Vertical?f=A(s,b,b+l/2,M):f=A(s,i,i+o/2,c),{element:e,placements:f}},k=(t,s,a)=>{let r=t.indexOf(s);const e=[];switch(a.key){case"ArrowLeft":case"ArrowUp":r--,r>=0&&e.push({element:t[r],placement:n.Before});break;case"ArrowRight":case"ArrowDown":r++,r<t.length&&e.push({element:t[r],placement:n.After});break;case"Home":t.forEach(o=>{e.push({element:o,placement:n.Before})});break;case"End":t.reverse().forEach(o=>{e.push({element:o,placement:n.After})});break}return e};export{w as findClosestPosition,k as findClosestPositionsByKey};
1
+ "use strict";import n from"../../types/MovePlacement.js";import g from"../../types/Orientation.js";const A=(e,t,r,a)=>{const o=Math.abs(e-t),m=Math.abs(e-r),s=Math.abs(e-a),c=Math.min(o,m,s);let l=[];switch(c){case o:l=[n.Before];break;case m:l=[n.On,o<s?n.Before:n.After];break;case s:l=[n.After];break}return l},L=(e,t,r)=>{let a=Number.POSITIVE_INFINITY,o=null;for(let f=0;f<e.length;f++){const h=e[f],{left:p,width:w,top:B,height:H}=h.getBoundingClientRect();let u;r===g.Vertical?u=B+H/2:u=p+w/2;const M=Math.abs(t-u);M<a&&(a=M,o=h)}if(!o)return null;const{width:m,height:s,left:c,right:l,top:b,bottom:d}=o.getBoundingClientRect();let i;return r===g.Vertical?i=A(t,b,b+s/2,d):i=A(t,c,c+m/2,l),{element:o,placements:i}},T=(e,t)=>(t--,t<0?[]:[{element:e[t],placement:n.Before}]),y=(e,t)=>(t++,t>=e.length?[]:[{element:e[t],placement:n.After}]),E={ArrowLeft:T,ArrowUp:T,ArrowRight:y,ArrowDown:y,Home:(e,t)=>e.slice(0,t).map(r=>({element:r,placement:n.Before})),End:(e,t)=>e.slice(t+1,e.length).reverse().map(r=>({element:r,placement:n.After}))},k=(e,t,r)=>P(r.key)?E[r.key](e,e.indexOf(t)):[],P=e=>e in E;export{L as findClosestPosition,k as findClosestPositionsByKey,P as isMovingKey};
2
2
  //# sourceMappingURL=findClosestPosition.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/util/dragAndDrop/findClosestPosition.ts"],
4
- "sourcesContent": ["import MovePlacement from \"../../types/MovePlacement.js\";\nimport Orientation from \"../../types/Orientation.js\";\n\nconst closestPlacement = (point: number, beforePoint: number, centerPoint: number, afterPoint: number) => {\n\tconst distToBeforePoint = Math.abs(point - beforePoint);\n\tconst distToCenterPoint = Math.abs(point - centerPoint);\n\tconst distToAfterPoint = Math.abs(point - afterPoint);\n\tconst closestPoint = Math.min(\n\t\tdistToBeforePoint,\n\t\tdistToCenterPoint,\n\t\tdistToAfterPoint,\n\t);\n\tlet placements: Array<MovePlacement> = [];\n\n\tswitch (closestPoint) {\n\tcase distToBeforePoint:\n\t\tplacements = [MovePlacement.Before];\n\t\tbreak;\n\tcase distToCenterPoint:\n\t\tplacements = [MovePlacement.On, distToBeforePoint < distToAfterPoint ? MovePlacement.Before : MovePlacement.After];\n\t\tbreak;\n\tcase distToAfterPoint:\n\t\tplacements = [MovePlacement.After];\n\t\tbreak;\n\t}\n\n\treturn placements;\n};\n\nconst findClosestPosition = (elements: Array<HTMLElement>, point: number, layoutOrientation: Orientation) => {\n\tlet shortestDist = Number.POSITIVE_INFINITY;\n\tlet closestElement: HTMLElement | null = null;\n\n\t// determine which element is most closest to the point\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst el = elements[i];\n\t\tconst {\n\t\t\tleft, width, top, height,\n\t\t} = el.getBoundingClientRect();\n\n\t\tlet elemCenter;\n\t\tif (layoutOrientation === Orientation.Vertical) {\n\t\t\telemCenter = top + height / 2;\n\t\t} else { // Horizontal\n\t\t\telemCenter = left + width / 2;\n\t\t}\n\n\t\tconst distanceToCenter = Math.abs(point - elemCenter);\n\n\t\tif (distanceToCenter < shortestDist) {\n\t\t\tshortestDist = distanceToCenter;\n\t\t\tclosestElement = el;\n\t\t}\n\t}\n\n\tif (!closestElement) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\twidth, height, left, right, top, bottom,\n\t} = closestElement.getBoundingClientRect();\n\tlet placements;\n\n\tif (layoutOrientation === Orientation.Vertical) {\n\t\tplacements = closestPlacement(point, top, top + height / 2, bottom);\n\t} else { // Horizontal\n\t\tplacements = closestPlacement(point, left, left + width / 2, right);\n\t}\n\n\treturn {\n\t\telement: closestElement,\n\t\tplacements,\n\t};\n};\n\nconst findClosestPositionsByKey = (elements: Array<HTMLElement>, element: HTMLElement, e: KeyboardEvent) => {\n\tlet index = elements.indexOf(element);\n\tconst positions = [];\n\n\tswitch (e.key) {\n\tcase \"ArrowLeft\":\n\tcase \"ArrowUp\":\n\t\tindex--;\n\t\tif (index >= 0) {\n\t\t\tpositions.push({\n\t\t\t\telement: elements[index],\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t});\n\t\t}\n\t\tbreak;\n\tcase \"ArrowRight\":\n\tcase \"ArrowDown\":\n\t\tindex++;\n\t\tif (index < elements.length) {\n\t\t\tpositions.push({\n\t\t\t\telement: elements[index],\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t});\n\t\t}\n\t\tbreak;\n\tcase \"Home\":\n\t\telements.forEach(el => {\n\t\t\tpositions.push({\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t});\n\t\t});\n\t\tbreak;\n\tcase \"End\":\n\t\telements.reverse().forEach(el => {\n\t\t\tpositions.push({\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t});\n\t\t});\n\t\tbreak;\n\t}\n\n\treturn positions;\n};\n\nexport {\n\tfindClosestPosition,\n\tfindClosestPositionsByKey,\n};\n"],
5
- "mappings": "aAAA,OAAOA,MAAmB,+BAC1B,OAAOC,MAAiB,6BAExB,MAAMC,EAAmB,CAACC,EAAeC,EAAqBC,EAAqBC,IAAuB,CACzG,MAAMC,EAAoB,KAAK,IAAIJ,EAAQC,CAAW,EAChDI,EAAoB,KAAK,IAAIL,EAAQE,CAAW,EAChDI,EAAmB,KAAK,IAAIN,EAAQG,CAAU,EAC9CI,EAAe,KAAK,IACzBH,EACAC,EACAC,CACD,EACA,IAAIE,EAAmC,CAAC,EAExC,OAAQD,EAAc,CACtB,KAAKH,EACJI,EAAa,CAACX,EAAc,MAAM,EAClC,MACD,KAAKQ,EACJG,EAAa,CAACX,EAAc,GAAIO,EAAoBE,EAAmBT,EAAc,OAASA,EAAc,KAAK,EACjH,MACD,KAAKS,EACJE,EAAa,CAACX,EAAc,KAAK,EACjC,KACD,CAEA,OAAOW,CACR,EAEMC,EAAsB,CAACC,EAA8BV,EAAeW,IAAmC,CAC5G,IAAIC,EAAe,OAAO,kBACtBC,EAAqC,KAGzC,QAASC,EAAI,EAAGA,EAAIJ,EAAS,OAAQI,IAAK,CACzC,MAAMC,EAAKL,EAASI,CAAC,EACf,CACL,KAAAE,EAAM,MAAAC,EAAO,IAAAC,EAAK,OAAAC,CACnB,EAAIJ,EAAG,sBAAsB,EAE7B,IAAIK,EACAT,IAAsBb,EAAY,SACrCsB,EAAaF,EAAMC,EAAS,EAE5BC,EAAaJ,EAAOC,EAAQ,EAG7B,MAAMI,EAAmB,KAAK,IAAIrB,EAAQoB,CAAU,EAEhDC,EAAmBT,IACtBA,EAAeS,EACfR,EAAiBE,EAEnB,CAEA,GAAI,CAACF,EACJ,OAAO,KAGR,KAAM,CACL,MAAAI,EAAO,OAAAE,EAAQ,KAAAH,EAAM,MAAAM,EAAO,IAAAJ,EAAK,OAAAK,CAClC,EAAIV,EAAe,sBAAsB,EACzC,IAAIL,EAEJ,OAAIG,IAAsBb,EAAY,SACrCU,EAAaT,EAAiBC,EAAOkB,EAAKA,EAAMC,EAAS,EAAGI,CAAM,EAElEf,EAAaT,EAAiBC,EAAOgB,EAAMA,EAAOC,EAAQ,EAAGK,CAAK,EAG5D,CACN,QAAST,EACT,WAAAL,CACD,CACD,EAEMgB,EAA4B,CAACd,EAA8Be,EAAsBC,IAAqB,CAC3G,IAAIC,EAAQjB,EAAS,QAAQe,CAAO,EACpC,MAAMG,EAAY,CAAC,EAEnB,OAAQF,EAAE,IAAK,CACf,IAAK,YACL,IAAK,UACJC,IACIA,GAAS,GACZC,EAAU,KAAK,CACd,QAASlB,EAASiB,CAAK,EACvB,UAAW9B,EAAc,MAC1B,CAAC,EAEF,MACD,IAAK,aACL,IAAK,YACJ8B,IACIA,EAAQjB,EAAS,QACpBkB,EAAU,KAAK,CACd,QAASlB,EAASiB,CAAK,EACvB,UAAW9B,EAAc,KAC1B,CAAC,EAEF,MACD,IAAK,OACJa,EAAS,QAAQK,GAAM,CACtBa,EAAU,KAAK,CACd,QAASb,EACT,UAAWlB,EAAc,MAC1B,CAAC,CACF,CAAC,EACD,MACD,IAAK,MACJa,EAAS,QAAQ,EAAE,QAAQK,GAAM,CAChCa,EAAU,KAAK,CACd,QAASb,EACT,UAAWlB,EAAc,KAC1B,CAAC,CACF,CAAC,EACD,KACD,CAEA,OAAO+B,CACR,EAEA,OACCnB,KAAA,oBACAe,KAAA",
6
- "names": ["MovePlacement", "Orientation", "closestPlacement", "point", "beforePoint", "centerPoint", "afterPoint", "distToBeforePoint", "distToCenterPoint", "distToAfterPoint", "closestPoint", "placements", "findClosestPosition", "elements", "layoutOrientation", "shortestDist", "closestElement", "i", "el", "left", "width", "top", "height", "elemCenter", "distanceToCenter", "right", "bottom", "findClosestPositionsByKey", "element", "e", "index", "positions"]
4
+ "sourcesContent": ["import MovePlacement from \"../../types/MovePlacement.js\";\nimport Orientation from \"../../types/Orientation.js\";\n\nconst closestPlacement = (point: number, beforePoint: number, centerPoint: number, afterPoint: number) => {\n\tconst distToBeforePoint = Math.abs(point - beforePoint);\n\tconst distToCenterPoint = Math.abs(point - centerPoint);\n\tconst distToAfterPoint = Math.abs(point - afterPoint);\n\tconst closestPoint = Math.min(\n\t\tdistToBeforePoint,\n\t\tdistToCenterPoint,\n\t\tdistToAfterPoint,\n\t);\n\tlet placements: Array<MovePlacement> = [];\n\n\tswitch (closestPoint) {\n\tcase distToBeforePoint:\n\t\tplacements = [MovePlacement.Before];\n\t\tbreak;\n\tcase distToCenterPoint:\n\t\tplacements = [MovePlacement.On, distToBeforePoint < distToAfterPoint ? MovePlacement.Before : MovePlacement.After];\n\t\tbreak;\n\tcase distToAfterPoint:\n\t\tplacements = [MovePlacement.After];\n\t\tbreak;\n\t}\n\n\treturn placements;\n};\n\nconst findClosestPosition = (elements: Array<HTMLElement>, point: number, layoutOrientation: Orientation) => {\n\tlet shortestDist = Number.POSITIVE_INFINITY;\n\tlet closestElement: HTMLElement | null = null;\n\n\t// determine which element is most closest to the point\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst el = elements[i];\n\t\tconst {\n\t\t\tleft, width, top, height,\n\t\t} = el.getBoundingClientRect();\n\n\t\tlet elemCenter;\n\t\tif (layoutOrientation === Orientation.Vertical) {\n\t\t\telemCenter = top + height / 2;\n\t\t} else { // Horizontal\n\t\t\telemCenter = left + width / 2;\n\t\t}\n\n\t\tconst distanceToCenter = Math.abs(point - elemCenter);\n\n\t\tif (distanceToCenter < shortestDist) {\n\t\t\tshortestDist = distanceToCenter;\n\t\t\tclosestElement = el;\n\t\t}\n\t}\n\n\tif (!closestElement) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\twidth, height, left, right, top, bottom,\n\t} = closestElement.getBoundingClientRect();\n\tlet placements;\n\n\tif (layoutOrientation === Orientation.Vertical) {\n\t\tplacements = closestPlacement(point, top, top + height / 2, bottom);\n\t} else { // Horizontal\n\t\tplacements = closestPlacement(point, left, left + width / 2, right);\n\t}\n\n\treturn {\n\t\telement: closestElement,\n\t\tplacements,\n\t};\n};\n\nconst _moveBackward = (elements: Array<HTMLElement>, index: number) => {\n\tindex--;\n\n\tif (index < 0) {\n\t\treturn [];\n\t}\n\n\treturn [{\n\t\telement: elements[index],\n\t\tplacement: MovePlacement.Before,\n\t}];\n};\n\nconst _moveForward = (elements: Array<HTMLElement>, index: number) => {\n\tindex++;\n\n\tif (index >= elements.length) {\n\t\treturn [];\n\t}\n\n\treturn [{\n\t\telement: elements[index],\n\t\tplacement: MovePlacement.After,\n\t}];\n};\n\nconst keyToPlacement: { [key: string]: (arg1: Array<HTMLElement>, arg2: number) => Array<{element: HTMLElement, placement: MovePlacement}>} = {\n\tArrowLeft: _moveBackward,\n\tArrowUp: _moveBackward,\n\tArrowRight: _moveForward,\n\tArrowDown: _moveForward,\n\tHome: (elements, index) => {\n\t\treturn elements.slice(0, index).map(el => (\n\t\t\t{\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t}\n\t\t));\n\t},\n\tEnd: (elements, index) => {\n\t\treturn elements.slice(index + 1, elements.length).reverse().map(el => (\n\t\t\t{\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t}\n\t\t));\n\t},\n};\n\nconst findClosestPositionsByKey = (elements: Array<HTMLElement>, element: HTMLElement, e: KeyboardEvent) => {\n\tif (isMovingKey(e.key)) {\n\t\treturn keyToPlacement[e.key](elements, elements.indexOf(element));\n\t}\n\n\treturn [];\n};\n\nconst isMovingKey = (key: string) => {\n\treturn key in keyToPlacement;\n};\n\nexport {\n\tfindClosestPosition,\n\tfindClosestPositionsByKey,\n\tisMovingKey,\n};\n"],
5
+ "mappings": "aAAA,OAAOA,MAAmB,+BAC1B,OAAOC,MAAiB,6BAExB,MAAMC,EAAmB,CAACC,EAAeC,EAAqBC,EAAqBC,IAAuB,CACzG,MAAMC,EAAoB,KAAK,IAAIJ,EAAQC,CAAW,EAChDI,EAAoB,KAAK,IAAIL,EAAQE,CAAW,EAChDI,EAAmB,KAAK,IAAIN,EAAQG,CAAU,EAC9CI,EAAe,KAAK,IACzBH,EACAC,EACAC,CACD,EACA,IAAIE,EAAmC,CAAC,EAExC,OAAQD,EAAc,CACtB,KAAKH,EACJI,EAAa,CAACX,EAAc,MAAM,EAClC,MACD,KAAKQ,EACJG,EAAa,CAACX,EAAc,GAAIO,EAAoBE,EAAmBT,EAAc,OAASA,EAAc,KAAK,EACjH,MACD,KAAKS,EACJE,EAAa,CAACX,EAAc,KAAK,EACjC,KACD,CAEA,OAAOW,CACR,EAEMC,EAAsB,CAACC,EAA8BV,EAAeW,IAAmC,CAC5G,IAAIC,EAAe,OAAO,kBACtBC,EAAqC,KAGzC,QAASC,EAAI,EAAGA,EAAIJ,EAAS,OAAQI,IAAK,CACzC,MAAMC,EAAKL,EAASI,CAAC,EACf,CACL,KAAAE,EAAM,MAAAC,EAAO,IAAAC,EAAK,OAAAC,CACnB,EAAIJ,EAAG,sBAAsB,EAE7B,IAAIK,EACAT,IAAsBb,EAAY,SACrCsB,EAAaF,EAAMC,EAAS,EAE5BC,EAAaJ,EAAOC,EAAQ,EAG7B,MAAMI,EAAmB,KAAK,IAAIrB,EAAQoB,CAAU,EAEhDC,EAAmBT,IACtBA,EAAeS,EACfR,EAAiBE,EAEnB,CAEA,GAAI,CAACF,EACJ,OAAO,KAGR,KAAM,CACL,MAAAI,EAAO,OAAAE,EAAQ,KAAAH,EAAM,MAAAM,EAAO,IAAAJ,EAAK,OAAAK,CAClC,EAAIV,EAAe,sBAAsB,EACzC,IAAIL,EAEJ,OAAIG,IAAsBb,EAAY,SACrCU,EAAaT,EAAiBC,EAAOkB,EAAKA,EAAMC,EAAS,EAAGI,CAAM,EAElEf,EAAaT,EAAiBC,EAAOgB,EAAMA,EAAOC,EAAQ,EAAGK,CAAK,EAG5D,CACN,QAAST,EACT,WAAAL,CACD,CACD,EAEMgB,EAAgB,CAACd,EAA8Be,KACpDA,IAEIA,EAAQ,EACJ,CAAC,EAGF,CAAC,CACP,QAASf,EAASe,CAAK,EACvB,UAAW5B,EAAc,MAC1B,CAAC,GAGI6B,EAAe,CAAChB,EAA8Be,KACnDA,IAEIA,GAASf,EAAS,OACd,CAAC,EAGF,CAAC,CACP,QAASA,EAASe,CAAK,EACvB,UAAW5B,EAAc,KAC1B,CAAC,GAGI8B,EAAwI,CAC7I,UAAWH,EACX,QAASA,EACT,WAAYE,EACZ,UAAWA,EACX,KAAM,CAAChB,EAAUe,IACTf,EAAS,MAAM,EAAGe,CAAK,EAAE,IAAIV,IACnC,CACC,QAASA,EACT,UAAWlB,EAAc,MAC1B,EACA,EAEF,IAAK,CAACa,EAAUe,IACRf,EAAS,MAAMe,EAAQ,EAAGf,EAAS,MAAM,EAAE,QAAQ,EAAE,IAAIK,IAC/D,CACC,QAASA,EACT,UAAWlB,EAAc,KAC1B,EACA,CAEH,EAEM+B,EAA4B,CAAClB,EAA8BmB,EAAsBC,IAClFC,EAAYD,EAAE,GAAG,EACbH,EAAeG,EAAE,GAAG,EAAEpB,EAAUA,EAAS,QAAQmB,CAAO,CAAC,EAG1D,CAAC,EAGHE,EAAeC,GACbA,KAAOL,EAGf,OACClB,KAAA,oBACAmB,KAAA,0BACAG,KAAA",
6
+ "names": ["MovePlacement", "Orientation", "closestPlacement", "point", "beforePoint", "centerPoint", "afterPoint", "distToBeforePoint", "distToCenterPoint", "distToAfterPoint", "closestPoint", "placements", "findClosestPosition", "elements", "layoutOrientation", "shortestDist", "closestElement", "i", "el", "left", "width", "top", "height", "elemCenter", "distanceToCenter", "right", "bottom", "_moveBackward", "index", "_moveForward", "keyToPlacement", "findClosestPositionsByKey", "element", "e", "isMovingKey", "key"]
7
7
  }
@@ -8,4 +8,5 @@ declare const findClosestPositionsByKey: (elements: Array<HTMLElement>, element:
8
8
  element: HTMLElement;
9
9
  placement: MovePlacement;
10
10
  }[];
11
- export { findClosestPosition, findClosestPositionsByKey, };
11
+ declare const isMovingKey: (key: string) => boolean;
12
+ export { findClosestPosition, findClosestPositionsByKey, isMovingKey, };
@@ -55,48 +55,52 @@ const findClosestPosition = (elements, point, layoutOrientation) => {
55
55
  placements,
56
56
  };
57
57
  };
58
+ const _moveBackward = (elements, index) => {
59
+ index--;
60
+ if (index < 0) {
61
+ return [];
62
+ }
63
+ return [{
64
+ element: elements[index],
65
+ placement: MovePlacement.Before,
66
+ }];
67
+ };
68
+ const _moveForward = (elements, index) => {
69
+ index++;
70
+ if (index >= elements.length) {
71
+ return [];
72
+ }
73
+ return [{
74
+ element: elements[index],
75
+ placement: MovePlacement.After,
76
+ }];
77
+ };
78
+ const keyToPlacement = {
79
+ ArrowLeft: _moveBackward,
80
+ ArrowUp: _moveBackward,
81
+ ArrowRight: _moveForward,
82
+ ArrowDown: _moveForward,
83
+ Home: (elements, index) => {
84
+ return elements.slice(0, index).map(el => ({
85
+ element: el,
86
+ placement: MovePlacement.Before,
87
+ }));
88
+ },
89
+ End: (elements, index) => {
90
+ return elements.slice(index + 1, elements.length).reverse().map(el => ({
91
+ element: el,
92
+ placement: MovePlacement.After,
93
+ }));
94
+ },
95
+ };
58
96
  const findClosestPositionsByKey = (elements, element, e) => {
59
- let index = elements.indexOf(element);
60
- const positions = [];
61
- switch (e.key) {
62
- case "ArrowLeft":
63
- case "ArrowUp":
64
- index--;
65
- if (index >= 0) {
66
- positions.push({
67
- element: elements[index],
68
- placement: MovePlacement.Before,
69
- });
70
- }
71
- break;
72
- case "ArrowRight":
73
- case "ArrowDown":
74
- index++;
75
- if (index < elements.length) {
76
- positions.push({
77
- element: elements[index],
78
- placement: MovePlacement.After,
79
- });
80
- }
81
- break;
82
- case "Home":
83
- elements.forEach(el => {
84
- positions.push({
85
- element: el,
86
- placement: MovePlacement.Before,
87
- });
88
- });
89
- break;
90
- case "End":
91
- elements.reverse().forEach(el => {
92
- positions.push({
93
- element: el,
94
- placement: MovePlacement.After,
95
- });
96
- });
97
- break;
97
+ if (isMovingKey(e.key)) {
98
+ return keyToPlacement[e.key](elements, elements.indexOf(element));
98
99
  }
99
- return positions;
100
+ return [];
101
+ };
102
+ const isMovingKey = (key) => {
103
+ return key in keyToPlacement;
100
104
  };
101
- export { findClosestPosition, findClosestPositionsByKey, };
105
+ export { findClosestPosition, findClosestPositionsByKey, isMovingKey, };
102
106
  //# sourceMappingURL=findClosestPosition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findClosestPosition.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/findClosestPosition.ts"],"names":[],"mappings":"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","sourcesContent":["import MovePlacement from \"../../types/MovePlacement.js\";\nimport Orientation from \"../../types/Orientation.js\";\n\nconst closestPlacement = (point: number, beforePoint: number, centerPoint: number, afterPoint: number) => {\n\tconst distToBeforePoint = Math.abs(point - beforePoint);\n\tconst distToCenterPoint = Math.abs(point - centerPoint);\n\tconst distToAfterPoint = Math.abs(point - afterPoint);\n\tconst closestPoint = Math.min(\n\t\tdistToBeforePoint,\n\t\tdistToCenterPoint,\n\t\tdistToAfterPoint,\n\t);\n\tlet placements: Array<MovePlacement> = [];\n\n\tswitch (closestPoint) {\n\tcase distToBeforePoint:\n\t\tplacements = [MovePlacement.Before];\n\t\tbreak;\n\tcase distToCenterPoint:\n\t\tplacements = [MovePlacement.On, distToBeforePoint < distToAfterPoint ? MovePlacement.Before : MovePlacement.After];\n\t\tbreak;\n\tcase distToAfterPoint:\n\t\tplacements = [MovePlacement.After];\n\t\tbreak;\n\t}\n\n\treturn placements;\n};\n\nconst findClosestPosition = (elements: Array<HTMLElement>, point: number, layoutOrientation: Orientation) => {\n\tlet shortestDist = Number.POSITIVE_INFINITY;\n\tlet closestElement: HTMLElement | null = null;\n\n\t// determine which element is most closest to the point\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst el = elements[i];\n\t\tconst {\n\t\t\tleft, width, top, height,\n\t\t} = el.getBoundingClientRect();\n\n\t\tlet elemCenter;\n\t\tif (layoutOrientation === Orientation.Vertical) {\n\t\t\telemCenter = top + height / 2;\n\t\t} else { // Horizontal\n\t\t\telemCenter = left + width / 2;\n\t\t}\n\n\t\tconst distanceToCenter = Math.abs(point - elemCenter);\n\n\t\tif (distanceToCenter < shortestDist) {\n\t\t\tshortestDist = distanceToCenter;\n\t\t\tclosestElement = el;\n\t\t}\n\t}\n\n\tif (!closestElement) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\twidth, height, left, right, top, bottom,\n\t} = closestElement.getBoundingClientRect();\n\tlet placements;\n\n\tif (layoutOrientation === Orientation.Vertical) {\n\t\tplacements = closestPlacement(point, top, top + height / 2, bottom);\n\t} else { // Horizontal\n\t\tplacements = closestPlacement(point, left, left + width / 2, right);\n\t}\n\n\treturn {\n\t\telement: closestElement,\n\t\tplacements,\n\t};\n};\n\nconst findClosestPositionsByKey = (elements: Array<HTMLElement>, element: HTMLElement, e: KeyboardEvent) => {\n\tlet index = elements.indexOf(element);\n\tconst positions = [];\n\n\tswitch (e.key) {\n\tcase \"ArrowLeft\":\n\tcase \"ArrowUp\":\n\t\tindex--;\n\t\tif (index >= 0) {\n\t\t\tpositions.push({\n\t\t\t\telement: elements[index],\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t});\n\t\t}\n\t\tbreak;\n\tcase \"ArrowRight\":\n\tcase \"ArrowDown\":\n\t\tindex++;\n\t\tif (index < elements.length) {\n\t\t\tpositions.push({\n\t\t\t\telement: elements[index],\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t});\n\t\t}\n\t\tbreak;\n\tcase \"Home\":\n\t\telements.forEach(el => {\n\t\t\tpositions.push({\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t});\n\t\t});\n\t\tbreak;\n\tcase \"End\":\n\t\telements.reverse().forEach(el => {\n\t\t\tpositions.push({\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t});\n\t\t});\n\t\tbreak;\n\t}\n\n\treturn positions;\n};\n\nexport {\n\tfindClosestPosition,\n\tfindClosestPositionsByKey,\n};\n"]}
1
+ {"version":3,"file":"findClosestPosition.js","sourceRoot":"","sources":["../../../src/util/dragAndDrop/findClosestPosition.ts"],"names":[],"mappings":"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","sourcesContent":["import MovePlacement from \"../../types/MovePlacement.js\";\nimport Orientation from \"../../types/Orientation.js\";\n\nconst closestPlacement = (point: number, beforePoint: number, centerPoint: number, afterPoint: number) => {\n\tconst distToBeforePoint = Math.abs(point - beforePoint);\n\tconst distToCenterPoint = Math.abs(point - centerPoint);\n\tconst distToAfterPoint = Math.abs(point - afterPoint);\n\tconst closestPoint = Math.min(\n\t\tdistToBeforePoint,\n\t\tdistToCenterPoint,\n\t\tdistToAfterPoint,\n\t);\n\tlet placements: Array<MovePlacement> = [];\n\n\tswitch (closestPoint) {\n\tcase distToBeforePoint:\n\t\tplacements = [MovePlacement.Before];\n\t\tbreak;\n\tcase distToCenterPoint:\n\t\tplacements = [MovePlacement.On, distToBeforePoint < distToAfterPoint ? MovePlacement.Before : MovePlacement.After];\n\t\tbreak;\n\tcase distToAfterPoint:\n\t\tplacements = [MovePlacement.After];\n\t\tbreak;\n\t}\n\n\treturn placements;\n};\n\nconst findClosestPosition = (elements: Array<HTMLElement>, point: number, layoutOrientation: Orientation) => {\n\tlet shortestDist = Number.POSITIVE_INFINITY;\n\tlet closestElement: HTMLElement | null = null;\n\n\t// determine which element is most closest to the point\n\tfor (let i = 0; i < elements.length; i++) {\n\t\tconst el = elements[i];\n\t\tconst {\n\t\t\tleft, width, top, height,\n\t\t} = el.getBoundingClientRect();\n\n\t\tlet elemCenter;\n\t\tif (layoutOrientation === Orientation.Vertical) {\n\t\t\telemCenter = top + height / 2;\n\t\t} else { // Horizontal\n\t\t\telemCenter = left + width / 2;\n\t\t}\n\n\t\tconst distanceToCenter = Math.abs(point - elemCenter);\n\n\t\tif (distanceToCenter < shortestDist) {\n\t\t\tshortestDist = distanceToCenter;\n\t\t\tclosestElement = el;\n\t\t}\n\t}\n\n\tif (!closestElement) {\n\t\treturn null;\n\t}\n\n\tconst {\n\t\twidth, height, left, right, top, bottom,\n\t} = closestElement.getBoundingClientRect();\n\tlet placements;\n\n\tif (layoutOrientation === Orientation.Vertical) {\n\t\tplacements = closestPlacement(point, top, top + height / 2, bottom);\n\t} else { // Horizontal\n\t\tplacements = closestPlacement(point, left, left + width / 2, right);\n\t}\n\n\treturn {\n\t\telement: closestElement,\n\t\tplacements,\n\t};\n};\n\nconst _moveBackward = (elements: Array<HTMLElement>, index: number) => {\n\tindex--;\n\n\tif (index < 0) {\n\t\treturn [];\n\t}\n\n\treturn [{\n\t\telement: elements[index],\n\t\tplacement: MovePlacement.Before,\n\t}];\n};\n\nconst _moveForward = (elements: Array<HTMLElement>, index: number) => {\n\tindex++;\n\n\tif (index >= elements.length) {\n\t\treturn [];\n\t}\n\n\treturn [{\n\t\telement: elements[index],\n\t\tplacement: MovePlacement.After,\n\t}];\n};\n\nconst keyToPlacement: { [key: string]: (arg1: Array<HTMLElement>, arg2: number) => Array<{element: HTMLElement, placement: MovePlacement}>} = {\n\tArrowLeft: _moveBackward,\n\tArrowUp: _moveBackward,\n\tArrowRight: _moveForward,\n\tArrowDown: _moveForward,\n\tHome: (elements, index) => {\n\t\treturn elements.slice(0, index).map(el => (\n\t\t\t{\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.Before,\n\t\t\t}\n\t\t));\n\t},\n\tEnd: (elements, index) => {\n\t\treturn elements.slice(index + 1, elements.length).reverse().map(el => (\n\t\t\t{\n\t\t\t\telement: el,\n\t\t\t\tplacement: MovePlacement.After,\n\t\t\t}\n\t\t));\n\t},\n};\n\nconst findClosestPositionsByKey = (elements: Array<HTMLElement>, element: HTMLElement, e: KeyboardEvent) => {\n\tif (isMovingKey(e.key)) {\n\t\treturn keyToPlacement[e.key](elements, elements.indexOf(element));\n\t}\n\n\treturn [];\n};\n\nconst isMovingKey = (key: string) => {\n\treturn key in keyToPlacement;\n};\n\nexport {\n\tfindClosestPosition,\n\tfindClosestPositionsByKey,\n\tisMovingKey,\n};\n"]}
@@ -63,8 +63,8 @@ const scripts = {
63
63
  default: 'concurrently "nps test.ssr" "nps test.ssr2" "nps test.test-cy-ci"',
64
64
  ssr: `mocha test/ssr`,
65
65
  ssr2: "node -e \"import('./dist/Device.js')\"",
66
- "test-cy-ci": `nps generate && nps generateTestTemplates && cross-env UI5_BASE=true yarn cypress run --component --browser chrome`,
67
- "test-cy-open": `nps generate && nps generateTestTemplates && cross-env UI5_BASE=true yarn cypress open --component --browser chrome`,
66
+ "test-cy-ci": `nps generateTestTemplates && cross-env UI5_BASE=true yarn cypress run --component --browser chrome`,
67
+ "test-cy-open": `nps generateTestTemplates && cross-env UI5_BASE=true yarn cypress open --component --browser chrome`,
68
68
  },
69
69
  };
70
70
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "2.8.0",
3
+ "version": "2.9.0-rc.0",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -57,8 +57,9 @@
57
57
  },
58
58
  "devDependencies": {
59
59
  "@openui5/sap.ui.core": "1.120.17",
60
- "@ui5/webcomponents-tools": "2.8.0",
61
- "chromedriver": "^132.0.0",
60
+ "@ui5/cypress-internal": "0.0.0",
61
+ "@ui5/webcomponents-tools": "2.9.0-rc.0",
62
+ "chromedriver": "^133.0.0",
62
63
  "clean-css": "^5.2.2",
63
64
  "copy-and-watch": "^0.1.5",
64
65
  "cross-env": "^7.0.3",
@@ -68,5 +69,5 @@
68
69
  "resolve": "^1.20.0",
69
70
  "touch": "^3.1.0"
70
71
  },
71
- "gitHead": "03b747d858078dba965e6c39d85f5954497884c1"
72
+ "gitHead": "7b5afeeb1f94c3ad54b2e79ac79d0d9e36f0cb7d"
72
73
  }
package/tsconfig.json CHANGED
@@ -5,7 +5,6 @@
5
5
  "src/global.d.ts",
6
6
  ],
7
7
  "compilerOptions": {
8
- "types": ["@ui5/webcomponents-tools"],
9
8
  "outDir": "dist",
10
9
  "composite": true,
11
10
  "rootDir": "src",