UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

131 lines (130 loc) 13.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ export class ArrayUtils { /** * @param {?} dataArray * @param {?} fromIndex * @param {?} toIndex * @return {?} */ static move(dataArray, fromIndex, toIndex) { if (dataArray === null || typeof dataArray === 'undefined' || dataArray.length <= 0) { return; } if (toIndex === null || typeof toIndex === 'undefined' || toIndex <= -1) { return; } if (fromIndex === null || typeof fromIndex === 'undefined' || fromIndex <= -1) { return; } if (fromIndex === toIndex) { return; } if (toIndex < dataArray.length && fromIndex < dataArray.length) { let /** @type {?} */ data = dataArray[fromIndex]; dataArray.splice(fromIndex, 1); dataArray.splice(toIndex, 0, data); } } /** * @param {?} dataArray * @param {?} item * @param {?} toIndex * @return {?} */ static insert(dataArray, item, toIndex) { if (dataArray === null || typeof dataArray === 'undefined' || dataArray.length <= 0) { return; } if (toIndex === null || typeof toIndex === 'undefined' || toIndex <= -1) { return; } dataArray.splice(toIndex, 0, item); } /** * @param {?} objectArray * @param {?} typeOf * @return {?} */ static isAllMemberTypeOf(objectArray, typeOf) { if (objectArray === null || typeof objectArray === 'undefined') { throw new Error("objectArray is null or undefined"); } if (!Array.isArray(objectArray)) { throw new Error("objectArray is not array"); } if (objectArray.length <= 0) { return false; } for (let /** @type {?} */ obj of objectArray) { if (typeof obj !== typeOf) { return false; } } return true; } /** * @param {?} objectArray * @param {?} propKey * @return {?} */ static isAllMemberHasProperty(objectArray, propKey) { if (objectArray === null || typeof objectArray === 'undefined') { throw new Error("objectArray is null or undefined"); } if (!Array.isArray(objectArray)) { throw new Error("objectArray is not array"); } if (propKey === null || typeof propKey !== 'string') { throw new Error("propKey must be a string: " + (typeof propKey)); } if (objectArray.length <= 0) { return false; } for (let /** @type {?} */ obj of objectArray) { if (obj === null || typeof obj === 'undefined') { return false; } if (obj[/** @type {?} */ (propKey)] === undefined) { return false; } } return true; } /** * @param {?} objectArray * @param {?} propKey * @param {?} typeOf * @return {?} */ static isAllMemberHasPropertyTypeOf(objectArray, propKey, typeOf) { if (objectArray === null || typeof objectArray === 'undefined') { throw new Error("objectArray is null or undefined"); } if (!Array.isArray(objectArray)) { throw new Error("objectArray is not array"); } if (propKey === null || typeof propKey !== 'string') { throw new Error("propKey must be a string: " + (typeof propKey)); } if (objectArray.length <= 0) { return false; } for (let /** @type {?} */ obj of objectArray) { if (obj === null || typeof obj === 'undefined') { return false; } if (obj[/** @type {?} */ (propKey)] === undefined) { return false; } if (typeof obj[/** @type {?} */ (propKey)] !== typeOf) { return false; } } return true; } } ; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXlVdGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL3NoYXJlL3V0aWxzL0FycmF5VXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE1BQU07Ozs7Ozs7SUFFSyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQWdCLEVBQUUsU0FBaUIsRUFBRSxPQUFlO1FBQ25FLEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRixNQUFNLENBQUM7U0FDVjtRQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEUsTUFBTSxDQUFDO1NBQ1Y7UUFFRCxFQUFFLENBQUMsQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sQ0FBQztTQUNWO1FBRUQsRUFBRSxDQUFDLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDeEIsTUFBTSxDQUFDO1NBQ1Y7UUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0QscUJBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVoQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvQixTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FD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QUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQXJyYXlVdGlscyB7XG5cbiAgICBwdWJsaWMgc3RhdGljIG1vdmUoZGF0YUFycmF5OiBhbnlbXSwgZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAoZGF0YUFycmF5ID09PSBudWxsIHx8IHR5cGVvZiBkYXRhQXJyYXkgPT09ICd1bmRlZmluZWQnIHx8IGRhdGFBcnJheS5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRvSW5kZXggPT09IG51bGwgfHwgdHlwZW9mIHRvSW5kZXggPT09ICd1bmRlZmluZWQnIHx8IHRvSW5kZXggPD0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcm9tSW5kZXggPT09IG51bGwgfHwgdHlwZW9mIGZyb21JbmRleCA9PT0gJ3VuZGVmaW5lZCcgfHwgZnJvbUluZGV4IDw9IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnJvbUluZGV4ID09PSB0b0luZGV4KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9JbmRleCA8IGRhdGFBcnJheS5sZW5ndGggJiYgZnJvbUluZGV4IDwgZGF0YUFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IGRhdGEgPSBkYXRhQXJyYXlbZnJvbUluZGV4XTtcblxuICAgICAgICAgICAgZGF0YUFycmF5LnNwbGljZShmcm9tSW5kZXgsIDEpO1xuICAgICAgICAgICAgZGF0YUFycmF5LnNwbGljZSh0b0luZGV4LCAwLCBkYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zZXJ0KGRhdGFBcnJheTogYW55W10sIGl0ZW06IGFueSwgdG9JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChkYXRhQXJyYXkgPT09IG51bGwgfHwgdHlwZW9mIGRhdGFBcnJheSA9PT0gJ3VuZGVmaW5lZCcgfHwgZGF0YUFycmF5Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9JbmRleCA9PT0gbnVsbCB8fCB0eXBlb2YgdG9JbmRleCA9PT0gJ3VuZGVmaW5lZCcgfHwgdG9JbmRleCA8PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YUFycmF5LnNwbGljZSh0b0luZGV4LCAwLCBpdGVtKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzQWxsTWVtYmVyVHlwZU9mKG9iamVjdEFycmF5OiBhbnlbXSwgdHlwZU9mOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgIGlmKG9iamVjdEFycmF5ID09PSBudWxsIHx8IHR5cGVvZiBvYmplY3RBcnJheSA9PT0gJ3VuZGVmaW5lZCcpe1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJvYmplY3RBcnJheSBpcyBudWxsIG9yIHVuZGVmaW5lZFwiKTtcbiAgICAgIH1cblxuICAgICAgaWYoIUFycmF5LmlzQXJyYXkob2JqZWN0QXJyYXkpKXtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwib2JqZWN0QXJyYXkgaXMgbm90IGFycmF5XCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAob2JqZWN0QXJyYXkubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBmb3IobGV0IG9iaiBvZiBvYmplY3RBcnJheSl7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqICE9PSB0eXBlT2YpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc0FsbE1lbWJlckhhc1Byb3BlcnR5KG9iamVjdEFycmF5OiBhbnlbXSwgcHJvcEtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICBpZihvYmplY3RBcnJheSA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqZWN0QXJyYXkgPT09ICd1bmRlZmluZWQnKXtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwib2JqZWN0QXJyYXkgaXMgbnVsbCBvciB1bmRlZmluZWRcIik7XG4gICAgICB9XG5cbiAgICAgIGlmKCFBcnJheS5pc0FycmF5KG9iamVjdEFycmF5KSl7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm9iamVjdEFycmF5IGlzIG5vdCBhcnJheVwiKTtcbiAgICAgIH1cblxuICAgICAgaWYocHJvcEtleSA9PT0gbnVsbCB8fCB0eXBlb2YgcHJvcEtleSAhPT0gJ3N0cmluZycpe1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwcm9wS2V5IG11c3QgYmUgYSBzdHJpbmc6IFwiICsgKHR5cGVvZiBwcm9wS2V5KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvYmplY3RBcnJheS5sZW5ndGggPD0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGZvcihsZXQgb2JqIG9mIG9iamVjdEFycmF5KXtcbiAgICAgICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqWzxzdHJpbmc+cHJvcEtleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzQWxsTWVtYmVySGFzUHJvcGVydHlUeXBlT2Yob2JqZWN0QXJyYXk6IGFueVtdLCBwcm9wS2V5OiBzdHJpbmcsIHR5cGVPZjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICBpZihvYmplY3RBcnJheSA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqZWN0QXJyYXkgPT09ICd1bmRlZmluZWQnKXtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwib2JqZWN0QXJyYXkgaXMgbnVsbCBvciB1bmRlZmluZWRcIik7XG4gICAgICB9XG5cbiAgICAgIGlmKCFBcnJheS5pc0FycmF5KG9iamVjdEFycmF5KSl7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIm9iamVjdEFycmF5IGlzIG5vdCBhcnJheVwiKTtcbiAgICAgIH1cblxuICAgICAgaWYocHJvcEtleSA9PT0gbnVsbCB8fCB0eXBlb2YgcHJvcEtleSAhPT0gJ3N0cmluZycpe1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwcm9wS2V5IG11c3QgYmUgYSBzdHJpbmc6IFwiICsgKHR5cGVvZiBwcm9wS2V5KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvYmplY3RBcnJheS5sZW5ndGggPD0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGZvcihsZXQgb2JqIG9mIG9iamVjdEFycmF5KXtcbiAgICAgICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqWzxzdHJpbmc+cHJvcEtleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9ials8c3RyaW5nPnByb3BLZXldICE9PSB0eXBlT2YpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG59O1xuIl19