@ssv/ngx.command
Version:
Command pattern implementation for angular. Command used to encapsulate information which is needed to perform an action.
27 lines • 4.29 kB
JavaScript
import { InjectionToken, makeEnvironmentProviders } from "@angular/core";
const DEFAULT_OPTIONS = Object.freeze({
executingCssClass: "executing",
handleDisabled: true,
hasDisabledDelay: false,
});
export const COMMAND_OPTIONS = new InjectionToken("SSV_COMMAND_OPTIONS", {
factory: () => DEFAULT_OPTIONS,
});
export function provideSsvCommandOptions(options) {
return makeEnvironmentProviders([
{
provide: COMMAND_OPTIONS,
useFactory: () => {
let opts = typeof options === "function" ? options(DEFAULT_OPTIONS) : options;
opts = opts
? {
...DEFAULT_OPTIONS,
...opts,
}
: DEFAULT_OPTIONS;
return opts;
},
},
]);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9uZ3guY29tbWFuZC9zcmMvY29tbWFuZC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkIsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0JwRyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFpQjtJQUNyRCxpQkFBaUIsRUFBRSxXQUFXO0lBQzlCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGdCQUFnQixFQUFFLEtBQUs7Q0FDdkIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFpQixxQkFBcUIsRUFBRTtJQUN4RixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZTtDQUM5QixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsd0JBQXdCLENBQ3ZDLE9BQW9HO0lBRXBHLE9BQU8sd0JBQXdCLENBQUM7UUFDL0I7WUFDQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUNoQixJQUFJLElBQUksR0FBRyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUM5RSxJQUFJLEdBQUcsSUFBSTtvQkFDVixDQUFDLENBQUM7d0JBQ0QsR0FBRyxlQUFlO3dCQUNsQixHQUFHLElBQUk7cUJBQ1A7b0JBQ0QsQ0FBQyxDQUFDLGVBQWUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDO1NBQ0Q7S0FDRCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZE9wdGlvbnMge1xuXHQvKipcblx0ICogQ3NzIENsYXNzIHdoaWNoIGdldHMgYWRkZWQvcmVtb3ZlZCBvbiB0aGUgQ29tbWFuZCBlbGVtZW50J3MgaG9zdCB3aGlsZSBDb21tYW5kIGBpc0V4ZWN1dGluZyRgLlxuXHQgKi9cblx0ZXhlY3V0aW5nQ3NzQ2xhc3M6IHN0cmluZztcblxuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBkaXNhYmxlZCB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIGRpcmVjdGl2ZSBvciBub3QuXG5cdCAqIERpc2FibGUgaGFuZGxlZCBieSBkaXJlY3RpdmUncyBkb2Vzbid0IGFsd2F5cyBwbGF5IG5pY2Ugd2hlbiB1c2VkIHdpdGggb3RoZXIgY29tcG9uZW50L3BpcGUvZGlyZWN0aXZlIGFuZCB0aGV5IGFsc28gaGFuZGxlIGRpc2FibGVkLlxuXHQgKiBUaGlzIGRpc2FibGVzIHRoZSBoYW5kbGluZyBtYW51YWxseSBhbmQgbmVlZCB0byBwYXNzIGV4cGxpY2l0bHkgYFtkaXNhYmxlZF09XCIhc2F2ZUNtZC5jYW5FeGVjdXRlXCJgLlxuXHQgKi9cblx0aGFuZGxlRGlzYWJsZWQ6IGJvb2xlYW47XG5cblx0LyoqIERldGVybWluZSB3aGV0aGVyIHRvIHNldCBhIGBkZWxheSgxKWAgd2hlbiBzZXR0aW5nIHRoZSBkaXNhYmxlZC4gV2hpY2ggbWlnaHQgYmUgbmVlZGVkIHdoZW4gd29ya2luZyB3aXRoIGV4dGVybmFsXG5cdCAqIGNvbXBvbmVudHMvZGlyZWN0aXZlcyAoc3VjaCBhcyBtYXRlcmlhbCBidXR0b24pXG5cdCAqL1xuXHRoYXNEaXNhYmxlZERlbGF5OiBib29sZWFuO1xufVxuXG5jb25zdCBERUZBVUxUX09QVElPTlMgPSBPYmplY3QuZnJlZXplPENvbW1hbmRPcHRpb25zPih7XG5cdGV4ZWN1dGluZ0Nzc0NsYXNzOiBcImV4ZWN1dGluZ1wiLFxuXHRoYW5kbGVEaXNhYmxlZDogdHJ1ZSxcblx0aGFzRGlzYWJsZWREZWxheTogZmFsc2UsXG59KTtcblxuZXhwb3J0IGNvbnN0IENPTU1BTkRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21tYW5kT3B0aW9ucz4oXCJTU1ZfQ09NTUFORF9PUFRJT05TXCIsIHtcblx0ZmFjdG9yeTogKCkgPT4gREVGQVVMVF9PUFRJT05TLFxufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlU3N2Q29tbWFuZE9wdGlvbnMoXG5cdG9wdGlvbnM6IFBhcnRpYWw8Q29tbWFuZE9wdGlvbnM+IHwgKChkZWZhdWx0czogUmVhZG9ubHk8Q29tbWFuZE9wdGlvbnM+KSA9PiBQYXJ0aWFsPENvbW1hbmRPcHRpb25zPilcbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcblx0cmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQ09NTUFORF9PUFRJT05TLFxuXHRcdFx0dXNlRmFjdG9yeTogKCkgPT4ge1xuXHRcdFx0XHRsZXQgb3B0cyA9IHR5cGVvZiBvcHRpb25zID09PSBcImZ1bmN0aW9uXCIgPyBvcHRpb25zKERFRkFVTFRfT1BUSU9OUykgOiBvcHRpb25zO1xuXHRcdFx0XHRvcHRzID0gb3B0c1xuXHRcdFx0XHRcdD8ge1xuXHRcdFx0XHRcdFx0Li4uREVGQVVMVF9PUFRJT05TLFxuXHRcdFx0XHRcdFx0Li4ub3B0cyxcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0OiBERUZBVUxUX09QVElPTlM7XG5cdFx0XHRcdHJldHVybiBvcHRzO1xuXHRcdFx0fSxcblx0XHR9LFxuXHRdKTtcbn1cbiJdfQ==