@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
35 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildMediaProgessBarAriaLabel = exports.mediaProgressBarIndex = void 0;
const mediaProgressBar_1 = require("../types/mediaProgressBar");
const mediaProgressBarIndex = ({ index, barsNum, currentBar, device, maxBars, }) => {
const MAX_NUMBER_OF_BARS = maxBars?.[device] || maxBars?.default;
const lastBarIndex = barsNum - 1;
if (!MAX_NUMBER_OF_BARS)
return index;
// avoid render more bars than MAX_NUMBER_OF_BARS
if (index >= MAX_NUMBER_OF_BARS)
return;
// currentBar goes to the last bar when number of bars is greater than MAX_NUMBER_OF_BARS
if (currentBar === lastBarIndex && barsNum > MAX_NUMBER_OF_BARS) {
return index + (currentBar + 1 - MAX_NUMBER_OF_BARS);
// currentBar stays in the next to last bar when there is more bars than MAX_NUMBER_OF_BARS
}
else if (currentBar + 2 >= MAX_NUMBER_OF_BARS && currentBar !== lastBarIndex) {
return index + (currentBar + 2 - MAX_NUMBER_OF_BARS);
}
return index;
};
exports.mediaProgressBarIndex = mediaProgressBarIndex;
const buildMediaProgessBarAriaLabel = (currentBar, barsNum, barAriaLabel) => {
if (!barAriaLabel) {
return barAriaLabel;
}
const currentPageRegExp = new RegExp(mediaProgressBar_1.BUILD_SCREEN_READER_CURRENT_PAGE_KEY, 'g');
const numPagesRegExp = new RegExp(mediaProgressBar_1.BUILD_SCREEN_READER_NUM_PAGES_KEY, 'g');
return barAriaLabel
.replace(currentPageRegExp, String(currentBar + 1))
.replace(numPagesRegExp, String(barsNum));
};
exports.buildMediaProgessBarAriaLabel = buildMediaProgessBarAriaLabel;
//# sourceMappingURL=mediaProgressBarUtils.js.map