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.
- package/esm2022/visibility/ngssm-store-visibility.mjs +5 -0
- package/esm2022/visibility/public_api.mjs +2 -0
- package/esm2022/visibility/src/actions/define-elements-group.action.mjs +8 -0
- package/esm2022/visibility/src/actions/hide-element.action.mjs +8 -0
- package/esm2022/visibility/src/actions/index.mjs +6 -0
- package/esm2022/visibility/src/actions/ngssm-visibility-action-type.mjs +8 -0
- package/esm2022/visibility/src/actions/show-element.action.mjs +8 -0
- package/esm2022/visibility/src/actions/toggle-element-visibility.action.mjs +8 -0
- package/esm2022/visibility/src/components/hide-element.directive.mjs +33 -0
- package/esm2022/visibility/src/components/index.mjs +5 -0
- package/esm2022/visibility/src/components/is-element-visible.pipe.mjs +18 -0
- package/esm2022/visibility/src/components/show-element.directive.mjs +33 -0
- package/esm2022/visibility/src/components/toggle-element-visibility.directive.mjs +33 -0
- package/esm2022/visibility/src/provide-ngssm-visibility.mjs +7 -0
- package/esm2022/visibility/src/public-api.mjs +4 -0
- package/esm2022/visibility/src/reducers/index.mjs +2 -0
- package/esm2022/visibility/src/reducers/visibility.reducer.mjs +83 -0
- package/esm2022/visibility/src/state/index.mjs +2 -0
- package/esm2022/visibility/src/state/ngssm-visibility.state.mjs +23 -0
- package/fesm2022/ngssm-store-visibility.mjs +254 -0
- package/fesm2022/ngssm-store-visibility.mjs.map +1 -0
- package/package.json +7 -1
- package/visibility/index.d.ts +5 -0
- package/visibility/public_api.d.ts +1 -0
- package/visibility/src/actions/define-elements-group.action.d.ts +6 -0
- package/visibility/src/actions/hide-element.action.d.ts +6 -0
- package/visibility/src/actions/index.d.ts +5 -0
- package/visibility/src/actions/ngssm-visibility-action-type.d.ts +6 -0
- package/visibility/src/actions/show-element.action.d.ts +6 -0
- package/visibility/src/actions/toggle-element-visibility.action.d.ts +6 -0
- package/visibility/src/components/hide-element.directive.d.ts +10 -0
- package/visibility/src/components/index.d.ts +4 -0
- package/visibility/src/components/is-element-visible.pipe.d.ts +8 -0
- package/visibility/src/components/show-element.directive.d.ts +10 -0
- package/visibility/src/components/toggle-element-visibility.directive.d.ts +10 -0
- package/visibility/src/provide-ngssm-visibility.d.ts +2 -0
- package/visibility/src/public-api.d.ts +3 -0
- package/visibility/src/reducers/index.d.ts +1 -0
- package/visibility/src/reducers/visibility.reducer.d.ts +11 -0
- package/visibility/src/state/index.d.ts +1 -0
- 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.
|
|
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 @@
|
|
|
1
|
+
export * from './src/public-api';
|
|
@@ -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,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,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 @@
|
|
|
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
|
+
}
|