bool NamedLineCollection::isValidNamedLineOrArea(const String& namedLine, const RenderStyle& gridContainerStyle, GridPositionSide side) { bool isRowAxis = directionFromSide(side) == ForColumns; auto& gridLineNames = isRowAxis ? gridContainerStyle.namedGridColumnLines() : gridContainerStyle.namedGridRowLines(); auto& autoRepeatGridLineNames = isRowAxis ? gridContainerStyle.autoRepeatNamedGridColumnLines() : gridContainerStyle.autoRepeatNamedGridRowLines(); if (gridLineNames.contains(namedLine) || autoRepeatGridLineNames.contains(namedLine)) return true; String implicitName = implicitNamedGridLineForSide(namedLine, side); return gridLineNames.contains(implicitName) || autoRepeatGridLineNames.contains(implicitName); }
NamedLineCollection::NamedLineCollection(const RenderStyle& gridContainerStyle, const String& namedLine, GridTrackSizingDirection direction, unsigned lastLine, unsigned autoRepeatTracksCount) : m_lastLine(lastLine) , m_repetitions(autoRepeatTracksCount) { bool isRowAxis = direction == ForColumns; const NamedGridLinesMap& gridLineNames = isRowAxis ? gridContainerStyle.namedGridColumnLines() : gridContainerStyle.namedGridRowLines(); const NamedGridLinesMap& autoRepeatGridLineNames = isRowAxis ? gridContainerStyle.autoRepeatNamedGridColumnLines() : gridContainerStyle.autoRepeatNamedGridRowLines(); auto linesIterator = gridLineNames.find(namedLine); m_namedLinesIndexes = linesIterator == gridLineNames.end() ? nullptr : &linesIterator->value; auto autoRepeatLinesIterator = autoRepeatGridLineNames.find(namedLine); m_autoRepeatNamedLinesIndexes = autoRepeatLinesIterator == autoRepeatGridLineNames.end() ? nullptr : &autoRepeatLinesIterator->value; m_insertionPoint = isRowAxis ? gridContainerStyle.gridAutoRepeatColumnsInsertionPoint() : gridContainerStyle.gridAutoRepeatRowsInsertionPoint(); }