UNPKG

ornamentum

Version:
134 lines 10.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { ReplaySubject, of } from 'rxjs'; import { switchMap } from 'rxjs/operators'; import { get } from '../../utility/services/object-utility.class'; /** * Dropdown resource service. Dropdown client side data query is handled via this service. * @template T */ var DropdownResourceService = /** @class */ (function () { function DropdownResourceService() { } /** * Set source data source. * @param dataSource Data source observable. */ /** * Set source data source. * @param {?} dataSource Data source observable. * @return {?} */ DropdownResourceService.prototype.setDataSource = /** * Set source data source. * @param {?} dataSource Data source observable. * @return {?} */ function (dataSource) { var _this = this; this.dispose(); if (this.optionDataStream && !this.optionDataStream.closed) { this.optionDataStream.complete(); } this.optionDataStream = new ReplaySubject(1); this.dataSourceSubscription = dataSource.subscribe((/** * @param {?} options * @return {?} */ function (options) { _this.optionDataStream.next(options); })); }; /** * Query data. * @param params Dropdown request parameters. */ /** * Query data. * @param {?} params Dropdown request parameters. * @return {?} */ DropdownResourceService.prototype.query = /** * Query data. * @param {?} params Dropdown request parameters. * @return {?} */ function (params) { return this.optionDataStream.pipe(switchMap((/** * @param {?} options * @return {?} */ function (options) { /** @type {?} */ var result = options.slice(); if (params.filter && params.filter.value) { /** @type {?} */ var value_1 = String(params.filter.value).toLowerCase(); result = result.filter((/** * @param {?} option * @return {?} */ function (option) { /** @type {?} */ var key = String(get(option, params.filter.key)).toLowerCase(); return key.includes(value_1); })); } if (params.offset !== undefined) { /** @type {?} */ var offset = params.offset + 1 > result.length ? 0 : params.offset; if (params.limit === undefined) { result = result.slice(offset, result.length); } else { result = result.slice(offset, offset + params.limit); } } return of({ options: result, count: options.length }); }))); }; /** * Dispose data source. */ /** * Dispose data source. * @return {?} */ DropdownResourceService.prototype.dispose = /** * Dispose data source. * @return {?} */ function () { if (this.dataSourceSubscription) { this.dataSourceSubscription.unsubscribe(); this.dataSourceSubscription = null; } if (this.optionDataStream && !this.optionDataStream.closed) { this.optionDataStream.complete(); } }; DropdownResourceService.decorators = [ { type: Injectable } ]; return DropdownResourceService; }()); export { DropdownResourceService }; if (false) { /** * @type {?} * @private */ DropdownResourceService.prototype.optionDataStream; /** * @type {?} * @private */ DropdownResourceService.prototype.dataSourceSubscription; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tcmVzb3VyY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL29ybmFtZW50dW0vIiwic291cmNlcyI6WyJkcm9wZG93bi9zZXJ2aWNlcy9kcm9wZG93bi1yZXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7OztBQVFsRTtJQUFBO0lBc0VBLENBQUM7SUFqRUM7OztPQUdHOzs7Ozs7SUFDSSwrQ0FBYTs7Ozs7SUFBcEIsVUFBcUIsVUFBMkI7UUFBaEQsaUJBV0M7UUFWQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFZixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsT0FBWTtZQUM5RCxLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRzs7Ozs7O0lBQ0ksdUNBQUs7Ozs7O0lBQVosVUFBYSxNQUE2QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQy9CLFNBQVM7Ozs7UUFBQyxVQUFDLE9BQVk7O2dCQUNqQixNQUFNLEdBQVEsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUVqQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUU7O29CQUNsQyxPQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFO2dCQUN2RCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU07Ozs7Z0JBQUMsVUFBQyxNQUFTOzt3QkFDekIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7b0JBQ2hFLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFLLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxFQUFDLENBQUM7YUFDSjtZQUVELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7O29CQUN6QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFFcEUsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtvQkFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDOUM7cUJBQU07b0JBQ0wsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7WUFFRCxPQUFPLEVBQUUsQ0FBQztnQkFDUixPQUFPLEVBQUUsTUFBTTtnQkFDZixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU07YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRzs7Ozs7SUFDSSx5Q0FBTzs7OztJQUFkO1FBQ0UsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7U0FDcEM7UUFFRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7Z0JBckVGLFVBQVU7O0lBc0VYLDhCQUFDO0NBQUEsQUF0RUQsSUFzRUM7U0FyRVksdUJBQXVCOzs7Ozs7SUFDbEMsbURBQTZDOzs7OztJQUM3Qyx5REFBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnLi4vLi4vdXRpbGl0eS9zZXJ2aWNlcy9vYmplY3QtdXRpbGl0eS5jbGFzcyc7XG5cbmltcG9ydCB7IERyb3Bkb3duUXVlcnlSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvZHJvcGRvd24tcXVlcnktcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7IERyb3Bkb3duUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4uL21vZGVscy9kcm9wZG93bi1yZXF1ZXN0LXBhcmFtcy5tb2RlbCc7XG5cbi8qKlxuICogRHJvcGRvd24gcmVzb3VyY2Ugc2VydmljZS4gRHJvcGRvd24gY2xpZW50IHNpZGUgZGF0YSBxdWVyeSBpcyBoYW5kbGVkIHZpYSB0aGlzIHNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEcm9wZG93blJlc291cmNlU2VydmljZTxUPiB7XG4gIHByaXZhdGUgb3B0aW9uRGF0YVN0cmVhbTogUmVwbGF5U3ViamVjdDxUW10+O1xuICBwcml2YXRlIGRhdGFTb3VyY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0IHNvdXJjZSBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIGRhdGFTb3VyY2UgRGF0YSBzb3VyY2Ugb2JzZXJ2YWJsZS5cbiAgICovXG4gIHB1YmxpYyBzZXREYXRhU291cmNlKGRhdGFTb3VyY2U6IE9ic2VydmFibGU8VFtdPik6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZSgpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9uRGF0YVN0cmVhbSAmJiAhdGhpcy5vcHRpb25EYXRhU3RyZWFtLmNsb3NlZCkge1xuICAgICAgdGhpcy5vcHRpb25EYXRhU3RyZWFtLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25EYXRhU3RyZWFtID0gbmV3IFJlcGxheVN1YmplY3Q8VFtdPigxKTtcbiAgICB0aGlzLmRhdGFTb3VyY2VTdWJzY3JpcHRpb24gPSBkYXRhU291cmNlLnN1YnNjcmliZSgob3B0aW9uczogVFtdKSA9PiB7XG4gICAgICB0aGlzLm9wdGlvbkRhdGFTdHJlYW0ubmV4dChvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyeSBkYXRhLlxuICAgKiBAcGFyYW0gcGFyYW1zIERyb3Bkb3duIHJlcXVlc3QgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBxdWVyeShwYXJhbXM6IERyb3Bkb3duUmVxdWVzdFBhcmFtcyk6IE9ic2VydmFibGU8RHJvcGRvd25RdWVyeVJlc3VsdDxUPj4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbkRhdGFTdHJlYW0ucGlwZShcbiAgICAgIHN3aXRjaE1hcCgob3B0aW9uczogVFtdKSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQ6IFRbXSA9IG9wdGlvbnMuc2xpY2UoKTtcblxuICAgICAgICBpZiAocGFyYW1zLmZpbHRlciAmJiBwYXJhbXMuZmlsdGVyLnZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBTdHJpbmcocGFyYW1zLmZpbHRlci52YWx1ZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQuZmlsdGVyKChvcHRpb246IFQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IFN0cmluZyhnZXQob3B0aW9uLCBwYXJhbXMuZmlsdGVyLmtleSkpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4ga2V5LmluY2x1ZGVzKHZhbHVlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJhbXMub2Zmc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCBvZmZzZXQgPSBwYXJhbXMub2Zmc2V0ICsgMSA+IHJlc3VsdC5sZW5ndGggPyAwIDogcGFyYW1zLm9mZnNldDtcblxuICAgICAgICAgIGlmIChwYXJhbXMubGltaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnNsaWNlKG9mZnNldCwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zbGljZShvZmZzZXQsIG9mZnNldCArIHBhcmFtcy5saW1pdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgICBvcHRpb25zOiByZXN1bHQsXG4gICAgICAgICAgY291bnQ6IG9wdGlvbnMubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3Bvc2UgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgZGlzcG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZVN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uRGF0YVN0cmVhbSAmJiAhdGhpcy5vcHRpb25EYXRhU3RyZWFtLmNsb3NlZCkge1xuICAgICAgdGhpcy5vcHRpb25EYXRhU3RyZWFtLmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=