MCPcopy Create free account
hub / github.com/UI5/webcomponents / _getGridStartYear

Method _getGridStartYear

packages/main/src/YearRangePicker.ts:174–199  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

172 }
173
174 _getGridStartYear() {
175 const rangeSize = this._getRangeSize();
176 const pageSize = this._getPageSize();
177 const pageSizeInYears = rangeSize * pageSize;
178 const yearsOffset = rangeSize * this._getInitialFocusedIndex();
179 const currentStartYear = this._currentYearRange?.startYear ? this._currentYearRange?.startYear : this._calendarDate.getYear();
180
181 // On first load, current range should be the 3rd item in the grid
182 let gridStartYear = this._gridStartYear ? this._gridStartYear : currentStartYear - yearsOffset;
183
184 // If page navigation occured, update the current range start year
185 gridStartYear += Math.floor((currentStartYear - gridStartYear) / pageSizeInYears) * pageSizeInYears;
186
187 // Normalize grid start year to be between the min and absolute max year
188 const minYear = this._minDate.getYear();
189 if (currentStartYear - rangeSize < minYear) {
190 gridStartYear = minYear;
191 }
192
193 const absoluteMaxYear = getMaxCalendarDate(this._primaryCalendarType).getYear();
194 if (currentStartYear + pageSizeInYears > absoluteMaxYear) {
195 gridStartYear = absoluteMaxYear - pageSizeInYears + 1;
196 }
197
198 return gridStartYear;
199 }
200
201 _getYearRanges() {
202 const yearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this._primaryCalendarType });

Callers 1

onBeforeRenderingMethod · 0.95

Calls 5

_getRangeSizeMethod · 0.95
_getPageSizeMethod · 0.95
getMaxCalendarDateFunction · 0.85
getYearMethod · 0.80

Tested by

no test coverage detected