From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- devtools/client/inspector/grids/utils/utils.js | 58 ++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 devtools/client/inspector/grids/utils/utils.js (limited to 'devtools/client/inspector/grids/utils/utils.js') diff --git a/devtools/client/inspector/grids/utils/utils.js b/devtools/client/inspector/grids/utils/utils.js new file mode 100644 index 0000000000..fc25de8775 --- /dev/null +++ b/devtools/client/inspector/grids/utils/utils.js @@ -0,0 +1,58 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +/** + * Compares 2 sets of grid fragments to each other and checks if they have the same + * general geometry. + * This means that things like areas, area names or line names are ignored. + * This only checks if the 2 sets of fragments have as many fragments, as many lines, and + * that those lines are at the same distance. + * + * @param {Array} fragments1 + * A list of gridFragment objects. + * @param {Array} fragments2 + * Another list of gridFragment objects to compare to the first list. + * @return {Boolean} + * True if the fragments are the same, false otherwise. + */ +function compareFragmentsGeometry(fragments1, fragments2) { + // Compare the number of fragments. + if (fragments1.length !== fragments2.length) { + return false; + } + + // Compare the number of areas, rows and columns. + for (let i = 0; i < fragments1.length; i++) { + if ( + fragments1[i].cols.lines.length !== fragments2[i].cols.lines.length || + fragments1[i].rows.lines.length !== fragments2[i].rows.lines.length + ) { + return false; + } + } + + // Compare the offset of lines. + for (let i = 0; i < fragments1.length; i++) { + for (let j = 0; j < fragments1[i].cols.lines.length; j++) { + if ( + fragments1[i].cols.lines[j].start !== fragments2[i].cols.lines[j].start + ) { + return false; + } + } + for (let j = 0; j < fragments1[i].rows.lines.length; j++) { + if ( + fragments1[i].rows.lines[j].start !== fragments2[i].rows.lines[j].start + ) { + return false; + } + } + } + + return true; +} + +module.exports.compareFragmentsGeometry = compareFragmentsGeometry; -- cgit v1.2.3