@delon/abc
Version:
Common business components of ng-alain.
74 lines • 9.28 kB
JavaScript
import { ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';
import { RouteReuseStrategy } from '@angular/router';
import { REUSE_TAB_CACHED_MANAGER, ReuseTabCachedManagerFactory } from './reuse-tab.cache';
import { ReuseTabService } from './reuse-tab.service';
import { REUSE_TAB_STORAGE_KEY, REUSE_TAB_STORAGE_STATE, ReuseTabLocalStorageState } from './reuse-tab.state';
import { ReuseTabStrategy } from './reuse-tab.strategy';
export var ReuseTabFeatureKind;
(function (ReuseTabFeatureKind) {
ReuseTabFeatureKind[ReuseTabFeatureKind["CacheManager"] = 0] = "CacheManager";
ReuseTabFeatureKind[ReuseTabFeatureKind["Store"] = 1] = "Store";
})(ReuseTabFeatureKind || (ReuseTabFeatureKind = {}));
function makeFeature(kind, providers) {
return {
ɵkind: kind,
ɵproviders: providers
};
}
/**
* Configures reuse-tab to be available for injection.
*
* @see {@link withLocalStorage}
* @see {@link withCacheManager}
*/
export function provideReuseTabConfig(options) {
const providers = [
ReuseTabService,
{
provide: REUSE_TAB_STORAGE_KEY,
useValue: options?.storeKey ?? '_reuse-tab-state'
},
(options?.cacheManager ?? withCacheManager()).ɵproviders,
(options?.store ?? withLocalStorage()).ɵproviders,
{
provide: RouteReuseStrategy,
useClass: ReuseTabStrategy,
deps: [ReuseTabService]
},
{
provide: ENVIRONMENT_INITIALIZER,
multi: true,
useValue: () => {
const srv = inject(ReuseTabService);
if (options?.debug)
srv.debug = options.debug;
if (options?.mode)
srv.mode = options.mode;
if (options?.routeParamMatchMode)
srv.routeParamMatchMode = options.routeParamMatchMode;
if (options?.max)
srv.max = options.max;
if (options?.excludes)
srv.excludes = options.excludes;
}
}
];
return makeEnvironmentProviders(providers);
}
export function withCacheManager() {
return makeFeature(ReuseTabFeatureKind.CacheManager, [
{
provide: REUSE_TAB_CACHED_MANAGER,
useFactory: () => new ReuseTabCachedManagerFactory()
}
]);
}
export function withLocalStorage() {
return makeFeature(ReuseTabFeatureKind.Store, [
{
provide: REUSE_TAB_STORAGE_STATE,
useFactory: () => new ReuseTabLocalStorageState()
}
]);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FiYy9yZXVzZS10YWIvcHJvdmlkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLE1BQU0sRUFDTix3QkFBd0IsRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBTixJQUFZLG1CQUdYO0FBSEQsV0FBWSxtQkFBbUI7SUFDN0IsNkVBQVksQ0FBQTtJQUNaLCtEQUFLLENBQUE7QUFDUCxDQUFDLEVBSFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUc5QjtBQU9ELFNBQVMsV0FBVyxDQUFvQyxJQUFXLEVBQUUsU0FBcUI7SUFDeEYsT0FBTztRQUNMLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLFNBQVM7S0FDdEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQVNyQztJQUNDLE1BQU0sU0FBUyxHQUFlO1FBQzVCLGVBQWU7UUFDZjtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLElBQUksa0JBQWtCO1NBQ2xEO1FBQ0QsQ0FBQyxPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxVQUFVO1FBQ3hELENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsVUFBVTtRQUNqRDtZQUNFLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUM7U0FDeEI7UUFDRDtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNiLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxPQUFPLEVBQUUsS0FBSztvQkFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzlDLElBQUksT0FBTyxFQUFFLElBQUk7b0JBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUMzQyxJQUFJLE9BQU8sRUFBRSxtQkFBbUI7b0JBQUUsR0FBRyxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztnQkFDeEYsSUFBSSxPQUFPLEVBQUUsR0FBRztvQkFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ3hDLElBQUksT0FBTyxFQUFFLFFBQVE7b0JBQUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3pELENBQUM7U0FDRjtLQUNGLENBQUM7SUFFRixPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sV0FBVyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRTtRQUNuRDtZQUNFLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksNEJBQTRCLEVBQUU7U0FDckQ7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUU7UUFDNUM7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHlCQUF5QixFQUFFO1NBQ2xEO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgUHJvdmlkZXIsXG4gIGluamVjdCxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVSZXVzZVN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgUkVVU0VfVEFCX0NBQ0hFRF9NQU5BR0VSLCBSZXVzZVRhYkNhY2hlZE1hbmFnZXJGYWN0b3J5IH0gZnJvbSAnLi9yZXVzZS10YWIuY2FjaGUnO1xuaW1wb3J0IHsgUmV1c2VUYWJNYXRjaE1vZGUsIFJldXNlVGFiUm91dGVQYXJhbU1hdGNoTW9kZSB9IGZyb20gJy4vcmV1c2UtdGFiLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgUmV1c2VUYWJTZXJ2aWNlIH0gZnJvbSAnLi9yZXVzZS10YWIuc2VydmljZSc7XG5pbXBvcnQgeyBSRVVTRV9UQUJfU1RPUkFHRV9LRVksIFJFVVNFX1RBQl9TVE9SQUdFX1NUQVRFLCBSZXVzZVRhYkxvY2FsU3RvcmFnZVN0YXRlIH0gZnJvbSAnLi9yZXVzZS10YWIuc3RhdGUnO1xuaW1wb3J0IHsgUmV1c2VUYWJTdHJhdGVneSB9IGZyb20gJy4vcmV1c2UtdGFiLnN0cmF0ZWd5JztcblxuZXhwb3J0IGVudW0gUmV1c2VUYWJGZWF0dXJlS2luZCB7XG4gIENhY2hlTWFuYWdlcixcbiAgU3RvcmVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXVzZVRhYkZlYXR1cmU8S2luZFQgZXh0ZW5kcyBSZXVzZVRhYkZlYXR1cmVLaW5kPiB7XG4gIMm1a2luZDogS2luZFQ7XG4gIMm1cHJvdmlkZXJzOiBQcm92aWRlcltdO1xufVxuXG5mdW5jdGlvbiBtYWtlRmVhdHVyZTxLaW5kVCBleHRlbmRzIFJldXNlVGFiRmVhdHVyZUtpbmQ+KGtpbmQ6IEtpbmRULCBwcm92aWRlcnM6IFByb3ZpZGVyW10pOiBSZXVzZVRhYkZlYXR1cmU8S2luZFQ+IHtcbiAgcmV0dXJuIHtcbiAgICDJtWtpbmQ6IGtpbmQsXG4gICAgybVwcm92aWRlcnM6IHByb3ZpZGVyc1xuICB9O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgcmV1c2UtdGFiIHRvIGJlIGF2YWlsYWJsZSBmb3IgaW5qZWN0aW9uLlxuICpcbiAqIEBzZWUge0BsaW5rIHdpdGhMb2NhbFN0b3JhZ2V9XG4gKiBAc2VlIHtAbGluayB3aXRoQ2FjaGVNYW5hZ2VyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVJldXNlVGFiQ29uZmlnKG9wdGlvbnM/OiB7XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgbW9kZT86IFJldXNlVGFiTWF0Y2hNb2RlO1xuICByb3V0ZVBhcmFtTWF0Y2hNb2RlPzogUmV1c2VUYWJSb3V0ZVBhcmFtTWF0Y2hNb2RlO1xuICBtYXg/OiBudW1iZXI7XG4gIGV4Y2x1ZGVzPzogUmVnRXhwW107XG4gIHN0b3JlS2V5Pzogc3RyaW5nO1xuICBjYWNoZU1hbmFnZXI/OiBSZXVzZVRhYkZlYXR1cmU8UmV1c2VUYWJGZWF0dXJlS2luZC5DYWNoZU1hbmFnZXI+O1xuICBzdG9yZT86IFJldXNlVGFiRmVhdHVyZTxSZXVzZVRhYkZlYXR1cmVLaW5kLlN0b3JlPjtcbn0pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICBSZXVzZVRhYlNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogUkVVU0VfVEFCX1NUT1JBR0VfS0VZLFxuICAgICAgdXNlVmFsdWU6IG9wdGlvbnM/LnN0b3JlS2V5ID8/ICdfcmV1c2UtdGFiLXN0YXRlJ1xuICAgIH0sXG4gICAgKG9wdGlvbnM/LmNhY2hlTWFuYWdlciA/PyB3aXRoQ2FjaGVNYW5hZ2VyKCkpLsm1cHJvdmlkZXJzLFxuICAgIChvcHRpb25zPy5zdG9yZSA/PyB3aXRoTG9jYWxTdG9yYWdlKCkpLsm1cHJvdmlkZXJzLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSxcbiAgICAgIHVzZUNsYXNzOiBSZXVzZVRhYlN0cmF0ZWd5LFxuICAgICAgZGVwczogW1JldXNlVGFiU2VydmljZV1cbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VWYWx1ZTogKCkgPT4ge1xuICAgICAgICBjb25zdCBzcnYgPSBpbmplY3QoUmV1c2VUYWJTZXJ2aWNlKTtcbiAgICAgICAgaWYgKG9wdGlvbnM/LmRlYnVnKSBzcnYuZGVidWcgPSBvcHRpb25zLmRlYnVnO1xuICAgICAgICBpZiAob3B0aW9ucz8ubW9kZSkgc3J2Lm1vZGUgPSBvcHRpb25zLm1vZGU7XG4gICAgICAgIGlmIChvcHRpb25zPy5yb3V0ZVBhcmFtTWF0Y2hNb2RlKSBzcnYucm91dGVQYXJhbU1hdGNoTW9kZSA9IG9wdGlvbnMucm91dGVQYXJhbU1hdGNoTW9kZTtcbiAgICAgICAgaWYgKG9wdGlvbnM/Lm1heCkgc3J2Lm1heCA9IG9wdGlvbnMubWF4O1xuICAgICAgICBpZiAob3B0aW9ucz8uZXhjbHVkZXMpIHNydi5leGNsdWRlcyA9IG9wdGlvbnMuZXhjbHVkZXM7XG4gICAgICB9XG4gICAgfVxuICBdO1xuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMocHJvdmlkZXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDYWNoZU1hbmFnZXIoKTogUmV1c2VUYWJGZWF0dXJlPFJldXNlVGFiRmVhdHVyZUtpbmQuQ2FjaGVNYW5hZ2VyPiB7XG4gIHJldHVybiBtYWtlRmVhdHVyZShSZXVzZVRhYkZlYXR1cmVLaW5kLkNhY2hlTWFuYWdlciwgW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJFVVNFX1RBQl9DQUNIRURfTUFOQUdFUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IG5ldyBSZXVzZVRhYkNhY2hlZE1hbmFnZXJGYWN0b3J5KClcbiAgICB9XG4gIF0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aExvY2FsU3RvcmFnZSgpOiBSZXVzZVRhYkZlYXR1cmU8UmV1c2VUYWJGZWF0dXJlS2luZC5TdG9yZT4ge1xuICByZXR1cm4gbWFrZUZlYXR1cmUoUmV1c2VUYWJGZWF0dXJlS2luZC5TdG9yZSwgW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJFVVNFX1RBQl9TVE9SQUdFX1NUQVRFLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4gbmV3IFJldXNlVGFiTG9jYWxTdG9yYWdlU3RhdGUoKVxuICAgIH1cbiAgXSk7XG59XG4iXX0=