@datorama/akita
Version:
State Management Tailored-Made for JS Applications
51 lines • 5.54 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { isNil } from './isNil';
import { isObject } from './isObject';
import { isArray } from './isArray';
// @internal
/**
* @param {?} idOrOptions
* @param {?} ids
* @param {?} currentActive
* @return {?}
*/
export function getActiveEntities(idOrOptions, ids, currentActive) {
/** @type {?} */
let result;
if (isArray(idOrOptions)) {
result = idOrOptions;
}
else {
if (isObject(idOrOptions)) {
if (isNil(currentActive))
return;
((/** @type {?} */ (idOrOptions))) = Object.assign({ wrap: true }, idOrOptions);
/** @type {?} */
const currentIdIndex = ids.indexOf((/** @type {?} */ (currentActive)));
if (((/** @type {?} */ (idOrOptions))).prev) {
/** @type {?} */
const isFirst = currentIdIndex === 0;
if (isFirst && !((/** @type {?} */ (idOrOptions))).wrap)
return;
result = isFirst ? ids[ids.length - 1] : ((/** @type {?} */ (ids[currentIdIndex - 1])));
}
else if (((/** @type {?} */ (idOrOptions))).next) {
/** @type {?} */
const isLast = ids.length === currentIdIndex + 1;
if (isLast && !((/** @type {?} */ (idOrOptions))).wrap)
return;
result = isLast ? ids[0] : ((/** @type {?} */ (ids[currentIdIndex + 1])));
}
}
else {
if (idOrOptions === currentActive)
return;
result = (/** @type {?} */ (idOrOptions));
}
}
return result;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWN0aXZlRW50aXRpZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvZ2V0QWN0aXZlRW50aXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQUtwQyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsV0FBMEMsRUFBRSxHQUFTLEVBQUUsYUFBeUI7O1FBQzVHLE1BQU07SUFFVixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtRQUN4QixNQUFNLEdBQUcsV0FBVyxDQUFDO0tBQ3RCO1NBQU07UUFDTCxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6QixJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBQUUsT0FBTztZQUNqQyxDQUFDLG1CQUFBLFdBQVcsRUFBb0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7O2tCQUN6RSxjQUFjLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxhQUFhLEVBQU0sQ0FBQztZQUN2RCxJQUFJLENBQUMsbUJBQUEsV0FBVyxFQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFOztzQkFDcEMsT0FBTyxHQUFHLGNBQWMsS0FBSyxDQUFDO2dCQUNwQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsbUJBQUEsV0FBVyxFQUFvQixDQUFDLENBQUMsSUFBSTtvQkFBRSxPQUFPO2dCQUMvRCxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxHQUFHLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFPLENBQUMsQ0FBQzthQUMzRTtpQkFBTSxJQUFJLENBQUMsbUJBQUEsV0FBVyxFQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFOztzQkFDM0MsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssY0FBYyxHQUFHLENBQUM7Z0JBQ2hELElBQUksTUFBTSxJQUFJLENBQUMsQ0FBQyxtQkFBQSxXQUFXLEVBQW9CLENBQUMsQ0FBQyxJQUFJO29CQUFFLE9BQU87Z0JBQzlELE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxHQUFHLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFPLENBQUMsQ0FBQzthQUM3RDtTQUNGO2FBQU07WUFDTCxJQUFJLFdBQVcsS0FBSyxhQUFhO2dCQUFFLE9BQU87WUFDMUMsTUFBTSxHQUFHLG1CQUFBLFdBQVcsRUFBTSxDQUFDO1NBQzVCO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUQsIElEUyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuL2lzTmlsJztcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi9pc09iamVjdCc7XG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi9pc0FycmF5JztcblxuZXhwb3J0IHR5cGUgU2V0QWN0aXZlT3B0aW9ucyA9IHsgcHJldj86IGJvb2xlYW47IG5leHQ/OiBib29sZWFuOyB3cmFwPzogYm9vbGVhbiB9O1xuXG4vLyBAaW50ZXJuYWxcbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3RpdmVFbnRpdGllcyhpZE9yT3B0aW9uczogSURTIHwgU2V0QWN0aXZlT3B0aW9ucyB8IG51bGwsIGlkczogSURbXSwgY3VycmVudEFjdGl2ZTogSURTIHwgbnVsbCkge1xuICBsZXQgcmVzdWx0O1xuXG4gIGlmIChpc0FycmF5KGlkT3JPcHRpb25zKSkge1xuICAgIHJlc3VsdCA9IGlkT3JPcHRpb25zO1xuICB9IGVsc2Uge1xuICAgIGlmIChpc09iamVjdChpZE9yT3B0aW9ucykpIHtcbiAgICAgIGlmIChpc05pbChjdXJyZW50QWN0aXZlKSkgcmV0dXJuO1xuICAgICAgKGlkT3JPcHRpb25zIGFzIFNldEFjdGl2ZU9wdGlvbnMpID0gT2JqZWN0LmFzc2lnbih7IHdyYXA6IHRydWUgfSwgaWRPck9wdGlvbnMpO1xuICAgICAgY29uc3QgY3VycmVudElkSW5kZXggPSBpZHMuaW5kZXhPZihjdXJyZW50QWN0aXZlIGFzIElEKTtcbiAgICAgIGlmICgoaWRPck9wdGlvbnMgYXMgU2V0QWN0aXZlT3B0aW9ucykucHJldikge1xuICAgICAgICBjb25zdCBpc0ZpcnN0ID0gY3VycmVudElkSW5kZXggPT09IDA7XG4gICAgICAgIGlmIChpc0ZpcnN0ICYmICEoaWRPck9wdGlvbnMgYXMgU2V0QWN0aXZlT3B0aW9ucykud3JhcCkgcmV0dXJuO1xuICAgICAgICByZXN1bHQgPSBpc0ZpcnN0ID8gaWRzW2lkcy5sZW5ndGggLSAxXSA6IChpZHNbY3VycmVudElkSW5kZXggLSAxXSBhcyBhbnkpO1xuICAgICAgfSBlbHNlIGlmICgoaWRPck9wdGlvbnMgYXMgU2V0QWN0aXZlT3B0aW9ucykubmV4dCkge1xuICAgICAgICBjb25zdCBpc0xhc3QgPSBpZHMubGVuZ3RoID09PSBjdXJyZW50SWRJbmRleCArIDE7XG4gICAgICAgIGlmIChpc0xhc3QgJiYgIShpZE9yT3B0aW9ucyBhcyBTZXRBY3RpdmVPcHRpb25zKS53cmFwKSByZXR1cm47XG4gICAgICAgIHJlc3VsdCA9IGlzTGFzdCA/IGlkc1swXSA6IChpZHNbY3VycmVudElkSW5kZXggKyAxXSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaWRPck9wdGlvbnMgPT09IGN1cnJlbnRBY3RpdmUpIHJldHVybjtcbiAgICAgIHJlc3VsdCA9IGlkT3JPcHRpb25zIGFzIElEO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=