@posiwise/shared-components 0.0.12 → 0.0.14

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/esm2020/index.mjs CHANGED
@@ -4,4 +4,6 @@ export * from './lib/ab-test/ab-alternative/ab-alternative.component';
4
4
  export * from './lib/password-validation/password-validation.component';
5
5
  export * from './lib/custom-uploader/custom-uploader.component';
6
6
  export * from './lib/image-cropper/image-cropper.component';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1jb21wb25lbnRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hYi10ZXN0L2FiLXRlc3QtY29udGFpbmVyL2FiLXRlc3QtY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hYi10ZXN0L2FiLWFsdGVybmF0aXZlL2FiLWFsdGVybmF0aXZlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYXNzd29yZC12YWxpZGF0aW9uL3Bhc3N3b3JkLXZhbGlkYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2N1c3RvbS11cGxvYWRlci9jdXN0b20tdXBsb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQnO1xuIl19
7
+ export * from './lib/pw-tabs/pw-tabs.component';
8
+ export * from './lib/permission-tree/permission-tree.component';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaURBQWlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWItdGVzdC9hYi10ZXN0LWNvbnRhaW5lci9hYi10ZXN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWItdGVzdC9hYi1hbHRlcm5hdGl2ZS9hYi1hbHRlcm5hdGl2ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFzc3dvcmQtdmFsaWRhdGlvbi9wYXNzd29yZC12YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jdXN0b20tdXBsb2FkZXIvY3VzdG9tLXVwbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbWFnZS1jcm9wcGVyL2ltYWdlLWNyb3BwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B3LXRhYnMvcHctdGFicy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVybWlzc2lvbi10cmVlL3Blcm1pc3Npb24tdHJlZS5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,113 @@
1
+ import { Component, ElementRef, Input } from '@angular/core';
2
+ import map from 'lodash/map';
3
+ import * as i0 from "@angular/core";
4
+ export class PermissionTreeComponent {
5
+ constructor(_element) {
6
+ this._element = _element;
7
+ }
8
+ ngOnChanges(simple) {
9
+ if (simple['data'] &&
10
+ simple['data'].currentValue &&
11
+ simple['data'].currentValue.grantedPermissionNames) {
12
+ this.refreshTree();
13
+ }
14
+ }
15
+ ngAfterViewInit() {
16
+ this._$tree = $(this._element.nativeElement);
17
+ this.refreshTree();
18
+ }
19
+ getGrantedPermissionNames() {
20
+ if (!this._$tree || !this._createdTreeBefore) {
21
+ return [];
22
+ }
23
+ const permissionNames = [];
24
+ const selectedPermissions = this._$tree.jstree('get_selected', true);
25
+ for (let i = 0; i < selectedPermissions.length; i++) {
26
+ permissionNames.push(selectedPermissions[i].original.id);
27
+ }
28
+ return permissionNames;
29
+ }
30
+ refreshTree() {
31
+ if (this._createdTreeBefore) {
32
+ this._$tree.jstree('destroy');
33
+ }
34
+ this._createdTreeBefore = false;
35
+ if (!this.data || !this._$tree) {
36
+ return;
37
+ }
38
+ const treeData = map(this.data.permissions, item => {
39
+ return {
40
+ id: item.name,
41
+ parent: item.parentName ? item.parentName : '#',
42
+ text: item.displayName,
43
+ state: {
44
+ opened: true,
45
+ selected: this.data.grantedPermissionNames.includes(item.name)
46
+ }
47
+ };
48
+ });
49
+ this._$tree.jstree({
50
+ core: {
51
+ data: treeData
52
+ },
53
+ types: {
54
+ default: {
55
+ icon: 'fa fa-folder-open tree-item-icon-color icon-lg'
56
+ },
57
+ file: {
58
+ icon: 'fa fa-file tree-item-icon-color icon-lg'
59
+ }
60
+ },
61
+ checkbox: {
62
+ keep_selected_style: false,
63
+ three_state: false,
64
+ cascade: ''
65
+ },
66
+ plugins: ['checkbox', 'types']
67
+ });
68
+ this._createdTreeBefore = true;
69
+ let inTreeChangeEvent = false;
70
+ function selectNodeAndAllParents(node) {
71
+ this._$tree.jstree('select_node', node, true);
72
+ const parent = this._$tree.jstree('get_parent', node);
73
+ if (parent) {
74
+ selectNodeAndAllParents(parent);
75
+ }
76
+ }
77
+ this._$tree.on('changed.jstree', (_e, data) => {
78
+ if (!data.node) {
79
+ return;
80
+ }
81
+ const wasInTreeChangeEvent = inTreeChangeEvent;
82
+ if (!wasInTreeChangeEvent) {
83
+ inTreeChangeEvent = true;
84
+ }
85
+ let childrenNodes;
86
+ if (data.node.state.selected) {
87
+ selectNodeAndAllParents(this._$tree.jstree('get_parent', data.node));
88
+ childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));
89
+ this._$tree.jstree('select_node', childrenNodes);
90
+ }
91
+ else {
92
+ childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));
93
+ this._$tree.jstree('deselect_node', childrenNodes);
94
+ }
95
+ if (!wasInTreeChangeEvent) {
96
+ inTreeChangeEvent = false;
97
+ }
98
+ });
99
+ }
100
+ }
101
+ PermissionTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PermissionTreeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
102
+ PermissionTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: PermissionTreeComponent, selector: "permission-tree", inputs: { data: "data" }, usesOnChanges: true, ngImport: i0, template: ` <div class="permission-tree"></div> `, isInline: true });
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PermissionTreeComponent, decorators: [{
104
+ type: Component,
105
+ args: [{
106
+ // eslint-disable-next-line @angular-eslint/component-selector
107
+ selector: 'permission-tree',
108
+ template: ` <div class="permission-tree"></div> `
109
+ }]
110
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { data: [{
111
+ type: Input
112
+ }] } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wZXJtaXNzaW9uLXRyZWUvcGVybWlzc2lvbi10cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDOztBQU83QixNQUFNLE9BQU8sdUJBQXVCO0lBT2hDLFlBQW9CLFFBQW9CO1FBQXBCLGFBQVEsR0FBUixRQUFRLENBQVk7SUFBRyxDQUFDO0lBRTVDLFdBQVcsQ0FBQyxNQUFxQjtRQUM3QixJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDZCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUNwRDtZQUNFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMxQyxPQUFPLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTNCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLEtBQUssSUFB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QUMsQ0FBQyxDQUFDO2dCQUVyRSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNILGFBQWEsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDdEQ7WUFFRCxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3ZCLGlCQUFpQixHQUFHLEtBQUssQ0FBQzthQUM3QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7b0hBekhRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNHQUZ0Qix1Q0FBdUM7MkZBRXhDLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSx1Q0FBdUM7aUJBQ3BEO2lHQUVZLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtYXAgZnJvbSAnbG9kYXNoL21hcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdwZXJtaXNzaW9uLXRyZWUnLFxuICAgIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJwZXJtaXNzaW9uLXRyZWVcIj48L2Rpdj4gYFxufSlcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgZGF0YTogYW55O1xuXG4gICAgcHJpdmF0ZSBfJHRyZWU6IGFueTtcblxuICAgIHByaXZhdGUgX2NyZWF0ZWRUcmVlQmVmb3JlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZTogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBzaW1wbGVbJ2RhdGEnXSAmJlxuICAgICAgICAgICAgc2ltcGxlWydkYXRhJ10uY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgICBzaW1wbGVbJ2RhdGEnXS5jdXJyZW50VmFsdWUuZ3JhbnRlZFBlcm1pc3Npb25OYW1lc1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFRyZWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fJHRyZWUgPSAkKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5yZWZyZXNoVHJlZSgpO1xuICAgIH1cblxuICAgIGdldEdyYW50ZWRQZXJtaXNzaW9uTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAoIXRoaXMuXyR0cmVlIHx8ICF0aGlzLl9jcmVhdGVkVHJlZUJlZm9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGVybWlzc2lvbk5hbWVzID0gW107XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRQZXJtaXNzaW9ucyA9IHRoaXMuXyR0cmVlLmpzdHJlZSgnZ2V0X3NlbGVjdGVkJywgdHJ1ZSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0ZWRQZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGVybWlzc2lvbk5hbWVzLnB1c2goc2VsZWN0ZWRQZXJtaXNzaW9uc1tpXS5vcmlnaW5hbC5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGVybWlzc2lvbk5hbWVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVmcmVzaFRyZWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jcmVhdGVkVHJlZUJlZm9yZSkge1xuICAgICAgICAgICAgdGhpcy5fJHRyZWUuanN0cmVlKCdkZXN0cm95Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jcmVhdGVkVHJlZUJlZm9yZSA9IGZhbHNlO1xuXG4gICAgICAgIGlmICghdGhpcy5kYXRhIHx8ICF0aGlzLl8kdHJlZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHJlZURhdGEgPSBtYXAodGhpcy5kYXRhLnBlcm1pc3Npb25zLCBpdGVtID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGl0ZW0ucGFyZW50TmFtZSA/IGl0ZW0ucGFyZW50TmFtZSA6ICcjJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBpdGVtLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW5lZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuZGF0YS5ncmFudGVkUGVybWlzc2lvbk5hbWVzLmluY2x1ZGVzKGl0ZW0ubmFtZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl8kdHJlZS5qc3RyZWUoe1xuICAgICAgICAgICAgY29yZToge1xuICAgICAgICAgICAgICAgIGRhdGE6IHRyZWVEYXRhXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIGljb246ICdmYSBmYS1mb2xkZXItb3BlbiB0cmVlLWl0ZW0taWNvbi1jb2xvciBpY29uLWxnJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZmlsZToge1xuICAgICAgICAgICAgICAgICAgICBpY29uOiAnZmEgZmEtZmlsZSB0cmVlLWl0ZW0taWNvbi1jb2xvciBpY29uLWxnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGVja2JveDoge1xuICAgICAgICAgICAgICAgIGtlZXBfc2VsZWN0ZWRfc3R5bGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRocmVlX3N0YXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjYXNjYWRlOiAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBsdWdpbnM6IFsnY2hlY2tib3gnLCAndHlwZXMnXVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jcmVhdGVkVHJlZUJlZm9yZSA9IHRydWU7XG5cbiAgICAgICAgbGV0IGluVHJlZUNoYW5nZUV2ZW50ID0gZmFsc2U7XG5cbiAgICAgICAgZnVuY3Rpb24gc2VsZWN0Tm9kZUFuZEFsbFBhcmVudHMobm9kZSkge1xuICAgICAgICAgICAgdGhpcy5fJHRyZWUuanN0cmVlKCdzZWxlY3Rfbm9kZScsIG5vZGUsIHRydWUpO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5fJHRyZWUuanN0cmVlKCdnZXRfcGFyZW50Jywgbm9kZSk7XG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0Tm9kZUFuZEFsbFBhcmVudHMocGFyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuXyR0cmVlLm9uKCdjaGFuZ2VkLmpzdHJlZScsIChfZSwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFkYXRhLm5vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHdhc0luVHJlZUNoYW5nZUV2ZW50ID0gaW5UcmVlQ2hhbmdlRXZlbnQ7XG4gICAgICAgICAgICBpZiAoIXdhc0luVHJlZUNoYW5nZUV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaW5UcmVlQ2hhbmdlRXZlbnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgY2hpbGRyZW5Ob2RlcztcblxuICAgICAgICAgICAgaWYgKGRhdGEubm9kZS5zdGF0ZS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdE5vZGVBbmRBbGxQYXJlbnRzKHRoaXMuXyR0cmVlLmpzdHJlZSgnZ2V0X3BhcmVudCcsIGRhdGEubm9kZSkpO1xuXG4gICAgICAgICAgICAgICAgY2hpbGRyZW5Ob2RlcyA9ICQubWFrZUFycmF5KHRoaXMuXyR0cmVlLmpzdHJlZSgnZ2V0X2NoaWxkcmVuX2RvbScsIGRhdGEubm9kZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuXyR0cmVlLmpzdHJlZSgnc2VsZWN0X25vZGUnLCBjaGlsZHJlbk5vZGVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5Ob2RlcyA9ICQubWFrZUFycmF5KHRoaXMuXyR0cmVlLmpzdHJlZSgnZ2V0X2NoaWxkcmVuX2RvbScsIGRhdGEubm9kZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuXyR0cmVlLmpzdHJlZSgnZGVzZWxlY3Rfbm9kZScsIGNoaWxkcmVuTm9kZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXdhc0luVHJlZUNoYW5nZUV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaW5UcmVlQ2hhbmdlRXZlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,50 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { NavigationEnd } from '@angular/router';
3
+ import { TabMenu } from 'primeng/tabmenu';
4
+ import { AppBaseComponent } from '@posiwise/app-base-component';
5
+ import { PermissionService } from '@posiwise/common-services';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "primeng/tabmenu";
8
+ import * as i2 from "@angular/router";
9
+ export class PwTabsComponent extends AppBaseComponent {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.items = [];
13
+ this.withSubscription = false;
14
+ }
15
+ ngOnInit() {
16
+ if (this.withSubscription) {
17
+ this.getUserSubscription().subscribe((subscription) => {
18
+ this.items.forEach(item => {
19
+ // prepends the subscription slug to the route
20
+ item.routerLink = `/${subscription?.slug}${item.routerLink[0]}`;
21
+ item.visible = item?.state
22
+ ? this.permissionService.evaluatePermissions(item.state['permission'], PermissionService.selectedProduct?.feature_key, PermissionService.selectedProduct?.permission_key)
23
+ : item.visible;
24
+ });
25
+ });
26
+ }
27
+ this.routeEventSubscription = this.router.events.subscribe(e => {
28
+ if (e instanceof NavigationEnd) {
29
+ this.tabInstance.activeItem = this.items.find(item => item.routerLink === this.router.url);
30
+ }
31
+ });
32
+ }
33
+ ngOnDestroy() {
34
+ this.routeEventSubscription.unsubscribe();
35
+ }
36
+ }
37
+ PwTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PwTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
38
+ PwTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: PwTabsComponent, selector: "pw-tabs", inputs: { items: "items", withSubscription: "withSubscription" }, viewQueries: [{ propertyName: "tabInstance", first: true, predicate: ["tabMenu"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1.TabMenu, selector: "p-tabMenu", inputs: ["model", "activeItem", "scrollable", "popup", "style", "styleClass"], outputs: ["activeItemChange"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PwTabsComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'pw-tabs', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n" }]
42
+ }], propDecorators: { items: [{
43
+ type: Input
44
+ }], tabInstance: [{
45
+ type: ViewChild,
46
+ args: ['tabMenu', { static: false }]
47
+ }], withSubscription: [{
48
+ type: Input
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHctdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC1jb21wb25lbnRzL3NyYy9saWIvcHctdGFicy9wdy10YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkLWNvbXBvbmVudHMvc3JjL2xpYi9wdy10YWJzL3B3LXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBTTlELE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQUpyRDs7UUFNSSxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBTXZCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztLQW1DNUI7SUE3QkcsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3RCLDhDQUE4QztvQkFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNoRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxLQUFLO3dCQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUN4QixpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUM5QyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUNwRDt3QkFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzRCxJQUFJLENBQUMsWUFBWSxhQUFhLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN6QyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQzlDLENBQUM7YUFDTDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVRLFdBQVc7UUFDaEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7OzRHQTFDUSxlQUFlO2dHQUFmLGVBQWUsZ1BDZDVCLDJQQVNBOzJGREthLGVBQWU7a0JBSjNCLFNBQVM7K0JBQ0ksU0FBUzs4QkFLbkIsS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUl2QyxnQkFBZ0I7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUYWJNZW51IH0gZnJvbSAncHJpbWVuZy90YWJtZW51JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiBhcyBSeFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHBvc2l3aXNlL2FwcC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdAcG9zaXdpc2UvY29tbW9uLXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb21tb24tc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3B3LXRhYnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdy10YWJzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQd1RhYnNDb21wb25lbnQgZXh0ZW5kcyBBcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgaXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhYk1lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICB0YWJJbnN0YW5jZTogVGFiTWVudTtcblxuICAgIEBJbnB1dCgpXG4gICAgd2l0aFN1YnNjcmlwdGlvbiA9IGZhbHNlO1xuXG4gICAgYWN0aXZlVGFiOiBNZW51SXRlbTtcblxuICAgIHByaXZhdGUgcm91dGVFdmVudFN1YnNjcmlwdGlvbjogUnhTdWJzY3JpcHRpb247XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMud2l0aFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5nZXRVc2VyU3Vic2NyaXB0aW9uKCkuc3Vic2NyaWJlKChzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcHJlcGVuZHMgdGhlIHN1YnNjcmlwdGlvbiBzbHVnIHRvIHRoZSByb3V0ZVxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJvdXRlckxpbmsgPSBgLyR7c3Vic2NyaXB0aW9uPy5zbHVnfSR7aXRlbS5yb3V0ZXJMaW5rWzBdfWA7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0udmlzaWJsZSA9IGl0ZW0/LnN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMucGVybWlzc2lvblNlcnZpY2UuZXZhbHVhdGVQZXJtaXNzaW9ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdGVbJ3Blcm1pc3Npb24nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb25TZXJ2aWNlLnNlbGVjdGVkUHJvZHVjdD8uZmVhdHVyZV9rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJtaXNzaW9uU2VydmljZS5zZWxlY3RlZFByb2R1Y3Q/LnBlcm1pc3Npb25fa2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXRlbS52aXNpYmxlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJvdXRlRXZlbnRTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJJbnN0YW5jZS5hY3RpdmVJdGVtID0gdGhpcy5pdGVtcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICBpdGVtID0+IGl0ZW0ucm91dGVyTGluayA9PT0gdGhpcy5yb3V0ZXIudXJsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMucm91dGVFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHctdGFiIG92ZXJmbG93LWhpZGRlblwiPlxuICA8cC10YWJNZW51IFttb2RlbF09XCJpdGVtc1wiXG4gICAgI3RhYk1lbnU+PC9wLXRhYk1lbnU+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWJvZHlcIj5cbiAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -4,11 +4,15 @@ import { AbAlternativeComponent } from './ab-test/ab-alternative/ab-alternative.
4
4
  import { PasswordValidationComponent } from './password-validation/password-validation.component';
5
5
  import { DirectivesModule } from '@posiwise/directives';
6
6
  import { CoreTranslocoModule } from '@posiwise/core-transloco';
7
- import { CustomUploaderComponent } from "./custom-uploader/custom-uploader.component";
8
- import { ProfileImageCropperComponent } from "./image-cropper/image-cropper.component";
7
+ import { CustomUploaderComponent } from './custom-uploader/custom-uploader.component';
8
+ import { ProfileImageCropperComponent } from './image-cropper/image-cropper.component';
9
+ import { PwTabsComponent } from './pw-tabs/pw-tabs.component';
9
10
  import { FormsModule } from '@angular/forms';
10
11
  import { ImageCropperModule } from 'ngx-image-cropper';
12
+ import { TabMenuModule } from 'primeng/tabmenu';
13
+ import { PermissionTreeComponent } from "./permission-tree/permission-tree.component";
11
14
  import * as i0 from "@angular/core";
15
+ const primeNgModules = [TabMenuModule];
12
16
  export class SharedComponentsModule {
13
17
  }
14
18
  SharedComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: SharedComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -16,19 +20,23 @@ SharedComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
16
20
  AbAlternativeComponent,
17
21
  PasswordValidationComponent,
18
22
  CustomUploaderComponent,
19
- ProfileImageCropperComponent], imports: [FormsModule,
23
+ ProfileImageCropperComponent,
24
+ PwTabsComponent,
25
+ PermissionTreeComponent], imports: [FormsModule,
20
26
  DirectivesModule,
21
27
  CoreTranslocoModule,
22
- ImageCropperModule], exports: [AbTestContainerComponent,
28
+ ImageCropperModule, TabMenuModule], exports: [AbTestContainerComponent,
23
29
  AbAlternativeComponent,
24
30
  PasswordValidationComponent,
25
31
  CustomUploaderComponent,
26
32
  ProfileImageCropperComponent,
27
- ImageCropperModule] });
33
+ ImageCropperModule,
34
+ PwTabsComponent, TabMenuModule, PermissionTreeComponent] });
28
35
  SharedComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: SharedComponentsModule, imports: [FormsModule,
29
36
  DirectivesModule,
30
37
  CoreTranslocoModule,
31
- ImageCropperModule, ImageCropperModule] });
38
+ ImageCropperModule,
39
+ primeNgModules, ImageCropperModule, TabMenuModule] });
32
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: SharedComponentsModule, decorators: [{
33
41
  type: NgModule,
34
42
  args: [{
@@ -37,13 +45,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
37
45
  AbAlternativeComponent,
38
46
  PasswordValidationComponent,
39
47
  CustomUploaderComponent,
40
- ProfileImageCropperComponent
48
+ ProfileImageCropperComponent,
49
+ PwTabsComponent,
50
+ PermissionTreeComponent
41
51
  ],
42
52
  imports: [
43
53
  FormsModule,
44
54
  DirectivesModule,
45
55
  CoreTranslocoModule,
46
- ImageCropperModule
56
+ ImageCropperModule,
57
+ primeNgModules
47
58
  ],
48
59
  exports: [
49
60
  AbTestContainerComponent,
@@ -51,8 +62,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
51
62
  PasswordValidationComponent,
52
63
  CustomUploaderComponent,
53
64
  ProfileImageCropperComponent,
54
- ImageCropperModule
65
+ ImageCropperModule,
66
+ PwTabsComponent,
67
+ primeNgModules,
68
+ PermissionTreeComponent
55
69
  ]
56
70
  }]
57
71
  }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUF5QnZELE1BQU0sT0FBTyxzQkFBc0I7O21IQUF0QixzQkFBc0I7b0hBQXRCLHNCQUFzQixpQkFyQjdCLHdCQUF3QjtRQUN4QixzQkFBc0I7UUFDdEIsMkJBQTJCO1FBQzNCLHVCQUF1QjtRQUN2Qiw0QkFBNEIsYUFHNUIsV0FBVztRQUNYLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsa0JBQWtCLGFBR2xCLHdCQUF3QjtRQUN4QixzQkFBc0I7UUFDdEIsMkJBQTJCO1FBQzNCLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsa0JBQWtCO29IQUdYLHNCQUFzQixZQWQ3QixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixrQkFBa0IsRUFRbEIsa0JBQWtCOzJGQUdYLHNCQUFzQjtrQkF2QmxDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNaLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2Qiw0QkFBNEI7d0JBQzVCLGtCQUFrQjtxQkFDbkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJUZXN0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9hYi10ZXN0L2FiLXRlc3QtY29udGFpbmVyL2FiLXRlc3QtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYkFsdGVybmF0aXZlQ29tcG9uZW50IH0gZnJvbSAnLi9hYi10ZXN0L2FiLWFsdGVybmF0aXZlL2FiLWFsdGVybmF0aXZlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXNzd29yZFZhbGlkYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3Bhc3N3b3JkLXZhbGlkYXRpb24vcGFzc3dvcmQtdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlc01vZHVsZSB9IGZyb20gJ0Bwb3Npd2lzZS9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENvcmVUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICdAcG9zaXdpc2UvY29yZS10cmFuc2xvY28nO1xuaW1wb3J0IHsgQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jdXN0b20tdXBsb2FkZXIvY3VzdG9tLXVwbG9hZGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtQcm9maWxlSW1hZ2VDcm9wcGVyQ29tcG9uZW50fSBmcm9tIFwiLi9pbWFnZS1jcm9wcGVyL2ltYWdlLWNyb3BwZXIuY29tcG9uZW50XCI7XG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW1hZ2VDcm9wcGVyTW9kdWxlIH0gZnJvbSAnbmd4LWltYWdlLWNyb3BwZXInO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgQWJUZXN0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgQWJBbHRlcm5hdGl2ZUNvbXBvbmVudCxcbiAgICAgIFBhc3N3b3JkVmFsaWRhdGlvbkNvbXBvbmVudCxcbiAgICAgIEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50LFxuICAgICAgUHJvZmlsZUltYWdlQ3JvcHBlckNvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICBEaXJlY3RpdmVzTW9kdWxlLFxuICAgICAgQ29yZVRyYW5zbG9jb01vZHVsZSxcbiAgICAgIEltYWdlQ3JvcHBlck1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgQWJUZXN0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgQWJBbHRlcm5hdGl2ZUNvbXBvbmVudCxcbiAgICAgIFBhc3N3b3JkVmFsaWRhdGlvbkNvbXBvbmVudCxcbiAgICAgIEN1c3RvbVVwbG9hZGVyQ29tcG9uZW50LFxuICAgICAgUHJvZmlsZUltYWdlQ3JvcHBlckNvbXBvbmVudCxcbiAgICAgIEltYWdlQ3JvcHBlck1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkQ29tcG9uZW50c01vZHVsZSB7fVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQtY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDOztBQUVwRixNQUFNLGNBQWMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBK0J2QyxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsaUJBM0IzQix3QkFBd0I7UUFDeEIsc0JBQXNCO1FBQ3RCLDJCQUEyQjtRQUMzQix1QkFBdUI7UUFDdkIsNEJBQTRCO1FBQzVCLGVBQWU7UUFDZix1QkFBdUIsYUFHdkIsV0FBVztRQUNYLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsa0JBQWtCLEVBaEJGLGFBQWEsYUFvQjdCLHdCQUF3QjtRQUN4QixzQkFBc0I7UUFDdEIsMkJBQTJCO1FBQzNCLHVCQUF1QjtRQUN2Qiw0QkFBNEI7UUFDNUIsa0JBQWtCO1FBQ2xCLGVBQWUsRUExQkMsYUFBYSxFQTRCN0IsdUJBQXVCO29IQUdsQixzQkFBc0IsWUFsQjNCLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixjQUFjLEVBUWQsa0JBQWtCLEVBekJGLGFBQWE7MkZBK0J4QixzQkFBc0I7a0JBN0JsQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZix1QkFBdUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsdUJBQXVCO3FCQUMxQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYlRlc3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2FiLXRlc3QvYWItdGVzdC1jb250YWluZXIvYWItdGVzdC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFiQWx0ZXJuYXRpdmVDb21wb25lbnQgfSBmcm9tICcuL2FiLXRlc3QvYWItYWx0ZXJuYXRpdmUvYWItYWx0ZXJuYXRpdmUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkVmFsaWRhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcGFzc3dvcmQtdmFsaWRhdGlvbi9wYXNzd29yZC12YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnQHBvc2l3aXNlL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ29yZVRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bwb3Npd2lzZS9jb3JlLXRyYW5zbG9jbyc7XG5pbXBvcnQgeyBDdXN0b21VcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXVwbG9hZGVyL2N1c3RvbS11cGxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZmlsZUltYWdlQ3JvcHBlckNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtY3JvcHBlci9pbWFnZS1jcm9wcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQd1RhYnNDb21wb25lbnQgfSBmcm9tICcuL3B3LXRhYnMvcHctdGFicy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEltYWdlQ3JvcHBlck1vZHVsZSB9IGZyb20gJ25neC1pbWFnZS1jcm9wcGVyJztcbmltcG9ydCB7IFRhYk1lbnVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYm1lbnUnO1xuaW1wb3J0IHtQZXJtaXNzaW9uVHJlZUNvbXBvbmVudH0gZnJvbSBcIi4vcGVybWlzc2lvbi10cmVlL3Blcm1pc3Npb24tdHJlZS5jb21wb25lbnRcIjtcblxuY29uc3QgcHJpbWVOZ01vZHVsZXMgPSBbVGFiTWVudU1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEFiVGVzdENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgQWJBbHRlcm5hdGl2ZUNvbXBvbmVudCxcbiAgICAgICAgUGFzc3dvcmRWYWxpZGF0aW9uQ29tcG9uZW50LFxuICAgICAgICBDdXN0b21VcGxvYWRlckNvbXBvbmVudCxcbiAgICAgICAgUHJvZmlsZUltYWdlQ3JvcHBlckNvbXBvbmVudCxcbiAgICAgICAgUHdUYWJzQ29tcG9uZW50LFxuICAgICAgICBQZXJtaXNzaW9uVHJlZUNvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgRGlyZWN0aXZlc01vZHVsZSxcbiAgICAgICAgQ29yZVRyYW5zbG9jb01vZHVsZSxcbiAgICAgICAgSW1hZ2VDcm9wcGVyTW9kdWxlLFxuICAgICAgICBwcmltZU5nTW9kdWxlc1xuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBBYlRlc3RDb250YWluZXJDb21wb25lbnQsXG4gICAgICAgIEFiQWx0ZXJuYXRpdmVDb21wb25lbnQsXG4gICAgICAgIFBhc3N3b3JkVmFsaWRhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgQ3VzdG9tVXBsb2FkZXJDb21wb25lbnQsXG4gICAgICAgIFByb2ZpbGVJbWFnZUNyb3BwZXJDb21wb25lbnQsXG4gICAgICAgIEltYWdlQ3JvcHBlck1vZHVsZSxcbiAgICAgICAgUHdUYWJzQ29tcG9uZW50LFxuICAgICAgICBwcmltZU5nTW9kdWxlcyxcbiAgICAgICAgUGVybWlzc2lvblRyZWVDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZENvbXBvbmVudHNNb2R1bGUge31cbiJdfQ==
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Component, Input, EventEmitter, ViewChild, Output, Inject, NgModule } from '@angular/core';
3
3
  import { AB_TEST_ACTIONS } from '@posiwise/common-utilities';
