a1fa86c227ae82ed1abf9d79c7d4d5f48e52ddcdba626561e98934557e11e721.json raw
1 {"ast":null,"code":"import _asyncToGenerator from \"/home/mleku/src/orly.dev/next/signer/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { inject } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IconButtonComponent, NavComponent, StorageService, getKindName } from '@common';\nimport * as i0 from \"@angular/core\";\nfunction PermissionsComponent_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 2);\n i0.ɵɵtext(1, \" Nothing configured so far.\\n\");\n i0.ɵɵelementEnd();\n }\n}\nfunction PermissionsComponent_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 5);\n i0.ɵɵlistener(\"click\", function PermissionsComponent_Conditional_5_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onClickRemoveAllPermissions());\n });\n i0.ɵɵtext(1, \" Remove All Permissions\\n\");\n i0.ɵɵelementEnd();\n }\n}\nfunction PermissionsComponent_For_7_For_4_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const permission_r4 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"title\", ctx_r1.getKindTooltip(permission_r4.kind));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"(kind \", permission_r4.kind, \")\");\n }\n}\nfunction PermissionsComponent_For_7_For_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"span\", 8);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, PermissionsComponent_For_7_For_4_Conditional_5_Template, 2, 2, \"span\", 9);\n i0.ɵɵelement(6, \"div\", 10);\n i0.ɵɵelementStart(7, \"lib-icon-button\", 11);\n i0.ɵɵlistener(\"click\", function PermissionsComponent_For_7_For_4_Template_lib_icon_button_click_7_listener() {\n const permission_r4 = i0.ɵɵrestoreView(_r3).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onClickRevokePermission(permission_r4));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const permission_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"action-allow\", permission_r4.methodPolicy === \"allow\")(\"action-deny\", permission_r4.methodPolicy === \"deny\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(permission_r4.methodPolicy);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(permission_r4.method);\n i0.ɵɵadvance();\n i0.ɵɵconditional(typeof permission_r4.kind !== \"undefined\" ? 5 : -1);\n }\n}\nfunction PermissionsComponent_For_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4)(1, \"span\", 6);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵrepeaterCreate(3, PermissionsComponent_For_7_For_4_Template, 8, 7, \"div\", 7, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const hostPermissions_r5 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", hostPermissions_r5.host, \" \");\n i0.ɵɵadvance();\n i0.ɵɵrepeater(hostPermissions_r5.permissions);\n }\n}\nexport let PermissionsComponent = /*#__PURE__*/(() => {\n class PermissionsComponent extends NavComponent {\n identity;\n hostsPermissions = [];\n #activatedRoute = inject(ActivatedRoute);\n #storage = inject(StorageService);\n ngOnInit() {\n const selectedIdentityId = this.#activatedRoute.parent?.snapshot.params['id'];\n if (!selectedIdentityId) {\n return;\n }\n this.#initialize(selectedIdentityId);\n }\n onClickRevokePermission(permission) {\n var _this = this;\n return _asyncToGenerator(function* () {\n yield _this.#storage.deletePermission(permission.id);\n _this.#buildHostsPermissions(_this.identity?.id);\n })();\n }\n onClickRemoveAllPermissions() {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n const allPermissions = _this2.hostsPermissions.flatMap(hp => hp.permissions);\n for (const permission of allPermissions) {\n yield _this2.#storage.deletePermission(permission.id);\n }\n _this2.#buildHostsPermissions(_this2.identity?.id);\n })();\n }\n #initialize(identityId) {\n this.identity = this.#storage.getBrowserSessionHandler().browserSessionData?.identities.find(x => x.id === identityId);\n if (!this.identity) {\n return;\n }\n this.#buildHostsPermissions(identityId);\n }\n #buildHostsPermissions(identityId) {\n if (!identityId) {\n return;\n }\n this.hostsPermissions = [];\n const hostPermissions = (this.#storage.getBrowserSessionHandler().browserSessionData?.permissions ?? []).filter(x => x.identityId === identityId).sortBy(x => x.host).groupBy(x => x.host, y => y);\n hostPermissions.forEach((permissions, host) => {\n this.hostsPermissions.push({\n host: host,\n permissions: permissions.sortBy(x => x.method)\n });\n });\n }\n getKindTooltip(kind) {\n return getKindName(kind);\n }\n static ɵfac = /*@__PURE__*/(() => {\n let ɵPermissionsComponent_BaseFactory;\n return function PermissionsComponent_Factory(__ngFactoryType__) {\n return (ɵPermissionsComponent_BaseFactory || (ɵPermissionsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PermissionsComponent)))(__ngFactoryType__ || PermissionsComponent);\n };\n })();\n static ɵcmp = /*@__PURE__*/i0.ɵɵdefineComponent({\n type: PermissionsComponent,\n selectors: [[\"app-permissions\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 8,\n vars: 1,\n consts: [[1, \"header-pane\"], [\"icon\", \"chevron-left\", 3, \"click\"], [1, \"text-muted\", 2, \"font-size\", \"12px\"], [1, \"btn\", \"btn-danger\", \"btn-sm\", \"remove-all-btn\"], [1, \"permissions-card\"], [1, \"btn\", \"btn-danger\", \"btn-sm\", \"remove-all-btn\", 3, \"click\"], [2, \"margin-bottom\", \"4px\", \"font-weight\", \"500\"], [1, \"permission\"], [1, \"text-muted\"], [3, \"title\"], [1, \"sam-flex-grow\"], [\"icon\", \"trash\", \"title\", \"Revoke permission\", 3, \"click\"]],\n template: function PermissionsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"lib-icon-button\", 1);\n i0.ɵɵlistener(\"click\", function PermissionsComponent_Template_lib_icon_button_click_1_listener() {\n return ctx.navigateBack();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"span\");\n i0.ɵɵtext(3, \"Permissions\");\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(4, PermissionsComponent_Conditional_4_Template, 2, 0, \"span\", 2)(5, PermissionsComponent_Conditional_5_Template, 2, 0, \"button\", 3);\n i0.ɵɵrepeaterCreate(6, PermissionsComponent_For_7_Template, 5, 1, \"div\", 4, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵconditional(ctx.hostsPermissions.length === 0 ? 4 : 5);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.hostsPermissions);\n }\n },\n dependencies: [IconButtonComponent],\n styles: [\"[_nghost-%COMP%] {\\n height: 100%;\\n overflow-y: auto;\\n display: flex;\\n flex-direction: column;\\n padding-left: var(--size);\\n padding-right: var(--size);\\n}\\n[_nghost-%COMP%] .header-pane[_ngcontent-%COMP%] {\\n display: flex;\\n flex-direction: row;\\n column-gap: var(--size-h);\\n align-items: center;\\n padding-bottom: var(--size);\\n background-color: var(--background);\\n position: sticky;\\n top: 0;\\n}\\n[_nghost-%COMP%] .remove-all-btn[_ngcontent-%COMP%] {\\n margin-bottom: var(--size);\\n}\\n[_nghost-%COMP%] .permissions-card[_ngcontent-%COMP%] {\\n background: var(--background-light);\\n border-radius: 8px;\\n padding: calc(var(--size) / 2) var(--size);\\n display: flex;\\n flex-direction: column;\\n margin-bottom: 4px;\\n}\\n[_nghost-%COMP%] .permissions-card[_ngcontent-%COMP%] .permission[_ngcontent-%COMP%] {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n column-gap: var(--size);\\n font-size: 12px;\\n margin-left: -8px;\\n padding-left: 8px;\\n margin-right: -8px;\\n padding-right: 8px;\\n border-radius: 4px;\\n}\\n[_nghost-%COMP%] .permissions-card[_ngcontent-%COMP%] .permission[_ngcontent-%COMP%]:hover {\\n background: var(--background-light-hover);\\n}\\n[_nghost-%COMP%] .permissions-card[_ngcontent-%COMP%] .permission[_ngcontent-%COMP%] .action-allow[_ngcontent-%COMP%] {\\n background: var(--bs-green);\\n border-radius: 4px;\\n padding: 0 4px;\\n width: 40px;\\n text-align: center;\\n}\\n[_nghost-%COMP%] .permissions-card[_ngcontent-%COMP%] .permission[_ngcontent-%COMP%] .action-deny[_ngcontent-%COMP%] {\\n background: var(--bs-danger-border-subtle);\\n border-radius: 4px;\\n padding: 0 4px;\\n width: 40px;\\n text-align: center;\\n}\"]\n });\n }\n return PermissionsComponent;\n})();","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}