@memberjunction/ng-explorer-core 5.31.0 → 5.33.0
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/dist/generated/lazy-feature-config.d.ts +1 -1
- package/dist/generated/lazy-feature-config.d.ts.map +1 -1
- package/dist/generated/lazy-feature-config.js +13 -2
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/about/about-dialog.component.d.ts +82 -0
- package/dist/lib/about/about-dialog.component.d.ts.map +1 -0
- package/dist/lib/about/about-dialog.component.js +689 -0
- package/dist/lib/about/about-dialog.component.js.map +1 -0
- package/dist/lib/profile/profile-dialog.component.d.ts +72 -0
- package/dist/lib/profile/profile-dialog.component.d.ts.map +1 -0
- package/dist/lib/profile/profile-dialog.component.js +722 -0
- package/dist/lib/profile/profile-dialog.component.js.map +1 -0
- package/dist/lib/services/lazy-module-registry.d.ts +20 -0
- package/dist/lib/services/lazy-module-registry.d.ts.map +1 -1
- package/dist/lib/services/lazy-module-registry.js +43 -0
- package/dist/lib/services/lazy-module-registry.js.map +1 -1
- package/dist/lib/shell/services/about-dialog.service.d.ts +23 -0
- package/dist/lib/shell/services/about-dialog.service.d.ts.map +1 -0
- package/dist/lib/shell/services/about-dialog.service.js +45 -0
- package/dist/lib/shell/services/about-dialog.service.js.map +1 -0
- package/dist/lib/shell/services/profile-dialog.service.d.ts +22 -0
- package/dist/lib/shell/services/profile-dialog.service.d.ts.map +1 -0
- package/dist/lib/shell/services/profile-dialog.service.js +49 -0
- package/dist/lib/shell/services/profile-dialog.service.js.map +1 -0
- package/dist/lib/shell/shell.component.d.ts +7 -11
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +69 -54
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/user-menu/base-user-menu.d.ts +4 -13
- package/dist/lib/user-menu/base-user-menu.d.ts.map +1 -1
- package/dist/lib/user-menu/base-user-menu.js +26 -75
- package/dist/lib/user-menu/base-user-menu.js.map +1 -1
- package/dist/public-api.d.ts +4 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +6 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +42 -42
- package/dist/lib/shell/services/settings-dialog.service.d.ts +0 -28
- package/dist/lib/shell/services/settings-dialog.service.d.ts.map +0 -1
- package/dist/lib/shell/services/settings-dialog.service.js +0 -61
- package/dist/lib/shell/services/settings-dialog.service.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"about-dialog.component.js","sourceRoot":"","sources":["../../../src/lib/about/about-dialog.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ChangeDetectorRef,\n inject\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserRoleInfo } from '@memberjunction/core';\nimport { InstanceConfigEngine } from '@memberjunction/core-entities';\nimport { GraphQLDataProvider, PACKAGE_VERSION } from '@memberjunction/graphql-dataprovider';\nimport { MJAuthBase } from '@memberjunction/ng-auth-services';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { ThemeService } from '@memberjunction/ng-shared';\nimport { Subscription } from 'rxjs';\nimport { ServerConnectivityService } from '../services/server-connectivity.service';\n\n/**\n * About dialog for MemberJunction. Shows brand identity, version, lightweight\n * usage stats, the current user, and a collapsible diagnostics panel.\n *\n * Self-contained standalone component. Opened via {@link AboutDialogService}.\n *\n * Easter eggs:\n * - Click the version pill 7× → toast + logo spin\n * - Click the logo → quick wiggle\n * - Konami code (↑↑↓↓←→←→ B A) → barrel roll\n */\n@Component({\n selector: 'mj-about-dialog',\n standalone: true,\n imports: [CommonModule],\n template: `\n<div class=\"mj-about\" role=\"document\">\n <button class=\"mj-about__close\" type=\"button\" aria-label=\"Close\" (click)=\"OnCloseClick()\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n\n <div class=\"mj-about__hero\">\n <div class=\"mj-about__logo-wrap\" (click)=\"OnLogoClick()\">\n <svg class=\"mj-about__logo\" #aboutLogo\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448.28 57.11\"\n aria-label=\"MemberJunction\">\n <path fill=\"#fff\"\n d=\"M428.73,44.89v-16.92c.7-1.34,1.66-2.37,2.88-3.09,1.22-.72,2.59-1.08,4.12-1.08,2.2,0,3.92.65,5.17,1.94,1.25,1.3,1.87,3.07,1.87,5.33v13.81h2.01v-14.36c0-1.71-.36-3.21-1.08-4.51-.72-1.3-1.72-2.3-3.02-3.02-1.3-.72-2.8-1.08-4.51-1.08-3.14,0-5.63,1.21-7.46,3.61v-3.16h-2.01v22.51h2.01ZM407.08,42.12c-1.39-.87-2.49-2.04-3.29-3.52-.81-1.48-1.21-3.13-1.21-4.96s.4-3.48,1.21-4.96c.81-1.48,1.91-2.65,3.29-3.52,1.39-.87,2.94-1.31,4.64-1.31s3.25.44,4.64,1.31c1.39.87,2.49,2.04,3.29,3.52.81,1.48,1.21,3.13,1.21,4.96s-.41,3.48-1.21,4.96c-.81,1.48-1.91,2.65-3.29,3.52-1.39.87-2.94,1.3-4.64,1.3s-3.26-.43-4.64-1.3M417.42,43.79c1.69-1.04,3.04-2.45,4.03-4.23.99-1.78,1.49-3.76,1.49-5.92s-.5-4.18-1.49-5.95c-.99-1.77-2.33-3.17-4.03-4.21-1.69-1.04-3.59-1.56-5.69-1.56s-3.97.52-5.67,1.56c-1.71,1.04-3.06,2.44-4.05,4.21-.99,1.77-1.49,3.75-1.49,5.95s.5,4.14,1.49,5.92c.99,1.79,2.34,3.19,4.05,4.23,1.71,1.04,3.6,1.56,5.67,1.56s4-.52,5.69-1.56M397.14,16.8c.32-.34.48-.75.48-1.24s-.16-.9-.48-1.24c-.32-.34-.74-.5-1.26-.5-.49,0-.9.17-1.24.5-.34.34-.5.75-.5,1.24s.17.9.5,1.24c.34.34.75.5,1.24.5.52,0,.94-.17,1.26-.5M396.89,22.38h-2.01v22.51h2.01v-22.51ZM390.57,45.21c.61-.09,1.2-.25,1.78-.46v-1.97c-.52.21-1.02.37-1.51.48-.49.11-1.08.16-1.79.16-1.31,0-2.25-.28-2.81-.84s-.85-1.49-.85-2.77v-15.6h6.95v-1.83h-6.95v-6.31l-2.01.64v5.67h-4.94v1.83h4.94v16.29c0,1.52.46,2.71,1.37,3.57.91.85,2.23,1.28,3.94,1.28.64,0,1.26-.05,1.87-.14M373.12,44.43c1.54-.61,2.89-1.45,4.05-2.51l-1.37-1.65c-.98.95-2.1,1.71-3.36,2.29s-2.57.87-3.91.87c-1.71,0-3.25-.43-4.64-1.3-1.39-.87-2.49-2.04-3.29-3.52-.81-1.48-1.21-3.13-1.21-4.96s.4-3.48,1.21-4.96c.81-1.48,1.9-2.65,3.29-3.52,1.39-.87,2.93-1.31,4.64-1.31,1.34,0,2.64.28,3.91.85,1.27.56,2.39,1.33,3.36,2.31l1.37-1.65c-1.16-1.07-2.51-1.91-4.05-2.52-1.54-.61-3.07-.91-4.6-.91-2.07,0-3.96.52-5.67,1.56s-3.06,2.44-4.05,4.21c-.99,1.77-1.49,3.75-1.49,5.95s.49,4.18,1.49,5.95c.99,1.77,2.34,3.17,4.05,4.21s3.6,1.56,5.67,1.56c1.52,0,3.06-.31,4.6-.92M337.65,44.89v-16.92c.7-1.34,1.66-2.37,2.88-3.09,1.22-.72,2.59-1.08,4.12-1.08,2.2,0,3.92.65,5.17,1.94,1.25,1.3,1.88,3.07,1.88,5.33v13.81h2.01v-14.36c0-1.71-.36-3.21-1.07-4.51-.72-1.3-1.73-2.3-3.02-3.02s-2.8-1.08-4.5-1.08c-3.14,0-5.63,1.21-7.46,3.61v-3.16h-2.01v22.51h2.01ZM328.7,41.78v3.11h2.01v-22.51h-2.01v16.92c-.7,1.31-1.66,2.33-2.88,3.06-1.22.73-2.59,1.1-4.12,1.1-2.2,0-3.92-.65-5.17-1.97-1.25-1.31-1.87-3.08-1.87-5.31v-13.81h-2.01v14.36c0,1.71.37,3.21,1.1,4.51.73,1.3,1.74,2.3,3.04,3.02,1.3.72,2.78,1.08,4.46,1.08,3.2,0,5.69-1.19,7.46-3.57M303.64,43.88c1.74-1.01,3.08-2.43,4.02-4.28.95-1.84,1.42-4.05,1.42-6.61V12.87h-2.1v20.13c0,3.2-.85,5.74-2.56,7.62-1.71,1.88-4.01,2.81-6.91,2.81-2.17,0-4.02-.56-5.58-1.69-1.56-1.13-2.77-2.75-3.66-4.85l-1.92.87c1.01,2.5,2.46,4.4,4.37,5.7,1.9,1.3,4.15,1.94,6.75,1.94,2.38,0,4.44-.5,6.18-1.51M279.77,44.89v-15.37c.61-.97,1.41-1.73,2.4-2.26.99-.53,2.07-.8,3.22-.8.64,0,1.27.06,1.88.18.61.12,1.16.3,1.65.55v-6.45c-.55-.37-1.48-.56-2.79-.59-1.31,0-2.5.25-3.57.75-1.07.5-2,1.24-2.79,2.22v-2.42h-7.41v24.2h7.41ZM253.44,28.07c.47-.56,1.04-1,1.72-1.3.67-.3,1.42-.46,2.24-.46s1.52.16,2.2.48c.67.32,1.26.76,1.76,1.33.5.56.88,1.24,1.12,2.04h-10.11c.24-.82.6-1.52,1.07-2.08M263.5,44.47c1.6-.58,3.17-1.51,4.69-2.79l-4.9-4.35c-.58.58-1.28,1.03-2.1,1.35-.82.32-1.74.48-2.75.48-.91,0-1.77-.16-2.56-.48-.79-.32-1.47-.77-2.03-1.35-.56-.58-1.02-1.25-1.35-2.01h17.25v-1.83c0-2.56-.53-4.83-1.58-6.82-1.05-1.98-2.49-3.54-4.32-4.69-1.83-1.14-3.94-1.72-6.31-1.72s-4.48.55-6.4,1.67c-1.92,1.11-3.44,2.62-4.55,4.5-1.11,1.89-1.67,4.01-1.67,6.36s.58,4.47,1.74,6.36c1.16,1.89,2.74,3.39,4.73,4.51,2,1.11,4.23,1.67,6.7,1.67,2.01,0,3.82-.29,5.42-.87M227.12,38.44c-.88-.34-1.65-.79-2.29-1.37v-8.46c.67-.64,1.43-1.12,2.29-1.44s1.8-.48,2.84-.48c1.19,0,2.26.27,3.23.8.96.53,1.72,1.26,2.29,2.2.56.93.84,1.97.84,3.13s-.28,2.2-.84,3.13c-.56.93-1.32,1.66-2.27,2.2-.95.54-2.03.8-3.25.8-1.01,0-1.95-.17-2.84-.5M224.74,44.89v-1.37c.92.55,1.91.97,2.97,1.26,1.07.29,2.16.43,3.29.43,2.35,0,4.48-.55,6.38-1.65,1.91-1.1,3.41-2.58,4.53-4.46,1.11-1.88,1.67-3.97,1.67-6.29s-.55-4.42-1.65-6.29c-1.1-1.88-2.58-3.37-4.44-4.49-1.86-1.11-3.95-1.67-6.27-1.67s-4.51.67-6.41,2.01v-10.66l-7.41,1.14v32.02h7.32ZM183.69,44.89v-16.56c.46-.58,1.01-1.01,1.67-1.3.66-.29,1.4-.43,2.22-.43,1.19,0,2.14.4,2.86,1.19.72.79,1.07,1.86,1.07,3.2v13.91h7.41v-14.91c0-.28,0-.54-.02-.8-.01-.26-.04-.51-.07-.76.49-.61,1.07-1.07,1.74-1.37.67-.31,1.42-.46,2.24-.46,1.19,0,2.14.4,2.86,1.19s1.08,1.86,1.08,3.2v13.91h7.41v-14.91c0-1.92-.41-3.61-1.21-5.08-.81-1.46-1.91-2.61-3.31-3.43-1.4-.82-3.02-1.23-4.85-1.23-1.59,0-3.05.29-4.39.87-1.34.58-2.5,1.4-3.48,2.47-.83-1.07-1.85-1.89-3.07-2.47-1.22-.58-2.59-.87-4.12-.87-2.32,0-4.33.67-6.04,2.01v-1.56h-7.41v24.2h7.41ZM157.36,28.07c.47-.56,1.04-1,1.72-1.3.67-.3,1.42-.46,2.24-.46s1.52.16,2.2.48c.67.32,1.26.76,1.76,1.33.5.56.88,1.24,1.12,2.04h-10.11c.24-.82.6-1.52,1.08-2.08M167.42,44.47c1.6-.58,3.16-1.51,4.69-2.79l-4.9-4.35c-.58.58-1.28,1.03-2.1,1.35-.83.32-1.74.48-2.75.48-.91,0-1.77-.16-2.56-.48-.79-.32-1.47-.77-2.03-1.35-.56-.58-1.02-1.25-1.35-2.01h17.25v-1.83c0-2.56-.53-4.83-1.58-6.82-1.05-1.98-2.49-3.54-4.32-4.69-1.83-1.14-3.93-1.72-6.31-1.72s-4.48.55-6.41,1.67c-1.92,1.11-3.44,2.62-4.55,4.5-1.11,1.89-1.67,4.01-1.67,6.36s.58,4.47,1.74,6.36c1.16,1.89,2.74,3.39,4.74,4.51,2,1.11,4.23,1.67,6.7,1.67,2.01,0,3.82-.29,5.42-.87M118.71,44.89v-21.91l10.52,19.62,10.52-19.53v21.82h7.41V12.87h-9.93l-7.91,15.1-7.91-15.1h-9.93v32.02h7.23Z\" />\n <path fill=\"#fff\"\n d=\"M88.82,12.69v27.95s9.76,5.58,9.76,5.58c.01-.24.02-34.61.02-34.61,0-3.72-1.57-6.76-4.3-8.35-2.73-1.59-6.15-1.44-9.38.39l-33.88,19.27L17.17,3.66c-3.23-1.84-6.65-1.98-9.38-.39-2.73,1.59-4.3,4.63-4.3,8.35,0,0,0,34.39.02,34.64l9.75-5.58V12.69l27.89,15.87L4.21,49.57c.71,1.84,1.93,3.32,3.57,4.28,1.26.73,2.67,1.1,4.13,1.1,1.71,0,3.51-.5,5.25-1.49L88.82,12.69Z\" />\n <path fill=\"#fff\"\n d=\"M64.22,30.43l-9.86,5.64,30.56,17.39c1.74.99,3.54,1.49,5.26,1.49,1.46,0,2.87-.37,4.13-1.1,1.65-.96,2.87-2.46,3.59-4.31l-33.67-19.11Z\" />\n </svg>\n </div>\n\n <div class=\"mj-about__version-row\">\n <span class=\"mj-about__version-pill\" (click)=\"OnVersionClick()\" role=\"button\" tabindex=\"0\">\n <span class=\"mj-about__version-dot\"></span>\n <span>Version {{ Version }}</span>\n </span>\n </div>\n </div>\n\n <div class=\"mj-about__body\">\n @if (ConnectionLabel) {\n <div class=\"mj-about__connection-line\">\n Connected to <span class=\"mj-about__connection-name\">{{ ConnectionLabel }}</span>\n </div>\n }\n\n <div class=\"mj-about__user-card\">\n @if (AvatarUrl) {\n <img class=\"mj-about__user-avatar mj-about__user-avatar--img\"\n [src]=\"AvatarUrl\" alt=\"\" (error)=\"OnAvatarLoadError()\" />\n } @else if (AvatarIconClass) {\n <div class=\"mj-about__user-avatar mj-about__user-avatar--icon\">\n <i [class]=\"AvatarIconClass\"></i>\n </div>\n } @else {\n <div class=\"mj-about__user-avatar\">{{ UserInitials }}</div>\n }\n <div class=\"mj-about__user-info\">\n <div class=\"mj-about__user-name\">{{ UserName }}</div>\n <div class=\"mj-about__user-meta\">{{ UserMeta }}</div>\n </div>\n <div class=\"mj-about__conn-pill\" [class.mj-about__conn-pill--offline]=\"!IsConnected\">\n <i class=\"fa-solid fa-circle\"></i>\n {{ IsConnected ? 'Connected' : 'Offline' }}\n </div>\n </div>\n\n <button class=\"mj-about__diag-toggle\" type=\"button\" [class.mj-about__diag-toggle--open]=\"DiagnosticsOpen\"\n (click)=\"ToggleDiagnostics()\">\n <span class=\"mj-about__diag-toggle-left\">\n <i class=\"fa-solid fa-stethoscope\"></i>\n {{ DiagnosticsOpen ? 'Hide diagnostics' : 'Show diagnostics' }}\n </span>\n <i class=\"fa-solid fa-chevron-down mj-about__diag-chev\"></i>\n </button>\n\n <div class=\"mj-about__diag-panel\" [class.mj-about__diag-panel--open]=\"DiagnosticsOpen\">\n <div class=\"mj-about__diag-section\">\n <h5><i class=\"fa-solid fa-cube\"></i> Build</h5>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Version</span><span class=\"v\">{{ Version }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Environment</span><span class=\"v\">{{ Environment }}</span></div>\n </div>\n <div class=\"mj-about__diag-section\">\n <h5><i class=\"fa-solid fa-plug\"></i> Connection</h5>\n <div class=\"mj-about__diag-row\"><span class=\"k\">API endpoint</span><span class=\"v\" [title]=\"ApiUrl\">{{ ApiUrlShort }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Auth provider</span><span class=\"v\">{{ AuthProvider }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Status</span><span class=\"v\" [class.mj-about__success]=\"IsConnected\" [class.mj-about__error]=\"!IsConnected\">{{ IsConnected ? 'Connected' : 'Offline' }}</span></div>\n </div>\n <div class=\"mj-about__diag-section\">\n <h5><i class=\"fa-solid fa-database\"></i> Loaded</h5>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Entities</span><span class=\"v\">{{ EntityCount }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Applications</span><span class=\"v\">{{ ApplicationCount }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Queries</span><span class=\"v\">{{ QueryCount }}</span></div>\n </div>\n <div class=\"mj-about__diag-section\">\n <h5><i class=\"fa-solid fa-user\"></i> Session</h5>\n <div class=\"mj-about__diag-row\"><span class=\"k\">User</span><span class=\"v\">{{ UserEmail }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Roles</span><span class=\"v\">{{ UserRolesText }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Theme</span><span class=\"v\">{{ ThemeLabel }}</span></div>\n <div class=\"mj-about__diag-row\"><span class=\"k\">Browser</span><span class=\"v\">{{ BrowserLabel }}</span></div>\n </div>\n <button class=\"mj-about__copy-btn\" type=\"button\" (click)=\"CopyDiagnostics()\">\n <i class=\"fa-solid\" [class.fa-clipboard]=\"!CopyConfirmed\" [class.fa-check]=\"CopyConfirmed\"></i>\n {{ CopyConfirmed ? 'Copied!' : 'Copy diagnostics' }}\n </button>\n </div>\n </div>\n\n <div class=\"mj-about__footer\">\n <a class=\"mj-about__footer-link\" href=\"https://docs.memberjunction.org\" target=\"_blank\" rel=\"noopener\">\n <i class=\"fa-solid fa-book\"></i> Documentation\n </a>\n <a class=\"mj-about__footer-link\" href=\"https://github.com/MemberJunction/MJ\" target=\"_blank\" rel=\"noopener\">\n <i class=\"fa-brands fa-github\"></i> GitHub\n </a>\n <a class=\"mj-about__footer-link\" href=\"https://memberjunction.com\" target=\"_blank\" rel=\"noopener\">\n <i class=\"fa-solid fa-globe\"></i> Website\n </a>\n </div>\n\n <div class=\"mj-about__credit\">\n Built with <span class=\"mj-about__heart\">♥</span> by the MemberJunction community\n </div>\n\n @if (ToastMessage) {\n <div class=\"mj-about__toast\">{{ ToastMessage }}</div>\n }\n</div>\n `,\n styles: [`\n:host {\n display: block;\n width: 100%;\n height: 100%;\n}\n.mj-about {\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n height: 100%;\n min-height: 0;\n position: relative;\n font-family: inherit;\n}\n.mj-about__close {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 36px;\n height: 36px;\n border: none;\n border-radius: 8px;\n background: rgba(255, 255, 255, 0.18);\n backdrop-filter: blur(8px);\n color: #fff;\n cursor: pointer;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s;\n z-index: 2;\n}\n.mj-about__close:hover { background: rgba(255, 255, 255, 0.3); }\n\n.mj-about__hero {\n background: linear-gradient(135deg, #264FAF 0%, #0076b6 100%);\n color: #fff;\n padding: 36px 24px 28px;\n position: relative;\n overflow: hidden;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 14px;\n}\n.mj-about__hero::before {\n content: '';\n position: absolute;\n inset: -50%;\n background: radial-gradient(circle, rgba(255, 255, 255, 0.10) 0%, transparent 60%);\n animation: mj-about-rotate 24s linear infinite;\n pointer-events: none;\n}\n@media (prefers-reduced-motion: reduce) {\n .mj-about__hero::before { animation: none; }\n}\n@keyframes mj-about-rotate { to { transform: rotate(360deg); } }\n\n.mj-about__logo-wrap {\n position: relative;\n z-index: 1;\n cursor: pointer;\n display: block;\n text-align: center;\n}\n.mj-about__logo {\n width: 280px;\n max-width: 80%;\n height: auto;\n display: inline-block;\n filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.15));\n transition: transform 0.3s ease-out;\n}\n.mj-about__logo-wrap:hover .mj-about__logo { transform: scale(1.03); }\n\n.mj-about__version-row {\n position: relative;\n z-index: 1;\n text-align: center;\n}\n.mj-about__version-pill {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n background: rgba(255, 255, 255, 0.18);\n backdrop-filter: blur(8px);\n border: 1px solid rgba(255, 255, 255, 0.28);\n border-radius: 100px;\n padding: 5px 14px;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n user-select: none;\n color: #fff;\n transition: background 0.15s;\n letter-spacing: 0.2px;\n}\n.mj-about__version-pill:hover { background: rgba(255, 255, 255, 0.28); }\n.mj-about__version-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #4ade80;\n box-shadow: 0 0 6px #4ade80;\n}\n\n.mj-about__body {\n padding: 22px 24px 16px;\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n}\n\n.mj-about__connection-line {\n text-align: center;\n font-size: 11.5px;\n color: var(--mj-text-muted);\n margin-bottom: 14px;\n letter-spacing: 0.2px;\n}\n.mj-about__connection-name {\n color: var(--mj-text-secondary);\n font-weight: 600;\n}\n\n.mj-about__user-card {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 14px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 10px;\n margin-bottom: 16px;\n}\n.mj-about__user-avatar {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: linear-gradient(135deg, #264FAF 0%, #0076b6 100%);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: 700;\n font-size: 15px;\n flex-shrink: 0;\n object-fit: cover;\n overflow: hidden;\n}\nimg.mj-about__user-avatar { background: var(--mj-bg-surface-card); }\n.mj-about__user-avatar--icon i { font-size: 18px; }\n.mj-about__user-info { flex: 1; min-width: 0; }\n.mj-about__user-name {\n font-size: 13.5px;\n font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.mj-about__user-meta {\n font-size: 11.5px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.mj-about__conn-pill {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 11px;\n color: var(--mj-status-success);\n font-weight: 600;\n background: color-mix(in srgb, var(--mj-status-success) 12%, transparent);\n padding: 3px 8px;\n border-radius: 100px;\n flex-shrink: 0;\n}\n.mj-about__conn-pill i { font-size: 6px; }\n.mj-about__conn-pill--offline {\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 12%, transparent);\n}\n\n.mj-about__diag-toggle {\n width: 100%;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 12px 14px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n transition: background 0.15s, border-color 0.15s, color 0.15s;\n font-family: inherit;\n}\n.mj-about__diag-toggle:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-border-strong);\n color: var(--mj-text-primary);\n}\n.mj-about__diag-toggle-left {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n.mj-about__diag-chev {\n transition: transform 0.25s;\n color: var(--mj-text-muted);\n}\n.mj-about__diag-toggle--open .mj-about__diag-chev { transform: rotate(180deg); }\n\n.mj-about__diag-panel {\n max-height: 0;\n overflow: hidden;\n transition: max-height 0.35s ease-out, margin-top 0.25s;\n}\n.mj-about__diag-panel--open {\n max-height: 800px;\n margin-top: 12px;\n}\n.mj-about__diag-section + .mj-about__diag-section { margin-top: 12px; }\n.mj-about__diag-section {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 10px;\n padding: 12px 14px;\n}\n.mj-about__diag-section h5 {\n margin: 0 0 8px;\n font-size: 10.5px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.6px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.mj-about__diag-section h5 i { color: var(--mj-brand-primary); }\n.mj-about__diag-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n font-size: 12.5px;\n padding: 4px 0;\n min-width: 0;\n}\n.mj-about__diag-row .k { color: var(--mj-text-secondary); flex-shrink: 0; }\n.mj-about__diag-row .v {\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Menlo, Consolas, monospace;\n font-size: 11.5px;\n font-weight: 500;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n.mj-about__success { color: var(--mj-status-success) !important; }\n.mj-about__error { color: var(--mj-status-error) !important; }\n\n.mj-about__copy-btn {\n width: 100%;\n margin-top: 12px;\n padding: 10px;\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n border-radius: 8px;\n font-size: 12.5px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: border-color 0.15s, color 0.15s, background 0.15s;\n font-family: inherit;\n}\n.mj-about__copy-btn:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, transparent);\n}\n\n.mj-about__footer {\n border-top: 1px solid var(--mj-border-subtle);\n padding: 14px 20px;\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n justify-content: center;\n flex-shrink: 0;\n}\n.mj-about__footer-link {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 12px;\n border-radius: 7px;\n font-size: 12px;\n color: var(--mj-text-secondary);\n text-decoration: none;\n transition: background 0.15s, color 0.15s;\n cursor: pointer;\n}\n.mj-about__footer-link:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-brand-primary);\n}\n\n.mj-about__credit {\n text-align: center;\n font-size: 10.5px;\n color: var(--mj-text-muted);\n padding: 0 20px 14px;\n flex-shrink: 0;\n}\n.mj-about__heart {\n color: var(--mj-status-error);\n display: inline-block;\n animation: mj-about-heart 2s ease-in-out infinite;\n}\n@media (prefers-reduced-motion: reduce) {\n .mj-about__heart { animation: none; }\n}\n@keyframes mj-about-heart {\n 50% { transform: scale(1.18); }\n}\n\n.mj-about__toast {\n position: absolute;\n top: 16px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--mj-text-primary);\n color: var(--mj-bg-surface);\n padding: 10px 18px;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 500;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\n z-index: 5;\n pointer-events: none;\n animation: mj-about-toast-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);\n max-width: calc(100% - 32px);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n@keyframes mj-about-toast-in {\n from { transform: translateX(-50%) translateY(-30px); opacity: 0; }\n to { transform: translateX(-50%) translateY(0); opacity: 1; }\n}\n\n@media (max-width: 480px) {\n .mj-about__hero { padding: 30px 18px 22px; gap: 12px; }\n .mj-about__logo { width: 220px; }\n .mj-about__body { padding: 18px 16px 14px; }\n .mj-about__footer { padding: 12px 14px; }\n}\n `]\n})\nexport class AboutDialogComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n @Output() CloseRequested = new EventEmitter<void>();\n\n /** Optional avatar image URL — passed in from the shell where it's already resolved. */\n @Input() AvatarUrl: string | null = null;\n\n /** Optional Font Awesome icon class fallback when no image is available. */\n @Input() AvatarIconClass: string | null = null;\n\n /** Static framework version, generated at build time. */\n public readonly Version: string = PACKAGE_VERSION;\n\n public EntityCount = 0;\n public ApplicationCount = 0;\n public QueryCount = 0;\n\n public UserName = 'Unknown User';\n public UserEmail = '';\n public UserInitials = '?';\n public UserRolesText = 'None';\n public ApiUrl = '';\n public ApiUrlShort = '';\n public AuthProvider = 'Unknown';\n public Environment: string = 'production';\n public ThemeLabel = '';\n public BrowserLabel = '';\n public IsConnected = true;\n public DiagnosticsOpen = false;\n\n /** Friendly \"Connected to X\" label — display name from InstanceConfig or just the API hostname. */\n public ConnectionLabel = '';\n\n public ToastMessage = '';\n public CopyConfirmed = false;\n\n private authBase = inject(MJAuthBase);\n private themeService = inject(ThemeService);\n private connectivity = inject(ServerConnectivityService);\n private cdr = inject(ChangeDetectorRef);\n\n private connSub?: Subscription;\n private themeSub?: Subscription;\n private versionClickCount = 0;\n private versionClickResetTimer: ReturnType<typeof setTimeout> | null = null;\n private toastTimer: ReturnType<typeof setTimeout> | null = null;\n private konamiIndex = 0;\n private readonly konamiSequence = ['ArrowUp','ArrowUp','ArrowDown','ArrowDown','ArrowLeft','ArrowRight','ArrowLeft','ArrowRight','b','a'];\n private readonly konamiHandler = (event: KeyboardEvent): void => {\n const key = event.key.length === 1 ? event.key.toLowerCase() : event.key;\n if (key === this.konamiSequence[this.konamiIndex]) {\n this.konamiIndex++;\n if (this.konamiIndex === this.konamiSequence.length) {\n this.konamiIndex = 0;\n this.showToast('🚀 You found it. Now you must tell no one.', 3500);\n this.barrelRoll();\n }\n } else {\n this.konamiIndex = 0;\n }\n };\n\n public get UserMeta(): string {\n if (this.UserEmail && this.UserRolesText && this.UserRolesText !== 'None') {\n return `${this.UserEmail} · ${this.UserRolesText}`;\n }\n return this.UserEmail || this.UserRolesText;\n }\n\n public ngOnInit(): void {\n this.populate();\n this.connSub = this.connectivity.IsConnected$.subscribe(connected => {\n this.IsConnected = connected;\n this.cdr.markForCheck();\n });\n this.themeSub = this.themeService.AppliedTheme$.subscribe(() => {\n this.ThemeLabel = this.computeThemeLabel();\n this.cdr.markForCheck();\n });\n document.addEventListener('keydown', this.konamiHandler);\n }\n\n public ngOnDestroy(): void {\n this.connSub?.unsubscribe();\n this.themeSub?.unsubscribe();\n document.removeEventListener('keydown', this.konamiHandler);\n if (this.versionClickResetTimer) clearTimeout(this.versionClickResetTimer);\n if (this.toastTimer) clearTimeout(this.toastTimer);\n }\n\n private populate(): void {\n const provider = this.ProviderToUse;\n\n this.EntityCount = provider?.Entities?.length ?? 0;\n this.ApplicationCount = provider?.Applications?.length ?? 0;\n this.QueryCount = provider?.Queries?.length ?? 0;\n\n const user = provider?.CurrentUser;\n if (user) {\n this.UserName = user.Name || `${user.FirstName ?? ''} ${user.LastName ?? ''}`.trim() || 'User';\n this.UserEmail = user.Email || '';\n this.UserInitials = this.computeInitials(this.UserName);\n const roles = (user.UserRoles ?? [])\n .map((r: UserRoleInfo) => r.Role)\n .filter((n: string | null) => !!n) as string[];\n this.UserRolesText = roles.length > 0 ? roles.join(', ') : 'None';\n }\n\n if (provider instanceof GraphQLDataProvider) {\n this.ApiUrl = provider.ConfigData?.URL ?? '';\n this.ApiUrlShort = this.shortenUrl(this.ApiUrl);\n }\n\n this.AuthProvider = this.computeAuthLabel(this.authBase?.type);\n this.Environment = this.detectEnvironment();\n this.ThemeLabel = this.computeThemeLabel();\n this.BrowserLabel = this.computeBrowserLabel();\n this.IsConnected = this.connectivity.IsConnected;\n this.ConnectionLabel = this.computeConnectionLabel();\n }\n\n /**\n * Build the \"Connected to X\" label. Prefers `Instance.DisplayName` from\n * InstanceConfigEngine if set, otherwise falls back to the API hostname.\n */\n private computeConnectionLabel(): string {\n let displayName: string | undefined;\n try {\n displayName = InstanceConfigEngine.Instance.Get('Instance.DisplayName');\n } catch {\n displayName = undefined;\n }\n const host = this.ApiUrlShort?.split('/')[0] ?? '';\n if (displayName && host) return `${displayName} · ${host}`;\n return displayName || host;\n }\n\n public ToggleDiagnostics(): void {\n this.DiagnosticsOpen = !this.DiagnosticsOpen;\n }\n\n public OnCloseClick(): void {\n this.CloseRequested.emit();\n }\n\n public OnLogoClick(): void {\n this.wiggleLogo();\n }\n\n public OnAvatarLoadError(): void {\n // Image failed to load — fall back to initials\n this.AvatarUrl = null;\n this.cdr.markForCheck();\n }\n\n public OnVersionClick(): void {\n this.versionClickCount++;\n if (this.versionClickResetTimer) clearTimeout(this.versionClickResetTimer);\n this.versionClickResetTimer = setTimeout(() => (this.versionClickCount = 0), 2000);\n\n if (this.versionClickCount === 3) this.showToast('Keep going...');\n else if (this.versionClickCount === 5) this.showToast(\"You're committed now.\");\n else if (this.versionClickCount === 7) {\n this.versionClickCount = 0;\n this.showToast('🎉 Developer mode? In THIS economy?');\n this.spinLogo();\n }\n }\n\n public async CopyDiagnostics(): Promise<void> {\n const block = [\n `MemberJunction v${this.Version}`,\n `Environment: ${this.Environment}`,\n `API: ${this.ApiUrl || '(unknown)'}`,\n `Auth: ${this.AuthProvider}`,\n `User: ${this.UserEmail || this.UserName} (${this.UserRolesText})`,\n `Theme: ${this.ThemeLabel}`,\n `Browser: ${this.BrowserLabel}`,\n `Entities loaded: ${this.EntityCount}`,\n `Applications: ${this.ApplicationCount}`,\n `Queries: ${this.QueryCount}`\n ].join('\\n');\n\n try {\n await navigator.clipboard.writeText(block);\n this.CopyConfirmed = true;\n this.showToast('Diagnostics copied to clipboard');\n setTimeout(() => {\n this.CopyConfirmed = false;\n this.cdr.markForCheck();\n }, 1800);\n } catch {\n this.showToast('Copy failed — clipboard unavailable');\n }\n }\n\n // ---------- helpers ----------\n\n private computeInitials(name: string): string {\n const parts = name.trim().split(/\\s+/).filter(Boolean);\n if (parts.length === 0) return '?';\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n }\n\n private shortenUrl(url: string): string {\n if (!url) return '(not configured)';\n try {\n const u = new URL(url);\n return u.host + (u.pathname && u.pathname !== '/' ? u.pathname : '');\n } catch {\n return url;\n }\n }\n\n private computeAuthLabel(type: string | undefined): string {\n switch ((type ?? '').toLowerCase()) {\n case 'msal': return 'Microsoft Entra (MSAL)';\n case 'auth0': return 'Auth0';\n case 'okta': return 'Okta';\n case 'cognito': return 'Amazon Cognito';\n case '': return 'Unknown';\n default: return type ?? 'Unknown';\n }\n }\n\n private detectEnvironment(): string {\n const host = typeof window !== 'undefined' ? window.location.hostname : '';\n if (host === 'localhost' || host === '127.0.0.1' || host.endsWith('.local')) return 'development';\n if (host.startsWith('dev.') || host.includes('-dev.') || host.includes('.dev.')) return 'development';\n if (host.startsWith('staging.') || host.includes('-staging.') || host.includes('.staging.')) return 'staging';\n return 'production';\n }\n\n private computeThemeLabel(): string {\n const applied = this.themeService.AppliedTheme;\n const preference = this.themeService.Preference;\n const def = this.themeService.GetThemeDefinition(applied);\n const themeName = def?.Name ?? applied;\n return preference === 'system' ? `${themeName} · System` : themeName;\n }\n\n private computeBrowserLabel(): string {\n const ua = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n let browser = 'Unknown';\n if (/Edg\\//.test(ua)) browser = 'Edge';\n else if (/OPR\\//.test(ua)) browser = 'Opera';\n else if (/Chrome\\//.test(ua) && !/Chromium/.test(ua)) browser = 'Chrome';\n else if (/Firefox\\//.test(ua)) browser = 'Firefox';\n else if (/Safari\\//.test(ua)) browser = 'Safari';\n\n let os = 'Unknown';\n if (/iPhone|iPad|iPod/.test(ua)) os = 'iOS';\n else if (/Android/.test(ua)) os = 'Android';\n else if (/Mac OS X|Macintosh/.test(ua)) os = 'macOS';\n else if (/Windows/.test(ua)) os = 'Windows';\n else if (/Linux/.test(ua)) os = 'Linux';\n\n return `${browser} / ${os}`;\n }\n\n private showToast(message: string, durationMs = 2400): void {\n this.ToastMessage = message;\n if (this.toastTimer) clearTimeout(this.toastTimer);\n this.toastTimer = setTimeout(() => {\n this.ToastMessage = '';\n this.cdr.markForCheck();\n }, durationMs);\n }\n\n private wiggleLogo(): void {\n const svg = document.querySelector('.mj-about__logo') as SVGElement | null;\n svg?.animate(\n [\n { transform: 'rotate(0)' },\n { transform: 'rotate(-6deg)' },\n { transform: 'rotate(6deg)' },\n { transform: 'rotate(0)' }\n ],\n { duration: 400, easing: 'ease-in-out' }\n );\n }\n\n private spinLogo(): void {\n const svg = document.querySelector('.mj-about__logo') as SVGElement | null;\n svg?.animate(\n [\n { transform: 'rotate(0) scale(1)', offset: 0 },\n { transform: 'rotate(720deg) scale(1.1)', offset: 0.85 },\n { transform: 'rotate(720deg) scale(1)', offset: 1 }\n ],\n { duration: 2800, easing: 'cubic-bezier(0.22, 1, 0.36, 1)' }\n );\n }\n\n private barrelRoll(): void {\n const dialog = document.querySelector('.mj-about') as HTMLElement | null;\n dialog?.animate(\n [{ transform: 'rotate(0)' }, { transform: 'rotate(360deg)' }],\n { duration: 900, easing: 'cubic-bezier(0.65, 0, 0.35, 1)' }\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
interface NotificationChannel {
|
|
5
|
+
key: 'InApp' | 'Email' | 'SMS';
|
|
6
|
+
label: string;
|
|
7
|
+
icon: string;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
saving: boolean;
|
|
10
|
+
}
|
|
11
|
+
type ProfilePanel = 'none' | 'photo' | 'theme';
|
|
12
|
+
/**
|
|
13
|
+
* "Identity Card" profile dialog with slide-in detail panels for editing
|
|
14
|
+
* profile photo and switching theme. Replaces the legacy multi-tab Settings
|
|
15
|
+
* dialog entirely. Brand-aligned with the About dialog.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ProfileDialogComponent extends BaseAngularComponent implements OnInit, OnDestroy {
|
|
18
|
+
CloseRequested: EventEmitter<void>;
|
|
19
|
+
AvatarUrl: string | null;
|
|
20
|
+
AvatarIconClass: string | null;
|
|
21
|
+
UserName: string;
|
|
22
|
+
UserEmail: string;
|
|
23
|
+
UserInitials: string;
|
|
24
|
+
AccountType: string;
|
|
25
|
+
AccountStatus: string;
|
|
26
|
+
MemberSince: string;
|
|
27
|
+
ThemeLabel: string;
|
|
28
|
+
RoleChips: Array<{
|
|
29
|
+
label: string;
|
|
30
|
+
tone: string;
|
|
31
|
+
icon: string | null;
|
|
32
|
+
}>;
|
|
33
|
+
LoadingNotifications: boolean;
|
|
34
|
+
Channels: NotificationChannel[];
|
|
35
|
+
UnreadCount: number;
|
|
36
|
+
ActivePanel: ProfilePanel;
|
|
37
|
+
ThemeOptions: Array<{
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
description: string;
|
|
41
|
+
icon: string;
|
|
42
|
+
swatch: 'light' | 'dark' | 'system';
|
|
43
|
+
}>;
|
|
44
|
+
ThemePreference: string;
|
|
45
|
+
SavingTheme: string | null;
|
|
46
|
+
get PanelTitle(): string;
|
|
47
|
+
private authBase;
|
|
48
|
+
private themeService;
|
|
49
|
+
private sharedService;
|
|
50
|
+
private cdr;
|
|
51
|
+
private themeSub?;
|
|
52
|
+
ngOnInit(): void;
|
|
53
|
+
ngOnDestroy(): void;
|
|
54
|
+
OnCloseClick(): void;
|
|
55
|
+
OnAvatarLoadError(): void;
|
|
56
|
+
OpenPanel(panel: ProfilePanel): void;
|
|
57
|
+
ClosePanel(): void;
|
|
58
|
+
OnSignOut(): Promise<void>;
|
|
59
|
+
SelectTheme(themeId: string): Promise<void>;
|
|
60
|
+
ToggleChannel(channel: NotificationChannel): Promise<void>;
|
|
61
|
+
private populateIdentity;
|
|
62
|
+
private populateThemeOptions;
|
|
63
|
+
private loadNotifications;
|
|
64
|
+
private computeInitials;
|
|
65
|
+
private computeRoleChips;
|
|
66
|
+
private formatMemberSince;
|
|
67
|
+
private computeThemeLabel;
|
|
68
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ProfileDialogComponent, never>;
|
|
69
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ProfileDialogComponent, "mj-profile-dialog", never, { "AvatarUrl": { "alias": "AvatarUrl"; "required": false; }; "AvatarIconClass": { "alias": "AvatarIconClass"; "required": false; }; }, { "CloseRequested": "CloseRequested"; }, never, never, true, never>;
|
|
70
|
+
}
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=profile-dialog.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-dialog.component.d.ts","sourceRoot":"","sources":["../../../src/lib/profile/profile-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EAEZ,SAAS,EACT,MAAM,EAIT,MAAM,eAAe,CAAC;AASvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAKrE,UAAU,mBAAmB;IACzB,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,KAAK,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/C;;;;GAIG;AACH,qBAyqBa,sBAAuB,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS;IAC/E,cAAc,qBAA4B;IAE3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC,QAAQ,SAAM;IACd,SAAS,SAAM;IACf,YAAY,SAAO;IACnB,WAAW,SAAM;IACjB,aAAa,SAAM;IACnB,WAAW,SAAM;IACjB,UAAU,SAAM;IAChB,SAAS,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAM;IAE5E,oBAAoB,UAAQ;IAC5B,QAAQ,EAAE,mBAAmB,EAAE,CAIpC;IACK,WAAW,SAAK;IAGhB,WAAW,EAAE,YAAY,CAAU;IACnC,YAAY,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC,CAAM;IAC/H,eAAe,SAAM;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,IAAW,UAAU,IAAI,MAAM,CAM9B;IAED,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,GAAG,CAA6B;IAExC,OAAO,CAAC,QAAQ,CAAC,CAAe;IAEzB,QAAQ,IAAI,IAAI;IAWhB,WAAW,IAAI,IAAI;IAInB,YAAY,IAAI,IAAI;IAQpB,iBAAiB,IAAI,IAAI;IAKzB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIpC,UAAU,IAAI,IAAI;IAIZ,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3C,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiEvE,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,oBAAoB;YAkBd,iBAAiB;IA6B/B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;yCAvQhB,sBAAsB;2CAAtB,sBAAsB;CA8QlC"}
|