4
4
  import * as i1 from '@posiwise/common-services';
5
+ import { PermissionService } from '@posiwise/common-services';
5
6
  import { StatusCodes } from 'http-status-codes';
6
7
  import { AppBaseComponent } from '@posiwise/app-base-component';
7
8
  import * as i1$1 from '@ng-bootstrap/ng-bootstrap';
@@ -15,6 +16,11 @@ import { DOCUMENT } from '@angular/common';
15
16
  import { HelperService } from '@posiwise/helper-service';
16
17
  import * as i2$1 from 'ngx-image-cropper';
17
18
  import { ImageCropperModule } from 'ngx-image-cropper';
19
+ import * as i2$2 from '@angular/router';
20
+ import { NavigationEnd } from '@angular/router';
21
+ import * as i1$2 from 'primeng/tabmenu';
22
+ import { TabMenuModule } from 'primeng/tabmenu';
23
+ import map from 'lodash/map';
18
24
 
19
25
  class AbTestContainerComponent {
20
26
  constructor(service) {
@@ -288,6 +294,160 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
288
294
  type: Input
289
295
  }] } });
290
296
 
297
+ class PwTabsComponent extends AppBaseComponent {
298
+ constructor() {
299
+ super(...arguments);
300
+ this.items = [];
301
+ this.withSubscription = false;
302
+ }
303
+ ngOnInit() {
304
+ if (this.withSubscription) {
305
+ this.getUserSubscription().subscribe((subscription) => {
306
+ this.items.forEach(item => {
307
+ var _a, _b;
308
+ // prepends the subscription slug to the route
309
+ item.routerLink = `/${subscription === null || subscription === void 0 ? void 0 : subscription.slug}${item.routerLink[0]}`;
310
+ item.visible = (item === null || item === void 0 ? void 0 : item.state)
311
+ ? this.permissionService.evaluatePermissions(item.state['permission'], (_a = PermissionService.selectedProduct) === null || _a === void 0 ? void 0 : _a.feature_key, (_b = PermissionService.selectedProduct) === null || _b === void 0 ? void 0 : _b.permission_key)
312
+ : item.visible;
313
+ });
314
+ });
315
+ }
316
+ this.routeEventSubscription = this.router.events.subscribe(e => {
317
+ if (e instanceof NavigationEnd) {
318
+ this.tabInstance.activeItem = this.items.find(item => item.routerLink === this.router.url);
319
+ }
320
+ });
321
+ }
322
+ ngOnDestroy() {
323
+ this.routeEventSubscription.unsubscribe();
324
+ }
325
+ }
326
+ PwTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PwTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
327
+ PwTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: PwTabsComponent, selector: "pw-tabs", inputs: { items: "items", withSubscription: "withSubscription" }, viewQueries: [{ propertyName: "tabInstance", first: true, predicate: ["tabMenu"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i1$2.TabMenu, selector: "p-tabMenu", inputs: ["model", "activeItem", "scrollable", "popup", "style", "styleClass"], outputs: ["activeItemChange"] }, { kind: "directive", type: i2$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PwTabsComponent, decorators: [{
329
+ type: Component,
330
+ args: [{ selector: 'pw-tabs', template: "<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n" }]
331
+ }], propDecorators: { items: [{
332
+ type: Input
333
+ }], tabInstance: [{
334
+ type: ViewChild,
335
+ args: ['tabMenu', { static: false }]
336
+ }], withSubscription: [{
337
+ type: Input
338
+ }] } });
339
+
340
+ class PermissionTreeComponent {
341
+ constructor(_element) {
342
+ this._element = _element;
343
+ }
344
+ ngOnChanges(simple) {
345
+ if (simple['data'] &&
346
+ simple['data'].currentValue &&
347
+ simple['data'].currentValue.grantedPermissionNames) {
348
+ this.refreshTree();
349
+ }
350
+ }
351
+ ngAfterViewInit() {
352
+ this._$tree = $(this._element.nativeElement);
353
+ this.refreshTree();
354
+ }
355
+ getGrantedPermissionNames() {
356
+ if (!this._$tree || !this._createdTreeBefore) {
357
+ return [];
358
+ }
359
+ const permissionNames = [];
360
+ const selectedPermissions = this._$tree.jstree('get_selected', true);
361
+ for (let i = 0; i < selectedPermissions.length; i++) {
362
+ permissionNames.push(selectedPermissions[i].original.id);
363
+ }
364
+ return permissionNames;
365
+ }
366
+ refreshTree() {
367
+ if (this._createdTreeBefore) {
368
+ this._$tree.jstree('destroy');
369
+ }
370
+ this._createdTreeBefore = false;
371
+ if (!this.data || !this._$tree) {
372
+ return;
373
+ }
374
+ const treeData = map(this.data.permissions, item => {
375
+ return {
376
+ id: item.name,
377
+ parent: item.parentName ? item.parentName : '#',
378
+ text: item.displayName,
379
+ state: {
380
+ opened: true,
381
+ selected: this.data.grantedPermissionNames.includes(item.name)
382
+ }
383
+ };
384
+ });
385
+ this._$tree.jstree({
386
+ core: {
387
+ data: treeData
388
+ },
389
+ types: {
390
+ default: {
391
+ icon: 'fa fa-folder-open tree-item-icon-color icon-lg'
392
+ },
393
+ file: {
394
+ icon: 'fa fa-file tree-item-icon-color icon-lg'
395
+ }
396
+ },
397
+ checkbox: {
398
+ keep_selected_style: false,
399
+ three_state: false,
400
+ cascade: ''
401
+ },
402
+ plugins: ['checkbox', 'types']
403
+ });
404
+ this._createdTreeBefore = true;
405
+ let inTreeChangeEvent = false;
406
+ function selectNodeAndAllParents(node) {
407
+ this._$tree.jstree('select_node', node, true);
408
+ const parent = this._$tree.jstree('get_parent', node);
409
+ if (parent) {
410
+ selectNodeAndAllParents(parent);
411
+ }
412
+ }
413
+ this._$tree.on('changed.jstree', (_e, data) => {
414
+ if (!data.node) {
415
+ return;
416
+ }
417
+ const wasInTreeChangeEvent = inTreeChangeEvent;
418
+ if (!wasInTreeChangeEvent) {
419
+ inTreeChangeEvent = true;
420
+ }
421
+ let childrenNodes;
422
+ if (data.node.state.selected) {
423
+ selectNodeAndAllParents(this._$tree.jstree('get_parent', data.node));
424
+ childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));
425
+ this._$tree.jstree('select_node', childrenNodes);
426
+ }
427
+ else {
428
+ childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));
429
+ this._$tree.jstree('deselect_node', childrenNodes);
430
+ }
431
+ if (!wasInTreeChangeEvent) {
432
+ inTreeChangeEvent = false;
433
+ }
434
+ });
435
+ }
436
+ }
437
+ PermissionTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PermissionTreeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
438
+ PermissionTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: PermissionTreeComponent, selector: "permission-tree", inputs: { data: "data" }, usesOnChanges: true, ngImport: i0, template: ` <div class="permission-tree"></div> `, isInline: true });
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PermissionTreeComponent, decorators: [{
440
+ type: Component,
441
+ args: [{
442
+ // eslint-disable-next-line @angular-eslint/component-selector
443
+ selector: 'permission-tree',
444
+ template: ` <div class="permission-tree"></div> `
445
+ }]
446
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { data: [{
447
+ type: Input
448
+ }] } });
449
+
450
+ const primeNgModules = [TabMenuModule];
291
451
  class SharedComponentsModule {
292
452
  }
