ngssm-store 16.1.4 → 16.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/esm2022/visibility/ngssm-store-visibility.mjs +5 -0
  2. package/esm2022/visibility/public_api.mjs +2 -0
  3. package/esm2022/visibility/src/actions/define-elements-group.action.mjs +8 -0
  4. package/esm2022/visibility/src/actions/hide-element.action.mjs +8 -0
  5. package/esm2022/visibility/src/actions/index.mjs +6 -0
  6. package/esm2022/visibility/src/actions/ngssm-visibility-action-type.mjs +8 -0
  7. package/esm2022/visibility/src/actions/show-element.action.mjs +8 -0
  8. package/esm2022/visibility/src/actions/toggle-element-visibility.action.mjs +8 -0
  9. package/esm2022/visibility/src/components/hide-element.directive.mjs +33 -0
  10. package/esm2022/visibility/src/components/index.mjs +5 -0
  11. package/esm2022/visibility/src/components/is-element-visible.pipe.mjs +18 -0
  12. package/esm2022/visibility/src/components/show-element.directive.mjs +33 -0
  13. package/esm2022/visibility/src/components/toggle-element-visibility.directive.mjs +33 -0
  14. package/esm2022/visibility/src/provide-ngssm-visibility.mjs +7 -0
  15. package/esm2022/visibility/src/public-api.mjs +4 -0
  16. package/esm2022/visibility/src/reducers/index.mjs +2 -0
  17. package/esm2022/visibility/src/reducers/visibility.reducer.mjs +83 -0
  18. package/esm2022/visibility/src/state/index.mjs +2 -0
  19. package/esm2022/visibility/src/state/ngssm-visibility.state.mjs +23 -0
  20. package/fesm2022/ngssm-store-visibility.mjs +254 -0
  21. package/fesm2022/ngssm-store-visibility.mjs.map +1 -0
  22. package/package.json +7 -1
  23. package/visibility/index.d.ts +5 -0
  24. package/visibility/public_api.d.ts +1 -0
  25. package/visibility/src/actions/define-elements-group.action.d.ts +6 -0
  26. package/visibility/src/actions/hide-element.action.d.ts +6 -0
  27. package/visibility/src/actions/index.d.ts +5 -0
  28. package/visibility/src/actions/ngssm-visibility-action-type.d.ts +6 -0
  29. package/visibility/src/actions/show-element.action.d.ts +6 -0
  30. package/visibility/src/actions/toggle-element-visibility.action.d.ts +6 -0
  31. package/visibility/src/components/hide-element.directive.d.ts +10 -0
  32. package/visibility/src/components/index.d.ts +4 -0
  33. package/visibility/src/components/is-element-visible.pipe.d.ts +8 -0
  34. package/visibility/src/components/show-element.directive.d.ts +10 -0
  35. package/visibility/src/components/toggle-element-visibility.directive.d.ts +10 -0
  36. package/visibility/src/provide-ngssm-visibility.d.ts +2 -0
  37. package/visibility/src/public-api.d.ts +3 -0
  38. package/visibility/src/reducers/index.d.ts +1 -0
  39. package/visibility/src/reducers/visibility.reducer.d.ts +11 -0
  40. package/visibility/src/state/index.d.ts +1 -0
  41. package/visibility/src/state/ngssm-visibility.state.d.ts +14 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tc3RvcmUtdmlzaWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvbmdzc20tc3RvcmUtdmlzaWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './src/public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { NgssmVisibilityActionType } from './ngssm-visibility-action-type';
