@memberjunction/ng-conversations 2.104.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/README.md +197 -0
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +20 -0
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -0
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js +125 -0
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -0
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts +48 -0
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -0
- package/dist/lib/components/agent/active-agent-indicator.component.js +199 -0
- package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -0
- package/dist/lib/components/agent/agent-process-panel.component.d.ts +30 -0
- package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -0
- package/dist/lib/components/agent/agent-process-panel.component.js +333 -0
- package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -0
- package/dist/lib/components/artifact/artifact-panel.component.d.ts +22 -0
- package/dist/lib/components/artifact/artifact-panel.component.d.ts.map +1 -0
- package/dist/lib/components/artifact/artifact-panel.component.js +237 -0
- package/dist/lib/components/artifact/artifact-panel.component.js.map +1 -0
- package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts +39 -0
- package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts.map +1 -0
- package/dist/lib/components/artifact/artifact-upload-modal.component.js +384 -0
- package/dist/lib/components/artifact/artifact-upload-modal.component.js.map +1 -0
- package/dist/lib/components/artifact/artifact-version-history.component.d.ts +28 -0
- package/dist/lib/components/artifact/artifact-version-history.component.d.ts.map +1 -0
- package/dist/lib/components/artifact/artifact-version-history.component.js +280 -0
- package/dist/lib/components/artifact/artifact-version-history.component.js.map +1 -0
- package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts +22 -0
- package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts.map +1 -0
- package/dist/lib/components/artifact/artifact-viewer-panel.component.js +182 -0
- package/dist/lib/components/artifact/artifact-viewer-panel.component.js.map +1 -0
- package/dist/lib/components/artifact/artifact-viewer.component.d.ts +27 -0
- package/dist/lib/components/artifact/artifact-viewer.component.d.ts.map +1 -0
- package/dist/lib/components/artifact/artifact-viewer.component.js +266 -0
- package/dist/lib/components/artifact/artifact-viewer.component.js.map +1 -0
- package/dist/lib/components/artifact/inline-artifact.component.d.ts +46 -0
- package/dist/lib/components/artifact/inline-artifact.component.d.ts.map +1 -0
- package/dist/lib/components/artifact/inline-artifact.component.js +447 -0
- package/dist/lib/components/artifact/inline-artifact.component.js.map +1 -0
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts +18 -0
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -0
- package/dist/lib/components/collection/collection-artifact-card.component.js +147 -0
- package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -0
- package/dist/lib/components/collection/collection-form-modal.component.d.ts +33 -0
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -0
- package/dist/lib/components/collection/collection-form-modal.component.js +245 -0
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -0
- package/dist/lib/components/collection/collection-tree.component.d.ts +42 -0
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -0
- package/dist/lib/components/collection/collection-tree.component.js +482 -0
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -0
- package/dist/lib/components/collection/collection-view.component.d.ts +31 -0
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -0
- package/dist/lib/components/collection/collection-view.component.js +254 -0
- package/dist/lib/components/collection/collection-view.component.js.map +1 -0
- package/dist/lib/components/collection/collections-full-view.component.d.ts +55 -0
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -0
- package/dist/lib/components/collection/collections-full-view.component.js +578 -0
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -0
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +160 -0
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -0
- package/dist/lib/components/conversation/conversation-chat-area.component.js +891 -0
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -0
- package/dist/lib/components/conversation/conversation-list.component.d.ts +29 -0
- package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -0
- package/dist/lib/components/conversation/conversation-list.component.js +255 -0
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -0
- package/dist/lib/components/dialogs/input-dialog.component.d.ts +17 -0
- package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -0
- package/dist/lib/components/dialogs/input-dialog.component.js +122 -0
- package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -0
- package/dist/lib/components/export/export-modal.component.d.ts +37 -0
- package/dist/lib/components/export/export-modal.component.d.ts.map +1 -0
- package/dist/lib/components/export/export-modal.component.js +414 -0
- package/dist/lib/components/export/export-modal.component.js.map +1 -0
- package/dist/lib/components/library/library-full-view.component.d.ts +36 -0
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -0
- package/dist/lib/components/library/library-full-view.component.js +270 -0
- package/dist/lib/components/library/library-full-view.component.js.map +1 -0
- package/dist/lib/components/members/members-modal.component.d.ts +42 -0
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -0
- package/dist/lib/components/members/members-modal.component.js +352 -0
- package/dist/lib/components/members/members-modal.component.js.map +1 -0
- package/dist/lib/components/mention/mention-dropdown.component.d.ts +44 -0
- package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -0
- package/dist/lib/components/mention/mention-dropdown.component.js +194 -0
- package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -0
- package/dist/lib/components/message/message-input.component.d.ts +137 -0
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -0
- package/dist/lib/components/message/message-input.component.js +1159 -0
- package/dist/lib/components/message/message-input.component.js.map +1 -0
- package/dist/lib/components/message/message-item.component.d.ts +140 -0
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -0
- package/dist/lib/components/message/message-item.component.js +817 -0
- package/dist/lib/components/message/message-item.component.js.map +1 -0
- package/dist/lib/components/message/message-list.component.d.ts +77 -0
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -0
- package/dist/lib/components/message/message-list.component.js +316 -0
- package/dist/lib/components/message/message-list.component.js.map +1 -0
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts +13 -0
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -0
- package/dist/lib/components/navigation/conversation-navigation.component.js +88 -0
- package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -0
- package/dist/lib/components/notification/activity-indicator.component.d.ts +11 -0
- package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -0
- package/dist/lib/components/notification/activity-indicator.component.js +56 -0
- package/dist/lib/components/notification/activity-indicator.component.js.map +1 -0
- package/dist/lib/components/notification/notification-badge.component.d.ts +27 -0
- package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -0
- package/dist/lib/components/notification/notification-badge.component.js +160 -0
- package/dist/lib/components/notification/notification-badge.component.js.map +1 -0
- package/dist/lib/components/project/project-form-modal.component.d.ts +34 -0
- package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -0
- package/dist/lib/components/project/project-form-modal.component.js +357 -0
- package/dist/lib/components/project/project-form-modal.component.js.map +1 -0
- package/dist/lib/components/project/project-selector.component.d.ts +36 -0
- package/dist/lib/components/project/project-selector.component.d.ts.map +1 -0
- package/dist/lib/components/project/project-selector.component.js +317 -0
- package/dist/lib/components/project/project-selector.component.js.map +1 -0
- package/dist/lib/components/search/search-panel.component.d.ts +120 -0
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -0
- package/dist/lib/components/search/search-panel.component.js +714 -0
- package/dist/lib/components/search/search-panel.component.js.map +1 -0
- package/dist/lib/components/share/share-modal.component.d.ts +46 -0
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -0
- package/dist/lib/components/share/share-modal.component.js +431 -0
- package/dist/lib/components/share/share-modal.component.js.map +1 -0
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +18 -0
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -0
- package/dist/lib/components/sidebar/conversation-sidebar.component.js +81 -0
- package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -0
- package/dist/lib/components/task/task-form-modal.component.d.ts +42 -0
- package/dist/lib/components/task/task-form-modal.component.d.ts.map +1 -0
- package/dist/lib/components/task/task-form-modal.component.js +329 -0
- package/dist/lib/components/task/task-form-modal.component.js.map +1 -0
- package/dist/lib/components/task/task-item.component.d.ts +22 -0
- package/dist/lib/components/task/task-item.component.d.ts.map +1 -0
- package/dist/lib/components/task/task-item.component.js +234 -0
- package/dist/lib/components/task/task-item.component.js.map +1 -0
- package/dist/lib/components/task/task-list.component.d.ts +32 -0
- package/dist/lib/components/task/task-list.component.d.ts.map +1 -0
- package/dist/lib/components/task/task-list.component.js +290 -0
- package/dist/lib/components/task/task-list.component.js.map +1 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +27 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.js +254 -0
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -0
- package/dist/lib/components/thread/thread-panel.component.d.ts +65 -0
- package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -0
- package/dist/lib/components/thread/thread-panel.component.js +325 -0
- package/dist/lib/components/thread/thread-panel.component.js.map +1 -0
- package/dist/lib/components/toast/toast.component.d.ts +26 -0
- package/dist/lib/components/toast/toast.component.d.ts.map +1 -0
- package/dist/lib/components/toast/toast.component.js +108 -0
- package/dist/lib/components/toast/toast.component.js.map +1 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +75 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -0
- package/dist/lib/components/workspace/conversation-workspace.component.js +299 -0
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -0
- package/dist/lib/conversations.module.d.ts +62 -0
- package/dist/lib/conversations.module.d.ts.map +1 -0
- package/dist/lib/conversations.module.js +248 -0
- package/dist/lib/conversations.module.js.map +1 -0
- package/dist/lib/directives/search-shortcut.directive.d.ts +17 -0
- package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -0
- package/dist/lib/directives/search-shortcut.directive.js +39 -0
- package/dist/lib/directives/search-shortcut.directive.js.map +1 -0
- package/dist/lib/models/conversation-state.model.d.ts +72 -0
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -0
- package/dist/lib/models/conversation-state.model.js +2 -0
- package/dist/lib/models/conversation-state.model.js.map +1 -0
- package/dist/lib/models/notification.model.d.ts +89 -0
- package/dist/lib/models/notification.model.d.ts.map +1 -0
- package/dist/lib/models/notification.model.js +11 -0
- package/dist/lib/models/notification.model.js.map +1 -0
- package/dist/lib/services/active-tasks.service.d.ts +65 -0
- package/dist/lib/services/active-tasks.service.d.ts.map +1 -0
- package/dist/lib/services/active-tasks.service.js +95 -0
- package/dist/lib/services/active-tasks.service.js.map +1 -0
- package/dist/lib/services/agent-state.service.d.ts +78 -0
- package/dist/lib/services/agent-state.service.d.ts.map +1 -0
- package/dist/lib/services/agent-state.service.js +213 -0
- package/dist/lib/services/agent-state.service.js.map +1 -0
- package/dist/lib/services/artifact-state.service.d.ts +114 -0
- package/dist/lib/services/artifact-state.service.d.ts.map +1 -0
- package/dist/lib/services/artifact-state.service.js +288 -0
- package/dist/lib/services/artifact-state.service.js.map +1 -0
- package/dist/lib/services/conversation-agent.service.d.ts +79 -0
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -0
- package/dist/lib/services/conversation-agent.service.js +259 -0
- package/dist/lib/services/conversation-agent.service.js.map +1 -0
- package/dist/lib/services/conversation-state.service.d.ts +122 -0
- package/dist/lib/services/conversation-state.service.d.ts.map +1 -0
- package/dist/lib/services/conversation-state.service.js +255 -0
- package/dist/lib/services/conversation-state.service.js.map +1 -0
- package/dist/lib/services/dialog.service.d.ts +54 -0
- package/dist/lib/services/dialog.service.d.ts.map +1 -0
- package/dist/lib/services/dialog.service.js +157 -0
- package/dist/lib/services/dialog.service.js.map +1 -0
- package/dist/lib/services/export.service.d.ts +25 -0
- package/dist/lib/services/export.service.d.ts.map +1 -0
- package/dist/lib/services/export.service.js +237 -0
- package/dist/lib/services/export.service.js.map +1 -0
- package/dist/lib/services/mention-autocomplete.service.d.ts +59 -0
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -0
- package/dist/lib/services/mention-autocomplete.service.js +160 -0
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -0
- package/dist/lib/services/mention-parser.service.d.ts +46 -0
- package/dist/lib/services/mention-parser.service.d.ts.map +1 -0
- package/dist/lib/services/mention-parser.service.js +156 -0
- package/dist/lib/services/mention-parser.service.js.map +1 -0
- package/dist/lib/services/notification.service.d.ts +108 -0
- package/dist/lib/services/notification.service.d.ts.map +1 -0
- package/dist/lib/services/notification.service.js +431 -0
- package/dist/lib/services/notification.service.js.map +1 -0
- package/dist/lib/services/search.service.d.ts +144 -0
- package/dist/lib/services/search.service.d.ts.map +1 -0
- package/dist/lib/services/search.service.js +370 -0
- package/dist/lib/services/search.service.js.map +1 -0
- package/dist/lib/services/toast.service.d.ts +46 -0
- package/dist/lib/services/toast.service.d.ts.map +1 -0
- package/dist/lib/services/toast.service.js +76 -0
- package/dist/lib/services/toast.service.js.map +1 -0
- package/dist/public-api.d.ts +42 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/public-api.js +49 -0
- package/dist/public-api.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
function ActivityIndicatorComponent_Conditional_0_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
4
|
+
i0.ɵɵelementStart(0, "span", 4);
|
|
5
|
+
i0.ɵɵtext(1);
|
|
6
|
+
i0.ɵɵelementEnd();
|
|
7
|
+
} if (rf & 2) {
|
|
8
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
9
|
+
i0.ɵɵadvance();
|
|
10
|
+
i0.ɵɵtextInterpolate(ctx_r0.config == null ? null : ctx_r0.config.text);
|
|
11
|
+
} }
|
|
12
|
+
function ActivityIndicatorComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
|
|
14
|
+
i0.ɵɵelement(2, "span", 3)(3, "span", 3)(4, "span", 3);
|
|
15
|
+
i0.ɵɵelementEnd();
|
|
16
|
+
i0.ɵɵtemplate(5, ActivityIndicatorComponent_Conditional_0_Conditional_5_Template, 2, 1, "span", 4);
|
|
17
|
+
i0.ɵɵelementEnd();
|
|
18
|
+
} if (rf & 2) {
|
|
19
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
20
|
+
i0.ɵɵclassProp("activity-agent", (ctx_r0.config == null ? null : ctx_r0.config.type) === "agent")("activity-processing", (ctx_r0.config == null ? null : ctx_r0.config.type) === "processing")("activity-typing", (ctx_r0.config == null ? null : ctx_r0.config.type) === "typing");
|
|
21
|
+
i0.ɵɵadvance(5);
|
|
22
|
+
i0.ɵɵconditional((ctx_r0.config == null ? null : ctx_r0.config.text) ? 5 : -1);
|
|
23
|
+
} }
|
|
24
|
+
/**
|
|
25
|
+
* Displays activity indicators for agent processes, typing, etc.
|
|
26
|
+
*/
|
|
27
|
+
export class ActivityIndicatorComponent {
|
|
28
|
+
config;
|
|
29
|
+
static ɵfac = function ActivityIndicatorComponent_Factory(t) { return new (t || ActivityIndicatorComponent)(); };
|
|
30
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityIndicatorComponent, selectors: [["mj-activity-indicator"]], inputs: { config: "config" }, decls: 1, vars: 1, consts: [[1, "activity-indicator", 3, "activity-agent", "activity-processing", "activity-typing"], [1, "activity-indicator"], [1, "activity-dots"], [1, "dot"], [1, "activity-text"]], template: function ActivityIndicatorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
+
i0.ɵɵtemplate(0, ActivityIndicatorComponent_Conditional_0_Template, 6, 7, "div", 0);
|
|
32
|
+
} if (rf & 2) {
|
|
33
|
+
i0.ɵɵconditional((ctx.config == null ? null : ctx.config.show) ? 0 : -1);
|
|
34
|
+
} }, styles: [".activity-indicator[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent[_ngcontent-%COMP%] {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing[_ngcontent-%COMP%] {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing[_ngcontent-%COMP%] {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot[_ngcontent-%COMP%] {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: _ngcontent-%COMP%_dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot[_ngcontent-%COMP%]:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot[_ngcontent-%COMP%]:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot[_ngcontent-%COMP%]:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes _ngcontent-%COMP%_dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text[_ngcontent-%COMP%] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }"] });
|
|
35
|
+
}
|
|
36
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActivityIndicatorComponent, [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'mj-activity-indicator', template: `
|
|
39
|
+
@if (config?.show) {
|
|
40
|
+
<div class="activity-indicator" [class.activity-agent]="config?.type === 'agent'" [class.activity-processing]="config?.type === 'processing'" [class.activity-typing]="config?.type === 'typing'">
|
|
41
|
+
<div class="activity-dots">
|
|
42
|
+
<span class="dot"></span>
|
|
43
|
+
<span class="dot"></span>
|
|
44
|
+
<span class="dot"></span>
|
|
45
|
+
</div>
|
|
46
|
+
@if (config?.text) {
|
|
47
|
+
<span class="activity-text">{{ config?.text }}</span>
|
|
48
|
+
}
|
|
49
|
+
</div>
|
|
50
|
+
}
|
|
51
|
+
`, styles: ["\n .activity-indicator {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }\n "] }]
|
|
52
|
+
}], null, { config: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}] }); })();
|
|
55
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityIndicatorComponent, { className: "ActivityIndicatorComponent", filePath: "src/lib/components/notification/activity-indicator.component.ts", lineNumber: 97 }); })();
|
|
56
|
+
//# sourceMappingURL=activity-indicator.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-indicator.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;IAiBvC,+BAA4B;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,uEAAkB;;;IANhD,AADF,8BAAkM,aACrK;IAGzB,AADA,AADA,0BAAyB,cACA,cACA;IAC3B,iBAAM;IACN,kGAAoB;IAGtB,iBAAM;;;IATwI,AAA5D,AAAlD,iGAAiD,6FAA4D,qFAAoD;IAM/L,eAEC;IAFD,8EAEC;;AAfT;;GAEG;AA2FH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAA2B;oFAD/B,0BAA0B;6DAA1B,0BAA0B;YAvFnC,mFAAoB;;YAApB,wEAWC;;;iFA4EQ,0BAA0B;cA1FtC,SAAS;2BACE,uBAAuB,YACvB;;;;;;;;;;;;;GAaT;gBA4EQ,MAAM;kBAAd,KAAK;;kFADK,0BAA0B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { BadgeConfig } from '../../models/notification.model';
|
|
3
|
+
import { NotificationService } from '../../services/notification.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Displays notification badges with various styles and animations
|
|
7
|
+
* Supports count, dot, pulse, and new badge types
|
|
8
|
+
*/
|
|
9
|
+
export declare class NotificationBadgeComponent implements OnInit, OnDestroy {
|
|
10
|
+
private notificationService;
|
|
11
|
+
conversationId?: string;
|
|
12
|
+
badgeConfig?: BadgeConfig;
|
|
13
|
+
private destroy$;
|
|
14
|
+
private _loadedBadgeConfig;
|
|
15
|
+
constructor(notificationService: NotificationService);
|
|
16
|
+
ngOnInit(): void;
|
|
17
|
+
ngOnDestroy(): void;
|
|
18
|
+
get displayConfig(): BadgeConfig | null;
|
|
19
|
+
/**
|
|
20
|
+
* Formats count for display
|
|
21
|
+
* Shows 99+ for counts over 99
|
|
22
|
+
*/
|
|
23
|
+
formatCount(count: number): string;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBadgeComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NotificationBadgeComponent, "mj-notification-badge", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; }; }, {}, never, never, false, never>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=notification-badge.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-badge.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;;AAE1E;;;GAGG;AACH,qBA6Na,0BAA2B,YAAW,MAAM,EAAE,SAAS;IAOtD,OAAO,CAAC,mBAAmB;IAN9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,kBAAkB,CAA4B;gBAElC,mBAAmB,EAAE,mBAAmB;IAE5D,QAAQ,IAAI,IAAI;IAYhB,WAAW,IAAI,IAAI;IAKnB,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;yCAlCvB,0BAA0B;2CAA1B,0BAA0B;CAqCtC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../services/notification.service";
|
|
6
|
+
function NotificationBadgeComponent_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
i0.ɵɵelementStart(0, "div", 5);
|
|
8
|
+
i0.ɵɵtext(1);
|
|
9
|
+
i0.ɵɵelementEnd();
|
|
10
|
+
} if (rf & 2) {
|
|
11
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
12
|
+
i0.ɵɵclassProp("badge-high", (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.priority) === "high")("badge-urgent", (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.priority) === "urgent")("badge-animate", ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.animate);
|
|
13
|
+
i0.ɵɵadvance();
|
|
14
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.formatCount(ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.count), " ");
|
|
15
|
+
} }
|
|
16
|
+
function NotificationBadgeComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelement(0, "div", 6);
|
|
18
|
+
} if (rf & 2) {
|
|
19
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
20
|
+
i0.ɵɵclassProp("badge-high", (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.priority) === "high")("badge-urgent", (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.priority) === "urgent")("badge-animate", ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.animate);
|
|
21
|
+
} }
|
|
22
|
+
function NotificationBadgeComponent_Conditional_0_Conditional_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelementStart(0, "span", 10);
|
|
24
|
+
i0.ɵɵtext(1);
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
} if (rf & 2) {
|
|
27
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
28
|
+
i0.ɵɵadvance();
|
|
29
|
+
i0.ɵɵtextInterpolate(ctx_r0.formatCount(ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.count));
|
|
30
|
+
} }
|
|
31
|
+
function NotificationBadgeComponent_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelementStart(0, "div", 7);
|
|
33
|
+
i0.ɵɵelement(1, "span", 8)(2, "span", 9);
|
|
34
|
+
i0.ɵɵtemplate(3, NotificationBadgeComponent_Conditional_0_Conditional_3_Conditional_3_Template, 2, 1, "span", 10);
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
} if (rf & 2) {
|
|
37
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
38
|
+
i0.ɵɵclassProp("badge-high", (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.priority) === "high")("badge-urgent", (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.priority) === "urgent");
|
|
39
|
+
i0.ɵɵadvance(3);
|
|
40
|
+
i0.ɵɵconditional((ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.count) != null && (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.count) > 0 ? 3 : -1);
|
|
41
|
+
} }
|
|
42
|
+
function NotificationBadgeComponent_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
44
|
+
i0.ɵɵtext(1, " NEW ");
|
|
45
|
+
i0.ɵɵelementEnd();
|
|
46
|
+
} if (rf & 2) {
|
|
47
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
48
|
+
i0.ɵɵclassProp("badge-animate", ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.animate);
|
|
49
|
+
} }
|
|
50
|
+
function NotificationBadgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
52
|
+
i0.ɵɵtemplate(1, NotificationBadgeComponent_Conditional_0_Conditional_1_Template, 2, 7, "div", 1)(2, NotificationBadgeComponent_Conditional_0_Conditional_2_Template, 1, 6, "div", 2)(3, NotificationBadgeComponent_Conditional_0_Conditional_3_Template, 4, 5, "div", 3)(4, NotificationBadgeComponent_Conditional_0_Conditional_4_Template, 2, 2, "div", 4);
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
} if (rf & 2) {
|
|
55
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
56
|
+
i0.ɵɵadvance();
|
|
57
|
+
i0.ɵɵconditional((ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.type) === "count" && (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.count) != null && (ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.count) > 0 ? 1 : -1);
|
|
58
|
+
i0.ɵɵadvance();
|
|
59
|
+
i0.ɵɵconditional((ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.type) === "dot" ? 2 : -1);
|
|
60
|
+
i0.ɵɵadvance();
|
|
61
|
+
i0.ɵɵconditional((ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.type) === "pulse" ? 3 : -1);
|
|
62
|
+
i0.ɵɵadvance();
|
|
63
|
+
i0.ɵɵconditional((ctx_r0.badgeConfig == null ? null : ctx_r0.badgeConfig.type) === "new" ? 4 : -1);
|
|
64
|
+
} }
|
|
65
|
+
/**
|
|
66
|
+
* Displays notification badges with various styles and animations
|
|
67
|
+
* Supports count, dot, pulse, and new badge types
|
|
68
|
+
*/
|
|
69
|
+
export class NotificationBadgeComponent {
|
|
70
|
+
notificationService;
|
|
71
|
+
conversationId;
|
|
72
|
+
badgeConfig;
|
|
73
|
+
destroy$ = new Subject();
|
|
74
|
+
_loadedBadgeConfig = null;
|
|
75
|
+
constructor(notificationService) {
|
|
76
|
+
this.notificationService = notificationService;
|
|
77
|
+
}
|
|
78
|
+
ngOnInit() {
|
|
79
|
+
// If badgeConfig not provided but conversationId is, load from service
|
|
80
|
+
if (!this.badgeConfig && this.conversationId) {
|
|
81
|
+
this.notificationService
|
|
82
|
+
.getBadgeConfig$(this.conversationId)
|
|
83
|
+
.pipe(takeUntil(this.destroy$))
|
|
84
|
+
.subscribe(config => {
|
|
85
|
+
this._loadedBadgeConfig = config;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
ngOnDestroy() {
|
|
90
|
+
this.destroy$.next();
|
|
91
|
+
this.destroy$.complete();
|
|
92
|
+
}
|
|
93
|
+
get displayConfig() {
|
|
94
|
+
return this.badgeConfig || this._loadedBadgeConfig;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Formats count for display
|
|
98
|
+
* Shows 99+ for counts over 99
|
|
99
|
+
*/
|
|
100
|
+
formatCount(count) {
|
|
101
|
+
return count > 99 ? '99+' : count.toString();
|
|
102
|
+
}
|
|
103
|
+
static ɵfac = function NotificationBadgeComponent_Factory(t) { return new (t || NotificationBadgeComponent)(i0.ɵɵdirectiveInject(i1.NotificationService)); };
|
|
104
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NotificationBadgeComponent, selectors: [["mj-notification-badge"]], inputs: { conversationId: "conversationId", badgeConfig: "badgeConfig" }, decls: 1, vars: 1, consts: [[1, "notification-badge-container"], [1, "notification-badge", "badge-count", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-dot", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-pulse", 3, "badge-high", "badge-urgent"], [1, "notification-badge", "badge-new", 3, "badge-animate"], [1, "notification-badge", "badge-count"], [1, "notification-badge", "badge-dot"], [1, "notification-badge", "badge-pulse"], [1, "pulse-ring"], [1, "pulse-ring-delay"], [1, "pulse-count"], [1, "notification-badge", "badge-new"]], template: function NotificationBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
105
|
+
i0.ɵɵtemplate(0, NotificationBadgeComponent_Conditional_0_Template, 5, 4, "div", 0);
|
|
106
|
+
} if (rf & 2) {
|
|
107
|
+
i0.ɵɵconditional((ctx.badgeConfig == null ? null : ctx.badgeConfig.show) ? 0 : -1);
|
|
108
|
+
} }, styles: [".notification-badge-container[_ngcontent-%COMP%] {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n \n\n .badge-count[_ngcontent-%COMP%] {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high[_ngcontent-%COMP%] {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent[_ngcontent-%COMP%] {\n background: #DC2626;\n }\n\n \n\n .badge-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high[_ngcontent-%COMP%] {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent[_ngcontent-%COMP%] {\n background: #DC2626;\n }\n\n \n\n .badge-pulse[_ngcontent-%COMP%] {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high[_ngcontent-%COMP%] {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent[_ngcontent-%COMP%] {\n background: #DC2626;\n }\n\n .pulse-ring[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: _ngcontent-%COMP%_pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: _ngcontent-%COMP%_pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes _ngcontent-%COMP%_pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count[_ngcontent-%COMP%] {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n \n\n .badge-new[_ngcontent-%COMP%] {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n \n\n .badge-animate[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes _ngcontent-%COMP%_badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n \n\n .badge-urgent.badge-animate[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n _ngcontent-%COMP%_badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes _ngcontent-%COMP%_badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n \n\n .notification-badge[_ngcontent-%COMP%]:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse[_ngcontent-%COMP%]:hover .pulse-ring[_ngcontent-%COMP%], \n .badge-pulse[_ngcontent-%COMP%]:hover .pulse-ring-delay[_ngcontent-%COMP%] {\n animation-play-state: paused;\n }"] });
|
|
109
|
+
}
|
|
110
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NotificationBadgeComponent, [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{ selector: 'mj-notification-badge', template: `
|
|
113
|
+
@if (badgeConfig?.show) {
|
|
114
|
+
<div class="notification-badge-container">
|
|
115
|
+
@if (badgeConfig?.type === 'count' && badgeConfig?.count != null && badgeConfig?.count! > 0) {
|
|
116
|
+
<div
|
|
117
|
+
class="notification-badge badge-count"
|
|
118
|
+
[class.badge-high]="badgeConfig?.priority === 'high'"
|
|
119
|
+
[class.badge-urgent]="badgeConfig?.priority === 'urgent'"
|
|
120
|
+
[class.badge-animate]="badgeConfig?.animate">
|
|
121
|
+
{{ formatCount(badgeConfig?.count!) }}
|
|
122
|
+
</div>
|
|
123
|
+
}
|
|
124
|
+
@if (badgeConfig?.type === 'dot') {
|
|
125
|
+
<div
|
|
126
|
+
class="notification-badge badge-dot"
|
|
127
|
+
[class.badge-high]="badgeConfig?.priority === 'high'"
|
|
128
|
+
[class.badge-urgent]="badgeConfig?.priority === 'urgent'"
|
|
129
|
+
[class.badge-animate]="badgeConfig?.animate">
|
|
130
|
+
</div>
|
|
131
|
+
}
|
|
132
|
+
@if (badgeConfig?.type === 'pulse') {
|
|
133
|
+
<div
|
|
134
|
+
class="notification-badge badge-pulse"
|
|
135
|
+
[class.badge-high]="badgeConfig?.priority === 'high'"
|
|
136
|
+
[class.badge-urgent]="badgeConfig?.priority === 'urgent'">
|
|
137
|
+
<span class="pulse-ring"></span>
|
|
138
|
+
<span class="pulse-ring-delay"></span>
|
|
139
|
+
@if (badgeConfig?.count != null && badgeConfig?.count! > 0) {
|
|
140
|
+
<span class="pulse-count">{{ formatCount(badgeConfig?.count!) }}</span>
|
|
141
|
+
}
|
|
142
|
+
</div>
|
|
143
|
+
}
|
|
144
|
+
@if (badgeConfig?.type === 'new') {
|
|
145
|
+
<div
|
|
146
|
+
class="notification-badge badge-new"
|
|
147
|
+
[class.badge-animate]="badgeConfig?.animate">
|
|
148
|
+
NEW
|
|
149
|
+
</div>
|
|
150
|
+
}
|
|
151
|
+
</div>
|
|
152
|
+
}
|
|
153
|
+
`, styles: ["\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n "] }]
|
|
154
|
+
}], () => [{ type: i1.NotificationService }], { conversationId: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], badgeConfig: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}] }); })();
|
|
159
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NotificationBadgeComponent, { className: "NotificationBadgeComponent", filePath: "src/lib/components/notification/notification-badge.component.ts", lineNumber: 232 }); })();
|
|
160
|
+
//# sourceMappingURL=notification-badge.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-badge.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;IAcjC,8BAI+C;IAC7C,YACF;IAAA,iBAAM;;;IAFJ,AADA,AADA,0GAAqD,gGACI,iFACb;IAC5C,cACF;IADE,iHACF;;;IAGA,yBAKM;;;IADJ,AADA,AADA,0GAAqD,gGACI,iFACb;;;IAW1C,gCAA0B;IAAA,YAAsC;IAAA,iBAAO;;;IAA7C,cAAsC;IAAtC,sGAAsC;;;IAPpE,8BAG4D;IAE1D,AADA,0BAAgC,cACM;IACtC,iHAA6D;IAG/D,iBAAM;;;IANJ,AADA,0GAAqD,gGACI;IAGzD,eAEC;IAFD,uKAEC;;;IAIH,+BAE+C;IAC7C,qBACF;IAAA,iBAAM;;;IAFJ,+FAA4C;;;IAjClD,8BAA0C;IA8BxC,AAZA,AARA,AATA,iGAA8F,oFAS3D,oFAQE,oFAYF;IAOrC,iBAAM;;;IApCJ,cAQC;IARD,oPAQC;IACD,cAOC;IAPD,kGAOC;IACD,cAWC;IAXD,oGAWC;IACD,cAMC;IAND,kGAMC;;AA5CT;;;GAGG;AA8NH,MAAM,OAAO,0BAA0B;IAOjB;IANX,cAAc,CAAU;IACxB,WAAW,CAAe;IAE3B,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC/B,kBAAkB,GAAuB,IAAI,CAAC;IAEtD,YAAoB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEhE,QAAQ;QACN,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,mBAAmB;iBACrB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;iBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;oFApCU,0BAA0B;6DAA1B,0BAA0B;YA1NnC,mFAAyB;;YAAzB,kFAuCC;;;iFAmLQ,0BAA0B;cA7NtC,SAAS;2BACE,uBAAuB,YACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCT;oDAmLQ,cAAc;kBAAtB,KAAK;YACG,WAAW;kBAAnB,KAAK;;kFAFK,0BAA0B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { DialogRef } from '@progress/kendo-angular-dialog';
|
|
3
|
+
import { ProjectEntity } from '@memberjunction/core-entities';
|
|
4
|
+
import { UserInfo } from '@memberjunction/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export interface ProjectFormData {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
color: string;
|
|
10
|
+
icon: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class ProjectFormModalComponent implements OnInit {
|
|
13
|
+
private cdr;
|
|
14
|
+
dialogRef: DialogRef;
|
|
15
|
+
project: ProjectEntity | null;
|
|
16
|
+
environmentId: string;
|
|
17
|
+
currentUser: UserInfo;
|
|
18
|
+
projectSaved: EventEmitter<ProjectEntity>;
|
|
19
|
+
formData: ProjectFormData;
|
|
20
|
+
showNameError: boolean;
|
|
21
|
+
isEditMode: boolean;
|
|
22
|
+
availableColors: string[];
|
|
23
|
+
availableIcons: string[];
|
|
24
|
+
constructor(cdr: ChangeDetectorRef);
|
|
25
|
+
ngOnInit(): void;
|
|
26
|
+
private loadProjectData;
|
|
27
|
+
selectColor(color: string): void;
|
|
28
|
+
selectIcon(icon: string): void;
|
|
29
|
+
onSave(): Promise<void>;
|
|
30
|
+
onCancel(): void;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ProjectFormModalComponent, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ProjectFormModalComponent, "mj-project-form-modal", never, { "dialogRef": { "alias": "dialogRef"; "required": false; }; "project": { "alias": "project"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "projectSaved": "projectSaved"; }, never, never, false, never>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=project-form-modal.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-form-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/project/project-form-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAa,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAgDD,qBA4Ra,yBAA0B,YAAW,MAAM;IAoB1C,OAAO,CAAC,GAAG;IAnBd,SAAS,EAAG,SAAS,CAAC;IACtB,OAAO,EAAE,aAAa,GAAG,IAAI,CAAQ;IACrC,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEtB,YAAY,8BAAqC;IAEpD,QAAQ,EAAE,eAAe,CAK9B;IAEK,aAAa,UAAS;IACtB,UAAU,UAAS;IACnB,eAAe,WAA0B;IACzC,cAAc,WAAyB;gBAE1B,GAAG,EAAE,iBAAiB;IAE1C,QAAQ,IAAI,IAAI;IAQhB,OAAO,CAAC,eAAe;IAWvB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC7B,QAAQ,IAAI,IAAI;yCAxFL,yBAAyB;2CAAzB,yBAAyB;CA2FrC"}
|