293
453
  SharedComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: SharedComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -295,19 +455,23 @@ SharedComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
295
455
  AbAlternativeComponent,
296
456
  PasswordValidationComponent,
297
457
  CustomUploaderComponent,
298
- ProfileImageCropperComponent], imports: [FormsModule,
458
+ ProfileImageCropperComponent,
459
+ PwTabsComponent,
460
+ PermissionTreeComponent], imports: [FormsModule,
299
461
  DirectivesModule,
300
462
  CoreTranslocoModule,
301
- ImageCropperModule], exports: [AbTestContainerComponent,
463
+ ImageCropperModule, TabMenuModule], exports: [AbTestContainerComponent,
302
464
  AbAlternativeComponent,
303
465
  PasswordValidationComponent,
304
466
  CustomUploaderComponent,
305
467
  ProfileImageCropperComponent,
306
- ImageCropperModule] });
468
+ ImageCropperModule,
469
+ PwTabsComponent, TabMenuModule, PermissionTreeComponent] });
307
470
  SharedComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: SharedComponentsModule, imports: [FormsModule,
308
471
  DirectivesModule,
309
472
  CoreTranslocoModule,
310
- ImageCropperModule, ImageCropperModule] });
473
+ ImageCropperModule,
474
+ primeNgModules, ImageCropperModule, TabMenuModule] });
311
475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: SharedComponentsModule, decorators: [{
312
476
  type: NgModule,
313
477
  args: [{
@@ -316,13 +480,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
316
480
  AbAlternativeComponent,
317
481
  PasswordValidationComponent,
318
482
  CustomUploaderComponent,
319
- ProfileImageCropperComponent
483
+ ProfileImageCropperComponent,
484
+ PwTabsComponent,
485
+ PermissionTreeComponent
320
486
  ],
321
487
  imports: [
322
488
  FormsModule,
323
489
  DirectivesModule,
324
490
  CoreTranslocoModule,
325
- ImageCropperModule
491
+ ImageCropperModule,
492
+ primeNgModules
326
493
  ],
327
494
  exports: [
328
495
  AbTestContainerComponent,
@@ -330,7 +497,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
330
497
  PasswordValidationComponent,
331
498
  CustomUploaderComponent,
332
499
  ProfileImageCropperComponent,
333
- ImageCropperModule
500
+ ImageCropperModule,
501
+ PwTabsComponent,
502
+ primeNgModules,
503
+ PermissionTreeComponent
334
504
  ]
335
505
  }]
336
506
  }] });
@@ -339,5 +509,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
339
509
  * Generated bundle index. Do not edit.
340
510
  */
341
511
 
342
- export { AbAlternativeComponent, AbTestContainerComponent, CustomUploaderComponent, PasswordValidationComponent, ProfileImageCropperComponent, SharedComponentsModule };
512
+ export { AbAlternativeComponent, AbTestContainerComponent, CustomUploaderComponent, PasswordValidationComponent, PermissionTreeComponent, ProfileImageCropperComponent, PwTabsComponent, SharedComponentsModule };
343
513
  //# sourceMappingURL=shared-components.mjs.map