@aakash58/chatbot 1.1.19 → 1.1.21
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/.editorconfig +17 -0
- package/.vscode/extensions.json +4 -0
- package/.vscode/launch.json +41 -0
- package/.vscode/settings.json +14 -0
- package/.vscode/tasks.json +60 -0
- package/README.md +298 -22
- package/angular.json +132 -0
- package/docs/PUBLISHING_GUIDE.md +104 -0
- package/package.json +75 -29
- package/projects/app-doohbot/public/assets/const/app-const.json +15 -0
- package/projects/app-doohbot/public/assets/const/doohclick_license.json +6 -0
- package/projects/app-doohbot/public/favicon.ico +0 -0
- package/projects/app-doohbot/src/app/app.config.ts +13 -0
- package/projects/app-doohbot/src/app/app.html +31 -0
- package/projects/app-doohbot/src/app/app.routes.ts +3 -0
- package/projects/app-doohbot/src/app/app.scss +279 -0
- package/projects/app-doohbot/src/app/app.spec.ts +23 -0
- package/projects/app-doohbot/src/app/app.ts +72 -0
- package/projects/app-doohbot/src/index.html +15 -0
- package/projects/app-doohbot/src/main.ts +6 -0
- package/projects/app-doohbot/src/styles.scss +15 -0
- package/projects/app-doohbot/tsconfig.app.json +15 -0
- package/projects/app-doohbot/tsconfig.spec.json +14 -0
- package/projects/doohbot/README.md +64 -0
- package/projects/doohbot/docs/README.md +140 -0
- package/projects/doohbot/ng-package.json +10 -0
- package/projects/doohbot/package.json +16 -0
- package/projects/doohbot/src/lib/app/chat/chat-ui-state.service.ts +194 -0
- package/projects/doohbot/src/lib/app/chat/chat.service.ts +547 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-button/chat-button.component.html +27 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-button/chat-button.component.scss +115 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-button/chat-button.component.ts +35 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-footer/chat-footer.component.html +3 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-footer/chat-footer.component.scss +20 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-footer/chat-footer.component.ts +12 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-header/chat-header.component.html +34 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-header/chat-header.component.scss +78 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-header/chat-header.component.ts +52 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.html +77 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.scss +346 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.ts +188 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-window/chat-window.component.html +146 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-window/chat-window.component.scss +187 -0
- package/projects/doohbot/src/lib/app/chat/components/chat-window/chat-window.component.ts +256 -0
- package/projects/doohbot/src/lib/app/chat/components/message-input/message-input.component.html +17 -0
- package/projects/doohbot/src/lib/app/chat/components/message-input/message-input.component.scss +59 -0
- package/projects/doohbot/src/lib/app/chat/components/message-input/message-input.component.ts +28 -0
- package/projects/doohbot/src/lib/app/chat/components/message-list/message-list.component.html +138 -0
- package/projects/doohbot/src/lib/app/chat/components/message-list/message-list.component.scss +436 -0
- package/projects/doohbot/src/lib/app/chat/components/message-list/message-list.component.ts +106 -0
- package/projects/doohbot/src/lib/app/chat/model/chat-history.model.ts +57 -0
- package/projects/doohbot/src/lib/app/chat/model/chat-request.model.ts +17 -0
- package/projects/doohbot/src/lib/app/chat/model/chat-response.model.ts +9 -0
- package/projects/doohbot/src/lib/app/chat/model/chat-session.model.ts +14 -0
- package/{lib/app/chat/model/chat-stream-message.model.d.ts → projects/doohbot/src/lib/app/chat/model/chat-stream-message.model.ts} +6 -5
- package/projects/doohbot/src/lib/app/chat/model/chat-stream-response.model.ts +12 -0
- package/projects/doohbot/src/lib/app/chat/services/chat-api.service.ts +82 -0
- package/projects/doohbot/src/lib/app/chat/services/chat-audio.service.ts +44 -0
- package/projects/doohbot/src/lib/app/chat/services/chat-history.service.ts +303 -0
- package/projects/doohbot/src/lib/app/login/login-form.component.html +80 -0
- package/projects/doohbot/src/lib/app/login/login-form.component.scss +189 -0
- package/projects/doohbot/src/lib/app/login/login-form.component.ts +45 -0
- package/projects/doohbot/src/lib/app/personalization/personalization-dialog.component.html +81 -0
- package/projects/doohbot/src/lib/app/personalization/personalization-dialog.component.scss +179 -0
- package/projects/doohbot/src/lib/app/personalization/personalization-dialog.component.ts +217 -0
- package/projects/doohbot/src/lib/app/personalization/personalization.service.ts +197 -0
- package/projects/doohbot/src/lib/app/personalization/sections/account/account-section.component.html +111 -0
- package/projects/doohbot/src/lib/app/personalization/sections/account/account-section.component.scss +218 -0
- package/projects/doohbot/src/lib/app/personalization/sections/account/account-section.component.ts +121 -0
- package/projects/doohbot/src/lib/app/personalization/sections/instructions/instructions-section.component.html +46 -0
- package/projects/doohbot/src/lib/app/personalization/sections/instructions/instructions-section.component.scss +138 -0
- package/projects/doohbot/src/lib/app/personalization/sections/instructions/instructions-section.component.ts +28 -0
- package/projects/doohbot/src/lib/app/personalization/sections/preferences/color-picker-dialog.component.ts +92 -0
- package/projects/doohbot/src/lib/app/personalization/sections/preferences/preferences-section.component.html +198 -0
- package/projects/doohbot/src/lib/app/personalization/sections/preferences/preferences-section.component.scss +107 -0
- package/projects/doohbot/src/lib/app/personalization/sections/preferences/preferences-section.component.ts +103 -0
- package/projects/doohbot/src/lib/app/personalization/sections/profile/profile-section.component.html +46 -0
- package/projects/doohbot/src/lib/app/personalization/sections/profile/profile-section.component.scss +131 -0
- package/projects/doohbot/src/lib/app/personalization/sections/profile/profile-section.component.ts +23 -0
- package/projects/doohbot/src/lib/app/personalization/sections/settings/setting-section.component.html +33 -0
- package/projects/doohbot/src/lib/app/personalization/sections/settings/setting-section.component.scss +61 -0
- package/projects/doohbot/src/lib/app/personalization/sections/settings/setting-section.component.ts +20 -0
- package/projects/doohbot/src/lib/app/personalization/sections/terms/terms-section.component.html +30 -0
- package/projects/doohbot/src/lib/app/personalization/sections/terms/terms-section.component.scss +59 -0
- package/projects/doohbot/src/lib/app/personalization/sections/terms/terms-section.component.ts +12 -0
- package/projects/doohbot/src/lib/constant/doohbot-constant.ts +40 -0
- package/projects/doohbot/src/lib/constant/html-entities.ts +8 -0
- package/projects/doohbot/src/lib/constant/utf8.ts +9 -0
- package/projects/doohbot/src/lib/core/app-const.ts +63 -0
- package/projects/doohbot/src/lib/core/auth/account-api.service.ts +53 -0
- package/projects/doohbot/src/lib/core/auth/auth.service.ts +478 -0
- package/projects/doohbot/src/lib/core/auth/models/auth-result.model.ts +4 -0
- package/projects/doohbot/src/lib/core/auth/models/federated-login-request.model.ts +5 -0
- package/projects/doohbot/src/lib/core/auth/models/login-request.model.ts +6 -0
- package/projects/doohbot/src/lib/core/auth/storage.service.ts +113 -0
- package/projects/doohbot/src/lib/core/directives/draggable/draggable-dialog.directive.ts +123 -0
- package/projects/doohbot/src/lib/core/directives/draggable/draggable-dialog.module.ts +9 -0
- package/projects/doohbot/src/lib/core/directives/fullscreen/fullscreen.directive.ts +58 -0
- package/projects/doohbot/src/lib/core/directives/fullscreen/fullscreen.module.ts +9 -0
- package/projects/doohbot/src/lib/core/directives/popout/popout.directive.ts +169 -0
- package/projects/doohbot/src/lib/core/directives/popout/popout.module.ts +9 -0
- package/projects/doohbot/src/lib/core/directives/resizable/resizable-dialog.directive.ts +197 -0
- package/projects/doohbot/src/lib/core/directives/resizable/resizable-dialog.module.ts +9 -0
- package/projects/doohbot/src/lib/core/enums/api-request-state.enum.ts +9 -0
- package/projects/doohbot/src/lib/core/environments/environment.prod.ts +14 -0
- package/projects/doohbot/src/lib/core/environments/environment.ts +14 -0
- package/projects/doohbot/src/lib/core/helpers/crypto-helper.service.ts +72 -0
- package/projects/doohbot/src/lib/core/http/http-stream.service.ts +105 -0
- package/projects/doohbot/src/lib/core/http/http.service.ts +148 -0
- package/projects/doohbot/src/lib/core/interceptors/auth.interceptor.ts +118 -0
- package/projects/doohbot/src/lib/core/interceptors/license.interceptor.ts +50 -0
- package/projects/doohbot/src/lib/core/models/api-config.model.ts +82 -0
- package/projects/doohbot/src/lib/core/models/api-request.model.ts +92 -0
- package/projects/doohbot/src/lib/core/models/api-response.model.ts +13 -0
- package/projects/doohbot/src/lib/core/models/doohbot-config.model.ts +109 -0
- package/{lib/core/models/license.model.d.ts → projects/doohbot/src/lib/core/models/license.model.ts} +27 -23
- package/projects/doohbot/src/lib/core/models/message.ts +18 -0
- package/projects/doohbot/src/lib/core/models/theme-config.model.ts +48 -0
- package/projects/doohbot/src/lib/core/services/core-config.service.ts +53 -0
- package/projects/doohbot/src/lib/core/services/doohbot-api.service.ts +207 -0
- package/projects/doohbot/src/lib/core/services/license.service.ts +171 -0
- package/projects/doohbot/src/lib/core/services/markdown.service.ts +73 -0
- package/projects/doohbot/src/lib/core/services/theme.service.ts +305 -0
- package/{lib/core/types/auth-mode.type.d.ts → projects/doohbot/src/lib/core/types/auth-mode.type.ts} +4 -4
- package/{lib/core/types/auth-status.type.d.ts → projects/doohbot/src/lib/core/types/auth-status.type.ts} +5 -4
- package/{lib/core/types/chat-stream.type.d.ts → projects/doohbot/src/lib/core/types/chat-stream.type.ts} +4 -4
- package/{lib/core/types/message-role.type.d.ts → projects/doohbot/src/lib/core/types/message-role.type.ts} +4 -4
- package/{lib/core/types/prompt-mode.type.d.ts → projects/doohbot/src/lib/core/types/prompt-mode.type.ts} +5 -4
- package/{lib/core/types/snackbar-error.type.d.ts → projects/doohbot/src/lib/core/types/snackbar-error.type.ts} +5 -4
- package/{lib/core/types/tenant-resolution-strategy.type.d.ts → projects/doohbot/src/lib/core/types/tenant-resolution-strategy.type.ts} +4 -4
- package/projects/doohbot/src/lib/core/utils/error-handler.util.ts +31 -0
- package/projects/doohbot/src/lib/core/utils/logger.service.ts +45 -0
- package/projects/doohbot/src/lib/doohbot-input.ts +19 -0
- package/projects/doohbot/src/lib/doohbot.component.html +34 -0
- package/projects/doohbot/src/lib/doohbot.component.scss +17 -0
- package/projects/doohbot/src/lib/doohbot.component.spec.ts +31 -0
- package/projects/doohbot/src/lib/doohbot.component.ts +545 -0
- package/projects/doohbot/src/lib/elements.ts +25 -0
- package/projects/doohbot/src/lib/predefined_messages.ts +14 -0
- package/projects/doohbot/src/lib/shared/chips/chips.component.html +9 -0
- package/projects/doohbot/src/lib/shared/chips/chips.component.scss +29 -0
- package/projects/doohbot/src/lib/shared/chips/chips.component.spec.ts +22 -0
- package/projects/doohbot/src/lib/shared/chips/chips.component.ts +20 -0
- package/projects/doohbot/src/lib/shared/dialog/dialog.component.html +29 -0
- package/projects/doohbot/src/lib/shared/dialog/dialog.component.scss +100 -0
- package/projects/doohbot/src/lib/shared/dialog/dialog.component.ts +42 -0
- package/projects/doohbot/src/lib/shared/dialog/dialog.service.ts +62 -0
- package/projects/doohbot/src/lib/shared/dialog/dialog.utils.ts +102 -0
- package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.html +30 -0
- package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.scss +53 -0
- package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.spec.ts +22 -0
- package/projects/doohbot/src/lib/shared/dropdown-menu/dropdown-menu.component.ts +35 -0
- package/projects/doohbot/src/lib/shared/input-dialog/input-dialog.component.html +16 -0
- package/projects/doohbot/src/lib/shared/input-dialog/input-dialog.component.scss +45 -0
- package/projects/doohbot/src/lib/shared/input-dialog/input-dialog.component.ts +46 -0
- package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.html +5 -0
- package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.scss +0 -0
- package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.spec.ts +22 -0
- package/projects/doohbot/src/lib/shared/menu-item/menu-item.component.ts +20 -0
- package/projects/doohbot/src/lib/shared/pipes/simple-markdown.pipe.ts +19 -0
- package/projects/doohbot/src/lib/shared/popout/popout.html +1 -0
- package/projects/doohbot/src/lib/shared/popout/popout.scss +0 -0
- package/projects/doohbot/src/lib/shared/popout/popout.spec.ts +23 -0
- package/projects/doohbot/src/lib/shared/popout/popout.ts +11 -0
- package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.html +7 -0
- package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.scss +125 -0
- package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.spec.ts +21 -0
- package/projects/doohbot/src/lib/shared/snackbar/snackbar.component.ts +44 -0
- package/projects/doohbot/src/lib/shared/snackbar/snackbar.service.ts +54 -0
- package/{lib/shared/snackbar/snackbar.utils.d.ts → projects/doohbot/src/lib/shared/snackbar/snackbar.utils.ts} +49 -33
- package/projects/doohbot/src/lib/styles/_theme.scss +132 -0
- package/projects/doohbot/src/lib/styles/material-override.scss +302 -0
- package/projects/doohbot/src/lib/styles/utility.scss +588 -0
- package/projects/doohbot/src/public-api.ts +42 -0
- package/projects/doohbot/tsconfig.lib.json +15 -0
- package/projects/doohbot/tsconfig.lib.prod.json +11 -0
- package/projects/doohbot/tsconfig.spec.json +10 -0
- package/proxy.conf.json +8 -0
- package/publish.config.js +25 -0
- package/scripts/publishing/index.ts +67 -0
- package/scripts/publishing/pipeline/01-clean.ts +11 -0
- package/scripts/publishing/pipeline/02-validate-pre.ts +8 -0
- package/scripts/publishing/pipeline/03-build.ts +7 -0
- package/scripts/publishing/pipeline/04-validate-post.ts +8 -0
- package/scripts/publishing/pipeline/05-prepare-package.ts +29 -0
- package/scripts/publishing/pipeline/06-version.ts +23 -0
- package/scripts/publishing/pipeline/07-publish.ts +14 -0
- package/scripts/publishing/pipeline/08-cleanup.ts +5 -0
- package/scripts/publishing/types.ts +36 -0
- package/scripts/publishing/utils/command.ts +15 -0
- package/scripts/publishing/utils/config.ts +17 -0
- package/scripts/validate.ts +166 -0
- package/tsconfig.json +45 -0
- package/tsconfig.scripts.json +15 -0
- package/esm2022/aakash58-chatbot.mjs +0 -5
- package/esm2022/lib/app/chat/chat-ui-state.service.mjs +0 -170
- package/esm2022/lib/app/chat/chat.service.mjs +0 -445
- package/esm2022/lib/app/chat/components/chat-button/chat-button.component.mjs +0 -50
- package/esm2022/lib/app/chat/components/chat-footer/chat-footer.component.mjs +0 -12
- package/esm2022/lib/app/chat/components/chat-header/chat-header.component.mjs +0 -66
- package/esm2022/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.mjs +0 -186
- package/esm2022/lib/app/chat/components/chat-window/chat-window.component.mjs +0 -312
- package/esm2022/lib/app/chat/components/message-input/message-input.component.mjs +0 -36
- package/esm2022/lib/app/chat/components/message-list/message-list.component.mjs +0 -115
- package/esm2022/lib/app/chat/model/chat-history.model.mjs +0 -2
- package/esm2022/lib/app/chat/model/chat-request.model.mjs +0 -2
- package/esm2022/lib/app/chat/model/chat-response.model.mjs +0 -2
- package/esm2022/lib/app/chat/model/chat-session.model.mjs +0 -2
- package/esm2022/lib/app/chat/model/chat-stream-message.model.mjs +0 -2
- package/esm2022/lib/app/chat/model/chat-stream-response.model.mjs +0 -2
- package/esm2022/lib/app/chat/services/chat-api.service.mjs +0 -61
- package/esm2022/lib/app/chat/services/chat-audio.service.mjs +0 -50
- package/esm2022/lib/app/chat/services/chat-history.service.mjs +0 -252
- package/esm2022/lib/app/login/login-form.component.mjs +0 -46
- package/esm2022/lib/app/personalization/personalization-dialog.component.mjs +0 -194
- package/esm2022/lib/app/personalization/personalization.service.mjs +0 -149
- package/esm2022/lib/app/personalization/sections/account/account-section.component.mjs +0 -122
- package/esm2022/lib/app/personalization/sections/preferences/color-picker-dialog.component.mjs +0 -86
- package/esm2022/lib/app/personalization/sections/preferences/preferences-section.component.mjs +0 -115
- package/esm2022/lib/app/personalization/sections/profile/profile-section.component.mjs +0 -29
- package/esm2022/lib/app/personalization/sections/settings/setting-section.component.mjs +0 -30
- package/esm2022/lib/app/personalization/sections/terms/terms-section.component.mjs +0 -12
- package/esm2022/lib/constant/doohbot-constant.mjs +0 -28
- package/esm2022/lib/constant/html-entities.mjs +0 -9
- package/esm2022/lib/constant/utf8.mjs +0 -10
- package/esm2022/lib/core/app-const.mjs +0 -61
- package/esm2022/lib/core/auth/account-api.service.mjs +0 -40
- package/esm2022/lib/core/auth/auth.service.mjs +0 -391
- package/esm2022/lib/core/auth/models/auth-result.model.mjs +0 -3
- package/esm2022/lib/core/auth/models/federated-login-request.model.mjs +0 -6
- package/esm2022/lib/core/auth/models/login-request.model.mjs +0 -6
- package/esm2022/lib/core/auth/storage.service.mjs +0 -110
- package/esm2022/lib/core/directives/draggable/draggable-dialog.directive.mjs +0 -112
- package/esm2022/lib/core/directives/fullscreen/fullscreen.directive.mjs +0 -55
- package/esm2022/lib/core/directives/resizable/resizable-dialog.directive.mjs +0 -179
- package/esm2022/lib/core/environments/environment.mjs +0 -15
- package/esm2022/lib/core/environments/environment.prod.mjs +0 -15
- package/esm2022/lib/core/helpers/crypto-helper.service.mjs +0 -52
- package/esm2022/lib/core/http/http-stream.service.mjs +0 -97
- package/esm2022/lib/core/http/http.service.mjs +0 -103
- package/esm2022/lib/core/interceptors/auth.interceptor.mjs +0 -96
- package/esm2022/lib/core/interceptors/license.interceptor.mjs +0 -44
- package/esm2022/lib/core/models/api-config.model.mjs +0 -18
- package/esm2022/lib/core/models/api-request.model.mjs +0 -2
- package/esm2022/lib/core/models/api-response.model.mjs +0 -8
- package/esm2022/lib/core/models/doohbot-config.model.mjs +0 -18
- package/esm2022/lib/core/models/license.model.mjs +0 -2
- package/esm2022/lib/core/models/message.mjs +0 -2
- package/esm2022/lib/core/models/theme-config.model.mjs +0 -2
- package/esm2022/lib/core/services/core-config.service.mjs +0 -52
- package/esm2022/lib/core/services/license.service.mjs +0 -145
- package/esm2022/lib/core/services/markdown.service.mjs +0 -64
- package/esm2022/lib/core/services/theme.service.mjs +0 -248
- package/esm2022/lib/core/types/auth-mode.type.mjs +0 -2
- package/esm2022/lib/core/types/auth-status.type.mjs +0 -5
- package/esm2022/lib/core/types/chat-stream.type.mjs +0 -2
- package/esm2022/lib/core/types/message-role.type.mjs +0 -2
- package/esm2022/lib/core/types/prompt-mode.type.mjs +0 -5
- package/esm2022/lib/core/types/snackbar-error.type.mjs +0 -5
- package/esm2022/lib/core/types/tenant-resolution-strategy.type.mjs +0 -2
- package/esm2022/lib/core/utils/logger.service.mjs +0 -42
- package/esm2022/lib/doohbot-input.mjs +0 -20
- package/esm2022/lib/doohbot.component.mjs +0 -444
- package/esm2022/lib/predefined_messages.mjs +0 -15
- package/esm2022/lib/shared/chips/chips.component.mjs +0 -28
- package/esm2022/lib/shared/dialog/dialog.component.mjs +0 -36
- package/esm2022/lib/shared/dialog/dialog.service.mjs +0 -64
- package/esm2022/lib/shared/dialog/dialog.utils.mjs +0 -85
- package/esm2022/lib/shared/dropdown-menu/dropdown-menu.component.mjs +0 -29
- package/esm2022/lib/shared/input-dialog/input-dialog.component.mjs +0 -38
- package/esm2022/lib/shared/menu-item/menu-item.component.mjs +0 -24
- package/esm2022/lib/shared/pipes/simple-markdown.pipe.mjs +0 -27
- package/esm2022/lib/shared/snackbar/snackbar.component.mjs +0 -43
- package/esm2022/lib/shared/snackbar/snackbar.service.mjs +0 -46
- package/esm2022/lib/shared/snackbar/snackbar.utils.mjs +0 -43
- package/esm2022/public-api.mjs +0 -37
- package/fesm2022/aakash58-chatbot.mjs +0 -5193
- package/fesm2022/aakash58-chatbot.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/app/chat/chat-ui-state.service.d.ts +0 -96
- package/lib/app/chat/chat.service.d.ts +0 -88
- package/lib/app/chat/components/chat-button/chat-button.component.d.ts +0 -16
- package/lib/app/chat/components/chat-footer/chat-footer.component.d.ts +0 -5
- package/lib/app/chat/components/chat-header/chat-header.component.d.ts +0 -24
- package/lib/app/chat/components/chat-history-sidebar/chat-history-sidebar.component.d.ts +0 -49
- package/lib/app/chat/components/chat-window/chat-window.component.d.ts +0 -107
- package/lib/app/chat/components/message-input/message-input.component.d.ts +0 -12
- package/lib/app/chat/components/message-list/message-list.component.d.ts +0 -40
- package/lib/app/chat/model/chat-history.model.d.ts +0 -51
- package/lib/app/chat/model/chat-request.model.d.ts +0 -10
- package/lib/app/chat/model/chat-response.model.d.ts +0 -9
- package/lib/app/chat/model/chat-session.model.d.ts +0 -12
- package/lib/app/chat/model/chat-stream-response.model.d.ts +0 -10
- package/lib/app/chat/services/chat-api.service.d.ts +0 -30
- package/lib/app/chat/services/chat-audio.service.d.ts +0 -19
- package/lib/app/chat/services/chat-history.service.d.ts +0 -53
- package/lib/app/login/login-form.component.d.ts +0 -20
- package/lib/app/personalization/personalization-dialog.component.d.ts +0 -53
- package/lib/app/personalization/personalization.service.d.ts +0 -66
- package/lib/app/personalization/sections/account/account-section.component.d.ts +0 -30
- package/lib/app/personalization/sections/preferences/color-picker-dialog.component.d.ts +0 -17
- package/lib/app/personalization/sections/preferences/preferences-section.component.d.ts +0 -27
- package/lib/app/personalization/sections/profile/profile-section.component.d.ts +0 -17
- package/lib/app/personalization/sections/settings/setting-section.component.d.ts +0 -10
- package/lib/app/personalization/sections/terms/terms-section.component.d.ts +0 -5
- package/lib/constant/doohbot-constant.d.ts +0 -12
- package/lib/constant/html-entities.d.ts +0 -8
- package/lib/constant/utf8.d.ts +0 -9
- package/lib/core/app-const.d.ts +0 -11
- package/lib/core/auth/account-api.service.d.ts +0 -20
- package/lib/core/auth/auth.service.d.ts +0 -90
- package/lib/core/auth/models/auth-result.model.d.ts +0 -4
- package/lib/core/auth/models/federated-login-request.model.d.ts +0 -5
- package/lib/core/auth/models/login-request.model.d.ts +0 -6
- package/lib/core/auth/storage.service.d.ts +0 -21
- package/lib/core/directives/draggable/draggable-dialog.directive.d.ts +0 -23
- package/lib/core/directives/fullscreen/fullscreen.directive.d.ts +0 -14
- package/lib/core/directives/resizable/resizable-dialog.directive.d.ts +0 -30
- package/lib/core/environments/environment.d.ts +0 -7
- package/lib/core/environments/environment.prod.d.ts +0 -7
- package/lib/core/helpers/crypto-helper.service.d.ts +0 -12
- package/lib/core/http/http-stream.service.d.ts +0 -18
- package/lib/core/http/http.service.d.ts +0 -20
- package/lib/core/interceptors/auth.interceptor.d.ts +0 -18
- package/lib/core/interceptors/license.interceptor.d.ts +0 -11
- package/lib/core/models/api-config.model.d.ts +0 -58
- package/lib/core/models/api-request.model.d.ts +0 -77
- package/lib/core/models/api-response.model.d.ts +0 -6
- package/lib/core/models/doohbot-config.model.d.ts +0 -81
- package/lib/core/models/message.d.ts +0 -16
- package/lib/core/models/theme-config.model.d.ts +0 -28
- package/lib/core/services/core-config.service.d.ts +0 -23
- package/lib/core/services/license.service.d.ts +0 -33
- package/lib/core/services/markdown.service.d.ts +0 -8
- package/lib/core/services/theme.service.d.ts +0 -40
- package/lib/core/utils/logger.service.d.ts +0 -11
- package/lib/doohbot-input.d.ts +0 -19
- package/lib/doohbot.component.d.ts +0 -108
- package/lib/predefined_messages.d.ts +0 -2
- package/lib/shared/chips/chips.component.d.ts +0 -10
- package/lib/shared/dialog/dialog.component.d.ts +0 -19
- package/lib/shared/dialog/dialog.service.d.ts +0 -29
- package/lib/shared/dialog/dialog.utils.d.ts +0 -41
- package/lib/shared/dropdown-menu/dropdown-menu.component.d.ts +0 -11
- package/lib/shared/input-dialog/input-dialog.component.d.ts +0 -20
- package/lib/shared/menu-item/menu-item.component.d.ts +0 -9
- package/lib/shared/pipes/simple-markdown.pipe.d.ts +0 -10
- package/lib/shared/snackbar/snackbar.component.d.ts +0 -14
- package/lib/shared/snackbar/snackbar.service.d.ts +0 -19
- package/public-api.d.ts +0 -11
- /package/{src → projects/doohbot/src}/assets/bot.mp3 +0 -0
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const PredefinedMessages = [
|
|
2
|
-
'How do I create a new DOOH proposal in Doohclick?',
|
|
3
|
-
'Can the buyer see internal notes I add in Doohclick?',
|
|
4
|
-
// 'What happens after a buyer approves a proposal?',
|
|
5
|
-
// 'Why would an SR hide the pipeline value in a proposal?',
|
|
6
|
-
// 'Are additional services like ad formatting included in the base campaign cost?',
|
|
7
|
-
'How to create a proposal?',
|
|
8
|
-
];
|
|
9
|
-
export const SuggestedMessages = [
|
|
10
|
-
'Hi! How can I help?',
|
|
11
|
-
'Check your activity?',
|
|
12
|
-
'Need account help?',
|
|
13
|
-
'Quick tips to start.',
|
|
14
|
-
];
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGVmaW5lZF9tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Rvb2hib3Qvc3JjL2xpYi9wcmVkZWZpbmVkX21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLG1EQUFtRDtJQUNuRCxzREFBc0Q7SUFDdEQscURBQXFEO0lBQ3JELDREQUE0RDtJQUM1RCxvRkFBb0Y7SUFDcEYsMkJBQTJCO0NBQzVCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixzQkFBc0I7Q0FDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBQcmVkZWZpbmVkTWVzc2FnZXMgPSBbXHJcbiAgJ0hvdyBkbyBJIGNyZWF0ZSBhIG5ldyBET09IIHByb3Bvc2FsIGluIERvb2hjbGljaz8nLFxyXG4gICdDYW4gdGhlIGJ1eWVyIHNlZSBpbnRlcm5hbCBub3RlcyBJIGFkZCBpbiBEb29oY2xpY2s/JyxcclxuICAvLyAnV2hhdCBoYXBwZW5zIGFmdGVyIGEgYnV5ZXIgYXBwcm92ZXMgYSBwcm9wb3NhbD8nLFxyXG4gIC8vICdXaHkgd291bGQgYW4gU1IgaGlkZSB0aGUgcGlwZWxpbmUgdmFsdWUgaW4gYSBwcm9wb3NhbD8nLFxyXG4gIC8vICdBcmUgYWRkaXRpb25hbCBzZXJ2aWNlcyBsaWtlIGFkIGZvcm1hdHRpbmcgaW5jbHVkZWQgaW4gdGhlIGJhc2UgY2FtcGFpZ24gY29zdD8nLFxyXG4gICdIb3cgdG8gY3JlYXRlIGEgcHJvcG9zYWw/JyxcclxuXTtcclxuZXhwb3J0IGNvbnN0IFN1Z2dlc3RlZE1lc3NhZ2VzID0gW1xyXG4gICdIaSEgSG93IGNhbiBJIGhlbHA/JyxcclxuICAnQ2hlY2sgeW91ciBhY3Rpdml0eT8nLFxyXG4gICdOZWVkIGFjY291bnQgaGVscD8nLFxyXG4gICdRdWljayB0aXBzIHRvIHN0YXJ0LicsXHJcbl07XHJcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class Chips {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.messages = []; // messages array
|
|
7
|
-
this.disabled = false;
|
|
8
|
-
this.chipClick = new EventEmitter(); // emit clicked chip
|
|
9
|
-
}
|
|
10
|
-
onChipClick(msg) {
|
|
11
|
-
if (this.disabled)
|
|
12
|
-
return;
|
|
13
|
-
this.chipClick.emit(msg);
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Chips, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: Chips, isStandalone: true, selector: "app-chips", inputs: { messages: "messages", disabled: "disabled" }, outputs: { chipClick: "chipClick" }, ngImport: i0, template: "@if (messages.length > 0) {\r\n <div class=\"predefined-chips\">\r\n @for (msg of messages; track msg) {\r\n <button class=\"chip\" (click)=\"onChipClick(msg)\">\r\n {{ msg }}\r\n </button>\r\n }\r\n </div>\r\n}\r\n", styles: [".predefined-chips{display:flex;flex-wrap:wrap;gap:8px;padding:10px;font:var(--font-family)}.chip{background-color:rgba(var(--primary-color),.2);border:1px solid var(--primary-color);border-radius:16px;padding:6px 12px;cursor:pointer;font-size:.9rem;font:var(--font-family);transition:background-color .3s ease;color:var(--text-color)}.chip:hover,.chip.active{background-color:var(--primary-color);color:var(--white)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Chips, decorators: [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{ selector: 'app-chips', standalone: true, imports: [CommonModule], template: "@if (messages.length > 0) {\r\n <div class=\"predefined-chips\">\r\n @for (msg of messages; track msg) {\r\n <button class=\"chip\" (click)=\"onChipClick(msg)\">\r\n {{ msg }}\r\n </button>\r\n }\r\n </div>\r\n}\r\n", styles: [".predefined-chips{display:flex;flex-wrap:wrap;gap:8px;padding:10px;font:var(--font-family)}.chip{background-color:rgba(var(--primary-color),.2);border:1px solid var(--primary-color);border-radius:16px;padding:6px 12px;cursor:pointer;font-size:.9rem;font:var(--font-family);transition:background-color .3s ease;color:var(--text-color)}.chip:hover,.chip.active{background-color:var(--primary-color);color:var(--white)}\n"] }]
|
|
21
|
-
}], propDecorators: { messages: [{
|
|
22
|
-
type: Input
|
|
23
|
-
}], disabled: [{
|
|
24
|
-
type: Input
|
|
25
|
-
}], chipClick: [{
|
|
26
|
-
type: Output
|
|
27
|
-
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9vaGJvdC9zcmMvbGliL3NoYXJlZC9jaGlwcy9jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL2NoaXBzL2NoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVMvQyxNQUFNLE9BQU8sS0FBSztJQVBsQjtRQVFXLGFBQVEsR0FBYSxFQUFFLENBQUMsQ0FBQyxpQkFBaUI7UUFDMUMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQyxDQUFDLG9CQUFvQjtLQU12RTtJQUpDLFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBUlUsS0FBSzttR0FBTCxLQUFLLGtLQ1ZsQixrUEFTQSwyZERIWSxZQUFZOzs0RkFJWCxLQUFLO2tCQVBqQixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBS2QsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2hpcHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGlwcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hpcHMge1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdOyAvLyBtZXNzYWdlcyBhcnJheVxyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIGNoaXBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpOyAvLyBlbWl0IGNsaWNrZWQgY2hpcFxyXG5cclxuICBvbkNoaXBDbGljayhtc2c6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuY2hpcENsaWNrLmVtaXQobXNnKTtcclxuICB9XHJcbn1cclxuIiwiQGlmIChtZXNzYWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgPGRpdiBjbGFzcz1cInByZWRlZmluZWQtY2hpcHNcIj5cclxuICAgIEBmb3IgKG1zZyBvZiBtZXNzYWdlczsgdHJhY2sgbXNnKSB7XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJjaGlwXCIgKGNsaWNrKT1cIm9uQ2hpcENsaWNrKG1zZylcIj5cclxuICAgICAgICB7eyBtc2cgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/dialog";
|
|
8
|
-
import * as i2 from "@angular/material/button";
|
|
9
|
-
import * as i3 from "@angular/material/icon";
|
|
10
|
-
export class DialogComponent {
|
|
11
|
-
constructor(dialogRef, data) {
|
|
12
|
-
this.dialogRef = dialogRef;
|
|
13
|
-
this.data = data;
|
|
14
|
-
// Set defaults
|
|
15
|
-
this.data.confirmText = this.data.confirmText || 'Confirm';
|
|
16
|
-
this.data.cancelText = this.data.cancelText || 'Cancel';
|
|
17
|
-
this.data.confirmButtonColor = this.data.confirmButtonColor || 'warn';
|
|
18
|
-
this.data.icon = this.data.icon || 'warning';
|
|
19
|
-
}
|
|
20
|
-
onCancel() {
|
|
21
|
-
this.dialogRef.close(false);
|
|
22
|
-
}
|
|
23
|
-
onConfirm() {
|
|
24
|
-
this.dialogRef.close(true);
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DialogComponent, isStandalone: true, selector: "app-dialog", ngImport: i0, template: "<div class=\"dialog-container\">\r\n <div class=\"dialog-header\">\r\n <mat-icon class=\"dialog-icon\" [class.warn-icon]=\"data.confirmButtonColor === 'warn'\">\r\n {{ data.icon }}\r\n </mat-icon>\r\n <h2 mat-dialog-title>{{ data.title }}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <p class=\"dialog-message\">{{ data.message }}</p>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\">\r\n <button mat-button class=\"cancel-btn\" (click)=\"onCancel()\" type=\"button\">\r\n {{ data.cancelText }}\r\n </button>\r\n <button\r\n mat-raised-button\r\n class=\"confirm-btn\"\r\n [class.warn-btn]=\"data.confirmButtonColor === 'warn'\"\r\n [class.primary-btn]=\"data.confirmButtonColor === 'primary'\"\r\n [class.accent-btn]=\"data.confirmButtonColor === 'accent'\"\r\n (click)=\"onConfirm()\"\r\n type=\"button\"\r\n >\r\n {{ data.confirmText }}\r\n </button>\r\n </mat-dialog-actions>\r\n</div>\r\n", styles: [".dialog-container{padding:0;min-width:320px;max-width:500px}.dialog-container .dialog-header{display:flex;align-items:center;gap:12px;padding:24px 24px 16px;margin-bottom:0}.dialog-container .dialog-header .dialog-icon{font-size:32px;width:32px;height:32px;color:var(--primary-color)}.dialog-container .dialog-header .dialog-icon.warn-icon{color:var(--red)}.dialog-container .dialog-header h2{margin:0;font-size:20px;font-weight:600;color:var(--secondary-text-color)}.dialog-container mat-dialog-content{padding:0 24px 24px;margin:0}.dialog-container mat-dialog-content .dialog-message{margin:0;font-size:14px;line-height:1.6;color:var(--text-color)}.dialog-container mat-dialog-actions{padding:12px 24px 24px;margin:0;gap:12px}.dialog-container mat-dialog-actions .cancel-btn{color:var(--secondary-text-color, var(--grey));transition:all .2s ease}.dialog-container mat-dialog-actions .cancel-btn:hover{background-color:var(--hover-bg)}.dialog-container mat-dialog-actions .confirm-btn{font-weight:500;transition:all .2s ease}.dialog-container mat-dialog-actions .confirm-btn.warn-btn{background-color:var(--red);color:var(--white)}.dialog-container mat-dialog-actions .confirm-btn.warn-btn:hover{background-color:var(--red)}.dialog-container mat-dialog-actions .confirm-btn.primary-btn{background-color:var(--primary-color);color:var(--white)}.dialog-container mat-dialog-actions .confirm-btn.primary-btn:hover{background-color:var(--primary-color)}.dialog-container mat-dialog-actions .confirm-btn.accent-btn{background-color:var(--light-red);color:var(--white)}.dialog-container mat-dialog-actions .confirm-btn.accent-btn:hover{background-color:var(--light-red)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogComponent, decorators: [{
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{ selector: 'app-dialog', standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule, MatIconModule], template: "<div class=\"dialog-container\">\r\n <div class=\"dialog-header\">\r\n <mat-icon class=\"dialog-icon\" [class.warn-icon]=\"data.confirmButtonColor === 'warn'\">\r\n {{ data.icon }}\r\n </mat-icon>\r\n <h2 mat-dialog-title>{{ data.title }}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <p class=\"dialog-message\">{{ data.message }}</p>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\">\r\n <button mat-button class=\"cancel-btn\" (click)=\"onCancel()\" type=\"button\">\r\n {{ data.cancelText }}\r\n </button>\r\n <button\r\n mat-raised-button\r\n class=\"confirm-btn\"\r\n [class.warn-btn]=\"data.confirmButtonColor === 'warn'\"\r\n [class.primary-btn]=\"data.confirmButtonColor === 'primary'\"\r\n [class.accent-btn]=\"data.confirmButtonColor === 'accent'\"\r\n (click)=\"onConfirm()\"\r\n type=\"button\"\r\n >\r\n {{ data.confirmText }}\r\n </button>\r\n </mat-dialog-actions>\r\n</div>\r\n", styles: [".dialog-container{padding:0;min-width:320px;max-width:500px}.dialog-container .dialog-header{display:flex;align-items:center;gap:12px;padding:24px 24px 16px;margin-bottom:0}.dialog-container .dialog-header .dialog-icon{font-size:32px;width:32px;height:32px;color:var(--primary-color)}.dialog-container .dialog-header .dialog-icon.warn-icon{color:var(--red)}.dialog-container .dialog-header h2{margin:0;font-size:20px;font-weight:600;color:var(--secondary-text-color)}.dialog-container mat-dialog-content{padding:0 24px 24px;margin:0}.dialog-container mat-dialog-content .dialog-message{margin:0;font-size:14px;line-height:1.6;color:var(--text-color)}.dialog-container mat-dialog-actions{padding:12px 24px 24px;margin:0;gap:12px}.dialog-container mat-dialog-actions .cancel-btn{color:var(--secondary-text-color, var(--grey));transition:all .2s ease}.dialog-container mat-dialog-actions .cancel-btn:hover{background-color:var(--hover-bg)}.dialog-container mat-dialog-actions .confirm-btn{font-weight:500;transition:all .2s ease}.dialog-container mat-dialog-actions .confirm-btn.warn-btn{background-color:var(--red);color:var(--white)}.dialog-container mat-dialog-actions .confirm-btn.warn-btn:hover{background-color:var(--red)}.dialog-container mat-dialog-actions .confirm-btn.primary-btn{background-color:var(--primary-color);color:var(--white)}.dialog-container mat-dialog-actions .confirm-btn.primary-btn:hover{background-color:var(--primary-color)}.dialog-container mat-dialog-actions .confirm-btn.accent-btn{background-color:var(--light-red);color:var(--white)}.dialog-container mat-dialog-actions .confirm-btn.accent-btn:hover{background-color:var(--light-red)}\n"] }]
|
|
32
|
-
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
33
|
-
type: Inject,
|
|
34
|
-
args: [MAT_DIALOG_DATA]
|
|
35
|
-
}] }] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rvb2hib3Qvc3JjL2xpYi9zaGFyZWQvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBa0J2RCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNTLFNBQXdDLEVBQ2YsSUFBZ0I7UUFEekMsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRWhELGVBQWU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUM7UUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDOytHQWxCVSxlQUFlLDhDQUdoQixlQUFlO21HQUhkLGVBQWUsc0VDdEI1Qix5K0JBNkJBLDRyRERYWSxZQUFZLDhCQUFFLGVBQWUseWJBQUUsZUFBZSwyTkFBRSxhQUFhOzs0RkFJNUQsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDOzswQkFPckUsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgY29uZmlybVRleHQ/OiBzdHJpbmc7XHJcbiAgY2FuY2VsVGV4dD86IHN0cmluZztcclxuICBjb25maXJtQnV0dG9uQ29sb3I/OiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJztcclxuICBpY29uPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEaWFsb2dDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBEaWFsb2dEYXRhLFxyXG4gICkge1xyXG4gICAgLy8gU2V0IGRlZmF1bHRzXHJcbiAgICB0aGlzLmRhdGEuY29uZmlybVRleHQgPSB0aGlzLmRhdGEuY29uZmlybVRleHQgfHwgJ0NvbmZpcm0nO1xyXG4gICAgdGhpcy5kYXRhLmNhbmNlbFRleHQgPSB0aGlzLmRhdGEuY2FuY2VsVGV4dCB8fCAnQ2FuY2VsJztcclxuICAgIHRoaXMuZGF0YS5jb25maXJtQnV0dG9uQ29sb3IgPSB0aGlzLmRhdGEuY29uZmlybUJ1dHRvbkNvbG9yIHx8ICd3YXJuJztcclxuICAgIHRoaXMuZGF0YS5pY29uID0gdGhpcy5kYXRhLmljb24gfHwgJ3dhcm5pbmcnO1xyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBvbkNvbmZpcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiPlxyXG4gICAgPG1hdC1pY29uIGNsYXNzPVwiZGlhbG9nLWljb25cIiBbY2xhc3Mud2Fybi1pY29uXT1cImRhdGEuY29uZmlybUJ1dHRvbkNvbG9yID09PSAnd2FybidcIj5cclxuICAgICAge3sgZGF0YS5pY29uIH19XHJcbiAgICA8L21hdC1pY29uPlxyXG4gICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3sgZGF0YS50aXRsZSB9fTwvaDI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8cCBjbGFzcz1cImRpYWxvZy1tZXNzYWdlXCI+e3sgZGF0YS5tZXNzYWdlIH19PC9wPlxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJjYW5jZWwtYnRuXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgIHt7IGRhdGEuY2FuY2VsVGV4dCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiY29uZmlybS1idG5cIlxyXG4gICAgICBbY2xhc3Mud2Fybi1idG5dPVwiZGF0YS5jb25maXJtQnV0dG9uQ29sb3IgPT09ICd3YXJuJ1wiXHJcbiAgICAgIFtjbGFzcy5wcmltYXJ5LWJ0bl09XCJkYXRhLmNvbmZpcm1CdXR0b25Db2xvciA9PT0gJ3ByaW1hcnknXCJcclxuICAgICAgW2NsYXNzLmFjY2VudC1idG5dPVwiZGF0YS5jb25maXJtQnV0dG9uQ29sb3IgPT09ICdhY2NlbnQnXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ29uZmlybSgpXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGRhdGEuY29uZmlybVRleHQgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { DialogComponent } from './dialog.component';
|
|
3
|
-
import { InputDialogComponent } from '../input-dialog/input-dialog.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/material/dialog";
|
|
6
|
-
export class DialogService {
|
|
7
|
-
constructor(dialog) {
|
|
8
|
-
this.dialog = dialog;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Opens a confirmation dialog with customizable options
|
|
12
|
-
* @param data Configuration for the dialog
|
|
13
|
-
* @returns Observable that emits true if confirmed, false if cancelled
|
|
14
|
-
*/
|
|
15
|
-
open(data) {
|
|
16
|
-
const dialogRef = this.dialog.open(DialogComponent, {
|
|
17
|
-
width: '400px',
|
|
18
|
-
data: data,
|
|
19
|
-
disableClose: false,
|
|
20
|
-
autoFocus: true,
|
|
21
|
-
restoreFocus: true,
|
|
22
|
-
});
|
|
23
|
-
return dialogRef.afterClosed();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Convenience method for delete confirmation dialogs
|
|
27
|
-
* @param itemName Name of the item being deleted
|
|
28
|
-
* @returns Observable that emits true if confirmed, false if cancelled
|
|
29
|
-
*/
|
|
30
|
-
confirmDelete(itemName = 'this item') {
|
|
31
|
-
return this.open({
|
|
32
|
-
title: 'Confirm Delete',
|
|
33
|
-
message: `Are you sure you want to delete ${itemName}? This action cannot be undone.`,
|
|
34
|
-
confirmText: 'Delete',
|
|
35
|
-
cancelText: 'Cancel',
|
|
36
|
-
confirmButtonColor: 'warn',
|
|
37
|
-
icon: 'delete_forever',
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Opens a dialog with an input field
|
|
42
|
-
* @param data Configuration for the input dialog
|
|
43
|
-
* @returns Observable that emits the input value if confirmed, null if cancelled
|
|
44
|
-
*/
|
|
45
|
-
openInput(data) {
|
|
46
|
-
const dialogRef = this.dialog.open(InputDialogComponent, {
|
|
47
|
-
width: '400px',
|
|
48
|
-
data: data,
|
|
49
|
-
disableClose: false,
|
|
50
|
-
autoFocus: true,
|
|
51
|
-
restoreFocus: true,
|
|
52
|
-
});
|
|
53
|
-
return dialogRef.afterClosed();
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
56
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogService, providedIn: 'root' }); }
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DialogService, decorators: [{
|
|
59
|
-
type: Injectable,
|
|
60
|
-
args: [{
|
|
61
|
-
providedIn: 'root',
|
|
62
|
-
}]
|
|
63
|
-
}], ctorParameters: () => [{ type: i1.MatDialog }] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL2RpYWxvZy9kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sd0NBQXdDLENBQUM7OztBQUsvRixNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUksQ0FBQztJQUUxQzs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLElBQWdCO1FBQ25CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsRCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsWUFBWSxFQUFFLEtBQUs7WUFDbkIsU0FBUyxFQUFFLElBQUk7WUFDZixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxXQUFtQixXQUFXO1FBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztZQUNmLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsT0FBTyxFQUFFLG1DQUFtQyxRQUFRLGlDQUFpQztZQUNyRixXQUFXLEVBQUUsUUFBUTtZQUNyQixVQUFVLEVBQUUsUUFBUTtZQUNwQixrQkFBa0IsRUFBRSxNQUFNO1lBQzFCLElBQUksRUFBRSxnQkFBZ0I7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsSUFBcUI7UUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDdkQsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLFlBQVksRUFBRSxLQUFLO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1lBQ2YsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0FuRFUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50LCBEaWFsb2dEYXRhIH0gZnJvbSAnLi9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXREaWFsb2dDb21wb25lbnQsIElucHV0RGlhbG9nRGF0YSB9IGZyb20gJy4uL2lucHV0LWRpYWxvZy9pbnB1dC1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBjb25maXJtYXRpb24gZGlhbG9nIHdpdGggY3VzdG9taXphYmxlIG9wdGlvbnNcclxuICAgKiBAcGFyYW0gZGF0YSBDb25maWd1cmF0aW9uIGZvciB0aGUgZGlhbG9nXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRydWUgaWYgY29uZmlybWVkLCBmYWxzZSBpZiBjYW5jZWxsZWRcclxuICAgKi9cclxuICBvcGVuKGRhdGE6IERpYWxvZ0RhdGEpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxyXG4gICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxyXG4gICAgICBhdXRvRm9jdXM6IHRydWUsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgZGVsZXRlIGNvbmZpcm1hdGlvbiBkaWFsb2dzXHJcbiAgICogQHBhcmFtIGl0ZW1OYW1lIE5hbWUgb2YgdGhlIGl0ZW0gYmVpbmcgZGVsZXRlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0cnVlIGlmIGNvbmZpcm1lZCwgZmFsc2UgaWYgY2FuY2VsbGVkXHJcbiAgICovXHJcbiAgY29uZmlybURlbGV0ZShpdGVtTmFtZTogc3RyaW5nID0gJ3RoaXMgaXRlbScpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLm9wZW4oe1xyXG4gICAgICB0aXRsZTogJ0NvbmZpcm0gRGVsZXRlJyxcclxuICAgICAgbWVzc2FnZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgJHtpdGVtTmFtZX0/IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgY29uZmlybVRleHQ6ICdEZWxldGUnLFxyXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcclxuICAgICAgY29uZmlybUJ1dHRvbkNvbG9yOiAnd2FybicsXHJcbiAgICAgIGljb246ICdkZWxldGVfZm9yZXZlcicsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIGEgZGlhbG9nIHdpdGggYW4gaW5wdXQgZmllbGRcclxuICAgKiBAcGFyYW0gZGF0YSBDb25maWd1cmF0aW9uIGZvciB0aGUgaW5wdXQgZGlhbG9nXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBpbnB1dCB2YWx1ZSBpZiBjb25maXJtZWQsIG51bGwgaWYgY2FuY2VsbGVkXHJcbiAgICovXHJcbiAgb3BlbklucHV0KGRhdGE6IElucHV0RGlhbG9nRGF0YSk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihJbnB1dERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzQwMHB4JyxcclxuICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiBmYWxzZSxcclxuICAgICAgYXV0b0ZvY3VzOiB0cnVlLFxyXG4gICAgICByZXN0b3JlRm9jdXM6IHRydWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility class for common dialog operations
|
|
3
|
-
* Provides reusable dialog configurations for consistency across the application
|
|
4
|
-
*/
|
|
5
|
-
export class DialogUtils {
|
|
6
|
-
/**
|
|
7
|
-
* Show a logout confirmation dialog
|
|
8
|
-
* @param dialogService The DialogService instance
|
|
9
|
-
* @returns Observable that emits true if confirmed, false if cancelled
|
|
10
|
-
*/
|
|
11
|
-
static confirmLogout(dialogService) {
|
|
12
|
-
return dialogService.open({
|
|
13
|
-
title: 'Logout',
|
|
14
|
-
message: 'Are you sure you want to logout?',
|
|
15
|
-
confirmText: 'Logout',
|
|
16
|
-
cancelText: 'Cancel',
|
|
17
|
-
icon: 'logout',
|
|
18
|
-
confirmButtonColor: 'warn',
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Show a reset confirmation dialog
|
|
23
|
-
* @param dialogService The DialogService instance
|
|
24
|
-
* @param itemName Optional name of what is being reset (default: 'preferences')
|
|
25
|
-
* @returns Observable that emits true if confirmed, false if cancelled
|
|
26
|
-
*/
|
|
27
|
-
static confirmReset(dialogService, itemName = 'preferences') {
|
|
28
|
-
return dialogService.open({
|
|
29
|
-
title: 'Reset to Defaults',
|
|
30
|
-
message: `Are you sure you want to reset ${itemName} to default settings? This action cannot be undone.`,
|
|
31
|
-
confirmText: 'Reset',
|
|
32
|
-
cancelText: 'Cancel',
|
|
33
|
-
icon: 'restart_alt',
|
|
34
|
-
confirmButtonColor: 'warn',
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Show a delete confirmation dialog
|
|
39
|
-
* @param dialogService The DialogService instance
|
|
40
|
-
* @param itemName Name of the item being deleted
|
|
41
|
-
* @returns Observable that emits true if confirmed, false if cancelled
|
|
42
|
-
*/
|
|
43
|
-
static confirmDelete(dialogService, itemName = 'this item') {
|
|
44
|
-
return dialogService.open({
|
|
45
|
-
title: 'Confirm Delete',
|
|
46
|
-
message: `Are you sure you want to delete ${itemName}? This action cannot be undone.`,
|
|
47
|
-
confirmText: 'Delete',
|
|
48
|
-
cancelText: 'Cancel',
|
|
49
|
-
confirmButtonColor: 'warn',
|
|
50
|
-
icon: 'delete_forever',
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Show a clear all confirmation dialog
|
|
55
|
-
* @param dialogService The DialogService instance
|
|
56
|
-
* @param itemName Name of what is being cleared (e.g., 'chat history', 'all sessions')
|
|
57
|
-
* @returns Observable that emits true if confirmed, false if cancelled
|
|
58
|
-
*/
|
|
59
|
-
static confirmClearAll(dialogService, itemName = 'all items') {
|
|
60
|
-
return dialogService.open({
|
|
61
|
-
title: 'Clear All',
|
|
62
|
-
message: `Are you sure you want to clear ${itemName}? This action cannot be undone.`,
|
|
63
|
-
confirmText: 'Clear All',
|
|
64
|
-
cancelText: 'Cancel',
|
|
65
|
-
confirmButtonColor: 'warn',
|
|
66
|
-
icon: 'delete_sweep',
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Show a discard changes confirmation dialog
|
|
71
|
-
* @param dialogService The DialogService instance
|
|
72
|
-
* @returns Observable that emits true if confirmed, false if cancelled
|
|
73
|
-
*/
|
|
74
|
-
static confirmDiscardChanges(dialogService) {
|
|
75
|
-
return dialogService.open({
|
|
76
|
-
title: 'Discard Changes',
|
|
77
|
-
message: 'You have unsaved changes. Are you sure you want to discard them?',
|
|
78
|
-
confirmText: 'Discard',
|
|
79
|
-
cancelText: 'Keep Editing',
|
|
80
|
-
confirmButtonColor: 'warn',
|
|
81
|
-
icon: 'warning',
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9vaGJvdC9zcmMvbGliL3NoYXJlZC9kaWFsb2cvZGlhbG9nLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBQ3BCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQTRCO1FBQzdDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixLQUFLLEVBQUUsUUFBUTtZQUNmLE9BQU8sRUFBRSxrQ0FBa0M7WUFDM0MsV0FBVyxFQUFFLFFBQVE7WUFDckIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsSUFBSSxFQUFFLFFBQVE7WUFDZCxrQkFBa0IsRUFBRSxNQUFNO1NBQzdCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQ2YsYUFBNEIsRUFDNUIsV0FBbUIsYUFBYTtRQUVoQyxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdEIsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixPQUFPLEVBQUUsa0NBQWtDLFFBQVEscURBQXFEO1lBQ3hHLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLElBQUksRUFBRSxhQUFhO1lBQ25CLGtCQUFrQixFQUFFLE1BQU07U0FDN0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FDaEIsYUFBNEIsRUFDNUIsV0FBbUIsV0FBVztRQUU5QixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDdEIsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixPQUFPLEVBQUUsbUNBQW1DLFFBQVEsaUNBQWlDO1lBQ3JGLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGtCQUFrQixFQUFFLE1BQU07WUFDMUIsSUFBSSxFQUFFLGdCQUFnQjtTQUN6QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUNsQixhQUE0QixFQUM1QixXQUFtQixXQUFXO1FBRTlCLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixLQUFLLEVBQUUsV0FBVztZQUNsQixPQUFPLEVBQUUsa0NBQWtDLFFBQVEsaUNBQWlDO1lBQ3BGLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGtCQUFrQixFQUFFLE1BQU07WUFDMUIsSUFBSSxFQUFFLGNBQWM7U0FDdkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMscUJBQXFCLENBQUMsYUFBNEI7UUFDckQsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ3RCLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxFQUFFLGtFQUFrRTtZQUMzRSxXQUFXLEVBQUUsU0FBUztZQUN0QixVQUFVLEVBQUUsY0FBYztZQUMxQixrQkFBa0IsRUFBRSxNQUFNO1lBQzFCLElBQUksRUFBRSxTQUFTO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIGNvbW1vbiBkaWFsb2cgb3BlcmF0aW9uc1xyXG4gKiBQcm92aWRlcyByZXVzYWJsZSBkaWFsb2cgY29uZmlndXJhdGlvbnMgZm9yIGNvbnNpc3RlbmN5IGFjcm9zcyB0aGUgYXBwbGljYXRpb25cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFNob3cgYSBsb2dvdXQgY29uZmlybWF0aW9uIGRpYWxvZ1xyXG4gICAgICogQHBhcmFtIGRpYWxvZ1NlcnZpY2UgVGhlIERpYWxvZ1NlcnZpY2UgaW5zdGFuY2VcclxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0cnVlIGlmIGNvbmZpcm1lZCwgZmFsc2UgaWYgY2FuY2VsbGVkXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBjb25maXJtTG9nb3V0KGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gZGlhbG9nU2VydmljZS5vcGVuKHtcclxuICAgICAgICAgICAgdGl0bGU6ICdMb2dvdXQnLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGxvZ291dD8nLFxyXG4gICAgICAgICAgICBjb25maXJtVGV4dDogJ0xvZ291dCcsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxyXG4gICAgICAgICAgICBpY29uOiAnbG9nb3V0JyxcclxuICAgICAgICAgICAgY29uZmlybUJ1dHRvbkNvbG9yOiAnd2FybicsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IGEgcmVzZXQgY29uZmlybWF0aW9uIGRpYWxvZ1xyXG4gICAgICogQHBhcmFtIGRpYWxvZ1NlcnZpY2UgVGhlIERpYWxvZ1NlcnZpY2UgaW5zdGFuY2VcclxuICAgICAqIEBwYXJhbSBpdGVtTmFtZSBPcHRpb25hbCBuYW1lIG9mIHdoYXQgaXMgYmVpbmcgcmVzZXQgKGRlZmF1bHQ6ICdwcmVmZXJlbmNlcycpXHJcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdHJ1ZSBpZiBjb25maXJtZWQsIGZhbHNlIGlmIGNhbmNlbGxlZFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgY29uZmlybVJlc2V0KFxyXG4gICAgICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgaXRlbU5hbWU6IHN0cmluZyA9ICdwcmVmZXJlbmNlcydcclxuICAgICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiBkaWFsb2dTZXJ2aWNlLm9wZW4oe1xyXG4gICAgICAgICAgICB0aXRsZTogJ1Jlc2V0IHRvIERlZmF1bHRzJyxcclxuICAgICAgICAgICAgbWVzc2FnZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXNldCAke2l0ZW1OYW1lfSB0byBkZWZhdWx0IHNldHRpbmdzPyBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgICAgICAgIGNvbmZpcm1UZXh0OiAnUmVzZXQnLFxyXG4gICAgICAgICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcclxuICAgICAgICAgICAgaWNvbjogJ3Jlc3RhcnRfYWx0JyxcclxuICAgICAgICAgICAgY29uZmlybUJ1dHRvbkNvbG9yOiAnd2FybicsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IGEgZGVsZXRlIGNvbmZpcm1hdGlvbiBkaWFsb2dcclxuICAgICAqIEBwYXJhbSBkaWFsb2dTZXJ2aWNlIFRoZSBEaWFsb2dTZXJ2aWNlIGluc3RhbmNlXHJcbiAgICAgKiBAcGFyYW0gaXRlbU5hbWUgTmFtZSBvZiB0aGUgaXRlbSBiZWluZyBkZWxldGVkXHJcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdHJ1ZSBpZiBjb25maXJtZWQsIGZhbHNlIGlmIGNhbmNlbGxlZFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgY29uZmlybURlbGV0ZShcclxuICAgICAgICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIGl0ZW1OYW1lOiBzdHJpbmcgPSAndGhpcyBpdGVtJ1xyXG4gICAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIGRpYWxvZ1NlcnZpY2Uub3Blbih7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnQ29uZmlybSBEZWxldGUnLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAke2l0ZW1OYW1lfT8gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICAgICAgICBjb25maXJtVGV4dDogJ0RlbGV0ZScsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxyXG4gICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6ICd3YXJuJyxcclxuICAgICAgICAgICAgaWNvbjogJ2RlbGV0ZV9mb3JldmVyJyxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgYSBjbGVhciBhbGwgY29uZmlybWF0aW9uIGRpYWxvZ1xyXG4gICAgICogQHBhcmFtIGRpYWxvZ1NlcnZpY2UgVGhlIERpYWxvZ1NlcnZpY2UgaW5zdGFuY2VcclxuICAgICAqIEBwYXJhbSBpdGVtTmFtZSBOYW1lIG9mIHdoYXQgaXMgYmVpbmcgY2xlYXJlZCAoZS5nLiwgJ2NoYXQgaGlzdG9yeScsICdhbGwgc2Vzc2lvbnMnKVxyXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRydWUgaWYgY29uZmlybWVkLCBmYWxzZSBpZiBjYW5jZWxsZWRcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGNvbmZpcm1DbGVhckFsbChcclxuICAgICAgICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIGl0ZW1OYW1lOiBzdHJpbmcgPSAnYWxsIGl0ZW1zJ1xyXG4gICAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIGRpYWxvZ1NlcnZpY2Uub3Blbih7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnQ2xlYXIgQWxsJyxcclxuICAgICAgICAgICAgbWVzc2FnZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjbGVhciAke2l0ZW1OYW1lfT8gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS5gLFxyXG4gICAgICAgICAgICBjb25maXJtVGV4dDogJ0NsZWFyIEFsbCcsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxyXG4gICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6ICd3YXJuJyxcclxuICAgICAgICAgICAgaWNvbjogJ2RlbGV0ZV9zd2VlcCcsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IGEgZGlzY2FyZCBjaGFuZ2VzIGNvbmZpcm1hdGlvbiBkaWFsb2dcclxuICAgICAqIEBwYXJhbSBkaWFsb2dTZXJ2aWNlIFRoZSBEaWFsb2dTZXJ2aWNlIGluc3RhbmNlXHJcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdHJ1ZSBpZiBjb25maXJtZWQsIGZhbHNlIGlmIGNhbmNlbGxlZFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgY29uZmlybURpc2NhcmRDaGFuZ2VzKGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gZGlhbG9nU2VydmljZS5vcGVuKHtcclxuICAgICAgICAgICAgdGl0bGU6ICdEaXNjYXJkIENoYW5nZXMnLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAnWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGlzY2FyZCB0aGVtPycsXHJcbiAgICAgICAgICAgIGNvbmZpcm1UZXh0OiAnRGlzY2FyZCcsXHJcbiAgICAgICAgICAgIGNhbmNlbFRleHQ6ICdLZWVwIEVkaXRpbmcnLFxyXG4gICAgICAgICAgICBjb25maXJtQnV0dG9uQ29sb3I6ICd3YXJuJyxcclxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuIl19
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChildren, ViewChild, } from '@angular/core';
|
|
2
|
-
import { MenuItem } from '../menu-item/menu-item.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DropdownMenu {
|
|
5
|
-
ngAfterContentInit() {
|
|
6
|
-
// Subscribe to all menu item selections
|
|
7
|
-
this.menuItems.forEach((item) => {
|
|
8
|
-
item.selected.subscribe(() => {
|
|
9
|
-
this.close();
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
close() {
|
|
14
|
-
this.detailsRef.nativeElement.open = false;
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DropdownMenu, isStandalone: true, selector: "app-dropdown-menu", queries: [{ propertyName: "menuItems", predicate: MenuItem }], viewQueries: [{ propertyName: "detailsRef", first: true, predicate: ["details"], descendants: true }], ngImport: i0, template: "<details class=\"dropdown-menu\" #details>\r\n <summary role=\"button\" class=\"dropdown-trigger\">\r\n <ng-content select=\"[trigger]\"></ng-content>\r\n </summary>\r\n <ul class=\"dropdown-list\">\r\n <ng-content></ng-content>\r\n </ul>\r\n</details>\r\n\r\n<!-- ussage example:\r\n<app-dropdown-menu>\r\n <span trigger>\u2630 Menu</span>\r\n\r\n <app-menu-item href=\"/profile\" (selected)=\"doSomething('profile')\">\r\n My Profile\r\n </app-menu-item>\r\n \r\n <app-menu-item href=\"/settings\" (selected)=\"doSomething('settings')\">\r\n Settings\r\n </app-menu-item>\r\n \r\n <app-menu-item href=\"#\" (selected)=\"logout()\">\r\n Logout\r\n </app-menu-item>\r\n</app-dropdown-menu> -->\r\n\r\n<!-- \r\n Note: The above usage example is commented out to avoid rendering issues.\r\n It demonstrates how to use the DropdownMenu component with MenuItem components as options.\r\n-->\r\n", styles: [".dropdown-menu{position:relative;display:inline-block;margin:0;padding:0}.dropdown-menu summary{list-style:none;cursor:pointer;outline:none}.dropdown-menu summary::-webkit-details-marker{display:none}.dropdown-list{position:absolute;top:100%;left:0;margin:8px 0 0;padding:8px 0;width:180px;background:var(--background-color);border-radius:6px;box-shadow:var(--border-shadow-color);z-index:1000;list-style:none}.dropdown-list:before{content:\"\";position:absolute;top:-6px;left:16px;width:0;height:0;border:6px solid transparent;border-bottom-color:var(--background-color)}.dropdown-list li a{display:block;padding:8px 16px;color:var(--primary-color);text-decoration:none}.dropdown-list li a:hover{background:var(--red);color:var(--secondary-color)}\n"] }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownMenu, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{ selector: 'app-dropdown-menu', standalone: true, imports: [], template: "<details class=\"dropdown-menu\" #details>\r\n <summary role=\"button\" class=\"dropdown-trigger\">\r\n <ng-content select=\"[trigger]\"></ng-content>\r\n </summary>\r\n <ul class=\"dropdown-list\">\r\n <ng-content></ng-content>\r\n </ul>\r\n</details>\r\n\r\n<!-- ussage example:\r\n<app-dropdown-menu>\r\n <span trigger>\u2630 Menu</span>\r\n\r\n <app-menu-item href=\"/profile\" (selected)=\"doSomething('profile')\">\r\n My Profile\r\n </app-menu-item>\r\n \r\n <app-menu-item href=\"/settings\" (selected)=\"doSomething('settings')\">\r\n Settings\r\n </app-menu-item>\r\n \r\n <app-menu-item href=\"#\" (selected)=\"logout()\">\r\n Logout\r\n </app-menu-item>\r\n</app-dropdown-menu> -->\r\n\r\n<!-- \r\n Note: The above usage example is commented out to avoid rendering issues.\r\n It demonstrates how to use the DropdownMenu component with MenuItem components as options.\r\n-->\r\n", styles: [".dropdown-menu{position:relative;display:inline-block;margin:0;padding:0}.dropdown-menu summary{list-style:none;cursor:pointer;outline:none}.dropdown-menu summary::-webkit-details-marker{display:none}.dropdown-list{position:absolute;top:100%;left:0;margin:8px 0 0;padding:8px 0;width:180px;background:var(--background-color);border-radius:6px;box-shadow:var(--border-shadow-color);z-index:1000;list-style:none}.dropdown-list:before{content:\"\";position:absolute;top:-6px;left:16px;width:0;height:0;border:6px solid transparent;border-bottom-color:var(--background-color)}.dropdown-list li a{display:block;padding:8px 16px;color:var(--primary-color);text-decoration:none}.dropdown-list li a:hover{background:var(--red);color:var(--secondary-color)}\n"] }]
|
|
22
|
-
}], propDecorators: { detailsRef: [{
|
|
23
|
-
type: ViewChild,
|
|
24
|
-
args: ['details']
|
|
25
|
-
}], menuItems: [{
|
|
26
|
-
type: ContentChildren,
|
|
27
|
-
args: [MenuItem]
|
|
28
|
-
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFHZixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQVM1RCxNQUFNLE9BQU8sWUFBWTtJQUt2QixrQkFBa0I7UUFDaEIsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMzQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQzdDLENBQUM7K0dBaEJVLFlBQVk7bUdBQVosWUFBWSx1R0FHTixRQUFRLG9JQ3BCM0IsMDVCQThCQTs7NEZEYmEsWUFBWTtrQkFQeEIsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLEVBQUU7OEJBS1csVUFBVTtzQkFBL0IsU0FBUzt1QkFBQyxTQUFTO2dCQUVPLFNBQVM7c0JBQW5DLGVBQWU7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkcmVuLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICcuLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kcm9wZG93bi1tZW51JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZHJvcGRvd24tbWVudS5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1lbnUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICBAVmlld0NoaWxkKCdkZXRhaWxzJykgZGV0YWlsc1JlZiE6IEVsZW1lbnRSZWY8SFRNTERldGFpbHNFbGVtZW50PjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihNZW51SXRlbSkgbWVudUl0ZW1zITogUXVlcnlMaXN0PE1lbnVJdGVtPjtcclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgLy8gU3Vic2NyaWJlIHRvIGFsbCBtZW51IGl0ZW0gc2VsZWN0aW9uc1xyXG4gICAgdGhpcy5tZW51SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpdGVtLnNlbGVjdGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFpbHNSZWYubmF0aXZlRWxlbWVudC5vcGVuID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkZXRhaWxzIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiICNkZXRhaWxzPlxyXG4gIDxzdW1tYXJ5IHJvbGU9XCJidXR0b25cIiBjbGFzcz1cImRyb3Bkb3duLXRyaWdnZXJcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0cmlnZ2VyXVwiPjwvbmctY29udGVudD5cclxuICA8L3N1bW1hcnk+XHJcbiAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbGlzdFwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvdWw+XHJcbjwvZGV0YWlscz5cclxuXHJcbjwhLS0gdXNzYWdlIGV4YW1wbGU6XHJcbjxhcHAtZHJvcGRvd24tbWVudT5cclxuICA8c3BhbiB0cmlnZ2VyPuKYsCBNZW51PC9zcGFuPlxyXG5cclxuICA8YXBwLW1lbnUtaXRlbSBocmVmPVwiL3Byb2ZpbGVcIiAoc2VsZWN0ZWQpPVwiZG9Tb21ldGhpbmcoJ3Byb2ZpbGUnKVwiPlxyXG4gICAgTXkgUHJvZmlsZVxyXG4gIDwvYXBwLW1lbnUtaXRlbT5cclxuICBcclxuICA8YXBwLW1lbnUtaXRlbSBocmVmPVwiL3NldHRpbmdzXCIgKHNlbGVjdGVkKT1cImRvU29tZXRoaW5nKCdzZXR0aW5ncycpXCI+XHJcbiAgICBTZXR0aW5nc1xyXG4gIDwvYXBwLW1lbnUtaXRlbT5cclxuICBcclxuICA8YXBwLW1lbnUtaXRlbSBocmVmPVwiI1wiIChzZWxlY3RlZCk9XCJsb2dvdXQoKVwiPlxyXG4gICAgTG9nb3V0XHJcbiAgPC9hcHAtbWVudS1pdGVtPlxyXG48L2FwcC1kcm9wZG93bi1tZW51PiAtLT5cclxuXHJcbjwhLS0gXHJcbiAgTm90ZTogVGhlIGFib3ZlIHVzYWdlIGV4YW1wbGUgaXMgY29tbWVudGVkIG91dCB0byBhdm9pZCByZW5kZXJpbmcgaXNzdWVzLlxyXG4gIEl0IGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBEcm9wZG93bk1lbnUgY29tcG9uZW50IHdpdGggTWVudUl0ZW0gY29tcG9uZW50cyBhcyBvcHRpb25zLlxyXG4tLT5cclxuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { FormsModule } from '@angular/forms';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/dialog";
|
|
8
|
-
import * as i2 from "@angular/material/button";
|
|
9
|
-
import * as i3 from "@angular/forms";
|
|
10
|
-
export class InputDialogComponent {
|
|
11
|
-
constructor(dialogRef, data) {
|
|
12
|
-
this.dialogRef = dialogRef;
|
|
13
|
-
this.data = data;
|
|
14
|
-
this.value = data.initialValue;
|
|
15
|
-
// Set defaults
|
|
16
|
-
this.data.confirmText = this.data.confirmText || 'Save';
|
|
17
|
-
this.data.cancelText = this.data.cancelText || 'Cancel';
|
|
18
|
-
this.data.placeholder = this.data.placeholder || 'Enter value...';
|
|
19
|
-
}
|
|
20
|
-
onCancel() {
|
|
21
|
-
this.dialogRef.close(null);
|
|
22
|
-
}
|
|
23
|
-
onConfirm() {
|
|
24
|
-
if (this.value && this.value.trim()) {
|
|
25
|
-
this.dialogRef.close(this.value.trim());
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: InputDialogComponent, isStandalone: true, selector: "app-input-dialog", ngImport: i0, template: "<div class=\"dialog-container\">\r\n <h2 mat-dialog-title>{{ data.title }}</h2>\r\n <mat-dialog-content>\r\n <p class=\"dialog-message\">{{ data.message }}</p>\r\n <div class=\"input-group\">\r\n <input type=\"text\" class=\"dialog-input\" [(ngModel)]=\"value\" [placeholder]=\"data.placeholder\"\r\n (keyup.enter)=\"onConfirm()\" focus=\"true\" />\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\">\r\n <button mat-button class=\"cancel-btn\" (click)=\"onCancel()\">{{ data.cancelText }}</button>\r\n <button mat-flat-button color=\"primary\" class=\"confirm-btn\" [disabled]=\"!value.trim()\" (click)=\"onConfirm()\">\r\n {{ data.confirmText }}\r\n </button>\r\n </mat-dialog-actions>\r\n</div>", styles: [".dialog-container{padding:8px}.dialog-message{color:var(--secondary-text-color);margin-bottom:20px;font-size:14px}.input-group{margin-bottom:20px}.dialog-input{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;background:var(--input-bg);color:var(--text-color);font-size:14px;font-family:inherit;transition:all .2s;box-sizing:border-box}.dialog-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #2196f31a;background:#fff}.cancel-btn{border-radius:8px;font-weight:500}.confirm-btn{border-radius:8px;font-weight:500;margin-left:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDialogComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ selector: 'app-input-dialog', standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule, FormsModule], template: "<div class=\"dialog-container\">\r\n <h2 mat-dialog-title>{{ data.title }}</h2>\r\n <mat-dialog-content>\r\n <p class=\"dialog-message\">{{ data.message }}</p>\r\n <div class=\"input-group\">\r\n <input type=\"text\" class=\"dialog-input\" [(ngModel)]=\"value\" [placeholder]=\"data.placeholder\"\r\n (keyup.enter)=\"onConfirm()\" focus=\"true\" />\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"end\">\r\n <button mat-button class=\"cancel-btn\" (click)=\"onCancel()\">{{ data.cancelText }}</button>\r\n <button mat-flat-button color=\"primary\" class=\"confirm-btn\" [disabled]=\"!value.trim()\" (click)=\"onConfirm()\">\r\n {{ data.confirmText }}\r\n </button>\r\n </mat-dialog-actions>\r\n</div>", styles: [".dialog-container{padding:8px}.dialog-message{color:var(--secondary-text-color);margin-bottom:20px;font-size:14px}.input-group{margin-bottom:20px}.dialog-input{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;background:var(--input-bg);color:var(--text-color);font-size:14px;font-family:inherit;transition:all .2s;box-sizing:border-box}.dialog-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #2196f31a;background:#fff}.cancel-btn{border-radius:8px;font-weight:500}.confirm-btn{border-radius:8px;font-weight:500;margin-left:8px}\n"] }]
|
|
34
|
-
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
35
|
-
type: Inject,
|
|
36
|
-
args: [MAT_DIALOG_DATA]
|
|
37
|
-
}] }] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rvb2hib3Qvc3JjL2xpYi9zaGFyZWQvaW5wdXQtZGlhbG9nL2lucHV0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL2lucHV0LWRpYWxvZy9pbnB1dC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBa0I3QyxNQUFNLE9BQU8sb0JBQW9CO0lBRzdCLFlBQ1csU0FBNkMsRUFDcEIsSUFBcUI7UUFEOUMsY0FBUyxHQUFULFNBQVMsQ0FBb0M7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBaUI7UUFFckQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQy9CLGVBQWU7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLGdCQUFnQixDQUFDO0lBQ3RFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDM0M7SUFDTCxDQUFDOytHQXRCUSxvQkFBb0IsOENBS2pCLGVBQWU7bUdBTGxCLG9CQUFvQiw0RUN0QmpDLGl6QkFlTSw2b0JER1EsWUFBWSw4QkFBRSxlQUFlLHliQUFFLGVBQWUsMk5BQUUsV0FBVzs7NEZBSTVELG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDSSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDOzswQkFTakUsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnB1dERpYWxvZ0RhdGEge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgIGluaXRpYWxWYWx1ZTogc3RyaW5nO1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICBjb25maXJtVGV4dD86IHN0cmluZztcclxuICAgIGNhbmNlbFRleHQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtZGlhbG9nJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGlhbG9nQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxJbnB1dERpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBJbnB1dERpYWxvZ0RhdGEsXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gZGF0YS5pbml0aWFsVmFsdWU7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHRzXHJcbiAgICAgICAgdGhpcy5kYXRhLmNvbmZpcm1UZXh0ID0gdGhpcy5kYXRhLmNvbmZpcm1UZXh0IHx8ICdTYXZlJztcclxuICAgICAgICB0aGlzLmRhdGEuY2FuY2VsVGV4dCA9IHRoaXMuZGF0YS5jYW5jZWxUZXh0IHx8ICdDYW5jZWwnO1xyXG4gICAgICAgIHRoaXMuZGF0YS5wbGFjZWhvbGRlciA9IHRoaXMuZGF0YS5wbGFjZWhvbGRlciB8fCAnRW50ZXIgdmFsdWUuLi4nO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ29uZmlybSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRyaW0oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLnZhbHVlLnRyaW0oKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGFpbmVyXCI+XHJcbiAgICA8aDIgbWF0LWRpYWxvZy10aXRsZT57eyBkYXRhLnRpdGxlIH19PC9oMj5cclxuICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJkaWFsb2ctbWVzc2FnZVwiPnt7IGRhdGEubWVzc2FnZSB9fTwvcD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJkaWFsb2ctaW5wdXRcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cImRhdGEucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uQ29uZmlybSgpXCIgZm9jdXM9XCJ0cnVlXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idG5cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPnt7IGRhdGEuY2FuY2VsVGV4dCB9fTwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiY29uZmlybS1idG5cIiBbZGlzYWJsZWRdPVwiIXZhbHVlLnRyaW0oKVwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiPlxyXG4gICAgICAgICAgICB7eyBkYXRhLmNvbmZpcm1UZXh0IH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9kaXY+Il19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class MenuItem {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.href = '#';
|
|
6
|
-
this.selected = new EventEmitter();
|
|
7
|
-
}
|
|
8
|
-
onClick(event) {
|
|
9
|
-
// Optional: prevent default if used for actions, not navigation
|
|
10
|
-
// event.preventDefault();
|
|
11
|
-
this.selected.emit();
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuItem, isStandalone: true, selector: "app-menu-item", inputs: { href: "href" }, outputs: { selected: "selected" }, ngImport: i0, template: "<li>\r\n <a [href]=\"href\" (click)=\"onClick($event)\">\r\n <ng-content></ng-content>\r\n </a>\r\n</li>\r\n", styles: [""] }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuItem, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'app-menu-item', standalone: true, imports: [], template: "<li>\r\n <a [href]=\"href\" (click)=\"onClick($event)\">\r\n <ng-content></ng-content>\r\n </a>\r\n</li>\r\n" }]
|
|
19
|
-
}], propDecorators: { href: [{
|
|
20
|
-
type: Input
|
|
21
|
-
}], selected: [{
|
|
22
|
-
type: Output
|
|
23
|
-
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rvb2hib3Qvc3JjL2xpYi9zaGFyZWQvbWVudS1pdGVtL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTdkUsTUFBTSxPQUFPLFFBQVE7SUFQckI7UUFRVyxTQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ1YsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FRL0M7SUFOQyxPQUFPLENBQUMsS0FBWTtRQUNsQixnRUFBZ0U7UUFDaEUsMEJBQTBCO1FBRTFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzsrR0FUVSxRQUFRO21HQUFSLFFBQVEsc0lDVHJCLG1IQUtBOzs0RkRJYSxRQUFRO2tCQVBwQixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsRUFBRTs4QkFLRixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tZW51LWl0ZW0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL21lbnUtaXRlbS5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51SXRlbSB7XHJcbiAgQElucHV0KCkgaHJlZiA9ICcjJztcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBPcHRpb25hbDogcHJldmVudCBkZWZhdWx0IGlmIHVzZWQgZm9yIGFjdGlvbnMsIG5vdCBuYXZpZ2F0aW9uXHJcbiAgICAvLyBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8bGk+XHJcbiAgPGEgW2hyZWZdPVwiaHJlZlwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2E+XHJcbjwvbGk+XHJcbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Pipe, inject } from '@angular/core';
|
|
2
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
-
import { MarkdownService } from '../../core/services/markdown.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class MarkdownPipe {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.markdownService = inject(MarkdownService);
|
|
8
|
-
this.sanitizer = inject(DomSanitizer);
|
|
9
|
-
}
|
|
10
|
-
transform(value) {
|
|
11
|
-
if (!value)
|
|
12
|
-
return '';
|
|
13
|
-
const html = this.markdownService.convert(value);
|
|
14
|
-
return this.sanitizer.bypassSecurityTrustHtml(html);
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPipe, isStandalone: true, name: "Markdown" }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MarkdownPipe, decorators: [{
|
|
20
|
-
type: Pipe,
|
|
21
|
-
args: [{
|
|
22
|
-
name: 'Markdown',
|
|
23
|
-
standalone: true,
|
|
24
|
-
pure: true,
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLW1hcmtkb3duLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL3BpcGVzL3NpbXBsZS1tYXJrZG93bi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQU92RSxNQUFNLE9BQU8sWUFBWTtJQUx6QjtRQU1VLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FPMUM7SUFMQyxTQUFTLENBQUMsS0FBZ0M7UUFDeEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQzsrR0FSVSxZQUFZOzZHQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBTHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IE1hcmtkb3duU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbWFya2Rvd24uc2VydmljZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ01hcmtkb3duJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHB1cmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXJrZG93blBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBwcml2YXRlIG1hcmtkb3duU2VydmljZSA9IGluamVjdChNYXJrZG93blNlcnZpY2UpO1xyXG4gIHByaXZhdGUgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IFNhZmVIdG1sIHtcclxuICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcclxuICAgIGNvbnN0IGh0bWwgPSB0aGlzLm1hcmtkb3duU2VydmljZS5jb252ZXJ0KHZhbHVlKTtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/icon";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
export class SnackBar {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.snackBarRef = inject(MatSnackBarRef);
|
|
11
|
-
this.data = inject(MAT_SNACK_BAR_DATA);
|
|
12
|
-
this.message = null;
|
|
13
|
-
this.type = 'error';
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.message = this.data.message;
|
|
17
|
-
this.type = this.data.type || 'error';
|
|
18
|
-
}
|
|
19
|
-
close() {
|
|
20
|
-
this.snackBarRef.dismiss();
|
|
21
|
-
}
|
|
22
|
-
get icon() {
|
|
23
|
-
switch (this.type) {
|
|
24
|
-
case 'success':
|
|
25
|
-
return 'check_circle';
|
|
26
|
-
case 'error':
|
|
27
|
-
return 'error';
|
|
28
|
-
case 'warn':
|
|
29
|
-
return 'warning';
|
|
30
|
-
case 'info':
|
|
31
|
-
return 'info';
|
|
32
|
-
default:
|
|
33
|
-
return 'info';
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SnackBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SnackBar, isStandalone: true, selector: "app-snackbar", ngImport: i0, template: "<div class=\"snackbar-message\" [ngClass]=\"'type-' + type\">\r\n <div class=\"error-content\">\r\n <mat-icon class=\"alert-icon\">{{ icon }}</mat-icon>\r\n <span class=\"error-text\">{{ message }}</span>\r\n </div>\r\n <mat-icon class=\"close-icon\" (click)=\"close()\">close</mat-icon>\r\n</div>\r\n", styles: [".snackbar-message{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;border-radius:6px;color:var(--white);font-size:12px;box-shadow:var(--border-shadow-color);font-family:var(--font-family);width:100%;max-width:360px;box-sizing:border-box;background-color:var(--background-color);border:1px solid transparent}.snackbar-message.type-error{background-color:color-mix(in srgb,var(--red),var(--white) 60%);border-color:var(--red)}.snackbar-message.type-error .alert-icon{color:var(--red)}.snackbar-message.type-error .close-icon:hover{background-color:var(--red)}.snackbar-message.type-success{background-color:color-mix(in srgb,var(--green),var(--white) 60%);border-color:var(--green)}.snackbar-message.type-success .alert-icon{color:var(--green)}.snackbar-message.type-success .close-icon:hover{background-color:var(--green)}.snackbar-message.type-warn{background-color:color-mix(in srgb,var(--orange),var(--white) 60%);border-color:var(--orange)}.snackbar-message.type-warn .alert-icon{color:var(--orange)}.snackbar-message.type-warn .close-icon:hover{background-color:var(--orange)}.snackbar-message.type-info{background-color:color-mix(in srgb,var(--blue),var(--white) 60%);border-color:var(--blue)}.snackbar-message.type-info .alert-icon{color:var(--blue)}.snackbar-message.type-info .close-icon:hover{background-color:var(--blue)}.error-content{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.alert-icon{font-size:18px;flex-shrink:0;display:flex;align-items:center}.error-text{flex:1;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--black)}.close-icon{color:var(--black);cursor:pointer;font-size:18px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.7;flex-shrink:0}.close-icon:hover{opacity:1;background-color:var(--red)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SnackBar, decorators: [{
|
|
40
|
-
type: Component,
|
|
41
|
-
args: [{ selector: 'app-snackbar', standalone: true, imports: [MatIconModule, CommonModule], template: "<div class=\"snackbar-message\" [ngClass]=\"'type-' + type\">\r\n <div class=\"error-content\">\r\n <mat-icon class=\"alert-icon\">{{ icon }}</mat-icon>\r\n <span class=\"error-text\">{{ message }}</span>\r\n </div>\r\n <mat-icon class=\"close-icon\" (click)=\"close()\">close</mat-icon>\r\n</div>\r\n", styles: [".snackbar-message{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;border-radius:6px;color:var(--white);font-size:12px;box-shadow:var(--border-shadow-color);font-family:var(--font-family);width:100%;max-width:360px;box-sizing:border-box;background-color:var(--background-color);border:1px solid transparent}.snackbar-message.type-error{background-color:color-mix(in srgb,var(--red),var(--white) 60%);border-color:var(--red)}.snackbar-message.type-error .alert-icon{color:var(--red)}.snackbar-message.type-error .close-icon:hover{background-color:var(--red)}.snackbar-message.type-success{background-color:color-mix(in srgb,var(--green),var(--white) 60%);border-color:var(--green)}.snackbar-message.type-success .alert-icon{color:var(--green)}.snackbar-message.type-success .close-icon:hover{background-color:var(--green)}.snackbar-message.type-warn{background-color:color-mix(in srgb,var(--orange),var(--white) 60%);border-color:var(--orange)}.snackbar-message.type-warn .alert-icon{color:var(--orange)}.snackbar-message.type-warn .close-icon:hover{background-color:var(--orange)}.snackbar-message.type-info{background-color:color-mix(in srgb,var(--blue),var(--white) 60%);border-color:var(--blue)}.snackbar-message.type-info .alert-icon{color:var(--blue)}.snackbar-message.type-info .close-icon:hover{background-color:var(--blue)}.error-content{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.alert-icon{font-size:18px;flex-shrink:0;display:flex;align-items:center}.error-text{flex:1;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--black)}.close-icon{color:var(--black);cursor:pointer;font-size:18px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.7;flex-shrink:0}.close-icon:hover{opacity:1;background-color:var(--red)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n"] }]
|
|
42
|
-
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZG9vaGJvdC9zcmMvbGliL3NoYXJlZC9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBVWpGLE1BQU0sT0FBTyxRQUFRO0lBUHJCO1FBUVUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRW5DLFlBQU8sR0FBa0IsSUFBSSxDQUFDO1FBQzlCLFNBQUksR0FBa0IsT0FBTyxDQUFDO0tBeUJ0QztJQXZCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssTUFBTTtnQkFDVCxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxNQUFNLENBQUM7U0FDakI7SUFDSCxDQUFDOytHQTdCVSxRQUFRO21HQUFSLFFBQVEsd0VDYnJCLHdUQU9BLHcrRERJWSxhQUFhLG1MQUFFLFlBQVk7OzRGQUUxQixRQUFRO2tCQVBwQixTQUFTOytCQUNFLGNBQWMsY0FHWixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1BVF9TTkFDS19CQVJfREFUQSwgTWF0U25hY2tCYXJSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBTbmFja0JhckVycm9yIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zbmFja2Jhci1lcnJvci50eXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNuYWNrYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NuYWNrYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0SWNvbk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNuYWNrQmFyIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIHNuYWNrQmFyUmVmID0gaW5qZWN0KE1hdFNuYWNrQmFyUmVmKTtcclxuICBwcml2YXRlIGRhdGEgPSBpbmplY3QoTUFUX1NOQUNLX0JBUl9EQVRBKTtcclxuXHJcbiAgcHVibGljIG1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyB0eXBlOiBTbmFja0JhckVycm9yID0gJ2Vycm9yJztcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2UgPSB0aGlzLmRhdGEubWVzc2FnZTtcclxuICAgIHRoaXMudHlwZSA9IHRoaXMuZGF0YS50eXBlIHx8ICdlcnJvcic7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuc25hY2tCYXJSZWYuZGlzbWlzcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGljb24oKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxyXG4gICAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlJztcclxuICAgICAgY2FzZSAnZXJyb3InOlxyXG4gICAgICAgIHJldHVybiAnZXJyb3InO1xyXG4gICAgICBjYXNlICd3YXJuJzpcclxuICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xyXG4gICAgICBjYXNlICdpbmZvJzpcclxuICAgICAgICByZXR1cm4gJ2luZm8nO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnaW5mbyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbmFja2Jhci1tZXNzYWdlXCIgW25nQ2xhc3NdPVwiJ3R5cGUtJyArIHR5cGVcIj5cclxuICA8ZGl2IGNsYXNzPVwiZXJyb3ItY29udGVudFwiPlxyXG4gICAgPG1hdC1pY29uIGNsYXNzPVwiYWxlcnQtaWNvblwiPnt7IGljb24gfX08L21hdC1pY29uPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJlcnJvci10ZXh0XCI+e3sgbWVzc2FnZSB9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8bWF0LWljb24gY2xhc3M9XCJjbG9zZS1pY29uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable } from '@angular/core';
|
|
2
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
3
|
-
import { SnackBar } from './snackbar.component';
|
|
4
|
-
import { SnackbarUtils } from './snackbar.utils';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class SnackbarService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.snackBar = inject(MatSnackBar);
|
|
9
|
-
SnackbarUtils.init(this);
|
|
10
|
-
}
|
|
11
|
-
// Generic show method
|
|
12
|
-
show(message, duration, type) {
|
|
13
|
-
this.snackBar.openFromComponent(SnackBar, {
|
|
14
|
-
duration: duration,
|
|
15
|
-
data: { message, type },
|
|
16
|
-
horizontalPosition: 'end',
|
|
17
|
-
verticalPosition: 'bottom',
|
|
18
|
-
panelClass: [`snackbar-${type}`]
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
// Convenience methods
|
|
22
|
-
success(message, duration = 3000) {
|
|
23
|
-
this.show(message, duration, 'success');
|
|
24
|
-
}
|
|
25
|
-
warn(message, duration = 5000) {
|
|
26
|
-
this.show(message, duration, 'warn');
|
|
27
|
-
}
|
|
28
|
-
error(message, duration = 5000) {
|
|
29
|
-
this.show(message, duration, 'error');
|
|
30
|
-
}
|
|
31
|
-
info(message, duration = 4000) {
|
|
32
|
-
this.show(message, duration, 'info');
|
|
33
|
-
}
|
|
34
|
-
clear() {
|
|
35
|
-
this.snackBar.dismiss();
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SnackbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SnackbarService, providedIn: 'root' }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SnackbarService, decorators: [{
|
|
41
|
-
type: Injectable,
|
|
42
|
-
args: [{
|
|
43
|
-
providedIn: 'root',
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: () => [] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rvb2hib3Qvc3JjL2xpYi9zaGFyZWQvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFXakQsTUFBTSxPQUFPLGVBQWU7SUFHMUI7UUFGUSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBR3JDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELHNCQUFzQjtJQUNkLElBQUksQ0FBQyxPQUFlLEVBQUUsUUFBZ0IsRUFBRSxJQUFtQjtRQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUN4QyxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3ZCLGtCQUFrQixFQUFFLEtBQUs7WUFDekIsZ0JBQWdCLEVBQUUsUUFBUTtZQUMxQixVQUFVLEVBQUUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsT0FBTyxDQUFDLE9BQWUsRUFBRSxXQUFtQixJQUFJO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxXQUFtQixJQUFJO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWUsRUFBRSxXQUFtQixJQUFJO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxXQUFtQixJQUFJO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0FyQ1UsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBTbmFja0JhckVycm9yIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zbmFja2Jhci1lcnJvci50eXBlJztcclxuaW1wb3J0IHsgU25hY2tCYXIgfSBmcm9tICcuL3NuYWNrYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNuYWNrYmFyVXRpbHMgfSBmcm9tICcuL3NuYWNrYmFyLnV0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU25hY2tiYXJDb25maWcge1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICB0eXBlOiBTbmFja0JhckVycm9yO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU25hY2tiYXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBTbmFja2JhclV0aWxzLmluaXQodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvLyBHZW5lcmljIHNob3cgbWV0aG9kXHJcbiAgcHJpdmF0ZSBzaG93KG1lc3NhZ2U6IHN0cmluZywgZHVyYXRpb246IG51bWJlciwgdHlwZTogU25hY2tCYXJFcnJvcikge1xyXG4gICAgdGhpcy5zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChTbmFja0Jhciwge1xyXG4gICAgICBkdXJhdGlvbjogZHVyYXRpb24sXHJcbiAgICAgIGRhdGE6IHsgbWVzc2FnZSwgdHlwZSB9LFxyXG4gICAgICBob3Jpem9udGFsUG9zaXRpb246ICdlbmQnLFxyXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAgICAgcGFuZWxDbGFzczogW2BzbmFja2Jhci0ke3R5cGV9YF1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29udmVuaWVuY2UgbWV0aG9kc1xyXG4gIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gMzAwMCkge1xyXG4gICAgdGhpcy5zaG93KG1lc3NhZ2UsIGR1cmF0aW9uLCAnc3VjY2VzcycpO1xyXG4gIH1cclxuXHJcbiAgd2FybihtZXNzYWdlOiBzdHJpbmcsIGR1cmF0aW9uOiBudW1iZXIgPSA1MDAwKSB7XHJcbiAgICB0aGlzLnNob3cobWVzc2FnZSwgZHVyYXRpb24sICd3YXJuJyk7XHJcbiAgfVxyXG5cclxuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIGR1cmF0aW9uOiBudW1iZXIgPSA1MDAwKSB7XHJcbiAgICB0aGlzLnNob3cobWVzc2FnZSwgZHVyYXRpb24sICdlcnJvcicpO1xyXG4gIH1cclxuXHJcbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIGR1cmF0aW9uOiBudW1iZXIgPSA0MDAwKSB7XHJcbiAgICB0aGlzLnNob3cobWVzc2FnZSwgZHVyYXRpb24sICdpbmZvJyk7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpIHtcclxuICAgIHRoaXMuc25hY2tCYXIuZGlzbWlzcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility class for common snackbar operations
|
|
3
|
-
* Provides reusable snackbar configurations for consistency across the application
|
|
4
|
-
*/
|
|
5
|
-
export class SnackbarUtils {
|
|
6
|
-
static { this.service = null; }
|
|
7
|
-
/**
|
|
8
|
-
* Initialize the utility with a SnackbarService instance
|
|
9
|
-
* @param service The SnackbarService instance
|
|
10
|
-
*/
|
|
11
|
-
static init(service) {
|
|
12
|
-
this.service = service;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Show a success snackbar
|
|
16
|
-
* @param message The message to show
|
|
17
|
-
*/
|
|
18
|
-
static success(message) {
|
|
19
|
-
this.service?.success(message);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Show an error snackbar
|
|
23
|
-
* @param message The message to show
|
|
24
|
-
*/
|
|
25
|
-
static error(message) {
|
|
26
|
-
this.service?.error(message);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Show a warning snackbar
|
|
30
|
-
* @param message The message to show
|
|
31
|
-
*/
|
|
32
|
-
static warn(message) {
|
|
33
|
-
this.service?.warn(message);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Show an info snackbar
|
|
37
|
-
* @param message The message to show
|
|
38
|
-
*/
|
|
39
|
-
static info(message) {
|
|
40
|
-
this.service?.info(message);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb29oYm90L3NyYy9saWIvc2hhcmVkL3NuYWNrYmFyL3NuYWNrYmFyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxhQUFhO2FBQ1AsWUFBTyxHQUEyQixJQUFJLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUF3QjtRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFlO1FBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFlO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuL3NuYWNrYmFyLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgY2xhc3MgZm9yIGNvbW1vbiBzbmFja2JhciBvcGVyYXRpb25zXHJcbiAqIFByb3ZpZGVzIHJldXNhYmxlIHNuYWNrYmFyIGNvbmZpZ3VyYXRpb25zIGZvciBjb25zaXN0ZW5jeSBhY3Jvc3MgdGhlIGFwcGxpY2F0aW9uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU25hY2tiYXJVdGlscyB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBzZXJ2aWNlOiBTbmFja2JhclNlcnZpY2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgdGhlIHV0aWxpdHkgd2l0aCBhIFNuYWNrYmFyU2VydmljZSBpbnN0YW5jZVxyXG4gICAgICogQHBhcmFtIHNlcnZpY2UgVGhlIFNuYWNrYmFyU2VydmljZSBpbnN0YW5jZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaW5pdChzZXJ2aWNlOiBTbmFja2JhclNlcnZpY2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyBhIHN1Y2Nlc3Mgc25hY2tiYXJcclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHNob3dcclxuICAgICAqL1xyXG4gICAgc3RhdGljIHN1Y2Nlc3MobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlPy5zdWNjZXNzKG1lc3NhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyBhbiBlcnJvciBzbmFja2JhclxyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gc2hvd1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZXJyb3IobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlPy5lcnJvcihtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgYSB3YXJuaW5nIHNuYWNrYmFyXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBzaG93XHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB3YXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VydmljZT8ud2FybihtZXNzYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgYW4gaW5mbyBzbmFja2JhclxyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gc2hvd1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaW5mbyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2U/LmluZm8obWVzc2FnZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|