2
+ export class DefineElementsGroupAction {
3
+ constructor(elementKeys) {
4
+ this.elementKeys = elementKeys;
5
+ this.type = NgssmVisibilityActionType.defineElementsGroup;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLWVsZW1lbnRzLWdyb3VwLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL2FjdGlvbnMvZGVmaW5lLWVsZW1lbnRzLWdyb3VwLmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRSxNQUFNLE9BQU8seUJBQXlCO0lBR3BDLFlBQTRCLFdBQXFCO1FBQXJCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBRmpDLFNBQUksR0FBVyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQztJQUV6QixDQUFDO0NBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZSB9IGZyb20gJy4vbmdzc20tdmlzaWJpbGl0eS1hY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBEZWZpbmVFbGVtZW50c0dyb3VwQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IE5nc3NtVmlzaWJpbGl0eUFjdGlvblR5cGUuZGVmaW5lRWxlbWVudHNHcm91cDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZWxlbWVudEtleXM6IHN0cmluZ1tdKSB7fVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { NgssmVisibilityActionType } from './ngssm-visibility-action-type';
2
+ export class HideElementAction {
3
+ constructor(elementKey) {
4
+ this.elementKey = elementKey;
5
+ this.type = NgssmVisibilityActionType.hideElement;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZS1lbGVtZW50LmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL2FjdGlvbnMvaGlkZS1lbGVtZW50LmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRSxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQTRCLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFGOUIsU0FBSSxHQUFXLHlCQUF5QixDQUFDLFdBQVcsQ0FBQztJQUVwQixDQUFDO0NBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZSB9IGZyb20gJy4vbmdzc20tdmlzaWJpbGl0eS1hY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBIaWRlRWxlbWVudEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLmhpZGVFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBlbGVtZW50S2V5OiBzdHJpbmcpIHt9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './ngssm-visibility-action-type';
2
+ export * from './toggle-element-visibility.action';
3
+ export * from './show-element.action';
4
+ export * from './hide-element.action';
5
+ export * from './define-elements-group.action';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS92aXNpYmlsaXR5L3NyYy9hY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmdzc20tdmlzaWJpbGl0eS1hY3Rpb24tdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3RvZ2dsZS1lbGVtZW50LXZpc2liaWxpdHkuYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2hvdy1lbGVtZW50LmFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2hpZGUtZWxlbWVudC5hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZpbmUtZWxlbWVudHMtZ3JvdXAuYWN0aW9uJztcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export var NgssmVisibilityActionType;
2
+ (function (NgssmVisibilityActionType) {
3
+ NgssmVisibilityActionType["defineElementsGroup"] = "[NgssmVisibilityActionType] defineElementsGroup";
4
+ NgssmVisibilityActionType["toggleElementVisibility"] = "[NgssmVisibilityActionType] toggleElementVisibility";
5
+ NgssmVisibilityActionType["hideElement"] = "[NgssmVisibilityActionType] hideElement";
6
+ NgssmVisibilityActionType["showElement"] = "[NgssmVisibilityActionType] showElement";
7
+ })(NgssmVisibilityActionType || (NgssmVisibilityActionType = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tdmlzaWJpbGl0eS1hY3Rpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL2FjdGlvbnMvbmdzc20tdmlzaWJpbGl0eS1hY3Rpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx5QkFLWDtBQUxELFdBQVkseUJBQXlCO0lBQ25DLG9HQUF1RSxDQUFBO0lBQ3ZFLDRHQUErRSxDQUFBO0lBQy9FLG9GQUF1RCxDQUFBO0lBQ3ZELG9GQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFMVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBS3BDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZSB7XG4gIGRlZmluZUVsZW1lbnRzR3JvdXAgPSAnW05nc3NtVmlzaWJpbGl0eUFjdGlvblR5cGVdIGRlZmluZUVsZW1lbnRzR3JvdXAnLFxuICB0b2dnbGVFbGVtZW50VmlzaWJpbGl0eSA9ICdbTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZV0gdG9nZ2xlRWxlbWVudFZpc2liaWxpdHknLFxuICBoaWRlRWxlbWVudCA9ICdbTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZV0gaGlkZUVsZW1lbnQnLFxuICBzaG93RWxlbWVudCA9ICdbTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZV0gc2hvd0VsZW1lbnQnXG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { NgssmVisibilityActionType } from './ngssm-visibility-action-type';
2
+ export class ShowElementAction {
3
+ constructor(elementKey) {
4
+ this.elementKey = elementKey;
5
+ this.type = NgssmVisibilityActionType.showElement;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1lbGVtZW50LmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL2FjdGlvbnMvc2hvdy1lbGVtZW50LmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUzRSxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQTRCLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFGOUIsU0FBSSxHQUFXLHlCQUF5QixDQUFDLFdBQVcsQ0FBQztJQUVwQixDQUFDO0NBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZSB9IGZyb20gJy4vbmdzc20tdmlzaWJpbGl0eS1hY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBTaG93RWxlbWVudEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLnNob3dFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBlbGVtZW50S2V5OiBzdHJpbmcpIHt9XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { NgssmVisibilityActionType } from './ngssm-visibility-action-type';
2
+ export class ToggleElementVisibilityAction {
3
+ constructor(elementKey) {
4
+ this.elementKey = elementKey;
5
+ this.type = NgssmVisibilityActionType.toggleElementVisibility;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWVsZW1lbnQtdmlzaWJpbGl0eS5hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS92aXNpYmlsaXR5L3NyYy9hY3Rpb25zL3RvZ2dsZS1lbGVtZW50LXZpc2liaWxpdHkuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNFLE1BQU0sT0FBTyw2QkFBNkI7SUFHeEMsWUFBNEIsVUFBa0I7UUFBbEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUY5QixTQUFJLEdBQVcseUJBQXlCLENBQUMsdUJBQXVCLENBQUM7SUFFaEMsQ0FBQztDQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ25nc3NtLXN0b3JlJztcbmltcG9ydCB7IE5nc3NtVmlzaWJpbGl0eUFjdGlvblR5cGUgfSBmcm9tICcuL25nc3NtLXZpc2liaWxpdHktYWN0aW9uLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgVG9nZ2xlRWxlbWVudFZpc2liaWxpdHlBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS50b2dnbGVFbGVtZW50VmlzaWJpbGl0eTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZWxlbWVudEtleTogc3RyaW5nKSB7fVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import { HideElementAction } from '../actions';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngssm-store";
5
+ export class HideElementDirective {
6
+ constructor(store) {
7
+ this.store = store;
8
+ this.key = '';
9
+ }
10
+ toggleElementvisibility() {
11
+ const elementKey = this.key;
12
+ if (elementKey) {
13
+ this.store.dispatchAction(new HideElementAction(elementKey));
14
+ }
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HideElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: HideElementDirective, isStandalone: true, selector: "[hideElement]", inputs: { key: ["hideElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HideElementDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ // eslint-disable-next-line @angular-eslint/directive-selector
23
+ selector: '[hideElement]',
24
+ standalone: true
25
+ }]
26
+ }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { key: [{
27
+ type: Input,
28
+ args: ['hideElement']
29
+ }], toggleElementvisibility: [{
30
+ type: HostListener,
31
+ args: ['click', ['$event']]
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZS1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL2NvbXBvbmVudHMvaGlkZS1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFPL0MsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQUZILFFBQUcsR0FBOEIsRUFBRSxDQUFDO0lBRTlCLENBQUM7SUFHN0IsdUJBQXVCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDNUIsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDOzhHQVhVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs0RkFFOEIsR0FBRztzQkFBL0IsS0FBSzt1QkFBQyxhQUFhO2dCQUtiLHVCQUF1QjtzQkFEN0IsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgSGlkZUVsZW1lbnRBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW2hpZGVFbGVtZW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSGlkZUVsZW1lbnREaXJlY3RpdmUge1xuICBASW5wdXQoJ2hpZGVFbGVtZW50JykgcHVibGljIGtleTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIHRvZ2dsZUVsZW1lbnR2aXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRLZXkgPSB0aGlzLmtleTtcbiAgICBpZiAoZWxlbWVudEtleSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbihuZXcgSGlkZUVsZW1lbnRBY3Rpb24oZWxlbWVudEtleSkpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './toggle-element-visibility.directive';
2
+ export * from './is-element-visible.pipe';
3
+ export * from './show-element.directive';
4
+ export * from './hide-element.directive';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS92aXNpYmlsaXR5L3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RvZ2dsZS1lbGVtZW50LXZpc2liaWxpdHkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtZWxlbWVudC12aXNpYmxlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaG93LWVsZW1lbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaGlkZS1lbGVtZW50LmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { selectNgssmVisibilityState } from '../state';
3
+ import * as i0 from "@angular/core";
4
+ export class IsElementVisiblePipe {
5
+ transform(value, ...args) {
6
+ return selectNgssmVisibilityState(value).elements[args[0]] === true;
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: IsElementVisiblePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.1", ngImport: i0, type: IsElementVisiblePipe, isStandalone: true, name: "isElementVisible" }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: IsElementVisiblePipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'isElementVisible',
15
+ standalone: true
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC12aXNpYmxlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS92aXNpYmlsaXR5L3NyYy9jb21wb25lbnRzL2lzLWVsZW1lbnQtdmlzaWJsZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFNdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixTQUFTLENBQUMsS0FBWSxFQUFFLEdBQUcsSUFBYztRQUM5QyxPQUFPLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDdEUsQ0FBQzs4R0FIVSxvQkFBb0I7NEdBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsa0JBQWtCO29CQUN4QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gJ25nc3NtLXN0b3JlJztcbmltcG9ydCB7IHNlbGVjdE5nc3NtVmlzaWJpbGl0eVN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc0VsZW1lbnRWaXNpYmxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJc0VsZW1lbnRWaXNpYmxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBTdGF0ZSwgLi4uYXJnczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2VsZWN0Tmdzc21WaXNpYmlsaXR5U3RhdGUodmFsdWUpLmVsZW1lbnRzW2FyZ3NbMF1dID09PSB0cnVlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import { ShowElementAction } from '../actions';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngssm-store";
5
+ export class ShowElementDirective {
6
+ constructor(store) {
7
+ this.store = store;
8
+ this.key = '';
9
+ }
10
+ toggleElementvisibility() {
11
+ const elementKey = this.key;
12
+ if (elementKey) {
13
+ this.store.dispatchAction(new ShowElementAction(elementKey));
14
+ }
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ShowElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: ShowElementDirective, isStandalone: true, selector: "[showElement]", inputs: { key: ["showElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ShowElementDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ // eslint-disable-next-line @angular-eslint/directive-selector
23
+ selector: '[showElement]',
24
+ standalone: true
25
+ }]
26
+ }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { key: [{
27
+ type: Input,
28
+ args: ['showElement']
29
+ }], toggleElementvisibility: [{
30
+ type: HostListener,
31
+ args: ['click', ['$event']]
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1lbGVtZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL2NvbXBvbmVudHMvc2hvdy1lbGVtZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFPL0MsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQUZILFFBQUcsR0FBOEIsRUFBRSxDQUFDO0lBRTlCLENBQUM7SUFHN0IsdUJBQXVCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDNUIsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDOzhHQVhVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs0RkFFOEIsR0FBRztzQkFBL0IsS0FBSzt1QkFBQyxhQUFhO2dCQUtiLHVCQUF1QjtzQkFEN0IsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuaW1wb3J0IHsgU2hvd0VsZW1lbnRBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3Nob3dFbGVtZW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgU2hvd0VsZW1lbnREaXJlY3RpdmUge1xuICBASW5wdXQoJ3Nob3dFbGVtZW50JykgcHVibGljIGtleTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIHRvZ2dsZUVsZW1lbnR2aXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRLZXkgPSB0aGlzLmtleTtcbiAgICBpZiAoZWxlbWVudEtleSkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbihuZXcgU2hvd0VsZW1lbnRBY3Rpb24oZWxlbWVudEtleSkpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import { ToggleElementVisibilityAction } from '../actions';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngssm-store";
5
+ export class ToggleElementVisibilityDirective {
6
+ constructor(store) {
7
+ this.store = store;
8
+ this.key = '';
9
+ }
10
+ toggleElementvisibility() {
11
+ const elementKey = this.key;
12
+ if (elementKey) {
13
+ this.store.dispatchAction(new ToggleElementVisibilityAction(elementKey));
14
+ }
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ToggleElementVisibilityDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: ToggleElementVisibilityDirective, isStandalone: true, selector: "[toggleElementVisibility]", inputs: { key: ["toggleElementVisibility", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ToggleElementVisibilityDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ // eslint-disable-next-line @angular-eslint/directive-selector
23
+ selector: '[toggleElementVisibility]',
24
+ standalone: true
25
+ }]
26
+ }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { key: [{
27
+ type: Input,
28
+ args: ['toggleElementVisibility']
29
+ }], toggleElementvisibility: [{
30
+ type: HostListener,
31
+ args: ['click', ['$event']]
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWVsZW1lbnQtdmlzaWJpbGl0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS92aXNpYmlsaXR5L3NyYy9jb21wb25lbnRzL3RvZ2dsZS1lbGVtZW50LXZpc2liaWxpdHkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQU8zRCxNQUFNLE9BQU8sZ0NBQWdDO0lBRzNDLFlBQW9CLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBRlMsUUFBRyxHQUE4QixFQUFFLENBQUM7SUFFMUMsQ0FBQztJQUc3Qix1QkFBdUI7UUFDNUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksNkJBQTZCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUM7OEdBWFUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0M7OzJGQUFoQyxnQ0FBZ0M7a0JBTDVDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7NEZBRTBDLEdBQUc7c0JBQTNDLEtBQUs7dUJBQUMseUJBQXlCO2dCQUt6Qix1QkFBdUI7c0JBRDdCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBUb2dnbGVFbGVtZW50VmlzaWJpbGl0eUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbdG9nZ2xlRWxlbWVudFZpc2liaWxpdHldJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb2dnbGVFbGVtZW50VmlzaWJpbGl0eURpcmVjdGl2ZSB7XG4gIEBJbnB1dCgndG9nZ2xlRWxlbWVudFZpc2liaWxpdHknKSBwdWJsaWMga2V5OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwdWJsaWMgdG9nZ2xlRWxlbWVudHZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudEtleSA9IHRoaXMua2V5O1xuICAgIGlmIChlbGVtZW50S2V5KSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoQWN0aW9uKG5ldyBUb2dnbGVFbGVtZW50VmlzaWJpbGl0eUFjdGlvbihlbGVtZW50S2V5KSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { makeEnvironmentProviders } from '@angular/core';
2
+ import { provideReducers } from 'ngssm-store';
3
+ import { VisibilityReducer } from './reducers';
4
+ export const provideNgssmVisibility = () => {
5
+ return makeEnvironmentProviders([provideReducers(VisibilityReducer)]);
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1uZ3NzbS12aXNpYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvdmlzaWJpbGl0eS9zcmMvcHJvdmlkZS1uZ3NzbS12aXNpYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0Isd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBeUIsRUFBRTtJQUMvRCxPQUFPLHdCQUF3QixDQUFDLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVSZWR1Y2VycyB9IGZyb20gJ25nc3NtLXN0b3JlJztcbmltcG9ydCB7IFZpc2liaWxpdHlSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2Vycyc7XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlTmdzc21WaXNpYmlsaXR5ID0gKCk6IEVudmlyb25tZW50UHJvdmlkZXJzID0+IHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbcHJvdmlkZVJlZHVjZXJzKFZpc2liaWxpdHlSZWR1Y2VyKV0pO1xufTtcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './provide-ngssm-visibility';
2
+ export * from './actions';
3
+ export * from './components';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZS1uZ3NzbS12aXNpYmlsaXR5JztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './visibility.reducer';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS92aXNpYmlsaXR5L3NyYy9yZWR1Y2Vycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi92aXNpYmlsaXR5LnJlZHVjZXInO1xuIl19
@@ -0,0 +1,83 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NgssmVisibilityActionType } from '../actions';
3
+ import { selectNgssmVisibilityState, updateNgssmVisibilityState } from '../state';
4
+ import * as i0 from "@angular/core";
5
+ export class VisibilityReducer {
6
+ constructor() {
7
+ this.processedActions = [
8
+ NgssmVisibilityActionType.toggleElementVisibility,
9
+ NgssmVisibilityActionType.showElement,
10
+ NgssmVisibilityActionType.hideElement,
11
+ NgssmVisibilityActionType.defineElementsGroup
12
+ ];
13
+ }
14
+ updateState(state, action) {
15
+ switch (action.type) {
16
+ case NgssmVisibilityActionType.toggleElementVisibility: {
17
+ const toggleVisibilityAction = action;
18
+ if (selectNgssmVisibilityState(state).elements[toggleVisibilityAction.elementKey] === true) {
19
+ return updateNgssmVisibilityState(state, {
20
+ elements: {
21
+ [toggleVisibilityAction.elementKey]: { $set: false }
22
+ }
23
+ });
24
+ }
25
+ return this.setElementVisible(state, toggleVisibilityAction.elementKey);
26
+ }
27
+ case NgssmVisibilityActionType.showElement: {
28
+ const showAction = action;
29
+ return this.setElementVisible(state, showAction.elementKey);
30
+ }
31
+ case NgssmVisibilityActionType.hideElement: {
32
+ const hideAction = action;
33
+ return updateNgssmVisibilityState(state, {
34
+ elements: {
35
+ [hideAction.elementKey]: { $set: false }
36
+ }
37
+ });
38
+ }
39
+ case NgssmVisibilityActionType.defineElementsGroup: {
40
+ const defineElementsGroupAction = action;
41
+ const keys = [...defineElementsGroupAction.elementKeys];
42
+ keys.sort();
43
+ if (this.groupExists(keys, selectNgssmVisibilityState(state).elementsGroups)) {
44
+ break;
45
+ }
46
+ return updateNgssmVisibilityState(state, {
47
+ elementsGroups: { $push: [keys] }
48
+ });
49
+ }
50
+ }
51
+ return state;
52
+ }
53
+ groupExists(keys, groups) {
54
+ const index = groups.findIndex((group) => {
55
+ group.length === keys.length && group.findIndex((k, i) => k !== keys[i]) === -1;
56
+ });
57
+ return index !== -1;
58
+ }
59
+ getElementsKeysGroupedWith(key, groups) {
60
+ const keys = groups.filter((g) => g.includes(key)).flatMap((g) => g);
61
+ const distinctKeys = new Set(keys);
62
+ distinctKeys.delete(key);
63
+ return [...distinctKeys];
64
+ }
65
+ setElementVisible(state, key) {
66
+ const elementsCommand = {
67
+ [key]: { $set: true }
68
+ };
69
+ const associatedElements = this.getElementsKeysGroupedWith(key, selectNgssmVisibilityState(state).elementsGroups);
70
+ associatedElements.forEach((el) => {
71
+ elementsCommand[el] = { $set: false };
72
+ });
73
+ return updateNgssmVisibilityState(state, {
74
+ elements: elementsCommand
75
+ });
76
+ }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: VisibilityReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
78
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: VisibilityReducer }); }
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: VisibilityReducer, decorators: [{
81
+ type: Injectable
82
+ }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvdmlzaWJpbGl0eS9zcmMvcmVkdWNlcnMvdmlzaWJpbGl0eS5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUdMLHlCQUF5QixFQUcxQixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2xGLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFa0IscUJBQWdCLEdBQWE7WUFDM0MseUJBQXlCLENBQUMsdUJBQXVCO1lBQ2pELHlCQUF5QixDQUFDLFdBQVc7WUFDckMseUJBQXlCLENBQUMsV0FBVztZQUNyQyx5QkFBeUIsQ0FBQyxtQkFBbUI7U0FDOUMsQ0FBQztLQTRFSDtJQTFFUSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ25CLEtBQUsseUJBQXlCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnQkFDdEQsTUFBTSxzQkFBc0IsR0FBRyxNQUF1QyxDQUFDO2dCQUN2RSxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQzFGLE9BQU8sMEJBQTBCLENBQUMsS0FBSyxFQUFFO3dCQUN2QyxRQUFRLEVBQUU7NEJBQ1IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7eUJBQ3JEO3FCQUNGLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLENB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QUFFO1lBQ3ZDLFFBQVEsRUFBRSxlQUFlO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBakZVLGlCQUFpQjtrSEFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTcGVjIH0gZnJvbSAnaW1tdXRhYmlsaXR5LWhlbHBlcic7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24gfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7XG4gIERlZmluZUVsZW1lbnRzR3JvdXBBY3Rpb24sXG4gIEhpZGVFbGVtZW50QWN0aW9uLFxuICBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLFxuICBTaG93RWxlbWVudEFjdGlvbixcbiAgVG9nZ2xlRWxlbWVudFZpc2liaWxpdHlBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBzZWxlY3ROZ3NzbVZpc2liaWxpdHlTdGF0ZSwgdXBkYXRlTmdzc21WaXNpYmlsaXR5U3RhdGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBWaXNpYmlsaXR5UmVkdWNlciBpbXBsZW1lbnRzIFJlZHVjZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW10gPSBbXG4gICAgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS50b2dnbGVFbGVtZW50VmlzaWJpbGl0eSxcbiAgICBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLnNob3dFbGVtZW50LFxuICAgIE5nc3NtVmlzaWJpbGl0eUFjdGlvblR5cGUuaGlkZUVsZW1lbnQsXG4gICAgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS5kZWZpbmVFbGVtZW50c0dyb3VwXG4gIF07XG5cbiAgcHVibGljIHVwZGF0ZVN0YXRlKHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiBTdGF0ZSB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLnRvZ2dsZUVsZW1lbnRWaXNpYmlsaXR5OiB7XG4gICAgICAgIGNvbnN0IHRvZ2dsZVZpc2liaWxpdHlBY3Rpb24gPSBhY3Rpb24gYXMgVG9nZ2xlRWxlbWVudFZpc2liaWxpdHlBY3Rpb247XG4gICAgICAgIGlmIChzZWxlY3ROZ3NzbVZpc2liaWxpdHlTdGF0ZShzdGF0ZSkuZWxlbWVudHNbdG9nZ2xlVmlzaWJpbGl0eUFjdGlvbi5lbGVtZW50S2V5XSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVZpc2liaWxpdHlTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgICAgICAgW3RvZ2dsZVZpc2liaWxpdHlBY3Rpb24uZWxlbWVudEtleV06IHsgJHNldDogZmFsc2UgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0RWxlbWVudFZpc2libGUoc3RhdGUsIHRvZ2dsZVZpc2liaWxpdHlBY3Rpb24uZWxlbWVudEtleSk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTmdzc21WaXNpYmlsaXR5QWN0aW9uVHlwZS5zaG93RWxlbWVudDoge1xuICAgICAgICBjb25zdCBzaG93QWN0aW9uID0gYWN0aW9uIGFzIFNob3dFbGVtZW50QWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcy5zZXRFbGVtZW50VmlzaWJsZShzdGF0ZSwgc2hvd0FjdGlvbi5lbGVtZW50S2V5KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLmhpZGVFbGVtZW50OiB7XG4gICAgICAgIGNvbnN0IGhpZGVBY3Rpb24gPSBhY3Rpb24gYXMgSGlkZUVsZW1lbnRBY3Rpb247XG4gICAgICAgIHJldHVybiB1cGRhdGVOZ3NzbVZpc2liaWxpdHlTdGF0ZShzdGF0ZSwge1xuICAgICAgICAgIGVsZW1lbnRzOiB7XG4gICAgICAgICAgICBbaGlkZUFjdGlvbi5lbGVtZW50S2V5XTogeyAkc2V0OiBmYWxzZSB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBOZ3NzbVZpc2liaWxpdHlBY3Rpb25UeXBlLmRlZmluZUVsZW1lbnRzR3JvdXA6IHtcbiAgICAgICAgY29uc3QgZGVmaW5lRWxlbWVudHNHcm91cEFjdGlvbiA9IGFjdGlvbiBhcyBEZWZpbmVFbGVtZW50c0dyb3VwQWN0aW9uO1xuICAgICAgICBjb25zdCBrZXlzID0gWy4uLmRlZmluZUVsZW1lbnRzR3JvdXBBY3Rpb24uZWxlbWVudEtleXNdO1xuICAgICAgICBrZXlzLnNvcnQoKTtcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXBFeGlzdHMoa2V5cywgc2VsZWN0Tmdzc21WaXNpYmlsaXR5U3RhdGUoc3RhdGUpLmVsZW1lbnRzR3JvdXBzKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtVmlzaWJpbGl0eVN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgZWxlbWVudHNHcm91cHM6IHsgJHB1c2g6IFtrZXlzXSB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBFeGlzdHMoa2V5czogc3RyaW5nW10sIGdyb3Vwczogc3RyaW5nW11bXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGluZGV4ID0gZ3JvdXBzLmZpbmRJbmRleCgoZ3JvdXApID0+IHtcbiAgICAgIGdyb3VwLmxlbmd0aCA9PT0ga2V5cy5sZW5ndGggJiYgZ3JvdXAuZmluZEluZGV4KChrLCBpKSA9PiBrICE9PSBrZXlzW2ldKSA9PT0gLTE7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluZGV4ICE9PSAtMTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudHNLZXlzR3JvdXBlZFdpdGgoa2V5OiBzdHJpbmcsIGdyb3Vwczogc3RyaW5nW11bXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBrZXlzID0gZ3JvdXBzLmZpbHRlcigoZykgPT4gZy5pbmNsdWRlcyhrZXkpKS5mbGF0TWFwKChnKSA9PiBnKTtcbiAgICBjb25zdCBkaXN0aW5jdEtleXMgPSBuZXcgU2V0PHN0cmluZz4oa2V5cyk7XG4gICAgZGlzdGluY3RLZXlzLmRlbGV0ZShrZXkpO1xuICAgIHJldHVybiBbLi4uZGlzdGluY3RLZXlzXTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RWxlbWVudFZpc2libGUoc3RhdGU6IFN0YXRlLCBrZXk6IHN0cmluZyk6IFN0YXRlIHtcbiAgICBjb25zdCBlbGVtZW50c0NvbW1hbmQ6IFNwZWM8eyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0sIG5ldmVyPiA9IHtcbiAgICAgIFtrZXldOiB7ICRzZXQ6IHRydWUgfVxuICAgIH07XG5cbiAgICBjb25zdCBhc3NvY2lhdGVkRWxlbWVudHMgPSB0aGlzLmdldEVsZW1lbnRzS2V5c0dyb3VwZWRXaXRoKGtleSwgc2VsZWN0Tmdzc21WaXNpYmlsaXR5U3RhdGUoc3RhdGUpLmVsZW1lbnRzR3JvdXBzKTtcbiAgICBhc3NvY2lhdGVkRWxlbWVudHMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgIGVsZW1lbnRzQ29tbWFuZFtlbF0gPSB7ICRzZXQ6IGZhbHNlIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlTmdzc21WaXNpYmlsaXR5U3RhdGUoc3RhdGUsIHtcbiAgICAgIGVsZW1lbnRzOiBlbGVtZW50c0NvbW1hbmRcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './ngssm-visibility.state';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS92aXNpYmlsaXR5L3NyYy9zdGF0ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9uZ3NzbS12aXNpYmlsaXR5LnN0YXRlJztcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ var NgssmVisibilityStateSpecification_1;
2
+ import { __decorate } from "tslib";
3
+ import update from 'immutability-helper';
4
+ import { NgSsmFeatureState } from 'ngssm-store';
5
+ export const selectNgssmVisibilityState = (state) => state[NgssmVisibilityStateSpecification.featureStateKey];
6
+ export const updateNgssmVisibilityState = (state, command) => update(state, {
7
+ [NgssmVisibilityStateSpecification.featureStateKey]: command
8
+ });
9
+ export let NgssmVisibilityStateSpecification = class NgssmVisibilityStateSpecification {
10
+ static { NgssmVisibilityStateSpecification_1 = this; }
11
+ static { this.featureStateKey = 'ngssm-visibility-state'; }
12
+ static { this.initialState = {
13
+ elements: {},
14
+ elementsGroups: []
15
+ }; }
16
+ };
17
+ NgssmVisibilityStateSpecification = NgssmVisibilityStateSpecification_1 = __decorate([
18
+ NgSsmFeatureState({
19
+ featureStateKey: NgssmVisibilityStateSpecification_1.featureStateKey,
20
+ initialState: NgssmVisibilityStateSpecification_1.initialState
21
+ })
22
+ ], NgssmVisibilityStateSpecification);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tdmlzaWJpbGl0eS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Zpc2liaWxpdHkvc3JjL3N0YXRlL25nc3NtLXZpc2liaWxpdHkuc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLE1BQWdCLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBWSxFQUF3QixFQUFFLENBQy9FLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxlQUFlLENBQXlCLENBQUM7QUFFbkYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsT0FBMEMsRUFBUyxFQUFFLENBQzVHLE1BQU0sQ0FBQyxLQUFLLEVBQUU7SUFDWixDQUFDLGlDQUFpQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU87Q0FDN0QsQ0FBQyxDQUFDO0FBV0UsV0FBTSxpQ0FBaUMsR0FBdkMsTUFBTSxpQ0FBaUM7O2FBQ3JCLG9CQUFlLEdBQUcsd0JBQXdCLEFBQTNCLENBQTRCO2FBQzNDLGlCQUFZLEdBQXlCO1FBQzFELFFBQVEsRUFBRSxFQUFFO1FBQ1osY0FBYyxFQUFFLEVBQUU7S0FDbkIsQUFIa0MsQ0FHakM7O0FBTFMsaUNBQWlDO0lBSjdDLGlCQUFpQixDQUFDO1FBQ2pCLGVBQWUsRUFBRSxtQ0FBaUMsQ0FBQyxlQUFlO1FBQ2xFLFlBQVksRUFBRSxtQ0FBaUMsQ0FBQyxZQUFZO0tBQzdELENBQUM7R0FDVyxpQ0FBaUMsQ0FNN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXBkYXRlLCB7IFNwZWMgfSBmcm9tICdpbW11dGFiaWxpdHktaGVscGVyJztcblxuaW1wb3J0IHsgTmdTc21GZWF0dXJlU3RhdGUsIFN0YXRlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Tmdzc21WaXNpYmlsaXR5U3RhdGUgPSAoc3RhdGU6IFN0YXRlKTogTmdzc21WaXNpYmlsaXR5U3RhdGUgPT5cbiAgc3RhdGVbTmdzc21WaXNpYmlsaXR5U3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleV0gYXMgTmdzc21WaXNpYmlsaXR5U3RhdGU7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVOZ3NzbVZpc2liaWxpdHlTdGF0ZSA9IChzdGF0ZTogU3RhdGUsIGNvbW1hbmQ6IFNwZWM8Tmdzc21WaXNpYmlsaXR5U3RhdGUsIG5ldmVyPik6IFN0YXRlID0+XG4gIHVwZGF0ZShzdGF0ZSwge1xuICAgIFtOZ3NzbVZpc2liaWxpdHlTdGF0ZVNwZWNpZmljYXRpb24uZmVhdHVyZVN0YXRlS2V5XTogY29tbWFuZFxuICB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3NzbVZpc2liaWxpdHlTdGF0ZSB7XG4gIGVsZW1lbnRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgZWxlbWVudHNHcm91cHM6IHN0cmluZ1tdW107XG59XG5cbkBOZ1NzbUZlYXR1cmVTdGF0ZSh7XG4gIGZlYXR1cmVTdGF0ZUtleTogTmdzc21WaXNpYmlsaXR5U3RhdGVTcGVjaWZpY2F0aW9uLmZlYXR1cmVTdGF0ZUtleSxcbiAgaW5pdGlhbFN0YXRlOiBOZ3NzbVZpc2liaWxpdHlTdGF0ZVNwZWNpZmljYXRpb24uaW5pdGlhbFN0YXRlXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtVmlzaWJpbGl0eVN0YXRlU3BlY2lmaWNhdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZmVhdHVyZVN0YXRlS2V5ID0gJ25nc3NtLXZpc2liaWxpdHktc3RhdGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGluaXRpYWxTdGF0ZTogTmdzc21WaXNpYmlsaXR5U3RhdGUgPSB7XG4gICAgZWxlbWVudHM6IHt9LFxuICAgIGVsZW1lbnRzR3JvdXBzOiBbXVxuICB9O1xufVxuIl19
@@ -0,0 +1,254 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, makeEnvironmentProviders, Directive, Input, HostListener, Pipe } from '@angular/core';
3
+ import * as i1 from 'ngssm-store';
4
+ import { NgSsmFeatureState, provideReducers } from 'ngssm-store';
5
+ import { __decorate } from 'tslib';
6
+ import update from 'immutability-helper';
7
+
8
+ var NgssmVisibilityActionType;
9
+ (function (NgssmVisibilityActionType) {
10
+ NgssmVisibilityActionType["defineElementsGroup"] = "[NgssmVisibilityActionType] defineElementsGroup";
11
+ NgssmVisibilityActionType["toggleElementVisibility"] = "[NgssmVisibilityActionType] toggleElementVisibility";
12
+ NgssmVisibilityActionType["hideElement"] = "[NgssmVisibilityActionType] hideElement";
13
+ NgssmVisibilityActionType["showElement"] = "[NgssmVisibilityActionType] showElement";
14
+ })(NgssmVisibilityActionType || (NgssmVisibilityActionType = {}));
15
+
16
+ class ToggleElementVisibilityAction {
17
+ constructor(elementKey) {
18
+ this.elementKey = elementKey;
19
+ this.type = NgssmVisibilityActionType.toggleElementVisibility;
20
+ }
21
+ }
22
+
23
+ class ShowElementAction {
24
+ constructor(elementKey) {
25
+ this.elementKey = elementKey;
26
+ this.type = NgssmVisibilityActionType.showElement;
27
+ }
28
+ }
29
+
30
+ class HideElementAction {
31
+ constructor(elementKey) {
32
+ this.elementKey = elementKey;
33
+ this.type = NgssmVisibilityActionType.hideElement;
34
+ }
35
+ }
36
+
37
+ class DefineElementsGroupAction {
38
+ constructor(elementKeys) {
39
+ this.elementKeys = elementKeys;
40
+ this.type = NgssmVisibilityActionType.defineElementsGroup;
41
+ }
42
+ }
43
+
44
+ var NgssmVisibilityStateSpecification_1;
45
+ const selectNgssmVisibilityState = (state) => state[NgssmVisibilityStateSpecification.featureStateKey];
46
+ const updateNgssmVisibilityState = (state, command) => update(state, {
47
+ [NgssmVisibilityStateSpecification.featureStateKey]: command
48
+ });
49
+ let NgssmVisibilityStateSpecification = class NgssmVisibilityStateSpecification {
50
+ static { NgssmVisibilityStateSpecification_1 = this; }
51
+ static { this.featureStateKey = 'ngssm-visibility-state'; }
52
+ static { this.initialState = {
53
+ elements: {},
54
+ elementsGroups: []
55
+ }; }
56
+ };
57
+ NgssmVisibilityStateSpecification = NgssmVisibilityStateSpecification_1 = __decorate([
58
+ NgSsmFeatureState({
59
+ featureStateKey: NgssmVisibilityStateSpecification_1.featureStateKey,
60
+ initialState: NgssmVisibilityStateSpecification_1.initialState
61
+ })
62
+ ], NgssmVisibilityStateSpecification);
63
+
64
+ class VisibilityReducer {
65
+ constructor() {
66
+ this.processedActions = [
67
+ NgssmVisibilityActionType.toggleElementVisibility,
68
+ NgssmVisibilityActionType.showElement,
69
+ NgssmVisibilityActionType.hideElement,
70
+ NgssmVisibilityActionType.defineElementsGroup
71
+ ];
72
+ }
73
+ updateState(state, action) {
74
+ switch (action.type) {
75
+ case NgssmVisibilityActionType.toggleElementVisibility: {
76
+ const toggleVisibilityAction = action;
77
+ if (selectNgssmVisibilityState(state).elements[toggleVisibilityAction.elementKey] === true) {
78
+ return updateNgssmVisibilityState(state, {
79
+ elements: {
80
+ [toggleVisibilityAction.elementKey]: { $set: false }
81
+ }
82
+ });
83
+ }
84
+ return this.setElementVisible(state, toggleVisibilityAction.elementKey);
85
+ }
86
+ case NgssmVisibilityActionType.showElement: {
87
+ const showAction = action;
88
+ return this.setElementVisible(state, showAction.elementKey);
89
+ }
90
+ case NgssmVisibilityActionType.hideElement: {
91
+ const hideAction = action;
92
+ return updateNgssmVisibilityState(state, {
93
+ elements: {
94
+ [hideAction.elementKey]: { $set: false }
95
+ }
96
+ });
97
+ }
98
+ case NgssmVisibilityActionType.defineElementsGroup: {
99
+ const defineElementsGroupAction = action;
100
+ const keys = [...defineElementsGroupAction.elementKeys];
101
+ keys.sort();
102
+ if (this.groupExists(keys, selectNgssmVisibilityState(state).elementsGroups)) {
103
+ break;
104
+ }
105
+ return updateNgssmVisibilityState(state, {
106
+ elementsGroups: { $push: [keys] }
107
+ });
108
+ }
109
+ }
110
+ return state;
111
+ }
112
+ groupExists(keys, groups) {
113
+ const index = groups.findIndex((group) => {
114
+ group.length === keys.length && group.findIndex((k, i) => k !== keys[i]) === -1;
115
+ });
116
+ return index !== -1;
117
+ }
118
+ getElementsKeysGroupedWith(key, groups) {
119
+ const keys = groups.filter((g) => g.includes(key)).flatMap((g) => g);
120
+ const distinctKeys = new Set(keys);
121
+ distinctKeys.delete(key);
122
+ return [...distinctKeys];
123
+ }
124
+ setElementVisible(state, key) {
125
+ const elementsCommand = {
126
+ [key]: { $set: true }
127
+ };
128
+ const associatedElements = this.getElementsKeysGroupedWith(key, selectNgssmVisibilityState(state).elementsGroups);
129
+ associatedElements.forEach((el) => {
130
+ elementsCommand[el] = { $set: false };
131
+ });
132
+ return updateNgssmVisibilityState(state, {
133
+ elements: elementsCommand
134
+ });
135
+ }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: VisibilityReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
137
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: VisibilityReducer }); }
138
+ }
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: VisibilityReducer, decorators: [{
140
+ type: Injectable
141
+ }] });
142
+
143
+ const provideNgssmVisibility = () => {
144
+ return makeEnvironmentProviders([provideReducers(VisibilityReducer)]);
145
+ };
146
+
147
+ class ToggleElementVisibilityDirective {
148
+ constructor(store) {
149
+ this.store = store;
150
+ this.key = '';
151
+ }
152
+ toggleElementvisibility() {
153
+ const elementKey = this.key;
154
+ if (elementKey) {
155
+ this.store.dispatchAction(new ToggleElementVisibilityAction(elementKey));
156
+ }
157
+ }
158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ToggleElementVisibilityDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
159
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: ToggleElementVisibilityDirective, isStandalone: true, selector: "[toggleElementVisibility]", inputs: { key: ["toggleElementVisibility", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ToggleElementVisibilityDirective, decorators: [{
162
+ type: Directive,
163
+ args: [{
164
+ // eslint-disable-next-line @angular-eslint/directive-selector
165
+ selector: '[toggleElementVisibility]',
166
+ standalone: true
167
+ }]
168
+ }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { key: [{
169
+ type: Input,
170
+ args: ['toggleElementVisibility']
171
+ }], toggleElementvisibility: [{
172
+ type: HostListener,
173
+ args: ['click', ['$event']]
174
+ }] } });
175
+
176
+ class IsElementVisiblePipe {
177
+ transform(value, ...args) {
178
+ return selectNgssmVisibilityState(value).elements[args[0]] === true;
179
+ }
180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: IsElementVisiblePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
181
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.1", ngImport: i0, type: IsElementVisiblePipe, isStandalone: true, name: "isElementVisible" }); }
182
+ }
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: IsElementVisiblePipe, decorators: [{
184
+ type: Pipe,
185
+ args: [{
186
+ name: 'isElementVisible',
187
+ standalone: true
188
+ }]
189
+ }] });
190
+
191
+ class ShowElementDirective {
192
+ constructor(store) {
193
+ this.store = store;
194
+ this.key = '';
195
+ }
196
+ toggleElementvisibility() {
197
+ const elementKey = this.key;
198
+ if (elementKey) {
199
+ this.store.dispatchAction(new ShowElementAction(elementKey));
200
+ }
201
+ }
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ShowElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
203
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: ShowElementDirective, isStandalone: true, selector: "[showElement]", inputs: { key: ["showElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
204
+ }
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ShowElementDirective, decorators: [{
206
+ type: Directive,
207
+ args: [{
208
+ // eslint-disable-next-line @angular-eslint/directive-selector
209
+ selector: '[showElement]',
210
+ standalone: true
211
+ }]
212
+ }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { key: [{
213
+ type: Input,
214
+ args: ['showElement']
215
+ }], toggleElementvisibility: [{
216
+ type: HostListener,
217
+ args: ['click', ['$event']]
218
+ }] } });
219
+
220
+ class HideElementDirective {
221
+ constructor(store) {
222
+ this.store = store;
223
+ this.key = '';
224
+ }
225
+ toggleElementvisibility() {
226
+ const elementKey = this.key;
227
+ if (elementKey) {
228
+ this.store.dispatchAction(new HideElementAction(elementKey));
229
+ }
230
+ }
231
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HideElementDirective, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
232
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: HideElementDirective, isStandalone: true, selector: "[hideElement]", inputs: { key: ["hideElement", "key"] }, host: { listeners: { "click": "toggleElementvisibility($event)" } }, ngImport: i0 }); }
233
+ }
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HideElementDirective, decorators: [{
235
+ type: Directive,
236
+ args: [{
237
+ // eslint-disable-next-line @angular-eslint/directive-selector
238
+ selector: '[hideElement]',
239
+ standalone: true
240
+ }]
241
+ }], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { key: [{
242
+ type: Input,
243
+ args: ['hideElement']
244
+ }], toggleElementvisibility: [{
245
+ type: HostListener,
246
+ args: ['click', ['$event']]
247
+ }] } });
248
+
249
+ /**
250
+ * Generated bundle index. Do not edit.
251
+ */
252
+
253
+ export { DefineElementsGroupAction, HideElementAction, HideElementDirective, IsElementVisiblePipe, NgssmVisibilityActionType, ShowElementAction, ShowElementDirective, ToggleElementVisibilityAction, ToggleElementVisibilityDirective, provideNgssmVisibility };
254
+ //# sourceMappingURL=ngssm-store-visibility.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngssm-store-visibility.mjs","sources":["../../../projects/ngssm-store/visibility/src/actions/ngssm-visibility-action-type.ts","../../../projects/ngssm-store/visibility/src/actions/toggle-element-visibility.action.ts","../../../projects/ngssm-store/visibility/src/actions/show-element.action.ts","../../../projects/ngssm-store/visibility/src/actions/hide-element.action.ts","../../../projects/ngssm-store/visibility/src/actions/define-elements-group.action.ts","../../../projects/ngssm-store/visibility/src/state/ngssm-visibility.state.ts","../../../projects/ngssm-store/visibility/src/reducers/visibility.reducer.ts","../../../projects/ngssm-store/visibility/src/provide-ngssm-visibility.ts","../../../projects/ngssm-store/visibility/src/components/toggle-element-visibility.directive.ts","../../../projects/ngssm-store/visibility/src/components/is-element-visible.pipe.ts","../../../projects/ngssm-store/visibility/src/components/show-element.directive.ts","../../../projects/ngssm-store/visibility/src/components/hide-element.directive.ts","../../../projects/ngssm-store/visibility/ngssm-store-visibility.ts"],"sourcesContent":["export enum NgssmVisibilityActionType {\n defineElementsGroup = '[NgssmVisibilityActionType] defineElementsGroup',\n toggleElementVisibility = '[NgssmVisibilityActionType] toggleElementVisibility',\n hideElement = '[NgssmVisibilityActionType] hideElement',\n showElement = '[NgssmVisibilityActionType] showElement'\n}\n","import { Action } from 'ngssm-store';\nimport { NgssmVisibilityActionType } from './ngssm-visibility-action-type';\n\nexport class ToggleElementVisibilityAction implements Action {\n public readonly type: string = NgssmVisibilityActionType.toggleElementVisibility;\n\n constructor(public readonly elementKey: string) {}\n}\n","import { Action } from 'ngssm-store';\nimport { NgssmVisibilityActionType } from './ngssm-visibility-action-type';\n\nexport class ShowElementAction implements Action {\n public readonly type: string = NgssmVisibilityActionType.showElement;\n\n constructor(public readonly elementKey: string) {}\n}\n","import { Action } from 'ngssm-store';\nimport { NgssmVisibilityActionType } from './ngssm-visibility-action-type';\n\nexport class HideElementAction implements Action {\n public readonly type: string = NgssmVisibilityActionType.hideElement;\n\n constructor(public readonly elementKey: string) {}\n}\n","import { Action } from 'ngssm-store';\nimport { NgssmVisibilityActionType } from './ngssm-visibility-action-type';\n\nexport class DefineElementsGroupAction implements Action {\n public readonly type: string = NgssmVisibilityActionType.defineElementsGroup;\n\n constructor(public readonly elementKeys: string[]) {}\n}\n","import update, { Spec } from 'immutability-helper';\n\nimport { NgSsmFeatureState, State } from 'ngssm-store';\n\nexport const selectNgssmVisibilityState = (state: State): NgssmVisibilityState =>\n state[NgssmVisibilityStateSpecification.featureStateKey] as NgssmVisibilityState;\n\nexport const updateNgssmVisibilityState = (state: State, command: Spec<NgssmVisibilityState, never>): State =>\n update(state, {\n [NgssmVisibilityStateSpecification.featureStateKey]: command\n });\n\nexport interface NgssmVisibilityState {\n elements: { [key: string]: boolean };\n elementsGroups: string[][];\n}\n\n@NgSsmFeatureState({\n featureStateKey: NgssmVisibilityStateSpecification.featureStateKey,\n initialState: NgssmVisibilityStateSpecification.initialState\n})\nexport class NgssmVisibilityStateSpecification {\n public static readonly featureStateKey = 'ngssm-visibility-state';\n public static readonly initialState: NgssmVisibilityState = {\n elements: {},\n elementsGroups: []\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { Spec } from 'immutability-helper';\n\nimport { Reducer, State, Action } from 'ngssm-store';\n\nimport {\n DefineElementsGroupAction,\n HideElementAction,\n NgssmVisibilityActionType,\n ShowElementAction,\n ToggleElementVisibilityAction\n} from '../actions';\nimport { selectNgssmVisibilityState, updateNgssmVisibilityState } from '../state';\n\n@Injectable()\nexport class VisibilityReducer implements Reducer {\n public readonly processedActions: string[] = [\n NgssmVisibilityActionType.toggleElementVisibility,\n NgssmVisibilityActionType.showElement,\n NgssmVisibilityActionType.hideElement,\n NgssmVisibilityActionType.defineElementsGroup\n ];\n\n public updateState(state: State, action: Action): State {\n switch (action.type) {\n case NgssmVisibilityActionType.toggleElementVisibility: {\n const toggleVisibilityAction = action as ToggleElementVisibilityAction;\n if (selectNgssmVisibilityState(state).elements[toggleVisibilityAction.elementKey] === true) {\n return updateNgssmVisibilityState(state, {\n elements: {\n [toggleVisibilityAction.elementKey]: { $set: false }\n }\n });\n }\n\n return this.setElementVisible(state, toggleVisibilityAction.elementKey);\n }\n\n case NgssmVisibilityActionType.showElement: {\n const showAction = action as ShowElementAction;\n return this.setElementVisible(state, showAction.elementKey);\n }\n\n case NgssmVisibilityActionType.hideElement: {\n const hideAction = action as HideElementAction;\n return updateNgssmVisibilityState(state, {\n elements: {\n [hideAction.elementKey]: { $set: false }\n }\n });\n }\n\n case NgssmVisibilityActionType.defineElementsGroup: {\n const defineElementsGroupAction = action as DefineElementsGroupAction;\n const keys = [...defineElementsGroupAction.elementKeys];\n keys.sort();\n if (this.groupExists(keys, selectNgssmVisibilityState(state).elementsGroups)) {\n break;\n }\n\n return updateNgssmVisibilityState(state, {\n elementsGroups: { $push: [keys] }\n });\n }\n }\n\n return state;\n }\n\n private groupExists(keys: string[], groups: string[][]): boolean {\n const index = groups.findIndex((group) => {\n group.length === keys.length && group.findIndex((k, i) => k !== keys[i]) === -1;\n });\n return index !== -1;\n }\n\n private getElementsKeysGroupedWith(key: string, groups: string[][]): string[] {\n const keys = groups.filter((g) => g.includes(key)).flatMap((g) => g);\n const distinctKeys = new Set<string>(keys);\n distinctKeys.delete(key);\n return [...distinctKeys];\n }\n\n private setElementVisible(state: State, key: string): State {\n const elementsCommand: Spec<{ [key: string]: boolean }, never> = {\n [key]: { $set: true }\n };\n\n const associatedElements = this.getElementsKeysGroupedWith(key, selectNgssmVisibilityState(state).elementsGroups);\n associatedElements.forEach((el) => {\n elementsCommand[el] = { $set: false };\n });\n\n return updateNgssmVisibilityState(state, {\n elements: elementsCommand\n });\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideReducers } from 'ngssm-store';\nimport { VisibilityReducer } from './reducers';\n\nexport const provideNgssmVisibility = (): EnvironmentProviders => {\n return makeEnvironmentProviders([provideReducers(VisibilityReducer)]);\n};\n","import { Directive, HostListener, Input } from '@angular/core';\n\nimport { Store } from 'ngssm-store';\n\nimport { ToggleElementVisibilityAction } from '../actions';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[toggleElementVisibility]',\n standalone: true\n})\nexport class ToggleElementVisibilityDirective {\n @Input('toggleElementVisibility') public key: string | undefined | null = '';\n\n constructor(private store: Store) {}\n\n @HostListener('click', ['$event'])\n public toggleElementvisibility(): void {\n const elementKey = this.key;\n if (elementKey) {\n this.store.dispatchAction(new ToggleElementVisibilityAction(elementKey));\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { State } from 'ngssm-store';\nimport { selectNgssmVisibilityState } from '../state';\n\n@Pipe({\n name: 'isElementVisible',\n standalone: true\n})\nexport class IsElementVisiblePipe implements PipeTransform {\n public transform(value: State, ...args: string[]): boolean {\n return selectNgssmVisibilityState(value).elements[args[0]] === true;\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { Store } from 'ngssm-store';\nimport { ShowElementAction } from '../actions';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[showElement]',\n standalone: true\n})\nexport class ShowElementDirective {\n @Input('showElement') public key: string | undefined | null = '';\n\n constructor(private store: Store) {}\n\n @HostListener('click', ['$event'])\n public toggleElementvisibility(): void {\n const elementKey = this.key;\n if (elementKey) {\n this.store.dispatchAction(new ShowElementAction(elementKey));\n }\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { Store } from 'ngssm-store';\nimport { HideElementAction } from '../actions';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[hideElement]',\n standalone: true\n})\nexport class HideElementDirective {\n @Input('hideElement') public key: string | undefined | null = '';\n\n constructor(private store: Store) {}\n\n @HostListener('click', ['$event'])\n public toggleElementvisibility(): void {\n const elementKey = this.key;\n if (elementKey) {\n this.store.dispatchAction(new HideElementAction(elementKey));\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngssm-store",
3
- "version": "16.1.4",
3
+ "version": "16.1.6",
4
4
  "description": "NgSsm - Simple state management implementation.",
5
5
  "author": "Lion Marc",
6
6
  "license": "MIT",
@@ -34,6 +34,12 @@
34
34
  "esm2022": "./esm2022/testing/ngssm-store-testing.mjs",
35
35
  "esm": "./esm2022/testing/ngssm-store-testing.mjs",
36
36
  "default": "./fesm2022/ngssm-store-testing.mjs"
37
+ },
38
+ "./visibility": {
39
+ "types": "./visibility/index.d.ts",
40
+ "esm2022": "./esm2022/visibility/ngssm-store-visibility.mjs",
41
+ "esm": "./esm2022/visibility/ngssm-store-visibility.mjs",
42
+ "default": "./fesm2022/ngssm-store-visibility.mjs"
37
43
  }
38
44
  },
39
45
  "sideEffects": false
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="ngssm-store/visibility" />
5
+ export * from './public_api';
@@ -0,0 +1 @@
1
+ export * from './src/public-api';
@@ -0,0 +1,6 @@
1
+ import { Action } from 'ngssm-store';
2
+ export declare class DefineElementsGroupAction implements Action {
3
+ readonly elementKeys: string[];
4
+ readonly type: string;
5
+ constructor(elementKeys: string[]);
6
+ }
@@ -0,0 +1,6 @@
1
+ import { Action } from 'ngssm-store';
2
+ export declare class HideElementAction implements Action {
3
+ readonly elementKey: string;
4
+ readonly type: string;
5
+ constructor(elementKey: string);
6
+ }
@@ -0,0 +1,5 @@
1
+ export * from './ngssm-visibility-action-type';
2
+ export * from './toggle-element-visibility.action';
3
+ export * from './show-element.action';
4
+ export * from './hide-element.action';
5
+ export * from './define-elements-group.action';
@@ -0,0 +1,6 @@
1
+ export declare enum NgssmVisibilityActionType {
2
+ defineElementsGroup = "[NgssmVisibilityActionType] defineElementsGroup",
3
+ toggleElementVisibility = "[NgssmVisibilityActionType] toggleElementVisibility",
4
+ hideElement = "[NgssmVisibilityActionType] hideElement",
5
+ showElement = "[NgssmVisibilityActionType] showElement"
6
+ }
@@ -0,0 +1,6 @@
1
+ import { Action } from 'ngssm-store';
2
+ export declare class ShowElementAction implements Action {
3
+ readonly elementKey: string;
4
+ readonly type: string;
5
+ constructor(elementKey: string);
6
+ }
@@ -0,0 +1,6 @@
1
+ import { Action } from 'ngssm-store';
2
+ export declare class ToggleElementVisibilityAction implements Action {
3
+ readonly elementKey: string;
4
+ readonly type: string;
5
+ constructor(elementKey: string);
6
+ }
@@ -0,0 +1,10 @@
1
+ import { Store } from 'ngssm-store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class HideElementDirective {
4
+ private store;
5
+ key: string | undefined | null;
6
+ constructor(store: Store);
7
+ toggleElementvisibility(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<HideElementDirective, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HideElementDirective, "[hideElement]", never, { "key": { "alias": "hideElement"; "required": false; }; }, {}, never, never, true, never>;
10
+ }
@@ -0,0 +1,4 @@
1
+ export * from './toggle-element-visibility.directive';
2
+ export * from './is-element-visible.pipe';
3
+ export * from './show-element.directive';
4
+ export * from './hide-element.directive';
@@ -0,0 +1,8 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { State } from 'ngssm-store';
3
+ import * as i0 from "@angular/core";
4
+ export declare class IsElementVisiblePipe implements PipeTransform {
5
+ transform(value: State, ...args: string[]): boolean;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsElementVisiblePipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsElementVisiblePipe, "isElementVisible", true>;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { Store } from 'ngssm-store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ShowElementDirective {
4
+ private store;
5
+ key: string | undefined | null;
6
+ constructor(store: Store);
7
+ toggleElementvisibility(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShowElementDirective, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ShowElementDirective, "[showElement]", never, { "key": { "alias": "showElement"; "required": false; }; }, {}, never, never, true, never>;
10
+ }
@@ -0,0 +1,10 @@
1
+ import { Store } from 'ngssm-store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ToggleElementVisibilityDirective {
4
+ private store;
5
+ key: string | undefined | null;
6
+ constructor(store: Store);
7
+ toggleElementvisibility(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToggleElementVisibilityDirective, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ToggleElementVisibilityDirective, "[toggleElementVisibility]", never, { "key": { "alias": "toggleElementVisibility"; "required": false; }; }, {}, never, never, true, never>;
10
+ }
@@ -0,0 +1,2 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ export declare const provideNgssmVisibility: () => EnvironmentProviders;
@@ -0,0 +1,3 @@
1
+ export * from './provide-ngssm-visibility';
2
+ export * from './actions';
3
+ export * from './components';
@@ -0,0 +1 @@
1
+ export * from './visibility.reducer';
@@ -0,0 +1,11 @@
1
+ import { Reducer, State, Action } from 'ngssm-store';
2
+ import * as i0 from "@angular/core";
3
+ export declare class VisibilityReducer implements Reducer {
4
+ readonly processedActions: string[];
5
+ updateState(state: State, action: Action): State;
6
+ private groupExists;
7
+ private getElementsKeysGroupedWith;
8
+ private setElementVisible;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<VisibilityReducer, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<VisibilityReducer>;
11
+ }
@@ -0,0 +1 @@
1
+ export * from './ngssm-visibility.state';
@@ -0,0 +1,14 @@
1
+ import { Spec } from 'immutability-helper';
2
+ import { State } from 'ngssm-store';
3
+ export declare const selectNgssmVisibilityState: (state: State) => NgssmVisibilityState;
4
+ export declare const updateNgssmVisibilityState: (state: State, command: Spec<NgssmVisibilityState, never>) => State;
5
+ export interface NgssmVisibilityState {
6
+ elements: {
7
+ [key: string]: boolean;
8
+ };
9
+ elementsGroups: string[][];
10
+ }
11
+ export declare class NgssmVisibilityStateSpecification {
12
+ static readonly featureStateKey = "ngssm-visibility-state";
13
+ static readonly initialState: NgssmVisibilityState;
14
+ }