From 2d200f5e7536e53870d599f6c7f6f4443204de03 Mon Sep 17 00:00:00 2001 From: Bhushan Palsapure Date: Sat, 8 Aug 2026 15:01:10 +0100 Subject: [PATCH] chore: Issue 2328 - Angular support added for Chatbot --- .../vf-chatbot-action-prompt/CHANGELOG.md | 6 +- .../.npmignore | 2 + .../README.md | 63 ++ ...hatbot-action-prompt.angular.component.mjs | 73 +++ ...f-chatbot-action-prompt.angular.module.mjs | 25 + ...ework-vf-chatbot-action-prompt.angular.mjs | 5 + ...ework-vf-chatbot-action-prompt.angular.mjs | 101 ++++ ...k-vf-chatbot-action-prompt.angular.mjs.map | 1 + .../index.d.ts | 5 + .../package.json | 25 + ...atbot-action-prompt.angular.component.d.ts | 16 + ...-chatbot-action-prompt.angular.module.d.ts | 9 + .../vf-chatbot-action-prompt.config.yml | 2 +- components/vf-chatbot-dialog/CHANGELOG.md | 6 +- .../vf-chatbot-dialog.angular/.npmignore | 2 + .../vf-chatbot-dialog.angular/README.md | 63 ++ .../vf-chatbot-dialog.angular.component.mjs | 129 ++++ .../vf-chatbot-dialog.angular.module.mjs | 28 + ...al-framework-vf-chatbot-dialog.angular.mjs | 5 + ...al-framework-vf-chatbot-dialog.angular.mjs | 160 +++++ ...ramework-vf-chatbot-dialog.angular.mjs.map | 1 + .../vf-chatbot-dialog.angular/index.d.ts | 5 + .../vf-chatbot-dialog.angular/package.json | 25 + .../vf-chatbot-dialog.angular.component.d.ts | 14 + .../vf-chatbot-dialog.angular.module.d.ts | 9 + .../vf-chatbot-dialog.config.yml | 2 +- components/vf-chatbot-fab/CHANGELOG.md | 6 +- .../vf-chatbot-fab.angular/.npmignore | 2 + .../vf-chatbot-fab.angular/README.md | 63 ++ .../vf-chatbot-fab.angular.component.mjs | 119 ++++ .../esm2022/vf-chatbot-fab.angular.module.mjs | 28 + ...isual-framework-vf-chatbot-fab.angular.mjs | 5 + ...isual-framework-vf-chatbot-fab.angular.mjs | 150 +++++ ...l-framework-vf-chatbot-fab.angular.mjs.map | 1 + .../vf-chatbot-fab.angular/index.d.ts | 5 + .../vf-chatbot-fab.angular/package.json | 25 + .../vf-chatbot-fab.angular.component.d.ts | 12 + .../vf-chatbot-fab.angular.module.d.ts | 9 + .../vf-chatbot-fab/vf-chatbot-fab.config.yml | 2 +- components/vf-chatbot-feedback/CHANGELOG.md | 6 +- .../vf-chatbot-feedback.angular/.npmignore | 2 + .../vf-chatbot-feedback.angular/README.md | 63 ++ .../vf-chatbot-feedback.angular.component.mjs | 180 ++++++ .../vf-chatbot-feedback.angular.module.mjs | 28 + ...-framework-vf-chatbot-feedback.angular.mjs | 5 + ...-framework-vf-chatbot-feedback.angular.mjs | 211 +++++++ ...mework-vf-chatbot-feedback.angular.mjs.map | 1 + .../vf-chatbot-feedback.angular/index.d.ts | 5 + .../vf-chatbot-feedback.angular/package.json | 25 + ...vf-chatbot-feedback.angular.component.d.ts | 27 + .../vf-chatbot-feedback.angular.module.d.ts | 9 + .../vf-chatbot-feedback.config.yml | 2 +- components/vf-chatbot-modal/CHANGELOG.md | 4 + components/vf-chatbot-modal/README.md | 72 ++- .../vf-chatbot-modal.angular/.npmignore | 2 + .../vf-chatbot-modal.angular/README.md | 63 ++ .../vf-chatbot-modal.angular.component.mjs | 376 ++++++++++++ .../vf-chatbot-modal.angular.module.mjs | 52 ++ ...ual-framework-vf-chatbot-modal.angular.mjs | 5 + ...ual-framework-vf-chatbot-modal.angular.mjs | 426 +++++++++++++ ...framework-vf-chatbot-modal.angular.mjs.map | 1 + .../vf-chatbot-modal.angular/index.d.ts | 5 + .../vf-chatbot-modal.angular/package.json | 25 + .../vf-chatbot-modal.angular.component.d.ts | 63 ++ .../vf-chatbot-modal.angular.module.d.ts | 15 + .../vf-chatbot-modal.config.yml | 10 +- .../vf-chatbot-modal/vf-chatbot-modal.js | 44 +- components/vf-chatbot-prompt/CHANGELOG.md | 6 +- .../vf-chatbot-prompt.angular/.npmignore | 2 + .../vf-chatbot-prompt.angular/README.md | 63 ++ .../vf-chatbot-prompt.angular.component.mjs | 144 +++++ .../vf-chatbot-prompt.angular.module.mjs | 28 + ...al-framework-vf-chatbot-prompt.angular.mjs | 5 + ...al-framework-vf-chatbot-prompt.angular.mjs | 175 ++++++ ...ramework-vf-chatbot-prompt.angular.mjs.map | 1 + .../vf-chatbot-prompt.angular/index.d.ts | 5 + .../vf-chatbot-prompt.angular/package.json | 25 + .../vf-chatbot-prompt.angular.component.d.ts | 16 + .../vf-chatbot-prompt.angular.module.d.ts | 9 + .../vf-chatbot-prompt.config.yml | 2 +- components/vf-chatbot-selector/CHANGELOG.md | 6 +- .../vf-chatbot-selector.angular/.npmignore | 2 + .../vf-chatbot-selector.angular/README.md | 63 ++ .../vf-chatbot-selector.angular.component.mjs | 268 ++++++++ .../vf-chatbot-selector.angular.module.mjs | 28 + ...-framework-vf-chatbot-selector.angular.mjs | 5 + ...-framework-vf-chatbot-selector.angular.mjs | 299 +++++++++ ...mework-vf-chatbot-selector.angular.mjs.map | 1 + .../vf-chatbot-selector.angular/index.d.ts | 5 + .../vf-chatbot-selector.angular/package.json | 25 + ...vf-chatbot-selector.angular.component.d.ts | 22 + .../vf-chatbot-selector.angular.module.d.ts | 9 + .../vf-chatbot-selector.config.yml | 2 +- components/vf-chatbot-sources/CHANGELOG.md | 6 +- .../vf-chatbot-sources.angular/.npmignore | 2 + .../vf-chatbot-sources.angular/README.md | 63 ++ .../vf-chatbot-sources.angular.component.mjs | 62 ++ .../vf-chatbot-sources.angular.module.mjs | 28 + ...l-framework-vf-chatbot-sources.angular.mjs | 5 + ...l-framework-vf-chatbot-sources.angular.mjs | 93 +++ ...amework-vf-chatbot-sources.angular.mjs.map | 1 + .../vf-chatbot-sources.angular/index.d.ts | 5 + .../vf-chatbot-sources.angular/package.json | 25 + .../vf-chatbot-sources.angular.component.d.ts | 15 + .../vf-chatbot-sources.angular.module.d.ts | 9 + .../vf-chatbot-sources.config.yml | 2 +- components/vf-chatbot-standalone/CHANGELOG.md | 6 +- components/vf-chatbot-standalone/README.md | 70 ++- .../vf-chatbot-standalone.angular/.npmignore | 2 + .../vf-chatbot-standalone.angular/README.md | 63 ++ ...f-chatbot-standalone.angular.component.mjs | 224 +++++++ ...ramework-vf-chatbot-standalone.angular.mjs | 5 + ...ramework-vf-chatbot-standalone.angular.mjs | 231 +++++++ ...work-vf-chatbot-standalone.angular.mjs.map | 1 + .../vf-chatbot-standalone.angular/index.d.ts | 5 + .../package.json | 25 + ...-chatbot-standalone.angular.component.d.ts | 68 +++ .../vf-chatbot-standalone.config.yml | 10 +- components/vf-chatbot-welcome/CHANGELOG.md | 4 + .../vf-chatbot-welcome.angular/.npmignore | 2 + .../vf-chatbot-welcome.angular/README.md | 63 ++ .../vf-chatbot-welcome.angular.component.mjs | 170 ++++++ .../esm2022/vf-chatbot-welcome.angular.mjs | 5 + .../vf-chatbot-welcome.angular.module.mjs | 32 + .../fesm2022/vf-chatbot-welcome.angular.mjs | 205 +++++++ .../vf-chatbot-welcome.angular.mjs.map | 1 + .../vf-chatbot-welcome.angular/index.d.ts | 5 + .../vf-chatbot-welcome.angular/package.json | 25 + .../vf-chatbot-welcome.angular.component.d.ts | 23 + .../vf-chatbot-welcome.angular.module.d.ts | 10 + .../vf-chatbot-welcome.config.yml | 4 +- components/vf-chatbot/CHANGELOG.md | 4 + components/vf-chatbot/README.md | 1 + components/vf-chatbot/vf-chatbot-storage.js | 62 ++ .../vf-chatbot/vf-chatbot.angular/.npmignore | 2 + .../vf-chatbot/vf-chatbot.angular/README.md | 63 ++ .../esm2022/vf-chatbot.angular.component.mjs | 515 ++++++++++++++++ .../esm2022/vf-chatbot.angular.module.mjs | 55 ++ .../visual-framework-vf-chatbot.angular.mjs | 5 + .../visual-framework-vf-chatbot.angular.mjs | 571 ++++++++++++++++++ ...isual-framework-vf-chatbot.angular.mjs.map | 1 + .../vf-chatbot/vf-chatbot.angular/index.d.ts | 5 + .../vf-chatbot.angular/package.json | 25 + .../vf-chatbot.angular.component.d.ts | 68 +++ .../vf-chatbot.angular.module.d.ts | 15 + components/vf-chatbot/vf-chatbot.config.yml | 16 +- components/vf-chatbot/vf-chatbot.js | 10 +- 147 files changed, 7070 insertions(+), 75 deletions(-) create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/.npmignore create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/README.md create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.component.mjs create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.module.mjs create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs.map create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/index.d.ts create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/package.json create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.component.d.ts create mode 100644 components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.module.d.ts create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/.npmignore create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/README.md create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.component.mjs create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.module.mjs create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/visual-framework-vf-chatbot-dialog.angular.mjs create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs.map create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/index.d.ts create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/package.json create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.component.d.ts create mode 100644 components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.module.d.ts create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/.npmignore create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/README.md create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.component.mjs create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.module.mjs create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/visual-framework-vf-chatbot-fab.angular.mjs create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs.map create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/index.d.ts create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/package.json create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.component.d.ts create mode 100644 components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.module.d.ts create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/.npmignore create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/README.md create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.component.mjs create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.module.mjs create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/visual-framework-vf-chatbot-feedback.angular.mjs create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs.map create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/index.d.ts create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/package.json create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.component.d.ts create mode 100644 components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.module.d.ts create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/.npmignore create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/README.md create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.component.mjs create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.module.mjs create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/visual-framework-vf-chatbot-modal.angular.mjs create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs.map create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/index.d.ts create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/package.json create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.component.d.ts create mode 100644 components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.module.d.ts create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/.npmignore create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/README.md create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.component.mjs create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.module.mjs create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/visual-framework-vf-chatbot-prompt.angular.mjs create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs.map create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/index.d.ts create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/package.json create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.component.d.ts create mode 100644 components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.module.d.ts create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/.npmignore create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/README.md create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.component.mjs create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.module.mjs create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/visual-framework-vf-chatbot-selector.angular.mjs create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs.map create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/index.d.ts create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/package.json create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.component.d.ts create mode 100644 components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.module.d.ts create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/.npmignore create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/README.md create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.component.mjs create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.module.mjs create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/visual-framework-vf-chatbot-sources.angular.mjs create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs.map create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/index.d.ts create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/package.json create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.component.d.ts create mode 100644 components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.module.d.ts create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/.npmignore create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/README.md create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/vf-chatbot-standalone.angular.component.mjs create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/visual-framework-vf-chatbot-standalone.angular.mjs create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs.map create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/index.d.ts create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/package.json create mode 100644 components/vf-chatbot-standalone/vf-chatbot-standalone.angular/vf-chatbot-standalone.angular.component.d.ts create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/.npmignore create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/README.md create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.component.mjs create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.mjs create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.module.mjs create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs.map create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/index.d.ts create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/package.json create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.component.d.ts create mode 100644 components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.module.d.ts create mode 100644 components/vf-chatbot/vf-chatbot-storage.js create mode 100644 components/vf-chatbot/vf-chatbot.angular/.npmignore create mode 100644 components/vf-chatbot/vf-chatbot.angular/README.md create mode 100644 components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.component.mjs create mode 100644 components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.module.mjs create mode 100644 components/vf-chatbot/vf-chatbot.angular/esm2022/visual-framework-vf-chatbot.angular.mjs create mode 100644 components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs create mode 100644 components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs.map create mode 100644 components/vf-chatbot/vf-chatbot.angular/index.d.ts create mode 100644 components/vf-chatbot/vf-chatbot.angular/package.json create mode 100644 components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.component.d.ts create mode 100644 components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.module.d.ts diff --git a/components/vf-chatbot-action-prompt/CHANGELOG.md b/components/vf-chatbot-action-prompt/CHANGELOG.md index 31dca312ad..7bf5acd7f0 100644 --- a/components/vf-chatbot-action-prompt/CHANGELOG.md +++ b/components/vf-chatbot-action-prompt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.3 * Added : Changes for chatbot modal variant @@ -11,4 +15,4 @@ ### 1.0.0-beta.1 -* Initial version \ No newline at end of file +* Initial version diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/.npmignore b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/README.md b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/README.md new file mode 100644 index 0000000000..05c735afe3 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotActionPromptAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-action-prompt.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-action-prompt.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.component.mjs b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.component.mjs new file mode 100644 index 0000000000..729d338607 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.component.mjs @@ -0,0 +1,73 @@ +// vf-chatbot-action-prompt.angular +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +export class VfChatbotActionPromptAngularComponent { + constructor() { + /** Emits when the link/button is clicked (maps to onClick) */ + this.actionClick = new EventEmitter(); + } + onClick(ev) { + this.actionClick.emit(ev); + } + get isExternal() { + return this.actionTarget === '_blank'; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotActionPromptAngularComponent, selector: "vf-chatbot-action-prompt", inputs: { actionUrl: ["action_url", "actionUrl"], actionText: ["action_text", "actionText"], actionTarget: ["action_target", "actionTarget"] }, outputs: { actionClick: "actionClick" }, ngImport: i0, template: ` + + {{ actionText }} + + + + + + `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-action-prompt', + template: ` + + {{ actionText }} + + + + + + ` + }] + }], propDecorators: { actionUrl: [{ + type: Input, + args: [{ alias: 'action_url' }] + }], actionText: [{ + type: Input, + args: [{ alias: 'action_text' }] + }], actionTarget: [{ + type: Input, + args: [{ alias: 'action_target' }] + }], actionClick: [{ + type: Output + }] } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0LmFuZ3VsYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0LmFuZ3VsYXIvc3JjL2xpYi92Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBRW5DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXdCdkUsTUFBTSxPQUFPLHFDQUFxQztJQXRCbEQ7UUFnQ0UsOERBQThEO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztLQVN4RDtJQVBDLE9BQU8sQ0FBQyxFQUFjO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssUUFBUSxDQUFDO0lBQ3hDLENBQUM7K0dBbkJVLHFDQUFxQzttR0FBckMscUNBQXFDLHlQQXBCdEM7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDs7NEZBRVUscUNBQXFDO2tCQXRCakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtpQkFDRjs4QkFHaUMsU0FBUztzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBR0csVUFBVTtzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBR0ksWUFBWTtzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBR3ZCLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyB2Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhclxuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhXG4gICAgKm5nSWY9XCJhY3Rpb25Vcmw7IGVsc2UgYnV0dG9uVGVtcGxhdGVcIlxuICAgIFtocmVmXT1cImFjdGlvblVybFwiXG4gICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHRfX2xpbmtcIlxuICAgIHJvbGU9XCJidXR0b25cIlxuICAgIFthdHRyLnRhcmdldF09XCJhY3Rpb25UYXJnZXQgfHwgbnVsbFwiXG4gID5cbiAgICB7eyBhY3Rpb25UZXh0IH19XG4gIDwvYT5cblxuICA8bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0X19saW5rXCJcbiAgICA+XG4gICAgICB7eyBhY3Rpb25UZXh0IH19XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90QWN0aW9uUHJvbXB0QW5ndWxhckNvbXBvbmVudCB7XG4gIC8qKiBFcXVpdmFsZW50IHRvIGFjdGlvbl91cmwgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdhY3Rpb25fdXJsJyB9KSBhY3Rpb25Vcmw/OiBzdHJpbmc7XG5cbiAgLyoqIEVxdWl2YWxlbnQgdG8gYWN0aW9uX3RleHQgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdhY3Rpb25fdGV4dCcgfSkgYWN0aW9uVGV4dCE6IHN0cmluZztcblxuICAvKiogRXF1aXZhbGVudCB0byBhY3Rpb25fdGFyZ2V0ICovXG4gIEBJbnB1dCh7IGFsaWFzOiAnYWN0aW9uX3RhcmdldCcgfSkgYWN0aW9uVGFyZ2V0Pzogc3RyaW5nO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBsaW5rL2J1dHRvbiBpcyBjbGlja2VkIChtYXBzIHRvIG9uQ2xpY2spICovXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBvbkNsaWNrKGV2OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGV2KTtcbiAgfVxuXG4gIGdldCBpc0V4dGVybmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvblRhcmdldCA9PT0gJ19ibGFuayc7XG4gIH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.module.mjs b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.module.mjs new file mode 100644 index 0000000000..f9b9fe53fe --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/vf-chatbot-action-prompt.angular.module.mjs @@ -0,0 +1,25 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { VfChatbotActionPromptAngularComponent } from './vf-chatbot-action-prompt.angular.component'; +import * as i0 from "@angular/core"; +export class VfChatbotActionPromptAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, declarations: [VfChatbotActionPromptAngularComponent], imports: [CommonModule], exports: [VfChatbotActionPromptAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, imports: [CommonModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotActionPromptAngularComponent + ], + imports: [ + CommonModule, + ], + exports: [ + VfChatbotActionPromptAngularComponent + ] + }] + }] }); +export * from './vf-chatbot-action-prompt.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0LmFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0LmFuZ3VsYXIvc3JjL2xpYi92Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBYXJHLE1BQU0sT0FBTyxrQ0FBa0M7K0dBQWxDLGtDQUFrQztnSEFBbEMsa0NBQWtDLGlCQVQzQyxxQ0FBcUMsYUFHckMsWUFBWSxhQUdaLHFDQUFxQztnSEFHNUIsa0NBQWtDLFlBTjNDLFlBQVk7OzRGQU1ILGtDQUFrQztrQkFYOUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oscUNBQXFDO3FCQUN0QztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUNBQXFDO3FCQUN0QztpQkFDRjs7QUFHRCxjQUFjLDhDQUE4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWZkNoYXRib3RBY3Rpb25Qcm9tcHRBbmd1bGFyQ29tcG9uZW50IH0gZnJvbSAnLi92Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBWZkNoYXRib3RBY3Rpb25Qcm9tcHRBbmd1bGFyQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBWZkNoYXRib3RBY3Rpb25Qcm9tcHRBbmd1bGFyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90QWN0aW9uUHJvbXB0QW5ndWxhck1vZHVsZSB7IH1cblxuZXhwb3J0ICogZnJvbSAnLi92Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhci5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs new file mode 100644 index 0000000000..a580d62f42 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/esm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-action-prompt.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3QtYWN0aW9uLXByb21wdC5hbmd1bGFyL3NyYy9saWIvdmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0LmFuZ3VsYXIubW9kdWxlJztcbiJdfQ== \ No newline at end of file diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs new file mode 100644 index 0000000000..cf87756d66 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs @@ -0,0 +1,101 @@ +import * as i1 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import * as i0 from '@angular/core'; +import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core'; + +// vf-chatbot-action-prompt.angular +class VfChatbotActionPromptAngularComponent { + constructor() { + /** Emits when the link/button is clicked (maps to onClick) */ + this.actionClick = new EventEmitter(); + } + onClick(ev) { + this.actionClick.emit(ev); + } + get isExternal() { + return this.actionTarget === '_blank'; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotActionPromptAngularComponent, selector: "vf-chatbot-action-prompt", inputs: { actionUrl: ["action_url", "actionUrl"], actionText: ["action_text", "actionText"], actionTarget: ["action_target", "actionTarget"] }, outputs: { actionClick: "actionClick" }, ngImport: i0, template: ` + + {{ actionText }} + + + + + + `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-action-prompt', + template: ` + + {{ actionText }} + + + + + + ` + }] + }], propDecorators: { actionUrl: [{ + type: Input, + args: [{ alias: 'action_url' }] + }], actionText: [{ + type: Input, + args: [{ alias: 'action_text' }] + }], actionTarget: [{ + type: Input, + args: [{ alias: 'action_target' }] + }], actionClick: [{ + type: Output + }] } }); + +class VfChatbotActionPromptAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, declarations: [VfChatbotActionPromptAngularComponent], imports: [CommonModule], exports: [VfChatbotActionPromptAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, imports: [CommonModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotActionPromptAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotActionPromptAngularComponent + ], + imports: [ + CommonModule, + ], + exports: [ + VfChatbotActionPromptAngularComponent + ] + }] + }] }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotActionPromptAngularComponent, VfChatbotActionPromptAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-action-prompt.angular.mjs.map diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs.map b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs.map new file mode 100644 index 0000000000..31c95facaa --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-action-prompt.angular.mjs","sources":["../../../projects/vf-chatbot-action-prompt.angular/src/lib/vf-chatbot-action-prompt.angular.component.ts","../../../projects/vf-chatbot-action-prompt.angular/src/lib/vf-chatbot-action-prompt.angular.module.ts","../../../projects/vf-chatbot-action-prompt.angular/src/lib/visual-framework-vf-chatbot-action-prompt.angular.ts"],"sourcesContent":["// vf-chatbot-action-prompt.angular\n\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'vf-chatbot-action-prompt',\n template: `\n \n {{ actionText }}\n \n\n \n \n {{ actionText }}\n \n \n `\n})\nexport class VfChatbotActionPromptAngularComponent {\n /** Equivalent to action_url */\n @Input({ alias: 'action_url' }) actionUrl?: string;\n\n /** Equivalent to action_text */\n @Input({ alias: 'action_text' }) actionText!: string;\n\n /** Equivalent to action_target */\n @Input({ alias: 'action_target' }) actionTarget?: string;\n\n /** Emits when the link/button is clicked (maps to onClick) */\n @Output() actionClick = new EventEmitter();\n\n onClick(ev: MouseEvent) {\n this.actionClick.emit(ev);\n }\n\n get isExternal(): boolean {\n return this.actionTarget === '_blank';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { VfChatbotActionPromptAngularComponent } from './vf-chatbot-action-prompt.angular.component';\n\n@NgModule({\n declarations: [\n VfChatbotActionPromptAngularComponent\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n VfChatbotActionPromptAngularComponent\n ]\n})\nexport class VfChatbotActionPromptAngularModule { }\n\nexport * from './vf-chatbot-action-prompt.angular.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-action-prompt.angular.module';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/index.d.ts b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/index.d.ts new file mode 100644 index 0000000000..9d986def39 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-action-prompt.angular.module'; diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/package.json b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/package.json new file mode 100644 index 0000000000..21a0416c79 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-action-prompt.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-action-prompt.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.component.d.ts b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.component.d.ts new file mode 100644 index 0000000000..39126bc1f9 --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.component.d.ts @@ -0,0 +1,16 @@ +import { EventEmitter } from '@angular/core'; +import * as i0 from "@angular/core"; +export declare class VfChatbotActionPromptAngularComponent { + /** Equivalent to action_url */ + actionUrl?: string; + /** Equivalent to action_text */ + actionText: string; + /** Equivalent to action_target */ + actionTarget?: string; + /** Emits when the link/button is clicked (maps to onClick) */ + actionClick: EventEmitter; + onClick(ev: MouseEvent): void; + get isExternal(): boolean; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.module.d.ts b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.module.d.ts new file mode 100644 index 0000000000..6de140d84f --- /dev/null +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.angular/vf-chatbot-action-prompt.angular.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-action-prompt.angular.component"; +import * as i2 from "@angular/common"; +export declare class VfChatbotActionPromptAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} +export * from './vf-chatbot-action-prompt.angular.component'; diff --git a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.config.yml b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.config.yml index 630743f55a..18b16b87ee 100644 --- a/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.config.yml +++ b/components/vf-chatbot-action-prompt/vf-chatbot-action-prompt.config.yml @@ -1,6 +1,6 @@ title: Chatbot Action Prompt label: Chatbot Action Prompt -status: beta +status: live preview: '@preview' hidden: true context: diff --git a/components/vf-chatbot-dialog/CHANGELOG.md b/components/vf-chatbot-dialog/CHANGELOG.md index 6517bd08e3..397e9350db 100644 --- a/components/vf-chatbot-dialog/CHANGELOG.md +++ b/components/vf-chatbot-dialog/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.1 * Added : Initial version for modal chatbot variant -* Added : React support [Tracking issue](https://github.com/visual-framework/vf-core/issues/2314) \ No newline at end of file +* Added : React support [Tracking issue](https://github.com/visual-framework/vf-core/issues/2314) diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/.npmignore b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/README.md b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/README.md new file mode 100644 index 0000000000..5981456ccc --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotDialogAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-dialog.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-dialog.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.component.mjs b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.component.mjs new file mode 100644 index 0000000000..a0319f69d1 --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.component.mjs @@ -0,0 +1,129 @@ +import { Component, Input } from '@angular/core'; +import * as i0 from "@angular/core"; +export class VfChatbotDialogAngularComponent { + constructor(elRef) { + this.elRef = elRef; + this.title = 'Close chat and delete conversation?'; + this.message = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.'; + this.cancelLabel = 'Keep chat open'; + this.confirmLabel = 'Close and delete'; + } + ngAfterViewInit() { + const el = this.elRef.nativeElement; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotDialogAngularComponent, selector: "vf-chatbot-dialog", inputs: { title: "title", message: "message", cancelLabel: "cancelLabel", confirmLabel: "confirmLabel" }, ngImport: i0, template: ` +
+
+
+

{{ title }}

+ + +
+ +
+

+
+ +
+ + + +
+
+
+ `, isInline: true }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-dialog', + template: ` +
+
+
+

{{ title }}

+ + +
+ +
+

+
+ +
+ + + +
+
+
+ ` + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { title: [{ + type: Input + }], message: [{ + type: Input + }], cancelLabel: [{ + type: Input + }], confirmLabel: [{ + type: Input + }] } }); +export * from './vf-chatbot-dialog.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LWRpYWxvZy5hbmd1bGFyL3NyYy9saWIvdmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFJVCxLQUFLLEVBRU4sTUFBTSxlQUFlLENBQUM7O0FBdUR2QixNQUFNLE9BQU8sK0JBQStCO0lBTzFDLFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFONUIsVUFBSyxHQUFHLHFDQUFxQyxDQUFDO1FBQzlDLFlBQU8sR0FBRyw2R0FBNkcsQ0FBQztRQUN4SCxnQkFBVyxHQUFHLGdCQUFnQixDQUFDO1FBQy9CLGlCQUFZLEdBQUcsa0JBQWtCLENBQUM7SUFHSCxDQUFDO0lBRXpDLGVBQWU7UUFDYixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQTRCLENBQUM7SUFDckQsQ0FBQzsrR0FYVSwrQkFBK0I7bUdBQS9CLCtCQUErQixtS0FsRGhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRFQ7OzRGQUVVLCtCQUErQjtrQkFwRDNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRFQ7aUJBQ0Y7K0VBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7O0FBV1IsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIElucHV0LFxuICBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmYtY2hhdGJvdC1kaWFsb2cnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC1kaWFsb2dcIlxuICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LWRpYWxvZ1xuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LWRpYWxvZ19fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1kaWFsb2dfX2hlYWRlciB2Zi11LW1hcmdpbl9fYm90dG9tLS00MDBcIj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJ2Zi1jaGF0Ym90LWRpYWxvZ19fdGl0bGVcIj57eyB0aXRsZSB9fTwvaDI+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtZGlhbG9nX19jbG9zZVwiXG4gICAgICAgICAgICBkYXRhLXZmLWpzLWRpYWxvZy1jbG9zZVxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGRpYWxvZ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSBcbiAgICAgICAgICAgICAgICAgICAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgXG4gICAgICAgICAgICAgICAgICAgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1kaWFsb2dfX2JvZHkgdmYtdS1tYXJnaW5fX2JvdHRvbS0tODAwXCI+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwidmYtdGV4dCB2Zi10ZXh0LWJvZHktLTNcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlXCJcbiAgICAgICAgICA+PC9wPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1kaWFsb2dfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtZGlhbG9nX19idXR0b24gdmYtY2hhdGJvdC1kaWFsb2dfX2J1dHRvbi0tb3V0bGluZVwiXG4gICAgICAgICAgICBkYXRhLXZmLWpzLWRpYWxvZy1jYW5jZWxcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBjYW5jZWxMYWJlbCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LWRpYWxvZ19fYnV0dG9uIHZmLWNoYXRib3QtZGlhbG9nX19idXR0b24tLXByaW1hcnlcIlxuICAgICAgICAgICAgZGF0YS12Zi1qcy1kaWFsb2ctY29uZmlybVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGNvbmZpcm1MYWJlbCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFZmQ2hhdGJvdERpYWxvZ0FuZ3VsYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgdGl0bGUgPSAnQ2xvc2UgY2hhdCBhbmQgZGVsZXRlIGNvbnZlcnNhdGlvbj8nO1xuICBASW5wdXQoKSBtZXNzYWdlID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjbG9zZSB0aGUgY2hhdD8gPGJyPllvdXIgY3VycmVudCBjb252ZXJzYXRpb24gaGlzdG9yeSB3aWxsIGJlIHBlcm1hbmVudGx5IGRlbGV0ZWQuJztcbiAgQElucHV0KCkgY2FuY2VsTGFiZWwgPSAnS2VlcCBjaGF0IG9wZW4nO1xuICBASW5wdXQoKSBjb25maXJtTGFiZWwgPSAnQ2xvc2UgYW5kIGRlbGV0ZSc7XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxuXG59XG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci5tb2R1bGUnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.module.mjs b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.module.mjs new file mode 100644 index 0000000000..f17e844006 --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/vf-chatbot-dialog.angular.module.mjs @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotDialogAngularComponent } from './vf-chatbot-dialog.angular.component'; +import * as i0 from "@angular/core"; +export class VfChatbotDialogAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, declarations: [VfChatbotDialogAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotDialogAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotDialogAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotDialogAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LWRpYWxvZy5hbmd1bGFyL3NyYy9saWIvdmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQWN4RixNQUFNLE9BQU8sNEJBQTRCOytHQUE1Qiw0QkFBNEI7Z0hBQTVCLDRCQUE0QixpQkFWckMsK0JBQStCLGFBRy9CLFlBQVk7WUFDWixXQUFXLGFBR1gsK0JBQStCO2dIQUd0Qiw0QkFBNEIsWUFQckMsWUFBWTtZQUNaLFdBQVc7OzRGQU1GLDRCQUE0QjtrQkFaeEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osK0JBQStCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCwrQkFBK0I7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJzsgXG5pbXBvcnQgeyBWZkNoYXRib3REaWFsb2dBbmd1bGFyQ29tcG9uZW50IH0gZnJvbSAnLi92Zi1jaGF0Ym90LWRpYWxvZy5hbmd1bGFyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFZmQ2hhdGJvdERpYWxvZ0FuZ3VsYXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVmZDaGF0Ym90RGlhbG9nQW5ndWxhckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFZmQ2hhdGJvdERpYWxvZ0FuZ3VsYXJNb2R1bGUgeyB9XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/visual-framework-vf-chatbot-dialog.angular.mjs b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/visual-framework-vf-chatbot-dialog.angular.mjs new file mode 100644 index 0000000000..c35fe59b84 --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/esm2022/visual-framework-vf-chatbot-dialog.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-dialog.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LWRpYWxvZy5hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci9zcmMvbGliL3Zpc3VhbC1mcmFtZXdvcmstdmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhci5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs new file mode 100644 index 0000000000..b934fe7628 --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs @@ -0,0 +1,160 @@ +import * as i0 from '@angular/core'; +import { NgModule, Component, Input } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +class VfChatbotDialogAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, declarations: [VfChatbotDialogAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotDialogAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotDialogAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotDialogAngularComponent + ] + }] + }] }); + +class VfChatbotDialogAngularComponent { + constructor(elRef) { + this.elRef = elRef; + this.title = 'Close chat and delete conversation?'; + this.message = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.'; + this.cancelLabel = 'Keep chat open'; + this.confirmLabel = 'Close and delete'; + } + ngAfterViewInit() { + const el = this.elRef.nativeElement; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotDialogAngularComponent, selector: "vf-chatbot-dialog", inputs: { title: "title", message: "message", cancelLabel: "cancelLabel", confirmLabel: "confirmLabel" }, ngImport: i0, template: ` +
+
+
+

{{ title }}

+ + +
+ +
+

+
+ +
+ + + +
+
+
+ `, isInline: true }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotDialogAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-dialog', + template: ` +
+
+
+

{{ title }}

+ + +
+ +
+

+
+ +
+ + + +
+
+
+ ` + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { title: [{ + type: Input + }], message: [{ + type: Input + }], cancelLabel: [{ + type: Input + }], confirmLabel: [{ + type: Input + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotDialogAngularComponent, VfChatbotDialogAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-dialog.angular.mjs.map diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs.map b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs.map new file mode 100644 index 0000000000..d750619dc0 --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-dialog.angular.mjs","sources":["../../../projects/vf-chatbot-dialog.angular/src/lib/vf-chatbot-dialog.angular.module.ts","../../../projects/vf-chatbot-dialog.angular/src/lib/vf-chatbot-dialog.angular.component.ts","../../../projects/vf-chatbot-dialog.angular/src/lib/visual-framework-vf-chatbot-dialog.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotDialogAngularComponent } from './vf-chatbot-dialog.angular.component';\n\n@NgModule({\n declarations: [\n VfChatbotDialogAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n VfChatbotDialogAngularComponent\n ]\n})\nexport class VfChatbotDialogAngularModule { }\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Output,\n Input,\n AfterViewInit\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'vf-chatbot-dialog',\n template: `\n \n
\n
\n

{{ title }}

\n\n \n \n \n \n \n
\n\n
\n

\n
\n\n
\n \n {{ cancelLabel }}\n \n\n \n {{ confirmLabel }}\n \n
\n
\n \n `\n})\nexport class VfChatbotDialogAngularComponent implements AfterViewInit {\n @Input() title = 'Close chat and delete conversation?';\n @Input() message = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.';\n @Input() cancelLabel = 'Keep chat open';\n @Input() confirmLabel = 'Close and delete';\n\n\n constructor(private elRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n const el = this.elRef.nativeElement as HTMLElement;\n }\n\n}\n\nexport * from './vf-chatbot-dialog.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-dialog.angular.component';\n"],"names":[],"mappings":";;;;;MAiBa,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAA5B,4BAA4B,EAAA,YAAA,EAAA,CAVrC,+BAA+B,CAAA,EAAA,OAAA,EAAA,CAG/B,YAAY;AACZ,YAAA,WAAW,aAGX,+BAA+B,CAAA,EAAA,CAAA,CAAA;AAGtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAPrC,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAMF,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAZxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD;AACF,iBAAA;;;MC8CY,+BAA+B,CAAA;AAO1C,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK;QANhB,IAAK,CAAA,KAAA,GAAG,qCAAqC;QAC7C,IAAO,CAAA,OAAA,GAAG,6GAA6G;QACvH,IAAW,CAAA,WAAA,GAAG,gBAAgB;QAC9B,IAAY,CAAA,YAAA,GAAG,kBAAkB;;IAK1C,eAAe,GAAA;AACb,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAA4B;;+GAVzC,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAlDhC,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAEU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBApD3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDT,EAAA;AACF,iBAAA;+EAEU,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;AClEH;;AAEG;;;;"} \ No newline at end of file diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/index.d.ts b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/index.d.ts new file mode 100644 index 0000000000..e5e5a8ab52 --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-dialog.angular.component'; diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/package.json b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/package.json new file mode 100644 index 0000000000..0a9a9b990d --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-dialog.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-dialog.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-dialog.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-dialog.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.component.d.ts b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.component.d.ts new file mode 100644 index 0000000000..1504fd4f1f --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.component.d.ts @@ -0,0 +1,14 @@ +import { ElementRef, AfterViewInit } from '@angular/core'; +import * as i0 from "@angular/core"; +export declare class VfChatbotDialogAngularComponent implements AfterViewInit { + private elRef; + title: string; + message: string; + cancelLabel: string; + confirmLabel: string; + constructor(elRef: ElementRef); + ngAfterViewInit(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-dialog.angular.module'; diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.module.d.ts b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.module.d.ts new file mode 100644 index 0000000000..40e25d859a --- /dev/null +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.angular/vf-chatbot-dialog.angular.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-dialog.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +export declare class VfChatbotDialogAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-dialog/vf-chatbot-dialog.config.yml b/components/vf-chatbot-dialog/vf-chatbot-dialog.config.yml index 84d8ef7940..14d440cb5e 100644 --- a/components/vf-chatbot-dialog/vf-chatbot-dialog.config.yml +++ b/components/vf-chatbot-dialog/vf-chatbot-dialog.config.yml @@ -1,6 +1,6 @@ title: Chatbot Dialog label: Chatbot Dialog -status: beta +status: live preview: '@preview' hidden: true context: diff --git a/components/vf-chatbot-fab/CHANGELOG.md b/components/vf-chatbot-fab/CHANGELOG.md index 31dca312ad..7bf5acd7f0 100644 --- a/components/vf-chatbot-fab/CHANGELOG.md +++ b/components/vf-chatbot-fab/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.3 * Added : Changes for chatbot modal variant @@ -11,4 +15,4 @@ ### 1.0.0-beta.1 -* Initial version \ No newline at end of file +* Initial version diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/.npmignore b/components/vf-chatbot-fab/vf-chatbot-fab.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/README.md b/components/vf-chatbot-fab/vf-chatbot-fab.angular/README.md new file mode 100644 index 0000000000..9a0b946de4 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotFabAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-fab.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-fab.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.component.mjs b/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.component.mjs new file mode 100644 index 0000000000..65e04a42b8 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.component.mjs @@ -0,0 +1,119 @@ +import { Component, Input, } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +export class VfChatbotFabAngularComponent { + constructor(elementRef) { + this.elementRef = elementRef; + this.notificationCount = 0; + this.isInactive = false; + } + ngAfterViewInit() { + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotFabAngularComponent, selector: "vf-chatbot-fab", inputs: { notificationCount: "notificationCount", isInactive: "isInactive" }, ngImport: i0, template: ` + + `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-fab', + template: ` + + `, + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { notificationCount: [{ + type: Input + }], isInactive: [{ + type: Input + }] } }); +export * from './vf-chatbot-fab.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1mYWIuYW5ndWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LWZhYi5hbmd1bGFyL3NyYy9saWIvdmYtY2hhdGJvdC1mYWIuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7OztBQXFEdkIsTUFBTSxPQUFPLDRCQUE0QjtJQUl2QyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSGpDLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUN0QixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBRWlCLENBQUM7SUFFOUMsZUFBZTtJQUNmLENBQUM7K0dBUFUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsb0lBaEQ3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDVDs7NEZBRVUsNEJBQTRCO2tCQWxEeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Q1Q7aUJBQ0Y7K0VBRVUsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7O0FBUVIsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZmLWNoYXRib3QtZmFiJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uXG4gICAgICAjZmFiUmVmXG4gICAgICBjbGFzcz1cInZmLWNoYXRib3QtZmFiXCJcbiAgICAgIFtjbGFzcy52Zi1jaGF0Ym90LWZhYi0taW5hY3RpdmVdPVwiaXNJbmFjdGl2ZVwiXG4gICAgICBhcmlhLWxhYmVsPVwiT3BlbiBjaGF0XCJcbiAgICAgIGRhdGEtdmYtanMtY2hhdGJvdC1mYWJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LWZhYl9faWNvbiB2Zi1jaGF0Ym90LWZhYl9faWNvbi0tY2hhdFwiXG4gICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICBoZWlnaHQ9XCIyNVwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjVcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzMyNTZfMzQwNTApXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNNC4yMzk5NSAyNC4wMTkxTDQuMjU5OTUgMTcuNTQ5MUgyLjg1OTk1QzEuMjg5OTUgMTcuNTQ5MSAwLjAwOTk0NTg5IDE2LjI2OTEgMC4wMDk5NDU4OSAxNC42OTkxVjMuNzU5MDZDLTUuNDEwNjFlLTA1IDIuMTg5MDYgMS4yNzk5NSAwLjkwOTA1OCAyLjg0OTk1IDAuOTA5MDU4SDIxLjEzOTlDMjIuNzA5OSAwLjkwOTA1OCAyMy45ODk5IDIuMTg5MDYgMjMuOTg5OSAzLjc1OTA2VjE0LjY4OTFDMjMuOTg5OSAxNi4yNTkxIDIyLjcwOTkgMTcuNTM5MSAyMS4xMzk5IDE3LjUzOTFIMTAuNzM5OUw0LjIyOTk1IDI0LjAwOTFMNC4yMzk5NSAyNC4wMTkxWk0yLjg0OTk1IDEuOTc5MDZDMS44Njk5NSAxLjk3OTA2IDEuMDY5OTUgMi43NzkwNiAxLjA2OTk1IDMuNzU5MDZWMTQuNjg5MUMxLjA2OTk1IDE1LjY2OTEgMS44Njk5NSAxNi40NjkxIDIuODQ5OTUgMTYuNDY5MUg1LjMyOTk1VjIxLjQxOTFMMTAuMjk5OSAxNi40NjkxSDIxLjE0OTlDMjIuMTI5OSAxNi40NjkxIDIyLjkyOTkgMTUuNjY5MSAyMi45Mjk5IDE0LjY4OTFWMy43NTkwNkMyMi45Mjk5IDIuNzc5MDYgMjIuMTI5OSAxLjk3OTA2IDIxLjE0OTkgMS45NzkwNkgyLjg0OTk1WlwiXG4gICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJNMTguMjcgNy4wNjkwNkMxOC43NiA3LjU1OTA2IDIxLjkzIDguNDE5MDYgMjEuOTMgOC40MTkwNkMyMS45MyA4LjQxOTA2IDE4Ljc1IDkuMjg5MDYgMTguMjcgOS43NjkwNkMxNy43OSAxMC4yNDkxIDE2LjkyIDEzLjQyOTEgMTYuOTIgMTMuNDI5MUMxNi45MiAxMy40MjkxIDE2LjA0IDEwLjIzOTEgMTUuNTcgOS43NjkwNkMxNS4xIDkuMjk5MDYgMTEuOTEgOC40MTkwNiAxMS45MSA4LjQxOTA2QzExLjkxIDguNDE5MDYgMTUuMDIgNy42MTkwNiAxNS41NyA3LjA2OTA2QzE2LjEyIDYuNTE5MDYgMTYuOTIgMy40MDkwNiAxNi45MiAzLjQwOTA2QzE2LjkyIDMuNDA5MDYgMTcuNzggNi41NzkwNiAxOC4yNyA3LjA2OTA2WlwiXG4gICAgICAgICAgICBmaWxsPVwid2hpdGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZz5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMzI1Nl8zNDA1MFwiPlxuICAgICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjIzLjExXCJcbiAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC45MDkwNTgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgICAgPC9kZWZzPlxuICAgICAgPC9zdmc+XG5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9uQ291bnQgPiAwXCJcbiAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LWZhYl9fYmFkZ2VcIlxuICAgICAgPlxuICAgICAgICB7eyBub3RpZmljYXRpb25Db3VudCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBWZkNoYXRib3RGYWJBbmd1bGFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG5vdGlmaWNhdGlvbkNvdW50ID0gMDtcbiAgQElucHV0KCkgaXNJbmFjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gIH1cbn1cblxuZXhwb3J0ICogZnJvbSAnLi92Zi1jaGF0Ym90LWZhYi5hbmd1bGFyLm1vZHVsZSc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.module.mjs b/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.module.mjs new file mode 100644 index 0000000000..cfd6367d3d --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/vf-chatbot-fab.angular.module.mjs @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotFabAngularComponent } from './vf-chatbot-fab.angular.component'; +import * as i0 from "@angular/core"; +export class VfChatbotFabAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, declarations: [VfChatbotFabAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotFabAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotFabAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotFabAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1mYWIuYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LWZhYi5hbmd1bGFyL3NyYy9saWIvdmYtY2hhdGJvdC1mYWIuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQWNsRixNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixpQkFWbEMsNEJBQTRCLGFBRzVCLFlBQVk7WUFDWixXQUFXLGFBR1gsNEJBQTRCO2dIQUduQix5QkFBeUIsWUFQbEMsWUFBWTtZQUNaLFdBQVc7OzRGQU1GLHlCQUF5QjtrQkFackMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCw0QkFBNEI7cUJBQzdCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJzsgXG5pbXBvcnQgeyBWZkNoYXRib3RGYWJBbmd1bGFyQ29tcG9uZW50IH0gZnJvbSAnLi92Zi1jaGF0Ym90LWZhYi5hbmd1bGFyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFZmQ2hhdGJvdEZhYkFuZ3VsYXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVmZDaGF0Ym90RmFiQW5ndWxhckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFZmQ2hhdGJvdEZhYkFuZ3VsYXJNb2R1bGUgeyB9XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/visual-framework-vf-chatbot-fab.angular.mjs b/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/visual-framework-vf-chatbot-fab.angular.mjs new file mode 100644 index 0000000000..81d3f14906 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/esm2022/visual-framework-vf-chatbot-fab.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-fab.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LWZhYi5hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1mYWIuYW5ndWxhci9zcmMvbGliL3Zpc3VhbC1mcmFtZXdvcmstdmYtY2hhdGJvdC1mYWIuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1mYWIuYW5ndWxhci5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs b/components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs new file mode 100644 index 0000000000..6123bde7e9 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs @@ -0,0 +1,150 @@ +import * as i0 from '@angular/core'; +import { NgModule, Component, Input } from '@angular/core'; +import * as i1 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +class VfChatbotFabAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, declarations: [VfChatbotFabAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotFabAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotFabAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotFabAngularComponent + ] + }] + }] }); + +class VfChatbotFabAngularComponent { + constructor(elementRef) { + this.elementRef = elementRef; + this.notificationCount = 0; + this.isInactive = false; + } + ngAfterViewInit() { + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotFabAngularComponent, selector: "vf-chatbot-fab", inputs: { notificationCount: "notificationCount", isInactive: "isInactive" }, ngImport: i0, template: ` + + `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFabAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-fab', + template: ` + + `, + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { notificationCount: [{ + type: Input + }], isInactive: [{ + type: Input + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotFabAngularComponent, VfChatbotFabAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-fab.angular.mjs.map diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs.map b/components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs.map new file mode 100644 index 0000000000..26ab7e7c98 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/fesm2022/visual-framework-vf-chatbot-fab.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-fab.angular.mjs","sources":["../../../projects/vf-chatbot-fab.angular/src/lib/vf-chatbot-fab.angular.module.ts","../../../projects/vf-chatbot-fab.angular/src/lib/vf-chatbot-fab.angular.component.ts","../../../projects/vf-chatbot-fab.angular/src/lib/visual-framework-vf-chatbot-fab.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotFabAngularComponent } from './vf-chatbot-fab.angular.component';\n\n@NgModule({\n declarations: [\n VfChatbotFabAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n VfChatbotFabAngularComponent\n ]\n})\nexport class VfChatbotFabAngularModule { }\n","import {\n Component,\n Input,\n ElementRef,\n AfterViewInit,\n} from '@angular/core';\n\n\n@Component({\n selector: 'vf-chatbot-fab',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n\n 0\"\n class=\"vf-chatbot-fab__badge\"\n >\n {{ notificationCount }}\n \n \n `,\n})\nexport class VfChatbotFabAngularComponent implements AfterViewInit {\n @Input() notificationCount = 0;\n @Input() isInactive = false;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n }\n}\n\nexport * from './vf-chatbot-fab.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-fab.angular.component';\n"],"names":[],"mappings":";;;;;;MAiBa,yBAAyB,CAAA;+GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAzB,yBAAyB,EAAA,YAAA,EAAA,CAVlC,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAG5B,YAAY;AACZ,YAAA,WAAW,aAGX,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAGnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAPlC,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAMF,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD;AACF,iBAAA;;;MC0CY,4BAA4B,CAAA;AAIvC,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;QAHrB,IAAiB,CAAA,iBAAA,GAAG,CAAC;QACrB,IAAU,CAAA,UAAA,GAAG,KAAK;;IAI3B,eAAe,GAAA;;+GANJ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAhD7B,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAlDxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CT,EAAA,CAAA;AACF,iBAAA;+EAEU,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;;;AC5DH;;AAEG;;;;"} \ No newline at end of file diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/index.d.ts b/components/vf-chatbot-fab/vf-chatbot-fab.angular/index.d.ts new file mode 100644 index 0000000000..5bf347be5e --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-fab.angular.component'; diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/package.json b/components/vf-chatbot-fab/vf-chatbot-fab.angular/package.json new file mode 100644 index 0000000000..df51ee5d72 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-fab.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-fab.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-fab.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-fab.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-fab.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.component.d.ts b/components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.component.d.ts new file mode 100644 index 0000000000..aea8c869c3 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.component.d.ts @@ -0,0 +1,12 @@ +import { ElementRef, AfterViewInit } from '@angular/core'; +import * as i0 from "@angular/core"; +export declare class VfChatbotFabAngularComponent implements AfterViewInit { + private elementRef; + notificationCount: number; + isInactive: boolean; + constructor(elementRef: ElementRef); + ngAfterViewInit(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-fab.angular.module'; diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.module.d.ts b/components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.module.d.ts new file mode 100644 index 0000000000..d8408430c0 --- /dev/null +++ b/components/vf-chatbot-fab/vf-chatbot-fab.angular/vf-chatbot-fab.angular.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-fab.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +export declare class VfChatbotFabAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-fab/vf-chatbot-fab.config.yml b/components/vf-chatbot-fab/vf-chatbot-fab.config.yml index 463a558fa3..906ac696ec 100644 --- a/components/vf-chatbot-fab/vf-chatbot-fab.config.yml +++ b/components/vf-chatbot-fab/vf-chatbot-fab.config.yml @@ -1,6 +1,6 @@ title: Chatbot Floating Action Button label: Chatbot FAB -status: beta +status: live preview: '@preview' hidden: true context: diff --git a/components/vf-chatbot-feedback/CHANGELOG.md b/components/vf-chatbot-feedback/CHANGELOG.md index 42002f83ea..96b26e019f 100644 --- a/components/vf-chatbot-feedback/CHANGELOG.md +++ b/components/vf-chatbot-feedback/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.4 * Added : Changes for chatbot modal variant @@ -18,4 +22,4 @@ * Initial version * Accessibility improvements for interactive elements -* Event-driven feedback integration \ No newline at end of file +* Event-driven feedback integration diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/.npmignore b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/README.md b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/README.md new file mode 100644 index 0000000000..fa08e18b8b --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotFeedbackAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-feedback.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-feedback.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.component.mjs b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.component.mjs new file mode 100644 index 0000000000..f57c84a72c --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.component.mjs @@ -0,0 +1,180 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +import * as i2 from "@angular/forms"; +export class VfChatbotFeedbackAngularComponent { + constructor(el) { + this.el = el; + this.feedback_options = []; + this.type = ''; + this.comment = ''; + this.feedback = new EventEmitter(); + this.commentChange = new EventEmitter(); + this.close = new EventEmitter(); + this.submit = new EventEmitter(); + } + ngAfterViewInit() { + } + onFeedbackClick(optionId) { + this.feedback.emit({ type: this.type, id: optionId }); + } + onCloseClick() { + this.close.emit(); + } + onSubmitClick() { + this.submit.emit(); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotFeedbackAngularComponent, selector: "vf-chatbot-feedback", inputs: { feedback_options: "feedback_options", type: "type", comment: "comment" }, outputs: { feedback: "feedback", commentChange: "commentChange", close: "close", submit: "submit" }, ngImport: i0, template: ` +
+
+ +
+
+ Tell us more (optional) +
+ +
+ + +
+ +
+ + + + + + + +
+
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-feedback', + template: ` +
+
+ +
+
+ Tell us more (optional) +
+ +
+ + +
+ +
+ + + + + + + +
+
+ `, + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { feedback_options: [{ + type: Input + }], type: [{ + type: Input + }], comment: [{ + type: Input + }], feedback: [{ + type: Output + }], commentChange: [{ + type: Output + }], close: [{ + type: Output + }], submit: [{ + type: Output + }] } }); +export * from './vf-chatbot-feedback.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1mZWVkYmFjay5hbmd1bGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3QtZmVlZGJhY2suYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3QtZmVlZGJhY2suYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7QUE0RWxHLE1BQU0sT0FBTyxpQ0FBaUM7SUFVNUMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFUekIscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUN4QyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFcEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO1FBQzVELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVQLENBQUM7SUFFdEMsZUFBZTtJQUNmLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBZ0I7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBekJVLGlDQUFpQzttR0FBakMsaUNBQWlDLG9QQWxFbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRVQ7OzRGQUVVLGlDQUFpQztrQkFwRTdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0VUO2lCQUNGOytFQUVVLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNOztBQW9CVCxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmludGVyZmFjZSBGZWVkYmFja09wdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZmLWNoYXRib3QtZmVlZGJhY2snLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC1mZWVkYmFja19fZm9ybSB2Zi11LW1hcmdpbl9fdG9wLS00MDBcIiBzdHlsZT1cImRpc3BsYXk6YmxvY2tcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LWZlZWRiYWNrX19mb3JtLWNvbnRlbnQgdmYtdS1wYWRkaW5nLS00MDBcIj5cbiAgICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LWZlZWRiYWNrX19mb3JtLWNvbnRlbnQtaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZmLWNoYXRib3QtZmVlZGJhY2tfX3RpdGxlXCI+XG4gICAgICAgICAgICBUZWxsIHVzIG1vcmUgKG9wdGlvbmFsKVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LWZlZWRiYWNrX19mb3JtLWNsb3NlIHZmLWJ1dHRvbiB2Zi1idXR0b24tLWljb24gdmYtYnV0dG9uLS1kaXNtaXNzIHwgdmYtYmFubmVyX19idXR0b25cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgZmVlZGJhY2sgZm9ybVwiXG4gICAgICAgICAgICBkYXRhLXZmLWpzLWZlZWRiYWNrLWZvcm0tY2xvc2VcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgIDx0aXRsZT5kaXNtaXNzIGJhbm5lcjwvdGl0bGU+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xNC4zLDEyLjE3OWEuMjUuMjUsMCwwLDEsMC0uMzU0bDkuMjYzLTkuMjYyQTEuNSwxLjUsMCwwLDAsMjEuNDM5LjQ0MkwxMi4xNzcsOS43YS4yNS4yNSwwLDAsMS0uMzU0LDBMMi41NjEuNDQyQTEuNSwxLjUsMCwwLDAsLjQzOSwyLjU2M0w5LjcsMTEuODI1YS4yNS4yNSwwLDAsMSwwLC4zNTRMLjQzOSwyMS40NDJhMS41LDEuNSwwLDAsMCwyLjEyMiwyLjEyMUwxMS44MjMsMTQuM2EuMjUuMjUsMCwwLDEsLjM1NCwwbDkuMjYyLDkuMjYzYTEuNSwxLjUsMCwwLDAsMi4xMjItMi4xMjFaXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEZlZWRiYWNrIE9wdGlvbnMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LWZlZWRiYWNrX19vcHRpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmZWVkYmFja19vcHRpb25zXCJcbiAgICAgICAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC1mZWVkYmFja19fb3B0aW9uXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtZmVlZGJhY2stb3B0aW9uXT1cIm9wdGlvbi5pZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25GZWVkYmFja0NsaWNrKG9wdGlvbi5pZClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIENvbW1lbnQgRmllbGQgLS0+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGlkPVwidmYtY2hhdGJvdC1mZWVkYmFjay1jb21tZW50LXRpdGxlXCJcbiAgICAgICAgICBmb3I9XCJ2Zi1jaGF0Ym90LWZlZWRiYWNrLWNvbW1lbnRcIlxuICAgICAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC1mZWVkYmFja19fY29tbWVudC10aXRsZVwiXG4gICAgICAgID5cbiAgICAgICAgICBDb21tZW50c1xuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBpZD1cInZmLWNoYXRib3QtZmVlZGJhY2stY29tbWVudFwiXG4gICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwidmYtY2hhdGJvdC1mZWVkYmFjay1jb21tZW50LXRpdGxlXCJcbiAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtZmVlZGJhY2tfX2NvbW1lbnRcIlxuICAgICAgICAgIHJvd3M9XCI0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbW1lbnRcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cblxuICAgICAgICA8IS0tIFN1Ym1pdCBCdXR0b24gLS0+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtZmVlZGJhY2tfX3N1Ym1pdCB2Zi11LXBhZGRpbmctLTIwMFwiIGRhdGEtdmYtanMtZmVlZGJhY2stc3VibWl0XG4gICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0Q2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICBTdWJtaXRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90RmVlZGJhY2tBbmd1bGFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGZlZWRiYWNrX29wdGlvbnM6IEZlZWRiYWNrT3B0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbW1lbnQ6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBmZWVkYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0eXBlOiBzdHJpbmc7IGlkOiBzdHJpbmcgfT4oKTtcbiAgQE91dHB1dCgpIGNvbW1lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgb25GZWVkYmFja0NsaWNrKG9wdGlvbklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZlZWRiYWNrLmVtaXQoeyB0eXBlOiB0aGlzLnR5cGUsIGlkOiBvcHRpb25JZCB9KTtcbiAgfVxuXG4gIG9uQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIG9uU3VibWl0Q2xpY2soKSB7XG4gICAgdGhpcy5zdWJtaXQuZW1pdCgpO1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1mZWVkYmFjay5hbmd1bGFyLm1vZHVsZSc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.module.mjs b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.module.mjs new file mode 100644 index 0000000000..988df04681 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/vf-chatbot-feedback.angular.module.mjs @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotFeedbackAngularComponent } from './vf-chatbot-feedback.angular.component'; +import * as i0 from "@angular/core"; +export class VfChatbotFeedbackAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, declarations: [VfChatbotFeedbackAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotFeedbackAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotFeedbackAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotFeedbackAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1mZWVkYmFjay5hbmd1bGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3QtZmVlZGJhY2suYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3QtZmVlZGJhY2suYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQWM1RixNQUFNLE9BQU8sOEJBQThCOytHQUE5Qiw4QkFBOEI7Z0hBQTlCLDhCQUE4QixpQkFWdkMsaUNBQWlDLGFBR2pDLFlBQVk7WUFDWixXQUFXLGFBR1gsaUNBQWlDO2dIQUd4Qiw4QkFBOEIsWUFQdkMsWUFBWTtZQUNaLFdBQVc7OzRGQU1GLDhCQUE4QjtrQkFaMUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQ0FBaUM7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJzsgXG5pbXBvcnQgeyBWZkNoYXRib3RGZWVkYmFja0FuZ3VsYXJDb21wb25lbnQgfSBmcm9tICcuL3ZmLWNoYXRib3QtZmVlZGJhY2suYW5ndWxhci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBWZkNoYXRib3RGZWVkYmFja0FuZ3VsYXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVmZDaGF0Ym90RmVlZGJhY2tBbmd1bGFyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90RmVlZGJhY2tBbmd1bGFyTW9kdWxlIHsgfVxuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/visual-framework-vf-chatbot-feedback.angular.mjs b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/visual-framework-vf-chatbot-feedback.angular.mjs new file mode 100644 index 0000000000..a6ae211631 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/esm2022/visual-framework-vf-chatbot-feedback.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-feedback.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LWZlZWRiYWNrLmFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LWZlZWRiYWNrLmFuZ3VsYXIvc3JjL2xpYi92aXN1YWwtZnJhbWV3b3JrLXZmLWNoYXRib3QtZmVlZGJhY2suYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1mZWVkYmFjay5hbmd1bGFyLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs new file mode 100644 index 0000000000..cb1114f647 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs @@ -0,0 +1,211 @@ +import * as i0 from '@angular/core'; +import { NgModule, EventEmitter, Component, Input, Output } from '@angular/core'; +import * as i1 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import * as i2 from '@angular/forms'; +import { FormsModule } from '@angular/forms'; + +class VfChatbotFeedbackAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, declarations: [VfChatbotFeedbackAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotFeedbackAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotFeedbackAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotFeedbackAngularComponent + ] + }] + }] }); + +class VfChatbotFeedbackAngularComponent { + constructor(el) { + this.el = el; + this.feedback_options = []; + this.type = ''; + this.comment = ''; + this.feedback = new EventEmitter(); + this.commentChange = new EventEmitter(); + this.close = new EventEmitter(); + this.submit = new EventEmitter(); + } + ngAfterViewInit() { + } + onFeedbackClick(optionId) { + this.feedback.emit({ type: this.type, id: optionId }); + } + onCloseClick() { + this.close.emit(); + } + onSubmitClick() { + this.submit.emit(); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotFeedbackAngularComponent, selector: "vf-chatbot-feedback", inputs: { feedback_options: "feedback_options", type: "type", comment: "comment" }, outputs: { feedback: "feedback", commentChange: "commentChange", close: "close", submit: "submit" }, ngImport: i0, template: ` +
+
+ +
+
+ Tell us more (optional) +
+ +
+ + +
+ +
+ + + + + + + +
+
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotFeedbackAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-feedback', + template: ` +
+
+ +
+
+ Tell us more (optional) +
+ +
+ + +
+ +
+ + + + + + + +
+
+ `, + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { feedback_options: [{ + type: Input + }], type: [{ + type: Input + }], comment: [{ + type: Input + }], feedback: [{ + type: Output + }], commentChange: [{ + type: Output + }], close: [{ + type: Output + }], submit: [{ + type: Output + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotFeedbackAngularComponent, VfChatbotFeedbackAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-feedback.angular.mjs.map diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs.map b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs.map new file mode 100644 index 0000000000..5ea7af62e8 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-feedback.angular.mjs","sources":["../../../projects/vf-chatbot-feedback.angular/src/lib/vf-chatbot-feedback.angular.module.ts","../../../projects/vf-chatbot-feedback.angular/src/lib/vf-chatbot-feedback.angular.component.ts","../../../projects/vf-chatbot-feedback.angular/src/lib/visual-framework-vf-chatbot-feedback.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotFeedbackAngularComponent } from './vf-chatbot-feedback.angular.component';\n\n@NgModule({\n declarations: [\n VfChatbotFeedbackAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n VfChatbotFeedbackAngularComponent\n ]\n})\nexport class VfChatbotFeedbackAngularModule { }\n","import { Component, ElementRef, EventEmitter, Input, Output, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\ninterface FeedbackOption {\n id: string;\n label: string;\n}\n\n@Component({\n selector: 'vf-chatbot-feedback',\n template: `\n \n
\n \n
\n
\n Tell us more (optional)\n
\n \n \n dismiss banner\n \n \n \n
\n\n \n
\n \n {{ option.label }}\n \n
\n\n \n \n Comments\n \n \n\n \n \n Submit\n \n
\n \n `,\n})\nexport class VfChatbotFeedbackAngularComponent implements AfterViewInit {\n @Input() feedback_options: FeedbackOption[] = [];\n @Input() type: string = '';\n @Input() comment: string = '';\n\n @Output() feedback = new EventEmitter<{ type: string; id: string }>();\n @Output() commentChange = new EventEmitter();\n @Output() close = new EventEmitter();\n @Output() submit = new EventEmitter();\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n }\n\n onFeedbackClick(optionId: string) {\n this.feedback.emit({ type: this.type, id: optionId });\n }\n\n onCloseClick() {\n this.close.emit();\n }\n\n onSubmitClick() {\n this.submit.emit();\n }\n}\n\nexport * from './vf-chatbot-feedback.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-feedback.angular.component';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/index.d.ts b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/index.d.ts new file mode 100644 index 0000000000..5669c3ebe0 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-feedback.angular.component'; diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/package.json b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/package.json new file mode 100644 index 0000000000..d3dc399493 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-feedback.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-feedback.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-feedback.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-feedback.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.component.d.ts b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.component.d.ts new file mode 100644 index 0000000000..228991e988 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.component.d.ts @@ -0,0 +1,27 @@ +import { ElementRef, EventEmitter, AfterViewInit } from '@angular/core'; +import * as i0 from "@angular/core"; +interface FeedbackOption { + id: string; + label: string; +} +export declare class VfChatbotFeedbackAngularComponent implements AfterViewInit { + private el; + feedback_options: FeedbackOption[]; + type: string; + comment: string; + feedback: EventEmitter<{ + type: string; + id: string; + }>; + commentChange: EventEmitter; + close: EventEmitter; + submit: EventEmitter; + constructor(el: ElementRef); + ngAfterViewInit(): void; + onFeedbackClick(optionId: string): void; + onCloseClick(): void; + onSubmitClick(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-feedback.angular.module'; diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.module.d.ts b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.module.d.ts new file mode 100644 index 0000000000..39af0bfc60 --- /dev/null +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.angular/vf-chatbot-feedback.angular.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-feedback.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +export declare class VfChatbotFeedbackAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-feedback/vf-chatbot-feedback.config.yml b/components/vf-chatbot-feedback/vf-chatbot-feedback.config.yml index decc430a97..ed6f147454 100644 --- a/components/vf-chatbot-feedback/vf-chatbot-feedback.config.yml +++ b/components/vf-chatbot-feedback/vf-chatbot-feedback.config.yml @@ -1,6 +1,6 @@ title: Chatbot Feedback label: Chatbot Feedback -status: beta +status: live preview: '@preview' hidden: true context: diff --git a/components/vf-chatbot-modal/CHANGELOG.md b/components/vf-chatbot-modal/CHANGELOG.md index fb54544c38..be68873da4 100644 --- a/components/vf-chatbot-modal/CHANGELOG.md +++ b/components/vf-chatbot-modal/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.1 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0 * Version bump diff --git a/components/vf-chatbot-modal/README.md b/components/vf-chatbot-modal/README.md index cb708064c2..61130c1f07 100644 --- a/components/vf-chatbot-modal/README.md +++ b/components/vf-chatbot-modal/README.md @@ -83,7 +83,7 @@ Texts shown in the examples are placeholder content. Please review and update al ### Adding the Floating Action Button (FAB) -We recommend using only one Floating Action Button (FAB) per screen. If a page already includes a FAB, consider integrating its functionality into the chatbot or prioritising the most important action for the user’s journey on that page. +We recommend using only one Floating Action Button (FAB) per screen. If a page already includes a FAB, consider integrating its functionality into the chatbot or prioritising the most important action for the user’s journey on that page. Place the FAB 32 pixels from the bottom and 32 pixels from the right edge of the screen. This keeps the button in a consistent and expected position across different pages. If there’s a banner on the screen, position the FAB 32 pixels above the top edge of the banner instead. This helps keep the FAB visible and avoids overlap. @@ -118,7 +118,7 @@ window.addEventListener("load", function() { initVFChatbot(config); }); ``` -where config is the configuration object with different options as described below +where config is the configuration object with different options as described below #### Core Configuration Options @@ -207,11 +207,17 @@ const config = { { id: "poorformat", label: "Poorly formatted" } ] }, - enable_session_persistence: true, // If true, the chatbot will remember the conversation and state across page reloads or navigation (using sessionStorage) + enable_session_persistence: true, // If true, the chatbot will remember the conversation and state across page reloads or navigation + persistence_storage: "sessionStorage", // "sessionStorage" (tab-scoped) or "localStorage" (shared across tabs) restore_minimized_state: true // If true, restore minimized state after navigation }; ``` +When `enable_session_persistence` is true, you can choose where state is stored: + +- `sessionStorage`: keeps chat state only for the current tab/window. +- `localStorage`: shares chat state across tabs on the same origin. + #### Service Selector Configuration The chatbot includes an integrated selector component which can be configured to present different selection options to user: @@ -223,18 +229,18 @@ const selectorConfig = { // Multi-selection settings multiSelect: true, maxMultiSelect: 3, - + // Search functionality showSearch: true, showSearchThreshold: 5, - + // "All Services" option showAllServices: true, showAllServicesSelected: true, - + // Data source routes: "assets/vf-chatbot-selector-services.json", - + // UI labels and logo placeholder: "Search", title: "Available Services", @@ -256,7 +262,7 @@ Please note that if you want to opt for a single selection option version of the "title": "Model 1 title" }, { - "id": "model-2", + "id": "model-2", "title": "Model 2 title" } ] @@ -267,14 +273,14 @@ Please note that if you want to opt for a single selection option version of the #### Built-in Event Handlers -Chatbot comes with a provision to allow custom event handlers. These handlers can be defined in your code to handle specific actions for different events triggered during interaction with chatbot. +Chatbot comes with a provision to allow custom event handlers. These handlers can be defined in your code to handle specific actions for different events triggered during interaction with chatbot. Configure custom handlers for chatbot events: ```javascript const config = { handlers: { on_message_send: "handleMessageSend", - on_response_receive: "handleResponseReceive", + on_response_receive: "handleResponseReceive", on_feedback_submit: "handleFeedbackSubmit", on_suggestion_click: "handleSuggestionClick", on_error: "handleError", @@ -504,7 +510,7 @@ const config = { "response": "Here's the information...", "sources": [ { - "title": "Official Documentation", + "title": "Official Documentation", "url": "https://docs.example.com", "description": "Complete guide to the platform" } @@ -537,13 +543,55 @@ const config = { "action_url": "https://example.com/tutorial" }, { - "action_text": "Contact Support", + "action_text": "Contact Support", "action_url": "mailto:support@example.com" } ] } ``` +### Angular + +This component now has experimental Angular support. + +1. Install `yarn add @visual-framework/vf-chatbot @visual-framework/vf-chatbot-modal` +2. Import in your app module + ``` + import { VfChatbotAngularModule } from '@visual-framework/vf-chatbot/vf-chatbot.angular'; + + @NgModule({ + imports: [VfChatbotAngularModule, YourOtherModules], + ... + }) + ``` +3. JS assets inclusion + * Copy required JS files to your Angular `src/assets` folder, keeping these paths: + - `src/assets/vf-chatbot/vf-chatbot.js` + - `src/assets/vf-chatbot-modal/vf-chatbot-modal.js` + * In `angular.json`, add these file references in `scripts: []`. + * Rerun the project if already running. +4. Can be used as + ``` + + + // component.ts + chatbotConfig = { + type: 'modal' + // ...other options from the config examples above + }; + ``` +5. Add below to your `styles.scss` + ``` + $vf-font-plex-mono-prefix: '~@visual-framework/vf-font-plex-mono/assets'; + $vf-font-plex-sans-prefix: '~@visual-framework/vf-font-plex-sans/assets'; + + @import '~@visual-framework/vf-sass-starter/index.scss'; + @import '~@visual-framework/vf-link/vf-link.scss'; + @import '~@visual-framework/vf-chatbot/vf-chatbot.scss'; + @import '~@visual-framework/vf-chatbot-modal/index.scss'; + ``` + You should also install [vf-sass-starter](https://stable.visual-framework.dev/components/vf-sass-starter) for the styles. + ### React This component now has React support which has been tested on react version 18.2.0 diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/.npmignore b/components/vf-chatbot-modal/vf-chatbot-modal.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/README.md b/components/vf-chatbot-modal/vf-chatbot-modal.angular/README.md new file mode 100644 index 0000000000..2994d5157b --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotModalAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-modal.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-modal.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.component.mjs b/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.component.mjs new file mode 100644 index 0000000000..e7223eef08 --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.component.mjs @@ -0,0 +1,376 @@ +import { CommonModule } from '@angular/common'; +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular'; +import { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular'; +import { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular'; +import { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +import * as i2 from "vf-chatbot-dialog.angular"; +import * as i3 from "vf-chatbot-prompt.angular"; +import * as i4 from "vf-chatbot-selector.angular"; +import * as i5 from "vf-chatbot-welcome.angular"; +export class VfChatbotModalAngularComponent { + constructor() { + this.config = { type: 'modal' }; + this.messages = []; + this.sources = []; + this.prompts = []; + this.qaData = []; + this.isOpen = false; + this.dialogTitle = 'Close chat and delete conversation?'; + this.dialogMessage = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.'; + this.dialogCancelLabel = 'Keep chat open'; + this.dialogConfirmLabel = 'Close and delete'; + this.close = new EventEmitter(); + this.minimize = new EventEmitter(); + } + get configJson() { + return JSON.stringify(this.config || {}); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotModalAngularComponent, isStandalone: true, selector: "vf-chatbot-modal", inputs: { config: "config", messages: "messages", sources: "sources", prompts: "prompts", qaData: "qaData", isOpen: "isOpen" }, outputs: { close: "close", minimize: "minimize" }, ngImport: i0, template: ` + +`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: VfChatbotDialogAngularModule }, { kind: "component", type: i2.VfChatbotDialogAngularComponent, selector: "vf-chatbot-dialog", inputs: ["title", "message", "cancelLabel", "confirmLabel"] }, { kind: "ngmodule", type: VfChatbotPromptAngularModule }, { kind: "component", type: i3.VfChatbotPromptAngularComponent, selector: "vf-chatbot-prompt", inputs: ["type", "isLoading", "avatar", "content", "sources", "prompts", "allowFeedback"] }, { kind: "ngmodule", type: VfChatbotSelectorAngularModule }, { kind: "component", type: i4.VfChatbotSelectorAngularComponent, selector: "vf-chatbot-selector", inputs: ["chatbotRoutes", "context"] }, { kind: "ngmodule", type: VfChatbotWelcomeAngularModule }, { kind: "component", type: i5.VfChatbotWelcomeAngularComponent, selector: "vf-chatbot-welcome", inputs: ["qaData", "welcome_logo", "welcome_logo_url", "welcome_logo_alt", "welcome_title", "welcome_message", "welcome_suggestions_title", "enable_welcome_suggestions", "welcome_max_suggestions", "enable_qa_data_loading", "enable_predefined_qa", "enable_fallback_responses", "qa_data_url"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-modal', + standalone: true, + imports: [ + CommonModule, + VfChatbotDialogAngularModule, + VfChatbotPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule + ], + template: ` + +` + }] + }], propDecorators: { config: [{ + type: Input + }], messages: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], qaData: [{ + type: Input + }], isOpen: [{ + type: Input + }], close: [{ + type: Output + }], minimize: [{ + type: Output + }] } }); +export * from './vf-chatbot-modal.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1tb2RhbC5hbmd1bGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3QtbW9kYWwuYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3QtbW9kYWwuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFpTjNFLE1BQU0sT0FBTyw4QkFBOEI7SUF2SzNDO1FBd0tXLFdBQU0sR0FBeUIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDakQsYUFBUSxHQUFpRSxFQUFFLENBQUM7UUFDNUUsWUFBTyxHQUFjLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQWMsRUFBRSxDQUFDO1FBQ3hCLFdBQU0sR0FBYyxFQUFFLENBQUM7UUFDdkIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUV4QixnQkFBVyxHQUFHLHFDQUFxQyxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsNkdBQTZHLENBQUM7UUFDOUgsc0JBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDckMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFFOUIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLL0M7SUFIQyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQWxCVSw4QkFBOEI7bUdBQTlCLDhCQUE4QiwrUEE3Si9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTJKWCwyREFqS0csWUFBWSw2VkFDWiw0QkFBNEIsMkxBQzVCLDRCQUE0Qix5TkFDNUIsOEJBQThCLHdLQUM5Qiw2QkFBNkI7OzRGQStKcEIsOEJBQThCO2tCQXZLMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLDhCQUE4Qjt3QkFDOUIsNkJBQTZCO3FCQUM5QjtvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMkpYO2lCQUNBOzhCQUVVLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFPSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTs7QUFPVCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWZkNoYXRib3REaWFsb2dBbmd1bGFyTW9kdWxlIH0gZnJvbSAndmYtY2hhdGJvdC1kaWFsb2cuYW5ndWxhcic7XG5pbXBvcnQgeyBWZkNoYXRib3RQcm9tcHRBbmd1bGFyTW9kdWxlIH0gZnJvbSAndmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhcic7XG5pbXBvcnQgeyBWZkNoYXRib3RTZWxlY3RvckFuZ3VsYXJNb2R1bGUgfSBmcm9tICd2Zi1jaGF0Ym90LXNlbGVjdG9yLmFuZ3VsYXInO1xuaW1wb3J0IHsgVmZDaGF0Ym90V2VsY29tZUFuZ3VsYXJNb2R1bGUgfSBmcm9tICd2Zi1jaGF0Ym90LXdlbGNvbWUuYW5ndWxhcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmZDaGF0Ym90TW9kYWxDb25maWcge1xuICB0eXBlPzogJ21vZGFsJyB8ICdzdGFuZGFsb25lJztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHdlbGNvbWVfbG9nbz86IGJvb2xlYW47XG4gIHdlbGNvbWVfbWVzc2FnZT86IHN0cmluZztcbiAgd2VsY29tZV9sb2dvX2FsdD86IHN0cmluZztcbiAgd2VsY29tZV9zdWdnZXN0aW9uc190aXRsZT86IHN0cmluZztcbiAgaW5wdXRfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHdlbGNvbWVfbWF4X3N1Z2dlc3Rpb25zPzogbnVtYmVyO1xuICBkaXNjbGFpbWVyPzogc3RyaW5nO1xuICBmb290bm90ZT86IHN0cmluZztcbiAgaWNvbnM/OiB7XG4gICAgYXNzaXN0YW50X2F2YXRhcj86IHN0cmluZztcbiAgICB1c2VyX2F2YXRhcj86IHN0cmluZztcbiAgICBzZW5kX2J1dHRvbj86IHN0cmluZztcbiAgICBtaW5pbWl6ZT86IHN0cmluZztcbiAgICBjbG9zZT86IHN0cmluZztcbiAgICBtYWluX2xvZ29fdXJsPzogc3RyaW5nO1xuICB9O1xuICBzZWxlY3RvckNvbnRleHQ/OiB1bmtub3duO1xuICBmZWF0dXJlcz86IHtcbiAgICBlbmFibGVfd2VsY29tZT86IGJvb2xlYW47XG4gICAgZW5hYmxlX3dlbGNvbWVfc3VnZ2VzdGlvbnM/OiBib29sZWFuO1xuICAgIGVuYWJsZV9xYV9kYXRhX2xvYWRpbmc/OiBib29sZWFuO1xuICAgIGVuYWJsZV9wcmVkZWZpbmVkX3FhPzogYm9vbGVhbjtcbiAgICBlbmFibGVfZmFsbGJhY2tfcmVzcG9uc2VzPzogYm9vbGVhbjtcbiAgICBlbmFibGVfZmVlZGJhY2s/OiBib29sZWFuO1xuICAgIGVuYWJsZV9kaXNjbGFpbWVyPzogYm9vbGVhbjtcbiAgICBlbmFibGVfdHlwaW5nX2luZGljYXRvcj86IGJvb2xlYW47XG4gIH07XG4gIGJlaGF2aW9yPzoge1xuICAgIHNob3dfc2Nyb2xsYmFyPzogYm9vbGVhbjtcbiAgICBhdXRvX3Njcm9sbD86IGJvb2xlYW47XG4gIH07XG4gIGFwaT86IHtcbiAgICBxYV9kYXRhX3VybD86IHN0cmluZztcbiAgfTtcbiAgb25EaXNtaXNzRGlzY2xhaW1lcj86ICgpID0+IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZmLWNoYXRib3QtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFZmQ2hhdGJvdERpYWxvZ0FuZ3VsYXJNb2R1bGUsXG4gICAgVmZDaGF0Ym90UHJvbXB0QW5ndWxhck1vZHVsZSxcbiAgICBWZkNoYXRib3RTZWxlY3RvckFuZ3VsYXJNb2R1bGUsXG4gICAgVmZDaGF0Ym90V2VsY29tZUFuZ3VsYXJNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbjxzZWN0aW9uXG4gIGNsYXNzPVwidmYtY29udGVudCB2Zi1jaGF0Ym90LW1vZGFsLWNvbnRhaW5lclwiXG4gIGRhdGEtdmYtanMtY2hhdGJvdC1tb2RhbC1jb250YWluZXJcbiAgW2F0dHIuZGF0YS12Zi1jaGF0Ym90LWNvbmZpZ109XCJjb25maWdKc29uXCJcbiAgW2NsYXNzLnZmLWNoYXRib3QtbW9kYWwtY29udGFpbmVyLS1hY3RpdmVdPVwiaXNPcGVuXCJcbiAgW2NsYXNzLnZmLWNoYXRib3QtbW9kYWwtY29udGFpbmVyLS1pbmFjdGl2ZV09XCIhaXNPcGVuXCJcbiAgW2F0dHIuYXJpYS1tb2RhbF09XCJpc09wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCIoY29uZmlnPy50aXRsZSB8fCAnQUkgQXNzaXN0YW50JykgKyAnIGNoYXRib3QnXCJcbiAgcm9sZT1cImRpYWxvZ1wiXG4+XG4gIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19oZWFkZXIgdmYtdS1tYXJnaW5fX2JvdHRvbS0tNDAwXCI+XG4gICAgPGRpdiBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX2hlYWRlci1sZWZ0XCI+XG4gICAgICA8dmYtY2hhdGJvdC1zZWxlY3RvclxuICAgICAgICAqbmdJZj1cImNvbmZpZz8uc2VsZWN0b3JDb250ZXh0XCJcbiAgICAgICAgW2NvbnRleHRdPVwiY29uZmlnLnNlbGVjdG9yQ29udGV4dFwiXG4gICAgICA+PC92Zi1jaGF0Ym90LXNlbGVjdG9yPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWNvbmZpZz8uc2VsZWN0b3JDb250ZXh0XCIgY2xhc3M9XCJ2Zi1jaGF0Ym90LXNlbGVjdG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LXNlbGVjdG9yX190aXRsZVwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnPy5pY29ucz8ubWFpbl9sb2dvX3VybFwiXG4gICAgICAgICAgICBbc3JjXT1cImNvbmZpZz8uaWNvbnM/Lm1haW5fbG9nb191cmxcIlxuICAgICAgICAgICAgW2FsdF09XCJjb25maWc/LnRpdGxlIHx8ICdBSSBBc3Npc3RhbnQnXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LXNlbGVjdG9yX190aXRsZS1jb250ZW50XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZmLWNoYXRib3Qtc2VsZWN0b3JfX21haW4tdGV4dFwiPlxuICAgICAgICAgICAgICB7eyBjb25maWc/LnRpdGxlIHx8ICdBSSBBc3Npc3RhbnQnIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1tb2RhbF9faGVhZGVyLXJpZ2h0XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX21pbmltaXplXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIk1pbmltaXplIGNoYXRib3RcIlxuICAgICAgICBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWwtbWluaW1pemVcbiAgICAgICAgKGNsaWNrKT1cIm1pbmltaXplLmVtaXQoKVwiXG4gICAgICA+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJjb25maWc/Lmljb25zPy5taW5pbWl6ZVwiIFtzcmNdPVwiY29uZmlnPy5pY29ucz8ubWluaW1pemVcIiBhbHQ9XCJcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX2Nsb3NlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGNoYXRib3RcIlxuICAgICAgICBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWwtY2xvc2VcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlLmVtaXQoKVwiXG4gICAgICA+XG4gICAgICAgIDxpbWcgKm5nSWY9XCJjb25maWc/Lmljb25zPy5jbG9zZVwiIFtzcmNdPVwiY29uZmlnPy5pY29ucz8uY2xvc2VcIiBhbHQ9XCJcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsIHwgdmYtdS1iYWNrZ3JvdW5kLWNvbG9yLXVpLS1ncmV5LS1saWdodFwiIGRhdGEtdmYtanMtY2hhdGJvdC1tb2RhbD5cbiAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1tb2RhbF9fY29udGVudFwiIGRhdGEtdmYtanMtY2hhdGJvdC1tb2RhbC1jb250ZW50PlxuICAgICAgPHZmLWNoYXRib3Qtd2VsY29tZVxuICAgICAgICAqbmdJZj1cImNvbmZpZz8uZmVhdHVyZXM/LmVuYWJsZV93ZWxjb21lXCJcbiAgICAgICAgW3FhRGF0YV09XCJxYURhdGFcIlxuICAgICAgICBbd2VsY29tZV9sb2dvXT1cImNvbmZpZz8ud2VsY29tZV9sb2dvID8/IGZhbHNlXCJcbiAgICAgICAgW3dlbGNvbWVfbG9nb191cmxdPVwiY29uZmlnPy5pY29ucz8ubWFpbl9sb2dvX3VybCA/PyAnJ1wiXG4gICAgICAgIFt3ZWxjb21lX2xvZ29fYWx0XT1cImNvbmZpZz8ud2VsY29tZV9sb2dvX2FsdCA/PyAnQUkgQXNzaXN0YW50J1wiXG4gICAgICAgIFt3ZWxjb21lX3RpdGxlXT1cImNvbmZpZz8udGl0bGUgPz8gJydcIlxuICAgICAgICBbd2VsY29tZV9tZXNzYWdlXT1cImNvbmZpZz8ud2VsY29tZV9tZXNzYWdlID8/ICcnXCJcbiAgICAgICAgW3dlbGNvbWVfc3VnZ2VzdGlvbnNfdGl0bGVdPVwiY29uZmlnPy53ZWxjb21lX3N1Z2dlc3Rpb25zX3RpdGxlID8/ICcnXCJcbiAgICAgICAgW2VuYWJsZV93ZWxjb21lX3N1Z2dlc3Rpb25zXT1cImNvbmZpZz8uZmVhdHVyZXM/LmVuYWJsZV93ZWxjb21lX3N1Z2dlc3Rpb25zID8/IGZhbHNlXCJcbiAgICAgICAgW3dlbGNvbWVfbWF4X3N1Z2dlc3Rpb25zXT1cImNvbmZpZz8ud2VsY29tZV9tYXhfc3VnZ2VzdGlvbnMgPz8gNFwiXG4gICAgICAgIFtxYV9kYXRhX3VybF09XCJjb25maWc/LmFwaT8ucWFfZGF0YV91cmwgPz8gJydcIlxuICAgICAgICBbZW5hYmxlX3FhX2RhdGFfbG9hZGluZ109XCJjb25maWc/LmZlYXR1cmVzPy5lbmFibGVfcWFfZGF0YV9sb2FkaW5nID8/IHRydWVcIlxuICAgICAgICBbZW5hYmxlX3ByZWRlZmluZWRfcWFdPVwiY29uZmlnPy5mZWF0dXJlcz8uZW5hYmxlX3ByZWRlZmluZWRfcWEgPz8gdHJ1ZVwiXG4gICAgICAgIFtlbmFibGVfZmFsbGJhY2tfcmVzcG9uc2VzXT1cImNvbmZpZz8uZmVhdHVyZXM/LmVuYWJsZV9mYWxsYmFja19yZXNwb25zZXMgPz8gdHJ1ZVwiXG4gICAgICA+PC92Zi1jaGF0Ym90LXdlbGNvbWU+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19tZXNzYWdlcyB2Zi11LW1hcmdpbl9fYm90dG9tLS00MDBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3ZmLWNoYXRib3QtbW9kYWxfX21lc3NhZ2VzLW5vLXNjcm9sbGJhcic6IGNvbmZpZz8uYmVoYXZpb3I/LnNob3dfc2Nyb2xsYmFyID09PSBmYWxzZVxuICAgICAgICB9XCJcbiAgICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LW1vZGFsLW1lc3NhZ2VzXG4gICAgICAgIFthdHRyLmRhdGEtYXV0by1zY3JvbGxdPVwiY29uZmlnPy5iZWhhdmlvcj8uYXV0b19zY3JvbGxcIlxuICAgICAgICByb2xlPVwicmVnaW9uXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNoYXQgbWVzc2FnZXNcIlxuICAgICAgPlxuICAgICAgICA8dmYtY2hhdGJvdC1wcm9tcHRcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbXNnIG9mIG1lc3NhZ2VzXCJcbiAgICAgICAgICBbdHlwZV09XCJtc2cudHlwZSA/PyAnJ1wiXG4gICAgICAgICAgW2F2YXRhcl09XCJtc2cuYXZhdGFyXCJcbiAgICAgICAgICBbY29udGVudF09XCJtc2cuY29udGVudCA/PyAnJ1wiXG4gICAgICAgICAgW3NvdXJjZXNdPVwic291cmNlc1wiXG4gICAgICAgICAgW3Byb21wdHNdPVwicHJvbXB0c1wiXG4gICAgICAgICAgW2FsbG93RmVlZGJhY2tdPVwiY29uZmlnPy5mZWF0dXJlcz8uZW5hYmxlX2ZlZWRiYWNrID8/IHRydWVcIlxuICAgICAgICA+PC92Zi1jaGF0Ym90LXByb21wdD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29uZmlnPy5kaXNjbGFpbWVyICYmIGNvbmZpZz8uZmVhdHVyZXM/LmVuYWJsZV9kaXNjbGFpbWVyXCJcbiAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19kaXNjbGFpbWVyXCJcbiAgICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LW1vZGFsLWRpc2NsYWltZXJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZmLWJhbm5lciB2Zi1iYW5uZXItLWFsZXJ0IHZmLWJhbm5lci0taW5mb1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1iYW5uZXJfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidmYtYmFubmVyX190ZXh0XCIgW2lubmVySFRNTF09XCJjb25maWcuZGlzY2xhaW1lclwiPjwvcD5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJjbG9zZSBub3RpZmljYXRpb24gYmFubmVyXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2Zi1idXR0b24gdmYtYnV0dG9uLS1pY29uIHZmLWJ1dHRvbi0tZGlzbWlzcyB8IHZmLWJhbm5lcl9fYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbmZpZz8ub25EaXNtaXNzRGlzY2xhaW1lcj8uKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgPHRpdGxlPmRpc21pc3MgYmFubmVyPC90aXRsZT5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0LjMsMTIuMTc5YS4yNS4yNSwwLDAsMSwwLS4zNTRsOS4yNjMtOS4yNjJBMS41LjUsMCwwLDAsMjEuNDM5LjQ0MkwxMi4xNzcsOS43YS4yNS4yNSwwLDAsMS0uMzU0LDBMMi41NjEuNDQyQTEuNSwxLjUsMCwwLDAsLjQzOSwyLjU2M0w5LjcsMTEuODI1YS4yNS4yNSwwLDAsMSwwLC4zNTRMLjQzOSwyMS40NDJhMS41LDEuNSwwLDAsMCwyLjEyMiwyLjEyMUwxMS44MjMsMTQuM2EuMjUuMjUsMCwwLDEsLjM1NCwwbDkuMjYyLDkuMjYzYTEuNSwxLjUsMCwwLDAsMi4xMjItMi4xMjFaXCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19pbnB1dC1jb250YWluZXJcIiByb2xlPVwicmVnaW9uXCIgYXJpYS1sYWJlbD1cIkNoYXQgbWVzc2FnZSBpbnB1dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX2lucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidmYtdS1zci1vbmx5XCIgaWQ9XCJ2Zi1jaGF0Ym90LW1vZGFsLWlucHV0LWxhYmVsXCIgZm9yPVwidmYtY2hhdGJvdC1tb2RhbC1pbnB1dFwiPkFzayBtZTwvbGFiZWw+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGlkPVwidmYtY2hhdGJvdC1tb2RhbC1pbnB1dFwiXG4gICAgICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LW1vZGFsLWlucHV0XG4gICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwidmYtY2hhdGJvdC1tb2RhbC1pbnB1dC1sYWJlbFwiXG4gICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19pbnB1dCB2Zi1mb3JtX190ZXh0YXJlYSB2Zi11LXBhZGRpbmdfX2xlZnQtLTQwMFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZz8uaW5wdXRfcGxhY2Vob2xkZXJcIlxuICAgICAgICAgIHJvd3M9XCIxXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19zZW5kLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJTZW5kIG1lc3NhZ2VcIiBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWwtc2VuZCB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cImNvbmZpZz8uaWNvbnM/LnNlbmRfYnV0dG9uXCIgYWx0PVwiU2VuZFwiIC8+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb25maWc/LmZvb3Rub3RlXCIgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19mb290bm90ZSB2Zi11LW1hcmdpbl9fdG9wLS0yMDAgdmYtdS1tYXJnaW5fX2JvdHRvbS0tMjAwXCIgZGF0YS12Zi1qcy1jaGF0Ym90LW1vZGFsLWZvb3Rub3RlIFtpbm5lckhUTUxdPVwiY29uZmlnLmZvb3Rub3RlXCI+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8dmYtY2hhdGJvdC1kaWFsb2dcbiAgICAgIFt0aXRsZV09XCJkaWFsb2dUaXRsZVwiXG4gICAgICBbbWVzc2FnZV09XCJkaWFsb2dNZXNzYWdlXCJcbiAgICAgIFtjYW5jZWxMYWJlbF09XCJkaWFsb2dDYW5jZWxMYWJlbFwiXG4gICAgICBbY29uZmlybUxhYmVsXT1cImRpYWxvZ0NvbmZpcm1MYWJlbFwiXG4gICAgPjwvdmYtY2hhdGJvdC1kaWFsb2c+XG5cbiAgICA8dGVtcGxhdGUgaWQ9XCJ1c2VyLW1lc3NhZ2UtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgIDx0ZW1wbGF0ZSBpZD1cImFzc2lzdGFudC1tZXNzYWdlLXRlbXBsYXRlXCI+PC90ZW1wbGF0ZT5cbiAgICA8dGVtcGxhdGUgaWQ9XCJzaW5nbGUtYWN0aW9uLXByb21wdC10ZW1wbGF0ZVwiPjwvdGVtcGxhdGU+XG4gICAgPHRlbXBsYXRlIGlkPVwibG9hZGluZy1pbmRpY2F0b3ItdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgIDx0ZW1wbGF0ZSBpZD1cImFjdGlvbi1wcm9tcHRzLXRlbXBsYXRlXCI+PC90ZW1wbGF0ZT5cbiAgICA8dGVtcGxhdGUgaWQ9XCJmZWVkYmFjay1wb3NpdGl2ZS10ZW1wbGF0ZVwiPjwvdGVtcGxhdGU+XG4gICAgPHRlbXBsYXRlIGlkPVwiZmVlZGJhY2stbmVnYXRpdmUtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbmBcbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90TW9kYWxBbmd1bGFyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29uZmlnOiBWZkNoYXRib3RNb2RhbENvbmZpZyA9IHsgdHlwZTogJ21vZGFsJyB9O1xuICBASW5wdXQoKSBtZXNzYWdlczogQXJyYXk8eyB0eXBlPzogc3RyaW5nOyBhdmF0YXI/OiB1bmtub3duOyBjb250ZW50Pzogc3RyaW5nIH0+ID0gW107XG4gIEBJbnB1dCgpIHNvdXJjZXM6IHVua25vd25bXSA9IFtdO1xuICBASW5wdXQoKSBwcm9tcHRzOiB1bmtub3duW10gPSBbXTtcbiAgQElucHV0KCkgcWFEYXRhOiB1bmtub3duW10gPSBbXTtcbiAgQElucHV0KCkgaXNPcGVuID0gZmFsc2U7XG5cbiAgZGlhbG9nVGl0bGUgPSAnQ2xvc2UgY2hhdCBhbmQgZGVsZXRlIGNvbnZlcnNhdGlvbj8nO1xuICBkaWFsb2dNZXNzYWdlID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjbG9zZSB0aGUgY2hhdD8gPGJyPllvdXIgY3VycmVudCBjb252ZXJzYXRpb24gaGlzdG9yeSB3aWxsIGJlIHBlcm1hbmVudGx5IGRlbGV0ZWQuJztcbiAgZGlhbG9nQ2FuY2VsTGFiZWwgPSAnS2VlcCBjaGF0IG9wZW4nO1xuICBkaWFsb2dDb25maXJtTGFiZWwgPSAnQ2xvc2UgYW5kIGRlbGV0ZSc7XG5cbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbWluaW1pemUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZ2V0IGNvbmZpZ0pzb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWcgfHwge30pO1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1tb2RhbC5hbmd1bGFyLm1vZHVsZSc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.module.mjs b/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.module.mjs new file mode 100644 index 0000000000..70635c579f --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/vf-chatbot-modal.angular.module.mjs @@ -0,0 +1,52 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotModalAngularComponent } from './vf-chatbot-modal.angular.component'; +import { VfChatbotActionPromptAngularModule } from 'vf-chatbot-action-prompt.angular'; +import { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular'; +import { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular'; +import { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular'; +import { VfChatbotFeedbackAngularModule } from 'vf-chatbot-feedback.angular'; +import { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular'; +import * as i0 from "@angular/core"; +export class VfChatbotModalAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotModalAngularComponent, + VfChatbotActionPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotFeedbackAngularModule, + VfChatbotDialogAngularModule], exports: [VfChatbotModalAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotModalAngularComponent, + VfChatbotActionPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotFeedbackAngularModule, + VfChatbotDialogAngularModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, decorators: [{ + type: NgModule, + args: [{ + imports: [ + CommonModule, + FormsModule, + VfChatbotModalAngularComponent, + VfChatbotActionPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotFeedbackAngularModule, + VfChatbotDialogAngularModule + ], + exports: [ + VfChatbotModalAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1tb2RhbC5hbmd1bGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3QtbW9kYWwuYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3QtbW9kYWwuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQWtCekUsTUFBTSxPQUFPLDJCQUEyQjsrR0FBM0IsMkJBQTJCO2dIQUEzQiwyQkFBMkIsWUFkcEMsWUFBWTtZQUNaLFdBQVc7WUFDWCw4QkFBOEI7WUFDOUIsa0NBQWtDO1lBQ2xDLDhCQUE4QjtZQUM5Qiw2QkFBNkI7WUFDN0IsNEJBQTRCO1lBQzVCLDhCQUE4QjtZQUM5Qiw0QkFBNEIsYUFHNUIsOEJBQThCO2dIQUdyQiwyQkFBMkIsWUFkcEMsWUFBWTtZQUNaLFdBQVc7WUFDWCw4QkFBOEI7WUFDOUIsa0NBQWtDO1lBQ2xDLDhCQUE4QjtZQUM5Qiw2QkFBNkI7WUFDN0IsNEJBQTRCO1lBQzVCLDhCQUE4QjtZQUM5Qiw0QkFBNEI7OzRGQU1uQiwyQkFBMkI7a0JBaEJ2QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsOEJBQThCO3dCQUM5QixrQ0FBa0M7d0JBQ2xDLDhCQUE4Qjt3QkFDOUIsNkJBQTZCO3dCQUM3Qiw0QkFBNEI7d0JBQzVCLDhCQUE4Qjt3QkFDOUIsNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsOEJBQThCO3FCQUMvQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7IFxuaW1wb3J0IHsgVmZDaGF0Ym90TW9kYWxBbmd1bGFyQ29tcG9uZW50IH0gZnJvbSAnLi92Zi1jaGF0Ym90LW1vZGFsLmFuZ3VsYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFZmQ2hhdGJvdEFjdGlvblByb21wdEFuZ3VsYXJNb2R1bGUgfSBmcm9tICd2Zi1jaGF0Ym90LWFjdGlvbi1wcm9tcHQuYW5ndWxhcic7XG5pbXBvcnQgeyBWZkNoYXRib3RTZWxlY3RvckFuZ3VsYXJNb2R1bGUgfSBmcm9tICd2Zi1jaGF0Ym90LXNlbGVjdG9yLmFuZ3VsYXInO1xuaW1wb3J0IHsgVmZDaGF0Ym90V2VsY29tZUFuZ3VsYXJNb2R1bGUgfSBmcm9tICd2Zi1jaGF0Ym90LXdlbGNvbWUuYW5ndWxhcic7XG5pbXBvcnQgeyBWZkNoYXRib3RQcm9tcHRBbmd1bGFyTW9kdWxlIH0gZnJvbSAndmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhcic7XG5pbXBvcnQgeyBWZkNoYXRib3RGZWVkYmFja0FuZ3VsYXJNb2R1bGUgfSBmcm9tICd2Zi1jaGF0Ym90LWZlZWRiYWNrLmFuZ3VsYXInO1xuaW1wb3J0IHsgVmZDaGF0Ym90RGlhbG9nQW5ndWxhck1vZHVsZSB9IGZyb20gJ3ZmLWNoYXRib3QtZGlhbG9nLmFuZ3VsYXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFZmQ2hhdGJvdE1vZGFsQW5ndWxhckNvbXBvbmVudCxcbiAgICBWZkNoYXRib3RBY3Rpb25Qcm9tcHRBbmd1bGFyTW9kdWxlLFxuICAgIFZmQ2hhdGJvdFNlbGVjdG9yQW5ndWxhck1vZHVsZSxcbiAgICBWZkNoYXRib3RXZWxjb21lQW5ndWxhck1vZHVsZSxcbiAgICBWZkNoYXRib3RQcm9tcHRBbmd1bGFyTW9kdWxlLFxuICAgIFZmQ2hhdGJvdEZlZWRiYWNrQW5ndWxhck1vZHVsZSxcbiAgICBWZkNoYXRib3REaWFsb2dBbmd1bGFyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBWZkNoYXRib3RNb2RhbEFuZ3VsYXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBWZkNoYXRib3RNb2RhbEFuZ3VsYXJNb2R1bGUgeyB9XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/visual-framework-vf-chatbot-modal.angular.mjs b/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/visual-framework-vf-chatbot-modal.angular.mjs new file mode 100644 index 0000000000..353ab84f12 --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/esm2022/visual-framework-vf-chatbot-modal.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-modal.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LW1vZGFsLmFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LW1vZGFsLmFuZ3VsYXIvc3JjL2xpYi92aXN1YWwtZnJhbWV3b3JrLXZmLWNoYXRib3QtbW9kYWwuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1tb2RhbC5hbmd1bGFyLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs b/components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs new file mode 100644 index 0000000000..d0a5dde35a --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs @@ -0,0 +1,426 @@ +import * as i1 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import * as i0 from '@angular/core'; +import { NgModule, EventEmitter, Component, Input, Output } from '@angular/core'; +import * as i2 from 'vf-chatbot-dialog.angular'; +import { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular'; +import * as i3 from 'vf-chatbot-prompt.angular'; +import { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular'; +import * as i4 from 'vf-chatbot-selector.angular'; +import { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular'; +import * as i5 from 'vf-chatbot-welcome.angular'; +import { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotActionPromptAngularModule } from 'vf-chatbot-action-prompt.angular'; +import { VfChatbotFeedbackAngularModule } from 'vf-chatbot-feedback.angular'; + +class VfChatbotModalAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotModalAngularComponent, + VfChatbotActionPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotFeedbackAngularModule, + VfChatbotDialogAngularModule], exports: [VfChatbotModalAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotModalAngularComponent, + VfChatbotActionPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotFeedbackAngularModule, + VfChatbotDialogAngularModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularModule, decorators: [{ + type: NgModule, + args: [{ + imports: [ + CommonModule, + FormsModule, + VfChatbotModalAngularComponent, + VfChatbotActionPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotFeedbackAngularModule, + VfChatbotDialogAngularModule + ], + exports: [ + VfChatbotModalAngularComponent + ] + }] + }] }); + +class VfChatbotModalAngularComponent { + constructor() { + this.config = { type: 'modal' }; + this.messages = []; + this.sources = []; + this.prompts = []; + this.qaData = []; + this.isOpen = false; + this.dialogTitle = 'Close chat and delete conversation?'; + this.dialogMessage = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.'; + this.dialogCancelLabel = 'Keep chat open'; + this.dialogConfirmLabel = 'Close and delete'; + this.close = new EventEmitter(); + this.minimize = new EventEmitter(); + } + get configJson() { + return JSON.stringify(this.config || {}); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotModalAngularComponent, isStandalone: true, selector: "vf-chatbot-modal", inputs: { config: "config", messages: "messages", sources: "sources", prompts: "prompts", qaData: "qaData", isOpen: "isOpen" }, outputs: { close: "close", minimize: "minimize" }, ngImport: i0, template: ` + +`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: VfChatbotDialogAngularModule }, { kind: "component", type: i2.VfChatbotDialogAngularComponent, selector: "vf-chatbot-dialog", inputs: ["title", "message", "cancelLabel", "confirmLabel"] }, { kind: "ngmodule", type: VfChatbotPromptAngularModule }, { kind: "component", type: i3.VfChatbotPromptAngularComponent, selector: "vf-chatbot-prompt", inputs: ["type", "isLoading", "avatar", "content", "sources", "prompts", "allowFeedback"] }, { kind: "ngmodule", type: VfChatbotSelectorAngularModule }, { kind: "component", type: i4.VfChatbotSelectorAngularComponent, selector: "vf-chatbot-selector", inputs: ["chatbotRoutes", "context"] }, { kind: "ngmodule", type: VfChatbotWelcomeAngularModule }, { kind: "component", type: i5.VfChatbotWelcomeAngularComponent, selector: "vf-chatbot-welcome", inputs: ["qaData", "welcome_logo", "welcome_logo_url", "welcome_logo_alt", "welcome_title", "welcome_message", "welcome_suggestions_title", "enable_welcome_suggestions", "welcome_max_suggestions", "enable_qa_data_loading", "enable_predefined_qa", "enable_fallback_responses", "qa_data_url"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotModalAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-modal', + standalone: true, + imports: [ + CommonModule, + VfChatbotDialogAngularModule, + VfChatbotPromptAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule + ], + template: ` + +` + }] + }], propDecorators: { config: [{ + type: Input + }], messages: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], qaData: [{ + type: Input + }], isOpen: [{ + type: Input + }], close: [{ + type: Output + }], minimize: [{ + type: Output + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotModalAngularComponent, VfChatbotModalAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-modal.angular.mjs.map diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs.map b/components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs.map new file mode 100644 index 0000000000..09d49a6a66 --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/fesm2022/visual-framework-vf-chatbot-modal.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-modal.angular.mjs","sources":["../../../projects/vf-chatbot-modal.angular/src/lib/vf-chatbot-modal.angular.module.ts","../../../projects/vf-chatbot-modal.angular/src/lib/vf-chatbot-modal.angular.component.ts","../../../projects/vf-chatbot-modal.angular/src/lib/visual-framework-vf-chatbot-modal.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotModalAngularComponent } from './vf-chatbot-modal.angular.component';\nimport { VfChatbotActionPromptAngularModule } from 'vf-chatbot-action-prompt.angular';\nimport { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular';\nimport { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular';\nimport { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular';\nimport { VfChatbotFeedbackAngularModule } from 'vf-chatbot-feedback.angular';\nimport { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n VfChatbotModalAngularComponent,\n VfChatbotActionPromptAngularModule,\n VfChatbotSelectorAngularModule,\n VfChatbotWelcomeAngularModule,\n VfChatbotPromptAngularModule,\n VfChatbotFeedbackAngularModule,\n VfChatbotDialogAngularModule\n ],\n exports: [\n VfChatbotModalAngularComponent\n ]\n})\nexport class VfChatbotModalAngularModule { }\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular';\nimport { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular';\nimport { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular';\nimport { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular';\n\nexport interface VfChatbotModalConfig {\n type?: 'modal' | 'standalone';\n title?: string;\n welcome_logo?: boolean;\n welcome_message?: string;\n welcome_logo_alt?: string;\n welcome_suggestions_title?: string;\n input_placeholder?: string;\n welcome_max_suggestions?: number;\n disclaimer?: string;\n footnote?: string;\n icons?: {\n assistant_avatar?: string;\n user_avatar?: string;\n send_button?: string;\n minimize?: string;\n close?: string;\n main_logo_url?: string;\n };\n selectorContext?: unknown;\n features?: {\n enable_welcome?: boolean;\n enable_welcome_suggestions?: boolean;\n enable_qa_data_loading?: boolean;\n enable_predefined_qa?: boolean;\n enable_fallback_responses?: boolean;\n enable_feedback?: boolean;\n enable_disclaimer?: boolean;\n enable_typing_indicator?: boolean;\n };\n behavior?: {\n show_scrollbar?: boolean;\n auto_scroll?: boolean;\n };\n api?: {\n qa_data_url?: string;\n };\n onDismissDisclaimer?: () => void;\n}\n\n@Component({\n selector: 'vf-chatbot-modal',\n standalone: true,\n imports: [\n CommonModule,\n VfChatbotDialogAngularModule,\n VfChatbotPromptAngularModule,\n VfChatbotSelectorAngularModule,\n VfChatbotWelcomeAngularModule\n ],\n template: `\n\n
\n
\n \n\n
\n
\n \n
\n \n {{ config?.title || 'AI Assistant' }}\n \n
\n
\n
\n
\n\n
\n \n \"\"\n \n \n \"\"\n \n
\n
\n\n
\n
\n \n\n \n \n
\n\n \n
\n
\n

\n \n \n dismiss banner\n \n \n \n
\n
\n
\n \n\n
\n
\n \n \n \n
\n\n
\n
\n\n \n\n \n \n \n \n \n \n \n \n\n`\n})\nexport class VfChatbotModalAngularComponent {\n @Input() config: VfChatbotModalConfig = { type: 'modal' };\n @Input() messages: Array<{ type?: string; avatar?: unknown; content?: string }> = [];\n @Input() sources: unknown[] = [];\n @Input() prompts: unknown[] = [];\n @Input() qaData: unknown[] = [];\n @Input() isOpen = false;\n\n dialogTitle = 'Close chat and delete conversation?';\n dialogMessage = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.';\n dialogCancelLabel = 'Keep chat open';\n dialogConfirmLabel = 'Close and delete';\n\n @Output() close = new EventEmitter();\n @Output() minimize = new EventEmitter();\n\n get configJson(): string {\n return JSON.stringify(this.config || {});\n }\n}\n\nexport * from './vf-chatbot-modal.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-modal.angular.component';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/index.d.ts b/components/vf-chatbot-modal/vf-chatbot-modal.angular/index.d.ts new file mode 100644 index 0000000000..1806be6be3 --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-modal.angular.component'; diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/package.json b/components/vf-chatbot-modal/vf-chatbot-modal.angular/package.json new file mode 100644 index 0000000000..fc60677584 --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-modal.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-modal.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-modal.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-modal.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-modal.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.component.d.ts b/components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.component.d.ts new file mode 100644 index 0000000000..96a9b5be3c --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.component.d.ts @@ -0,0 +1,63 @@ +import { EventEmitter } from '@angular/core'; +import * as i0 from "@angular/core"; +export interface VfChatbotModalConfig { + type?: 'modal' | 'standalone'; + title?: string; + welcome_logo?: boolean; + welcome_message?: string; + welcome_logo_alt?: string; + welcome_suggestions_title?: string; + input_placeholder?: string; + welcome_max_suggestions?: number; + disclaimer?: string; + footnote?: string; + icons?: { + assistant_avatar?: string; + user_avatar?: string; + send_button?: string; + minimize?: string; + close?: string; + main_logo_url?: string; + }; + selectorContext?: unknown; + features?: { + enable_welcome?: boolean; + enable_welcome_suggestions?: boolean; + enable_qa_data_loading?: boolean; + enable_predefined_qa?: boolean; + enable_fallback_responses?: boolean; + enable_feedback?: boolean; + enable_disclaimer?: boolean; + enable_typing_indicator?: boolean; + }; + behavior?: { + show_scrollbar?: boolean; + auto_scroll?: boolean; + }; + api?: { + qa_data_url?: string; + }; + onDismissDisclaimer?: () => void; +} +export declare class VfChatbotModalAngularComponent { + config: VfChatbotModalConfig; + messages: Array<{ + type?: string; + avatar?: unknown; + content?: string; + }>; + sources: unknown[]; + prompts: unknown[]; + qaData: unknown[]; + isOpen: boolean; + dialogTitle: string; + dialogMessage: string; + dialogCancelLabel: string; + dialogConfirmLabel: string; + close: EventEmitter; + minimize: EventEmitter; + get configJson(): string; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-modal.angular.module'; diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.module.d.ts b/components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.module.d.ts new file mode 100644 index 0000000000..25b8eb65fb --- /dev/null +++ b/components/vf-chatbot-modal/vf-chatbot-modal.angular/vf-chatbot-modal.angular.module.d.ts @@ -0,0 +1,15 @@ +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +import * as i2 from "@angular/forms"; +import * as i3 from "./vf-chatbot-modal.angular.component"; +import * as i4 from "vf-chatbot-action-prompt.angular"; +import * as i5 from "vf-chatbot-selector.angular"; +import * as i6 from "vf-chatbot-welcome.angular"; +import * as i7 from "vf-chatbot-prompt.angular"; +import * as i8 from "vf-chatbot-feedback.angular"; +import * as i9 from "vf-chatbot-dialog.angular"; +export declare class VfChatbotModalAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.config.yml b/components/vf-chatbot-modal/vf-chatbot-modal.config.yml index be4ea30dfe..3b677c7b00 100644 --- a/components/vf-chatbot-modal/vf-chatbot-modal.config.yml +++ b/components/vf-chatbot-modal/vf-chatbot-modal.config.yml @@ -1,6 +1,6 @@ title: Chatbot Modal label: Chatbot Modal -status: beta +status: live preview: '@preview' context: component-type: element @@ -57,8 +57,8 @@ variants: typing_delay: 800 show_scrollbar: false - selectorContext: - chatbotRoutes: + selectorContext: + chatbotRoutes: multiSelect: true maxMultiSelect: 3 showSearch: true @@ -70,7 +70,7 @@ variants: title: "Services" selector_logo_url: "../../assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg" selector_logo_title: "AI Assistant" - + # Custom Event Handlers (function names) handlers: on_message_send: "handleMessageSend" @@ -84,4 +84,4 @@ variants: # Legacy support disclaimer: 'Disclaimer: This chatbot is designed to assist you with general information and basic inquiries. See our disclaimer notes.' footnote: 'Review AI generated content for accuracy. Leave feedback.' - react: \ No newline at end of file + react: diff --git a/components/vf-chatbot-modal/vf-chatbot-modal.js b/components/vf-chatbot-modal/vf-chatbot-modal.js index 41cc75af54..22299ea2af 100644 --- a/components/vf-chatbot-modal/vf-chatbot-modal.js +++ b/components/vf-chatbot-modal/vf-chatbot-modal.js @@ -4,6 +4,7 @@ import { VFChatbotFeedback } from "../vf-chatbot-feedback/vf-chatbot-feedback.js import { initVFChatbotSelector } from "../vf-chatbot-selector/vf-chatbot-selector.js"; import { initVFChatbotWelcome } from "../vf-chatbot-welcome/vf-chatbot-welcome.js"; import { initVFChatbotDialog } from "../vf-chatbot-dialog/vf-chatbot-dialog.js"; +import { createStorageAdapter } from "../vf-chatbot/vf-chatbot-storage.js"; class VFChatbotModal { constructor(element, customConfig = {}) { @@ -131,11 +132,13 @@ class VFChatbotModal { ] }, enable_session_persistence: true, + persistence_storage: "sessionStorage", // "sessionStorage" | "localStorage" restore_minimized_state: true // If true, restore minimized state after navigation }; // Merge configurations: default < data-attribute < custom this.config = this.deepMerge(defaultConfig, dataConfig, customConfig); + this.storage = createStorageAdapter(this.config); console.log("Final merged config:", this.config); } @@ -252,7 +255,7 @@ class VFChatbotModal { // Load Q&A data if using fallback responses this.loadQADataAndPopulateSuggestions(); - // Restore conversation HTML from sessionStorage + // Restore conversation HTML from configured browser storage const persistedHTML = this.loadConversationHTML(); if (persistedHTML && this.messagesContainer) { this.messagesContainer.innerHTML = persistedHTML; @@ -283,7 +286,7 @@ class VFChatbotModal { "[data-vf-js-chatbot-feedback]" ); const feedbackState = JSON.parse( - sessionStorage.getItem("chatbotModalFeedbackState") || "{}" + this.getStorageItem("chatbotModalFeedbackState") || "{}" ); feedbackContainers.forEach(container => { const messageId = container.dataset.messageId; @@ -370,7 +373,7 @@ class VFChatbotModal { } const wasMinimized = - sessionStorage.getItem("chatbotModalMinimized") === "true"; + this.getStorageItem("chatbotModalMinimized") === "true"; if (this.container) { if (this.config.restore_minimized_state && !wasMinimized) { this.fab.classList.add("vf-chatbot-fab--inactive"); @@ -464,13 +467,13 @@ class VFChatbotModal { this.submitFeedbackToAPI(eventData); } - // Update local storage feedback state + // Update persisted feedback state if (this.config.enable_session_persistence) { let feedbackState = JSON.parse( - sessionStorage.getItem("chatbotModalFeedbackState") || "{}" + this.getStorageItem("chatbotModalFeedbackState") || "{}" ); feedbackState[messageId] = feedbackType; // e.g., "positive" or "negative" - sessionStorage.setItem( + this.setStorageItem( "chatbotModalFeedbackState", JSON.stringify(feedbackState) ); @@ -643,7 +646,7 @@ class VFChatbotModal { this.handleRouteSelection(e.detail); // Save selection on change if (this.config.enable_session_persistence) { - sessionStorage.setItem( + this.setStorageItem( "vfChatbotSelectorSelection", JSON.stringify(e.detail.selectedItems) ); @@ -653,7 +656,7 @@ class VFChatbotModal { // Restore selection only after routes are loaded/rendered this.selectorEl.addEventListener("routesloaded", () => { if (this.config.enable_session_persistence) { - this.savedSelection = sessionStorage.getItem( + this.savedSelection = this.getStorageItem( "vfChatbotSelectorSelection" ); if (this.savedSelection) { @@ -1210,13 +1213,13 @@ class VFChatbotModal { if (this.messagesContainer) { this.messagesContainer.innerHTML = ""; if (this.config.enable_session_persistence) { - sessionStorage.removeItem("chatbotModalConversationHTML"); - sessionStorage.removeItem("chatbotModalFeedbackState"); - sessionStorage.removeItem("chatbotModalMinimized"); + this.removeStorageItem("chatbotModalConversationHTML"); + this.removeStorageItem("chatbotModalFeedbackState"); + this.removeStorageItem("chatbotModalMinimized"); } } if (this.savedSelection && this.config.enable_session_persistence) { - sessionStorage.removeItem("vfChatbotSelectorSelection"); + this.removeStorageItem("vfChatbotSelectorSelection"); } if (this.welcomeScreen && this.config.features.enable_welcome_suggestions) { @@ -1228,6 +1231,7 @@ class VFChatbotModal { updateConfiguration(newConfig) { this.config = this.deepMerge(this.config, newConfig); + this.storage = createStorageAdapter(this.config); this.applyConfigurationToDOM(); // this.applyTheme(); } @@ -1280,15 +1284,27 @@ class VFChatbotModal { } // Helper functions for conversation persistence + getStorageItem(key) { + return this.storage.getItem(key); + } + + setStorageItem(key, value) { + this.storage.setItem(key, value); + } + + removeStorageItem(key) { + this.storage.removeItem(key); + } + saveConversationHTML(html) { if (this.config.enable_session_persistence) { - sessionStorage.setItem("chatbotModalConversationHTML", html); + this.setStorageItem("chatbotModalConversationHTML", html); } } loadConversationHTML() { if (this.config.enable_session_persistence) { - return sessionStorage.getItem("chatbotModalConversationHTML") || ""; + return this.getStorageItem("chatbotModalConversationHTML") || ""; } return ""; } diff --git a/components/vf-chatbot-prompt/CHANGELOG.md b/components/vf-chatbot-prompt/CHANGELOG.md index 31dca312ad..7bf5acd7f0 100644 --- a/components/vf-chatbot-prompt/CHANGELOG.md +++ b/components/vf-chatbot-prompt/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.3 * Added : Changes for chatbot modal variant @@ -11,4 +15,4 @@ ### 1.0.0-beta.1 -* Initial version \ No newline at end of file +* Initial version diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/.npmignore b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/README.md b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/README.md new file mode 100644 index 0000000000..d1329d7caa --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotPromptAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-prompt.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-prompt.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.component.mjs b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.component.mjs new file mode 100644 index 0000000000..317e5ebe07 --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.component.mjs @@ -0,0 +1,144 @@ +import { Component, Input } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +export class VfChatbotPromptAngularComponent { + constructor() { + this.type = ''; + this.isLoading = false; + this.avatar = {}; + this.content = ''; + this.sources = ''; + this.prompts = ''; + this.allowFeedback = true; + } + shouldShowAvatarName(position) { + return this.avatar?.name && this.type === position; + } + hasAvatarImage() { + return !!this.avatar?.src; + } + messageClasses() { + let classes = `vf-chatbot-message vf-chatbot-message--${this.type} vf-u-margin__top--400`; + if (this.isLoading) { + classes += ' vf-chatbot-message--loading'; + } + return classes; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotPromptAngularComponent, selector: "vf-chatbot-prompt", inputs: { type: "type", isLoading: "isLoading", avatar: "avatar", content: "content", sources: "sources", prompts: "prompts", allowFeedback: "allowFeedback" }, ngImport: i0, template: ` +
+ + +
+ + + + {{ avatar?.name }} + + + + + + + + {{ avatar?.name }} + +
+ + +
+ + +
+ + + +
+ + +
+
+
+ +
+ + `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-prompt', + template: ` +
+ + +
+ + + + {{ avatar?.name }} + + + + + + + + {{ avatar?.name }} + +
+ + +
+ + +
+ + + +
+ + +
+
+
+ +
+ + ` + }] + }], propDecorators: { type: [{ + type: Input + }], isLoading: [{ + type: Input + }], avatar: [{ + type: Input + }], content: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], allowFeedback: [{ + type: Input + }] } }); +export * from './vf-chatbot-prompt.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LXByb21wdC5hbmd1bGFyL3NyYy9saWIvdmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXFEakQsTUFBTSxPQUFPLCtCQUErQjtJQWxENUM7UUFvRFcsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ2xCLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsa0JBQWEsR0FBWSxJQUFJLENBQUM7S0FtQnhDO0lBaEJDLG9CQUFvQixDQUFDLFFBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztRQUVaLElBQUksT0FBTyxHQUFHLDBDQUEwQyxJQUFJLENBQUMsSUFBSSx3QkFBd0IsQ0FBQztRQUMxRixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksOEJBQThCLENBQUM7UUFDNUMsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7K0dBMUJVLCtCQUErQjttR0FBL0IsK0JBQStCLHlOQWhEaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Q1Q7OzRGQUVVLCtCQUErQjtrQkFsRDNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENUO2lCQUNGOzhCQUdVLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLOztBQXFCUixjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2Zi1jaGF0Ym90LXByb21wdCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbbmdDbGFzc109XCJtZXNzYWdlQ2xhc3NlcygpXCI+XG4gICAgICBcbiAgICAgIDwhLS0gQXZhdGFyIFNlY3Rpb24gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1tZXNzYWdlX19hdmF0YXIgdmYtdS1tYXJnaW5fX2JvdHRvbS0tMjAwXCI+XG5cbiAgICAgICAgPCEtLSBVc2VyIEF2YXRhciBOYW1lIC0tPlxuICAgICAgICA8c3BhbiBcbiAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtbWVzc2FnZV9fYXZhdGFyLW5hbWVcIiBcbiAgICAgICAgICAqbmdJZj1cInNob3VsZFNob3dBdmF0YXJOYW1lKCd1c2VyJylcIj5cbiAgICAgICAgICB7eyBhdmF0YXI/Lm5hbWUgfX1cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gQXZhdGFyIEltYWdlIC0tPlxuICAgICAgICA8aW1nIFxuICAgICAgICAgICpuZ0lmPVwiaGFzQXZhdGFySW1hZ2UoKVwiIFxuICAgICAgICAgIFtzcmNdPVwiYXZhdGFyPy5zcmNcIiBcbiAgICAgICAgICBbYWx0XT1cImF2YXRhcj8uYWx0XCIgLz5cblxuICAgICAgICA8IS0tIEFzc2lzdGFudCBBdmF0YXIgTmFtZSAtLT5cbiAgICAgICAgPHNwYW4gXG4gICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1lc3NhZ2VfX2F2YXRhci1uYW1lXCIgXG4gICAgICAgICAgKm5nSWY9XCJzaG91bGRTaG93QXZhdGFyTmFtZSgnYXNzaXN0YW50JylcIj5cbiAgICAgICAgICB7eyBhdmF0YXI/Lm5hbWUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gTWVzc2FnZSBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInZmLWNoYXRib3QtbWVzc2FnZV9fY29udGVudCB2Zi11LXBhZGRpbmctLTIwMFwiPlxuXG4gICAgICAgIDwhLS0gTG9hZGluZyBEb3RzIChrZWVwIGluIERPTSBzbyBleHRlcm5hbCBKUyBjYW4gdG9nZ2xlIHZpc2liaWxpdHkpIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1tZXNzYWdlX19jb250ZW50LWxvYWRpbmctZG90c1wiIGFyaWEtbGFiZWw9XCJMb2FkaW5nXCIgcm9sZT1cInN0YXR1c1wiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmYtY2hhdGJvdC1tZXNzYWdlX19kb3RcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmYtY2hhdGJvdC1tZXNzYWdlX19kb3RcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmYtY2hhdGJvdC1tZXNzYWdlX19kb3RcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEhUTUwgQ29udGVudCAtLT5cbiAgICAgICAgPGRpdiBcbiAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtbWVzc2FnZV9fY29udGVudC1wcm9tcHQgdmYtdS1wYWRkaW5nX19sZWZ0LS0yMDAgdmYtdS1wYWRkaW5nX19yaWdodC0tMjAwXCJcbiAgICAgICAgICBbaW5uZXJIVE1MXT1cImNvbnRlbnRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgIDwvZGl2PlxuICAgIFxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFZmQ2hhdGJvdFByb21wdEFuZ3VsYXJDb21wb25lbnQge1xuICBcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhdmF0YXI6IGFueSA9IHt9O1xuICBASW5wdXQoKSBjb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc291cmNlczogYW55ID0gJyc7XG4gIEBJbnB1dCgpIHByb21wdHM6IGFueSA9ICcnO1xuICBASW5wdXQoKSBhbGxvd0ZlZWRiYWNrOiBib29sZWFuID0gdHJ1ZTtcblxuXG4gIHNob3VsZFNob3dBdmF0YXJOYW1lKHBvc2l0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hdmF0YXI/Lm5hbWUgJiYgdGhpcy50eXBlID09PSBwb3NpdGlvbjtcbiAgfVxuXG4gIGhhc0F2YXRhckltYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuYXZhdGFyPy5zcmM7XG4gIH1cblxuICBtZXNzYWdlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIFxuICAgIGxldCBjbGFzc2VzID0gYHZmLWNoYXRib3QtbWVzc2FnZSB2Zi1jaGF0Ym90LW1lc3NhZ2UtLSR7dGhpcy50eXBlfSB2Zi11LW1hcmdpbl9fdG9wLS00MDBgO1xuICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xuICAgICAgY2xhc3NlcyArPSAnIHZmLWNoYXRib3QtbWVzc2FnZS0tbG9hZGluZyc7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci5tb2R1bGUnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.module.mjs b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.module.mjs new file mode 100644 index 0000000000..9c0aeec127 --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/vf-chatbot-prompt.angular.module.mjs @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotPromptAngularComponent } from './vf-chatbot-prompt.angular.component'; +import * as i0 from "@angular/core"; +export class VfChatbotPromptAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, declarations: [VfChatbotPromptAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotPromptAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotPromptAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotPromptAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LXByb21wdC5hbmd1bGFyL3NyYy9saWIvdmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQWN4RixNQUFNLE9BQU8sNEJBQTRCOytHQUE1Qiw0QkFBNEI7Z0hBQTVCLDRCQUE0QixpQkFWckMsK0JBQStCLGFBRy9CLFlBQVk7WUFDWixXQUFXLGFBR1gsK0JBQStCO2dIQUd0Qiw0QkFBNEIsWUFQckMsWUFBWTtZQUNaLFdBQVc7OzRGQU1GLDRCQUE0QjtrQkFaeEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osK0JBQStCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCwrQkFBK0I7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJzsgXG5pbXBvcnQgeyBWZkNoYXRib3RQcm9tcHRBbmd1bGFyQ29tcG9uZW50IH0gZnJvbSAnLi92Zi1jaGF0Ym90LXByb21wdC5hbmd1bGFyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFZmQ2hhdGJvdFByb21wdEFuZ3VsYXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVmZDaGF0Ym90UHJvbXB0QW5ndWxhckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFZmQ2hhdGJvdFByb21wdEFuZ3VsYXJNb2R1bGUgeyB9XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/visual-framework-vf-chatbot-prompt.angular.mjs b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/visual-framework-vf-chatbot-prompt.angular.mjs new file mode 100644 index 0000000000..bca9c7d583 --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/esm2022/visual-framework-vf-chatbot-prompt.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-prompt.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LXByb21wdC5hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci9zcmMvbGliL3Zpc3VhbC1mcmFtZXdvcmstdmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1wcm9tcHQuYW5ndWxhci5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs new file mode 100644 index 0000000000..e6e36fc4db --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs @@ -0,0 +1,175 @@ +import * as i0 from '@angular/core'; +import { NgModule, Component, Input } from '@angular/core'; +import * as i1 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +class VfChatbotPromptAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, declarations: [VfChatbotPromptAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotPromptAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotPromptAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotPromptAngularComponent + ] + }] + }] }); + +class VfChatbotPromptAngularComponent { + constructor() { + this.type = ''; + this.isLoading = false; + this.avatar = {}; + this.content = ''; + this.sources = ''; + this.prompts = ''; + this.allowFeedback = true; + } + shouldShowAvatarName(position) { + return this.avatar?.name && this.type === position; + } + hasAvatarImage() { + return !!this.avatar?.src; + } + messageClasses() { + let classes = `vf-chatbot-message vf-chatbot-message--${this.type} vf-u-margin__top--400`; + if (this.isLoading) { + classes += ' vf-chatbot-message--loading'; + } + return classes; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotPromptAngularComponent, selector: "vf-chatbot-prompt", inputs: { type: "type", isLoading: "isLoading", avatar: "avatar", content: "content", sources: "sources", prompts: "prompts", allowFeedback: "allowFeedback" }, ngImport: i0, template: ` +
+ + +
+ + + + {{ avatar?.name }} + + + + + + + + {{ avatar?.name }} + +
+ + +
+ + +
+ + + +
+ + +
+
+
+ +
+ + `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotPromptAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-prompt', + template: ` +
+ + +
+ + + + {{ avatar?.name }} + + + + + + + + {{ avatar?.name }} + +
+ + +
+ + +
+ + + +
+ + +
+
+
+ +
+ + ` + }] + }], propDecorators: { type: [{ + type: Input + }], isLoading: [{ + type: Input + }], avatar: [{ + type: Input + }], content: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], allowFeedback: [{ + type: Input + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotPromptAngularComponent, VfChatbotPromptAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-prompt.angular.mjs.map diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs.map b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs.map new file mode 100644 index 0000000000..6964f9695b --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-prompt.angular.mjs","sources":["../../../projects/vf-chatbot-prompt.angular/src/lib/vf-chatbot-prompt.angular.module.ts","../../../projects/vf-chatbot-prompt.angular/src/lib/vf-chatbot-prompt.angular.component.ts","../../../projects/vf-chatbot-prompt.angular/src/lib/visual-framework-vf-chatbot-prompt.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotPromptAngularComponent } from './vf-chatbot-prompt.angular.component';\n\n@NgModule({\n declarations: [\n VfChatbotPromptAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n VfChatbotPromptAngularComponent\n ]\n})\nexport class VfChatbotPromptAngularModule { }\n","import { Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'vf-chatbot-prompt',\n template: `\n
\n \n \n
\n\n \n \n {{ avatar?.name }}\n \n\n \n \n\n \n \n {{ avatar?.name }}\n \n
\n\n \n
\n\n \n
\n \n \n \n
\n\n \n
\n
\n
\n \n
\n \n `\n})\nexport class VfChatbotPromptAngularComponent {\n \n @Input() type: string = '';\n @Input() isLoading: boolean = false;\n @Input() avatar: any = {};\n @Input() content: string = '';\n @Input() sources: any = '';\n @Input() prompts: any = '';\n @Input() allowFeedback: boolean = true;\n\n\n shouldShowAvatarName(position: string): boolean {\n return this.avatar?.name && this.type === position;\n }\n\n hasAvatarImage(): boolean {\n return !!this.avatar?.src;\n }\n\n messageClasses(): string {\n \n let classes = `vf-chatbot-message vf-chatbot-message--${this.type} vf-u-margin__top--400`;\n if (this.isLoading) {\n classes += ' vf-chatbot-message--loading';\n }\n return classes;\n }\n}\n\nexport * from './vf-chatbot-prompt.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-prompt.angular.component';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/index.d.ts b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/index.d.ts new file mode 100644 index 0000000000..d9c1128bc7 --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-prompt.angular.component'; diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/package.json b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/package.json new file mode 100644 index 0000000000..095fdddecb --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-prompt.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-prompt.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-prompt.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-prompt.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.component.d.ts b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.component.d.ts new file mode 100644 index 0000000000..2fdb260c7c --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.component.d.ts @@ -0,0 +1,16 @@ +import * as i0 from "@angular/core"; +export declare class VfChatbotPromptAngularComponent { + type: string; + isLoading: boolean; + avatar: any; + content: string; + sources: any; + prompts: any; + allowFeedback: boolean; + shouldShowAvatarName(position: string): boolean; + hasAvatarImage(): boolean; + messageClasses(): string; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-prompt.angular.module'; diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.module.d.ts b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.module.d.ts new file mode 100644 index 0000000000..1209ce3597 --- /dev/null +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.angular/vf-chatbot-prompt.angular.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-prompt.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +export declare class VfChatbotPromptAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-prompt/vf-chatbot-prompt.config.yml b/components/vf-chatbot-prompt/vf-chatbot-prompt.config.yml index 08c8ca3098..20059c2835 100644 --- a/components/vf-chatbot-prompt/vf-chatbot-prompt.config.yml +++ b/components/vf-chatbot-prompt/vf-chatbot-prompt.config.yml @@ -1,6 +1,6 @@ title: Chatbot Prompt label: Chatbot Prompt -status: beta +status: live preview: '@preview' hidden: true context: diff --git a/components/vf-chatbot-selector/CHANGELOG.md b/components/vf-chatbot-selector/CHANGELOG.md index 5b754bd876..9a311f57ce 100644 --- a/components/vf-chatbot-selector/CHANGELOG.md +++ b/components/vf-chatbot-selector/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.3 * Added : Changes for chatbot modal variant @@ -12,4 +16,4 @@ ### 1.0.0-beta.1 * Initial version -* Accessibility compliance improvements \ No newline at end of file +* Accessibility compliance improvements diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/.npmignore b/components/vf-chatbot-selector/vf-chatbot-selector.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/README.md b/components/vf-chatbot-selector/vf-chatbot-selector.angular/README.md new file mode 100644 index 0000000000..d6c779ade6 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotSelectorAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-selector.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-selector.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.component.mjs b/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.component.mjs new file mode 100644 index 0000000000..1cae6f8096 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.component.mjs @@ -0,0 +1,268 @@ +import { Component, Input } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common/http"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +export class VfChatbotSelectorAngularComponent { + constructor(elRef, http) { + this.elRef = elRef; + this.http = http; + this.chatbotRoutes = {}; + this.context = {}; + this.config = {}; + this.search = ''; + this.selected = []; + this.showSearchBox = true; + this.maxSelect = 1; + } + ngOnInit() { + const defaults = { + routes: [], + multiSelect: false, + maxMultiSelect: 1, + showSearch: true, + showSearchThreshold: 5, + showAllServices: false, + showAllServicesSelected: false, + selector_logo_url: '../../assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg', + selector_logo_title: 'AI Assistant', + title: 'Select option', + placeholder: 'Search...', + }; + // Prefer any explicit `context` input; otherwise fall back to `chatbotRoutes`. + const source = (this.context && Object.keys(this.context).length > 0) + ? this.context + : (this.chatbotRoutes || {}); + // Merge defaults into the chosen source so template bindings exist and are objects + this.context = { ...defaults, ...source }; + this.config = this.context; // keep `config` for backwards compatibility + this.maxSelect = this.config.maxMultiSelect || 3; + this.showSearchBox = + this.context.chatbotRoutes.showSearch && + (this.context.chatbotRoutes.routes || []).length > this.context.chatbotRoutes.showSearchThreshold; + this.loadRoutesFromApi(); + } + clearAll(event) { + event.preventDefault(); + this.selected = []; + } + toggleSelect(routeId) { + if (this.context.chatbotRoutes.multiSelect) { + if (this.selected.includes(routeId)) { + this.selected = this.selected.filter(id => id !== routeId); + } + else if (this.selected.length < this.maxSelect) { + this.selected.push(routeId); + } + } + else { + this.selected = [routeId]; + } + } + loadRoutesFromApi() { + const url = this.context.chatbotRoutes.routes; + this.http.get(url).subscribe(config => { + this.context.chatbotRoutes.array_routes = config['routes']; + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularComponent, deps: [{ token: i0.ElementRef }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotSelectorAngularComponent, selector: "vf-chatbot-selector", inputs: { chatbotRoutes: "chatbotRoutes", context: "context" }, ngImport: i0, template: ` +
+ + +
+ + +
+ + Select up to {{context.chatbotRoutes.maxMultiSelect.toString()}} services + + + Clear all + +
+ +
    +
  • + {{ route.title }} +
  • +
+
+
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularComponent, decorators: [{ + type: Component, + args: [{ selector: 'vf-chatbot-selector', template: ` +
+ + +
+ + +
+ + Select up to {{context.chatbotRoutes.maxMultiSelect.toString()}} services + + + Clear all + +
+ +
    +
  • + {{ route.title }} +
  • +
+
+
+ ` }] + }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.HttpClient }], propDecorators: { chatbotRoutes: [{ + type: Input + }], context: [{ + type: Input + }] } }); +export * from './vf-chatbot-selector.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1zZWxlY3Rvci5hbmd1bGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3Qtc2VsZWN0b3IuYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3Qtc2VsZWN0b3IuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBMkdyRSxNQUFNLE9BQU8saUNBQWlDO0lBUzVDLFlBQW9CLEtBQWlCLEVBQVUsSUFBZ0I7UUFBM0MsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFSdEQsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUFDeEIsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUMzQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixhQUFRLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGNBQVMsR0FBRyxDQUFDLENBQUM7SUFFb0QsQ0FBQztJQUVuRSxRQUFRO1FBQ04sTUFBTSxRQUFRLEdBQUc7WUFDZixNQUFNLEVBQUUsRUFBRTtZQUNWLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLG1CQUFtQixFQUFFLENBQUM7WUFDdEIsZUFBZSxFQUFFLEtBQUs7WUFDdEIsdUJBQXVCLEVBQUUsS0FBSztZQUM5QixpQkFBaUIsRUFBRSxzRUFBc0U7WUFDekYsbUJBQW1CLEVBQUUsY0FBYztZQUNuQyxLQUFLLEVBQUUsZUFBZTtZQUN0QixXQUFXLEVBQUUsV0FBVztTQUN6QixDQUFDO1FBRUYsK0VBQStFO1FBQy9FLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25FLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNkLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7UUFFL0IsbUZBQW1GO1FBQ25GLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLDRDQUE0QztRQUV4RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVO2dCQUNyQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUM7UUFDcEcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWU7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7WUFDN0QsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBQ0QsaUJBQWlCO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUdILENBQUM7K0dBakVZLGlDQUFpQzttR0FBakMsaUNBQWlDLDJIQWpHbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4RlQ7OzRGQUdVLGlDQUFpQztrQkFuRzdDLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEZUO3dHQUlRLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLOztBQWtFUixjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbnRlcmZhY2UgQ29uZmlnIHtcbiAgcm91dGVzOiBhbnlbXTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2Zi1jaGF0Ym90LXNlbGVjdG9yJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInZmLWNoYXRib3Qtc2VsZWN0b3JcIlxuICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LXNlbGVjdG9yXG4gICAgICBbYXR0ci5kYXRhLXJvdXRlcy1wYXRoXT1cImNvbnRleHQuY2hhdGJvdFJvdXRlcy5yb3V0ZXNcIlxuICAgICAgW2F0dHIuZGF0YS1tdWx0aXNlbGVjdF09XCJjb250ZXh0LmNoYXRib3RSb3V0ZXMubXVsdGlTZWxlY3QgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmRhdGEtbWF4LXNlbGVjdF09XCJjb250ZXh0LmNoYXRib3RSb3V0ZXMubWF4TXVsdGlTZWxlY3QudG9TdHJpbmcoKVwiXG4gICAgICBbYXR0ci5kYXRhLXNob3ctYWxsLXNlcnZpY2VzXT1cImNvbnRleHQuY2hhdGJvdFJvdXRlcy5zaG93QWxsU2VydmljZXMgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmRhdGEtc2hvdy1hbGwtc2VydmljZXMtc2VsZWN0ZWRdPVwiY29udGV4dC5jaGF0Ym90Um91dGVzLnNob3dBbGxTZXJ2aWNlc1NlbGVjdGVkID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInZmLWNoYXRib3Qtc2VsZWN0b3JfX3RpdGxlXCJcbiAgICAgICAgZGF0YS12Zi1qcy1zZWxlY3Rvci10b2dnbGVcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgPlxuICAgICAgICA8aW1nIFtzcmNdPVwiY29udGV4dC5zZWxlY3Rvcl9sb2dvX3VybFwiIFthbHRdPVwiY29udGV4dC5jaGF0Ym90Um91dGVzLnNlbGVjdG9yX2xvZ29fdGl0bGVcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9fdGl0bGUtY29udGVudCB2Zi11LW1hcmdpbl9fbGVmdC0tMjAwXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2Zi1jaGF0Ym90LXNlbGVjdG9yX19tYWluLXRleHRcIj5cbiAgICAgICAgICAgIHt7IGNvbnRleHQuY2hhdGJvdFJvdXRlcy5zZWxlY3Rvcl9sb2dvX3RpdGxlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9fdGl0bGUtdGV4dFwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgc2VsZWN0ZWQubGVuZ3RoID09PSAwID8gY29udGV4dC5jaGF0Ym90Um91dGVzLnRpdGxlIDogY29udGV4dC5jaGF0Ym90Um91dGVzLnJvdXRlc1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInZmLWNoYXRib3Qtc2VsZWN0b3JfX2NoZXZyb25cIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICB3aWR0aD1cIjMyXCJcbiAgICAgICAgICAgIGhlaWdodD1cIjMxXCJcbiAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzIgMzFcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zNjQ3XzgyMzApXCI+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xNS45OTkgMTkuMDk3NUMxNS43Mzc4IDE5LjA5OCAxNS40NzkgMTkuMDQ2OCAxNS4yMzc3IDE4Ljk0NjhDMTQuOTk2MyAxOC44NDY5IDE0Ljc3NzEgMTguNzAwMSAxNC41OTI2IDE4LjUxNTFMOC4zMjg2MyAxMS45Mjc5QzguMjE5NTEgMTEuODEzNyA4LjEzMzk5IDExLjY3OTEgOC4wNzY5OCAxMS41MzE4QzguMDE5OTggMTEuMzg0NSA3Ljk5MjYxIDExLjIyNzQgNy45OTY0NSAxMS4wNjk1QzguMDAwMjggMTAuOTExNiA4LjAzNTI1IDEwLjc1NiA4LjA5OTM0IDEwLjYxMTdDOC4xNjM0MiAxMC40NjczIDguMjU1MzcgMTAuMzM3IDguMzY5OTIgMTAuMjI4M0M4LjQ4NDQ2IDEwLjExOTUgOC42MTkzNCAxMC4wMzQ0IDguNzY2ODMgOS45Nzc5MUM4LjkxNDMyIDkuOTIxMzkgOS4wNzE1MiA5Ljg5NDU0IDkuMjI5NCA5Ljg5ODg5QzkuMzg3MjkgOS45MDMyNSA5LjU0Mjc3IDkuOTM4NzIgOS42ODY5MiAxMC4wMDMzQzkuODMxMDcgMTAuMDY3OCA5Ljk2MTA2IDEwLjE2MDIgMTAuMDY5NCAxMC4yNzUxTDE1LjcwOTQgMTYuMjE0M0MxNS43NDY3IDE2LjI1MzcgMTUuNzkxNiAxNi4yODUxIDE1Ljg0MTQgMTYuMzA2NkMxNS44OTEyIDE2LjMyODEgMTUuOTQ0OCAxNi4zMzkxIDE1Ljk5OSAxNi4zMzkxQzE2LjA1MzMgMTYuMzM5MSAxNi4xMDY5IDE2LjMyODEgMTYuMTU2NyAxNi4zMDY2QzE2LjIwNjUgMTYuMjg1MSAxNi4yNTE0IDE2LjI1MzcgMTYuMjg4NiAxNi4yMTQzTDIxLjkyODYgMTAuMjc1MUMyMi4wMzcgMTAuMTYwMiAyMi4xNjcgMTAuMDY3OCAyMi4zMTEyIDEwLjAwMzNDMjIuNDU1MyA5LjkzODcyIDIyLjYxMDggOS45MDMyNSAyMi43Njg3IDkuODk4ODlDMjIuOTI2NiA5Ljg5NDU0IDIzLjA4MzggOS45MjEzOSAyMy4yMzEyIDkuOTc3OTFDMjMuMzc4NyAxMC4wMzQ0IDIzLjUxMzYgMTAuMTE5NSAyMy42MjgyIDEwLjIyODNDMjMuNzQyNyAxMC4zMzcgMjMuODM0NyAxMC40NjczIDIzLjg5ODcgMTAuNjExN0MyMy45NjI4IDEwLjc1NiAyMy45OTc4IDEwLjkxMTYgMjQuMDAxNiAxMS4wNjk1QzI0LjAwNTUgMTEuMjI3NCAyMy45NzgxIDExLjM4NDUgMjMuOTIxMSAxMS41MzE4QzIzLjg2NDEgMTEuNjc5MSAyMy43Nzg2IDExLjgxMzcgMjMuNjY5NCAxMS45Mjc5TDE3LjQzOSAxOC40OTkxQzE3LjI1MDMgMTguNjg4OCAxNy4wMjU5IDE4LjgzOTQgMTYuNzc4OCAxOC45NDIxQzE2LjUzMTYgMTkuMDQ0OCAxNi4yNjY3IDE5LjA5NzYgMTUuOTk5IDE5LjA5NzVaXCJcbiAgICAgICAgICAgICAgICBmaWxsPVwiIzcwNzM3MlwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMzY0N184MjMwXCI+XG4gICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDggNi41KVwiIC8+XG4gICAgICAgICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9fZHJvcGRvd25cIiBkYXRhLXZmLWpzLXNlbGVjdG9yLWRyb3Bkb3duPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9fc2VhcmNoXCIgKm5nSWY9XCJzaG93U2VhcmNoQm94XCI+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBjbGFzcz1cInZmLXUtc3Itb25seVwiXG4gICAgICAgICAgICBpZD1cInZmLWNoYXRib3Qtc2VsZWN0b3Itc2VhcmNoLWxhYmVsXCJcbiAgICAgICAgICAgIGZvcj1cInZmLWNoYXRib3Qtc2VsZWN0b3Itc2VhcmNoXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBUeXBlIHRvIHNlYXJjaFxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBpZD1cInZmLWNoYXRib3Qtc2VsZWN0b3Itc2VhcmNoXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cInZmLWNoYXRib3Qtc2VsZWN0b3Itc2VhcmNoLWxhYmVsXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb250ZXh0LmNoYXRib3RSb3V0ZXMucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hcIlxuICAgICAgICAgICAgZGF0YS12Zi1qcy1zZWxlY3Rvci1zZWFyY2hcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9faGVhZGVyXCIgKm5nSWY9XCJjb250ZXh0LmNoYXRib3RSb3V0ZXMubXVsdGlTZWxlY3RcIj5cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIFNlbGVjdCB1cCB0byB7e2NvbnRleHQuY2hhdGJvdFJvdXRlcy5tYXhNdWx0aVNlbGVjdC50b1N0cmluZygpfX0gc2VydmljZXNcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9fY2xlYXJcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBkYXRhLXZmLWpzLXNlbGVjdG9yLWNsZWFyXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ2xlYXIgYWxsXG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8dWwgY2xhc3M9XCJ2Zi1jaGF0Ym90LXNlbGVjdG9yX19saXN0XCIgZGF0YS12Zi1qcy1jaGF0Ym90LXNlbGVjdG9yLWxpc3Q+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcm91dGUgb2YgY29udGV4dC5jaGF0Ym90Um91dGVzLmFycmF5X3JvdXRlc1wiIGlkID0ge3tyb3V0ZS5pZH19XG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VsZWN0KHJvdXRlLmlkKVwiXG4gICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwic2VsZWN0ZWQuaW5jbHVkZXMocm91dGUuaWQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyByb3V0ZS50aXRsZSB9fVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90U2VsZWN0b3JBbmd1bGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY2hhdGJvdFJvdXRlczogYW55ID0ge307XG4gIEBJbnB1dCgpIGNvbnRleHQ6IGFueSA9IHt9O1xuICBjb25maWc6IGFueSA9IHt9O1xuICBzZWFyY2ggPSAnJztcbiAgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gW107XG4gIHNob3dTZWFyY2hCb3ggPSB0cnVlO1xuICBtYXhTZWxlY3QgPSAxO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIHJvdXRlczogW10sXG4gICAgICBtdWx0aVNlbGVjdDogZmFsc2UsXG4gICAgICBtYXhNdWx0aVNlbGVjdDogMSxcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXG4gICAgICBzaG93U2VhcmNoVGhyZXNob2xkOiA1LFxuICAgICAgc2hvd0FsbFNlcnZpY2VzOiBmYWxzZSxcbiAgICAgIHNob3dBbGxTZXJ2aWNlc1NlbGVjdGVkOiBmYWxzZSxcbiAgICAgIHNlbGVjdG9yX2xvZ29fdXJsOiAnLi4vLi4vYXNzZXRzL3ZmLWNoYXRib3QvYXNzZXRzL3ZmLWNoYXRib3QtLWljb24tMjR4MjQtZGFyay1ncmVlbi5zdmcnLFxuICAgICAgc2VsZWN0b3JfbG9nb190aXRsZTogJ0FJIEFzc2lzdGFudCcsXG4gICAgICB0aXRsZTogJ1NlbGVjdCBvcHRpb24nLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nLFxuICAgIH07XG5cbiAgICAvLyBQcmVmZXIgYW55IGV4cGxpY2l0IGBjb250ZXh0YCBpbnB1dDsgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byBgY2hhdGJvdFJvdXRlc2AuXG4gICAgY29uc3Qgc291cmNlID0gKHRoaXMuY29udGV4dCAmJiBPYmplY3Qua2V5cyh0aGlzLmNvbnRleHQpLmxlbmd0aCA+IDApXG4gICAgICA/IHRoaXMuY29udGV4dFxuICAgICAgOiAodGhpcy5jaGF0Ym90Um91dGVzIHx8IHt9KTtcblxuICAgIC8vIE1lcmdlIGRlZmF1bHRzIGludG8gdGhlIGNob3NlbiBzb3VyY2Ugc28gdGVtcGxhdGUgYmluZGluZ3MgZXhpc3QgYW5kIGFyZSBvYmplY3RzXG4gICAgdGhpcy5jb250ZXh0ID0geyAuLi5kZWZhdWx0cywgLi4uc291cmNlIH07XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbnRleHQ7IC8vIGtlZXAgYGNvbmZpZ2AgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5cbiAgICB0aGlzLm1heFNlbGVjdCA9IHRoaXMuY29uZmlnLm1heE11bHRpU2VsZWN0IHx8IDM7XG4gICAgdGhpcy5zaG93U2VhcmNoQm94ID1cbiAgICAgIHRoaXMuY29udGV4dC5jaGF0Ym90Um91dGVzLnNob3dTZWFyY2ggJiZcbiAgICAgICh0aGlzLmNvbnRleHQuY2hhdGJvdFJvdXRlcy5yb3V0ZXMgfHwgW10pLmxlbmd0aCA+IHRoaXMuY29udGV4dC5jaGF0Ym90Um91dGVzLnNob3dTZWFyY2hUaHJlc2hvbGQ7XG4gICAgdGhpcy5sb2FkUm91dGVzRnJvbUFwaSgpO1xuICB9XG5cbiAgY2xlYXJBbGwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNlbGVjdGVkID0gW107XG4gIH1cblxuICB0b2dnbGVTZWxlY3Qocm91dGVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29udGV4dC5jaGF0Ym90Um91dGVzLm11bHRpU2VsZWN0KSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhyb3V0ZUlkKSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZC5maWx0ZXIoaWQgPT4gaWQgIT09IHJvdXRlSWQpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkLmxlbmd0aCA8IHRoaXMubWF4U2VsZWN0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQucHVzaChyb3V0ZUlkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IFtyb3V0ZUlkXTtcbiAgICB9XG4gIH1cbiAgbG9hZFJvdXRlc0Zyb21BcGkoKTogdm9pZCB7XG4gIGNvbnN0IHVybCA9IHRoaXMuY29udGV4dC5jaGF0Ym90Um91dGVzLnJvdXRlcztcbiAgdGhpcy5odHRwLmdldDxDb25maWc+KHVybCkuc3Vic2NyaWJlKGNvbmZpZyA9PiB7XG4gIHRoaXMuY29udGV4dC5jaGF0Ym90Um91dGVzLmFycmF5X3JvdXRlcyA9IGNvbmZpZ1sncm91dGVzJ107XG59KTtcbiAgXG4gIFxufVxufVxuXG5leHBvcnQgKiBmcm9tICcuL3ZmLWNoYXRib3Qtc2VsZWN0b3IuYW5ndWxhci5tb2R1bGUnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.module.mjs b/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.module.mjs new file mode 100644 index 0000000000..3159ca7ad7 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/vf-chatbot-selector.angular.module.mjs @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotSelectorAngularComponent } from './vf-chatbot-selector.angular.component'; +import * as i0 from "@angular/core"; +export class VfChatbotSelectorAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, declarations: [VfChatbotSelectorAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotSelectorAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotSelectorAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotSelectorAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1zZWxlY3Rvci5hbmd1bGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3Qtc2VsZWN0b3IuYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3Qtc2VsZWN0b3IuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQWM1RixNQUFNLE9BQU8sOEJBQThCOytHQUE5Qiw4QkFBOEI7Z0hBQTlCLDhCQUE4QixpQkFWdkMsaUNBQWlDLGFBR2pDLFlBQVk7WUFDWixXQUFXLGFBR1gsaUNBQWlDO2dIQUd4Qiw4QkFBOEIsWUFQdkMsWUFBWTtZQUNaLFdBQVc7OzRGQU1GLDhCQUE4QjtrQkFaMUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQ0FBaUM7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJzsgXG5pbXBvcnQgeyBWZkNoYXRib3RTZWxlY3RvckFuZ3VsYXJDb21wb25lbnQgfSBmcm9tICcuL3ZmLWNoYXRib3Qtc2VsZWN0b3IuYW5ndWxhci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBWZkNoYXRib3RTZWxlY3RvckFuZ3VsYXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVmZDaGF0Ym90U2VsZWN0b3JBbmd1bGFyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90U2VsZWN0b3JBbmd1bGFyTW9kdWxlIHsgfVxuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/visual-framework-vf-chatbot-selector.angular.mjs b/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/visual-framework-vf-chatbot-selector.angular.mjs new file mode 100644 index 0000000000..80509ecd5b --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/esm2022/visual-framework-vf-chatbot-selector.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-selector.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LXNlbGVjdG9yLmFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LXNlbGVjdG9yLmFuZ3VsYXIvc3JjL2xpYi92aXN1YWwtZnJhbWV3b3JrLXZmLWNoYXRib3Qtc2VsZWN0b3IuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1zZWxlY3Rvci5hbmd1bGFyLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs b/components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs new file mode 100644 index 0000000000..8d612be883 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs @@ -0,0 +1,299 @@ +import * as i0 from '@angular/core'; +import { NgModule, Component, Input } from '@angular/core'; +import * as i1 from '@angular/common/http'; +import * as i2 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import * as i3 from '@angular/forms'; +import { FormsModule } from '@angular/forms'; + +class VfChatbotSelectorAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, declarations: [VfChatbotSelectorAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotSelectorAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotSelectorAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotSelectorAngularComponent + ] + }] + }] }); + +class VfChatbotSelectorAngularComponent { + constructor(elRef, http) { + this.elRef = elRef; + this.http = http; + this.chatbotRoutes = {}; + this.context = {}; + this.config = {}; + this.search = ''; + this.selected = []; + this.showSearchBox = true; + this.maxSelect = 1; + } + ngOnInit() { + const defaults = { + routes: [], + multiSelect: false, + maxMultiSelect: 1, + showSearch: true, + showSearchThreshold: 5, + showAllServices: false, + showAllServicesSelected: false, + selector_logo_url: '../../assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg', + selector_logo_title: 'AI Assistant', + title: 'Select option', + placeholder: 'Search...', + }; + // Prefer any explicit `context` input; otherwise fall back to `chatbotRoutes`. + const source = (this.context && Object.keys(this.context).length > 0) + ? this.context + : (this.chatbotRoutes || {}); + // Merge defaults into the chosen source so template bindings exist and are objects + this.context = { ...defaults, ...source }; + this.config = this.context; // keep `config` for backwards compatibility + this.maxSelect = this.config.maxMultiSelect || 3; + this.showSearchBox = + this.context.chatbotRoutes.showSearch && + (this.context.chatbotRoutes.routes || []).length > this.context.chatbotRoutes.showSearchThreshold; + this.loadRoutesFromApi(); + } + clearAll(event) { + event.preventDefault(); + this.selected = []; + } + toggleSelect(routeId) { + if (this.context.chatbotRoutes.multiSelect) { + if (this.selected.includes(routeId)) { + this.selected = this.selected.filter(id => id !== routeId); + } + else if (this.selected.length < this.maxSelect) { + this.selected.push(routeId); + } + } + else { + this.selected = [routeId]; + } + } + loadRoutesFromApi() { + const url = this.context.chatbotRoutes.routes; + this.http.get(url).subscribe(config => { + this.context.chatbotRoutes.array_routes = config['routes']; + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularComponent, deps: [{ token: i0.ElementRef }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotSelectorAngularComponent, selector: "vf-chatbot-selector", inputs: { chatbotRoutes: "chatbotRoutes", context: "context" }, ngImport: i0, template: ` +
+ + +
+ + +
+ + Select up to {{context.chatbotRoutes.maxMultiSelect.toString()}} services + + + Clear all + +
+ +
    +
  • + {{ route.title }} +
  • +
+
+
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSelectorAngularComponent, decorators: [{ + type: Component, + args: [{ selector: 'vf-chatbot-selector', template: ` +
+ + +
+ + +
+ + Select up to {{context.chatbotRoutes.maxMultiSelect.toString()}} services + + + Clear all + +
+ +
    +
  • + {{ route.title }} +
  • +
+
+
+ ` }] + }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.HttpClient }], propDecorators: { chatbotRoutes: [{ + type: Input + }], context: [{ + type: Input + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotSelectorAngularComponent, VfChatbotSelectorAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-selector.angular.mjs.map diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs.map b/components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs.map new file mode 100644 index 0000000000..808a1378f9 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/fesm2022/visual-framework-vf-chatbot-selector.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-selector.angular.mjs","sources":["../../../projects/vf-chatbot-selector.angular/src/lib/vf-chatbot-selector.angular.module.ts","../../../projects/vf-chatbot-selector.angular/src/lib/vf-chatbot-selector.angular.component.ts","../../../projects/vf-chatbot-selector.angular/src/lib/visual-framework-vf-chatbot-selector.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotSelectorAngularComponent } from './vf-chatbot-selector.angular.component';\n\n@NgModule({\n declarations: [\n VfChatbotSelectorAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n VfChatbotSelectorAngularComponent\n ]\n})\nexport class VfChatbotSelectorAngularModule { }\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\ninterface Config {\n routes: any[];\n [key: string]: any;\n}\n\n@Component({\n selector: 'vf-chatbot-selector',\n template: `\n \n \n \n
\n \n {{ context.chatbotRoutes.selector_logo_title }}\n \n \n {{\n selected.length === 0 ? context.chatbotRoutes.title : context.chatbotRoutes.routes\n }}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n
\n \n Type to search\n \n \n
\n\n
\n \n Select up to {{context.chatbotRoutes.maxMultiSelect.toString()}} services\n \n \n Clear all\n \n
\n\n
    \n \n {{ route.title }}\n \n
\n
\n \n `,\n styles: [],\n})\nexport class VfChatbotSelectorAngularComponent implements OnInit {\n @Input() chatbotRoutes: any = {};\n @Input() context: any = {};\n config: any = {};\n search = '';\n selected: string[] = [];\n showSearchBox = true;\n maxSelect = 1;\n\n constructor(private elRef: ElementRef, private http: HttpClient) {}\n\n ngOnInit(): void {\n const defaults = {\n routes: [],\n multiSelect: false,\n maxMultiSelect: 1,\n showSearch: true,\n showSearchThreshold: 5,\n showAllServices: false,\n showAllServicesSelected: false,\n selector_logo_url: '../../assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg',\n selector_logo_title: 'AI Assistant',\n title: 'Select option',\n placeholder: 'Search...',\n };\n\n // Prefer any explicit `context` input; otherwise fall back to `chatbotRoutes`.\n const source = (this.context && Object.keys(this.context).length > 0)\n ? this.context\n : (this.chatbotRoutes || {});\n\n // Merge defaults into the chosen source so template bindings exist and are objects\n this.context = { ...defaults, ...source };\n this.config = this.context; // keep `config` for backwards compatibility\n\n this.maxSelect = this.config.maxMultiSelect || 3;\n this.showSearchBox =\n this.context.chatbotRoutes.showSearch &&\n (this.context.chatbotRoutes.routes || []).length > this.context.chatbotRoutes.showSearchThreshold;\n this.loadRoutesFromApi();\n }\n\n clearAll(event: Event): void {\n event.preventDefault();\n this.selected = [];\n }\n\n toggleSelect(routeId: string): void {\n if (this.context.chatbotRoutes.multiSelect) {\n if (this.selected.includes(routeId)) {\n this.selected = this.selected.filter(id => id !== routeId);\n } else if (this.selected.length < this.maxSelect) {\n this.selected.push(routeId);\n }\n } else {\n this.selected = [routeId];\n }\n }\n loadRoutesFromApi(): void {\n const url = this.context.chatbotRoutes.routes;\n this.http.get(url).subscribe(config => {\n this.context.chatbotRoutes.array_routes = config['routes'];\n});\n \n \n}\n}\n\nexport * from './vf-chatbot-selector.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-selector.angular.component';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/index.d.ts b/components/vf-chatbot-selector/vf-chatbot-selector.angular/index.d.ts new file mode 100644 index 0000000000..e6daf00c08 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-selector.angular.component'; diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/package.json b/components/vf-chatbot-selector/vf-chatbot-selector.angular/package.json new file mode 100644 index 0000000000..0f2d6dde44 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-selector.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-selector.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-selector.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-selector.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-selector.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.component.d.ts b/components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.component.d.ts new file mode 100644 index 0000000000..7d195e3919 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.component.d.ts @@ -0,0 +1,22 @@ +import { ElementRef, OnInit } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import * as i0 from "@angular/core"; +export declare class VfChatbotSelectorAngularComponent implements OnInit { + private elRef; + private http; + chatbotRoutes: any; + context: any; + config: any; + search: string; + selected: string[]; + showSearchBox: boolean; + maxSelect: number; + constructor(elRef: ElementRef, http: HttpClient); + ngOnInit(): void; + clearAll(event: Event): void; + toggleSelect(routeId: string): void; + loadRoutesFromApi(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-selector.angular.module'; diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.module.d.ts b/components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.module.d.ts new file mode 100644 index 0000000000..c871dd3d08 --- /dev/null +++ b/components/vf-chatbot-selector/vf-chatbot-selector.angular/vf-chatbot-selector.angular.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-selector.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +export declare class VfChatbotSelectorAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-selector/vf-chatbot-selector.config.yml b/components/vf-chatbot-selector/vf-chatbot-selector.config.yml index 9ad09cd581..8280cc6376 100644 --- a/components/vf-chatbot-selector/vf-chatbot-selector.config.yml +++ b/components/vf-chatbot-selector/vf-chatbot-selector.config.yml @@ -1,6 +1,6 @@ title: Chatbot Selector label: Chatbot Selector -status: beta +status: live preview: '@preview' hidden: true context: diff --git a/components/vf-chatbot-sources/CHANGELOG.md b/components/vf-chatbot-sources/CHANGELOG.md index f1b63aa271..11b4366ed4 100644 --- a/components/vf-chatbot-sources/CHANGELOG.md +++ b/components/vf-chatbot-sources/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.3 * Added : Changes for chatbot modal variant @@ -13,4 +17,4 @@ * Initial version * Accessibility enhancements for external links -* Added security attributes (`rel="noopener noreferrer"`) \ No newline at end of file +* Added security attributes (`rel="noopener noreferrer"`) diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/.npmignore b/components/vf-chatbot-sources/vf-chatbot-sources.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/README.md b/components/vf-chatbot-sources/vf-chatbot-sources.angular/README.md new file mode 100644 index 0000000000..70f0f67b3a --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotSourcesAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-sources.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-sources.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.component.mjs b/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.component.mjs new file mode 100644 index 0000000000..00156c8e1e --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.component.mjs @@ -0,0 +1,62 @@ +import { Component, Input } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +export class VfChatbotSourcesAngularComponent { + constructor(elementRef) { + this.elementRef = elementRef; + this.sources = []; + } + ngAfterViewInit() { + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotSourcesAngularComponent, selector: "vf-chatbot-sources", inputs: { sources: "sources" }, ngImport: i0, template: ` +
+

Sources

+ +
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-sources', + template: ` +
+

Sources

+ +
+ `, + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { sources: [{ + type: Input + }] } }); +export * from './vf-chatbot-sources.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1zb3VyY2VzLmFuZ3VsYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1zb3VyY2VzLmFuZ3VsYXIvc3JjL2xpYi92Zi1jaGF0Ym90LXNvdXJjZXMuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7OztBQWdDdkIsTUFBTSxPQUFPLGdDQUFnQztJQUczQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRmpDLFlBQU8sR0FBc0IsRUFBRSxDQUFDO0lBRUksQ0FBQztJQUU5QyxlQUFlO0lBQ2YsQ0FBQzsrR0FOVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQywwRkFyQmpDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUOzs0RkFFVSxnQ0FBZ0M7a0JBdkI1QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtpQkFDRjsrRUFFVSxPQUFPO3NCQUFmLEtBQUs7O0FBUVIsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVkZDaGF0Ym90U291cmNlIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZmLWNoYXRib3Qtc291cmNlcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LXNvdXJjZXNcIlxuICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LXNvdXJjZXNcbiAgICA+XG4gICAgICA8aDM+U291cmNlczwvaDM+XG4gICAgICA8dWw+XG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgc291cmNlIG9mIHNvdXJjZXNcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgW2hyZWZdPVwic291cmNlLnVybFwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNvdXJjZS50aXRsZSArICcgKG9wZW5zIGluIG5ldyB0YWIpJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc291cmNlLnRpdGxlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90U291cmNlc0FuZ3VsYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc291cmNlczogVkZDaGF0Ym90U291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1zb3VyY2VzLmFuZ3VsYXIubW9kdWxlJztcbiJdfQ== \ No newline at end of file diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.module.mjs b/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.module.mjs new file mode 100644 index 0000000000..db0f95d827 --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/vf-chatbot-sources.angular.module.mjs @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotSourcesAngularComponent } from './vf-chatbot-sources.angular.component'; +import * as i0 from "@angular/core"; +export class VfChatbotSourcesAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, declarations: [VfChatbotSourcesAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotSourcesAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotSourcesAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotSourcesAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1zb3VyY2VzLmFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1zb3VyY2VzLmFuZ3VsYXIvc3JjL2xpYi92Zi1jaGF0Ym90LXNvdXJjZXMuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQWMxRixNQUFNLE9BQU8sNkJBQTZCOytHQUE3Qiw2QkFBNkI7Z0hBQTdCLDZCQUE2QixpQkFWdEMsZ0NBQWdDLGFBR2hDLFlBQVk7WUFDWixXQUFXLGFBR1gsZ0NBQWdDO2dIQUd2Qiw2QkFBNkIsWUFQdEMsWUFBWTtZQUNaLFdBQVc7OzRGQU1GLDZCQUE2QjtrQkFaekMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxnQ0FBZ0M7cUJBQ2pDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJzsgXG5pbXBvcnQgeyBWZkNoYXRib3RTb3VyY2VzQW5ndWxhckNvbXBvbmVudCB9IGZyb20gJy4vdmYtY2hhdGJvdC1zb3VyY2VzLmFuZ3VsYXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVmZDaGF0Ym90U291cmNlc0FuZ3VsYXJDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgVmZDaGF0Ym90U291cmNlc0FuZ3VsYXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBWZkNoYXRib3RTb3VyY2VzQW5ndWxhck1vZHVsZSB7IH1cbiJdfQ== \ No newline at end of file diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/visual-framework-vf-chatbot-sources.angular.mjs b/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/visual-framework-vf-chatbot-sources.angular.mjs new file mode 100644 index 0000000000..49ee554f1e --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/esm2022/visual-framework-vf-chatbot-sources.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-sources.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LXNvdXJjZXMuYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3Qtc291cmNlcy5hbmd1bGFyL3NyYy9saWIvdmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LXNvdXJjZXMuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1zb3VyY2VzLmFuZ3VsYXIuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs b/components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs new file mode 100644 index 0000000000..675f192f1b --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs @@ -0,0 +1,93 @@ +import * as i0 from '@angular/core'; +import { NgModule, Component, Input } from '@angular/core'; +import * as i1 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +class VfChatbotSourcesAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, declarations: [VfChatbotSourcesAngularComponent], imports: [CommonModule, + FormsModule], exports: [VfChatbotSourcesAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, imports: [CommonModule, + FormsModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotSourcesAngularComponent + ], + imports: [ + CommonModule, + FormsModule + ], + exports: [ + VfChatbotSourcesAngularComponent + ] + }] + }] }); + +class VfChatbotSourcesAngularComponent { + constructor(elementRef) { + this.elementRef = elementRef; + this.sources = []; + } + ngAfterViewInit() { + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotSourcesAngularComponent, selector: "vf-chatbot-sources", inputs: { sources: "sources" }, ngImport: i0, template: ` +
+

Sources

+ +
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotSourcesAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-sources', + template: ` +
+

Sources

+ +
+ `, + }] + }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { sources: [{ + type: Input + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotSourcesAngularComponent, VfChatbotSourcesAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot-sources.angular.mjs.map diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs.map b/components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs.map new file mode 100644 index 0000000000..610e3f9dc9 --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/fesm2022/visual-framework-vf-chatbot-sources.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-sources.angular.mjs","sources":["../../../projects/vf-chatbot-sources.angular/src/lib/vf-chatbot-sources.angular.module.ts","../../../projects/vf-chatbot-sources.angular/src/lib/vf-chatbot-sources.angular.component.ts","../../../projects/vf-chatbot-sources.angular/src/lib/visual-framework-vf-chatbot-sources.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotSourcesAngularComponent } from './vf-chatbot-sources.angular.component';\n\n@NgModule({\n declarations: [\n VfChatbotSourcesAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n VfChatbotSourcesAngularComponent\n ]\n})\nexport class VfChatbotSourcesAngularModule { }\n","import {\n Component,\n Input,\n ElementRef,\n AfterViewInit\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\nexport interface VFChatbotSource {\n title: string;\n url: string;\n}\n\n@Component({\n selector: 'vf-chatbot-sources',\n template: `\n \n

Sources

\n
    \n
  • \n \n {{ source.title }}\n \n
  • \n
\n \n `,\n})\nexport class VfChatbotSourcesAngularComponent implements AfterViewInit {\n @Input() sources: VFChatbotSource[] = [];\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n }\n}\n\nexport * from './vf-chatbot-sources.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-sources.angular.component';\n"],"names":[],"mappings":";;;;;;MAiBa,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAA7B,6BAA6B,EAAA,YAAA,EAAA,CAVtC,gCAAgC,CAAA,EAAA,OAAA,EAAA,CAGhC,YAAY;AACZ,YAAA,WAAW,aAGX,gCAAgC,CAAA,EAAA,CAAA,CAAA;AAGvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,YAPtC,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAMF,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAZzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD;AACF,iBAAA;;;MCqBY,gCAAgC,CAAA;AAG3C,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;QAFrB,IAAO,CAAA,OAAA,GAAsB,EAAE;;IAIxC,eAAe,GAAA;;+GALJ,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,EArBjC,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEU,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAvB5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA;AACF,iBAAA;+EAEU,OAAO,EAAA,CAAA;sBAAf;;;ACtCH;;AAEG;;;;"} \ No newline at end of file diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/index.d.ts b/components/vf-chatbot-sources/vf-chatbot-sources.angular/index.d.ts new file mode 100644 index 0000000000..dbf1b65639 --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-sources.angular.component'; diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/package.json b/components/vf-chatbot-sources/vf-chatbot-sources.angular/package.json new file mode 100644 index 0000000000..582e118447 --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-sources.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-sources.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-sources.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-sources.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-sources.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.component.d.ts b/components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.component.d.ts new file mode 100644 index 0000000000..483752ab71 --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.component.d.ts @@ -0,0 +1,15 @@ +import { ElementRef, AfterViewInit } from '@angular/core'; +import * as i0 from "@angular/core"; +export interface VFChatbotSource { + title: string; + url: string; +} +export declare class VfChatbotSourcesAngularComponent implements AfterViewInit { + private elementRef; + sources: VFChatbotSource[]; + constructor(elementRef: ElementRef); + ngAfterViewInit(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-sources.angular.module'; diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.module.d.ts b/components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.module.d.ts new file mode 100644 index 0000000000..f5fca802be --- /dev/null +++ b/components/vf-chatbot-sources/vf-chatbot-sources.angular/vf-chatbot-sources.angular.module.d.ts @@ -0,0 +1,9 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-sources.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +export declare class VfChatbotSourcesAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-sources/vf-chatbot-sources.config.yml b/components/vf-chatbot-sources/vf-chatbot-sources.config.yml index 6608994485..73e39e1cea 100644 --- a/components/vf-chatbot-sources/vf-chatbot-sources.config.yml +++ b/components/vf-chatbot-sources/vf-chatbot-sources.config.yml @@ -1,6 +1,6 @@ title: Chatbot Sources label: Chatbot Sources -status: beta +status: live preview: '@preview' hidden: true context: diff --git a/components/vf-chatbot-standalone/CHANGELOG.md b/components/vf-chatbot-standalone/CHANGELOG.md index 04dc51be26..be72f4f4d6 100644 --- a/components/vf-chatbot-standalone/CHANGELOG.md +++ b/components/vf-chatbot-standalone/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.0 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0-beta.4 * Updated : Standalone variant initialization moved to `vf-chatbot` component @@ -22,4 +26,4 @@ * Auto-resizing textarea (1-5 rows with scroll) * Configurable Q&A data loading with fallback responses * Enhanced accessibility -* Comprehensive event handling system \ No newline at end of file +* Comprehensive event handling system diff --git a/components/vf-chatbot-standalone/README.md b/components/vf-chatbot-standalone/README.md index 6ffc279490..1cff12d583 100644 --- a/components/vf-chatbot-standalone/README.md +++ b/components/vf-chatbot-standalone/README.md @@ -108,7 +108,7 @@ window.addEventListener("load", function() { initVFChatbot(config); }); ``` -where config is the configuration object with different options as described below +where config is the configuration object with different options as described below #### Core Configuration Options @@ -208,18 +208,18 @@ const selectorConfig = { // Multi-selection settings multiSelect: true, maxMultiSelect: 3, - + // Search functionality showSearch: true, showSearchThreshold: 5, - + // "All Services" option showAllServices: true, showAllServicesSelected: true, - + // Data source routes: "assets/vf-chatbot-selector-services.json", - + // UI labels and logo placeholder: "Select services", title: "Available Services", @@ -241,7 +241,7 @@ Please note that if you want to opt for a single selection option version of the "title": "Service 1 title" }, { - "id": "service-2", + "id": "service-2", "title": "Service 2 title" } ] @@ -252,14 +252,14 @@ Please note that if you want to opt for a single selection option version of the #### Built-in Event Handlers -Chatbot comes with a provision to allow custom event handlers. These handlers can be defined in your code to handle specific actions for different events triggered during interaction with chatbot. +Chatbot comes with a provision to allow custom event handlers. These handlers can be defined in your code to handle specific actions for different events triggered during interaction with chatbot. Configure custom handlers for chatbot events: ```javascript const config = { handlers: { on_message_send: "handleMessageSend", - on_response_receive: "handleResponseReceive", + on_response_receive: "handleResponseReceive", on_feedback_submit: "handleFeedbackSubmit", on_suggestion_click: "handleSuggestionClick", on_error: "handleError", @@ -485,7 +485,7 @@ const config = { "response": "Here's the information...", "sources": [ { - "title": "Official Documentation", + "title": "Official Documentation", "url": "https://docs.example.com", "description": "Complete guide to the platform" } @@ -517,13 +517,63 @@ const config = { "action_url": "https://example.com/tutorial" }, { - "action_text": "Contact Support", + "action_text": "Contact Support", "action_url": "mailto:support@example.com" } ] } ``` +### Angular + +This component now has experimental Angular support. + +1. Install `yarn add @visual-framework/vf-chatbot @visual-framework/vf-chatbot-standalone` +2. Import in your app module + ``` + import { VfChatbotAngularModule } from '@visual-framework/vf-chatbot/vf-chatbot.angular'; + + @NgModule({ + imports: [VfChatbotAngularModule, YourOtherModules], + ... + }) + ``` +3. JS assets inclusion + * Copy required JS files to your Angular `src/assets` folder, keeping these paths: + - `src/assets/vf-chatbot-fab/vf-chatbot-fab.js` + - `src/assets/vf-chatbot-dialog/vf-chatbot-dialog.js` + - `src/assets/vf-chatbot-feedback/vf-chatbot-feedback.js` + - `src/assets/vf-chatbot-selector/vf-chatbot-selector.js` + - `src/assets/vf-chatbot-sources/vf-chatbot-sources.js` + - `src/assets/vf-chatbot-welcome/vf-chatbot-welcome.js` + - `src/assets/vf-chatbot/vf-chatbot.js` + - `src/assets/vf-chatbot-modal/vf-chatbot-modal.js` + - `src/assets/vf-chatbot-standalone/vf-chatbot-standalone.js` + * In `angular.json`, ensure the files above are listed in `scripts: []`. + * Rerun the project if already running. +4. Can be used as + ``` + + + // component.ts + chatbotConfig = { + type: 'standalone' + // ...other options from the config examples above + }; + ``` +5. Add below to your `styles.scss` + ``` + $vf-font-plex-mono-prefix: '~@visual-framework/vf-font-plex-mono/assets'; + $vf-font-plex-sans-prefix: '~@visual-framework/vf-font-plex-sans/assets'; + + @import '~@visual-framework/vf-sass-starter/index.scss'; + @import '~@visual-framework/vf-link/vf-link.scss'; + @import '~@visual-framework/vf-chatbot/vf-chatbot.scss'; + @import '~@visual-framework/vf-chatbot-modal/index.scss'; + @import '~@visual-framework/vf-chatbot-standalone/index.scss'; + ``` + You should also install [vf-sass-starter](https://stable.visual-framework.dev/components/vf-sass-starter) for the styles. + ### React This component now has React support which has been tested on react version 18.2.0 diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/.npmignore b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/README.md b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/README.md new file mode 100644 index 0000000000..47fc9a9a42 --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotStandaloneAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-standalone.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-standalone.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/vf-chatbot-standalone.angular.component.mjs b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/vf-chatbot-standalone.angular.component.mjs new file mode 100644 index 0000000000..138ec48327 --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/vf-chatbot-standalone.angular.component.mjs @@ -0,0 +1,224 @@ +import { Component, Input, Output, EventEmitter, ViewChild, ViewEncapsulation, Inject, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, } from '@angular/core'; +import { DOCUMENT } from '@angular/common'; +import * as i0 from "@angular/core"; +export class VfChatbotStandaloneAngularComponent { + constructor(renderer, document) { + this.renderer = renderer; + this.document = document; + this.config = {}; + this.messages = []; + this.sources = []; + this.prompts = []; + this.inputValue = ''; + this.onSendMessage = new EventEmitter(); + this.onInputChange = new EventEmitter(); + this.onFeedback = new EventEmitter(); + this.onDialogConfirm = new EventEmitter(); + this.onDialogCancel = new EventEmitter(); + this.qaData = []; + this.loadedScripts = new Set(); + } + ngOnInit() { } + async ngAfterViewInit() { + try { + await this.loadWorkingScripts(); + this.initializeChatbot(); + } + catch { + this.initializeChatbot(); + } + } + async loadWorkingScripts() { + const moduleScripts = [ + '/assets/vf-chatbot-fab/vf-chatbot-fab.js', + '/assets/vf-chatbot-dialog/vf-chatbot-dialog.js', + '/assets/vf-chatbot-feedback/vf-chatbot-feedback.js', + '/assets/vf-chatbot-selector/vf-chatbot-selector.js', + '/assets/vf-chatbot-sources/vf-chatbot-sources.js', + '/assets/vf-chatbot-welcome/vf-chatbot-welcome.js' + ]; + const moduleScriptsWithDependencies = [ + '/assets/vf-chatbot/vf-chatbot.js', + '/assets/vf-chatbot-modal/vf-chatbot-modal.js', + '/assets/vf-chatbot-standalone/vf-chatbot-standalone.js' + ]; + for (const scriptSrc of moduleScripts) { + try { + await this.loadSingleScript(scriptSrc); + } + catch { + // Keep loading remaining scripts; standalone init tolerates missing optional modules. + } + } + for (const scriptSrc of moduleScriptsWithDependencies) { + try { + await this.loadSingleScript(scriptSrc); + } + catch { + // Keep loading remaining scripts; standalone init tolerates missing optional modules. + } + } + } + async loadSingleScript(src) { + if (this.loadedScripts.has(src)) { + return; + } + try { + await import(/* webpackIgnore: true */ src); + this.loadedScripts.add(src); + return; + } + catch { + // Fall through to script tag loading if dynamic import fails. + } + await new Promise((resolve) => { + const existingScript = this.document.querySelector(`script[src="${src}"]`); + if (existingScript) { + this.loadedScripts.add(src); + resolve(); + return; + } + const script = this.renderer.createElement('script'); + script.type = 'module'; + script.src = src; + script.async = true; + script.onload = () => { + this.loadedScripts.add(src); + resolve(); + }; + script.onerror = () => { + this.loadedScripts.add(`${src}_failed`); + resolve(); + }; + this.renderer.appendChild(this.document.head, script); + }); + } + initializeChatbot() { + const allInitFunctions = [ + 'initVFChatbotFab', + 'initVFChatbotDialog', + 'initVFChatbotFeedback', + 'initVFChatbotSelector', + 'initVFChatbotSources', + 'initVFChatbotWelcome', + 'initVFChatbotStandalone', + 'initVFChatbotModal', + 'initVFChatbot' + ]; + allInitFunctions.forEach(funcName => { + if (typeof window[funcName] === 'function') { + try { + window[funcName](); + } + catch { + // Continue initializing available modules. + } + } + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandaloneAngularComponent, deps: [{ token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotStandaloneAngularComponent, selector: "vf-chatbot-standalone", inputs: { config: "config", messages: "messages", sources: "sources", prompts: "prompts", inputValue: "inputValue" }, outputs: { onSendMessage: "onSendMessage", onInputChange: "onInputChange", onFeedback: "onFeedback", onDialogConfirm: "onDialogConfirm", onDialogCancel: "onDialogCancel" }, viewQueries: [{ propertyName: "standaloneRef", first: true, predicate: ["standaloneRef"], descendants: true }], ngImport: i0, template: ``, isInline: true, encapsulation: i0.ViewEncapsulation.None }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandaloneAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-standalone', + template: ``, + encapsulation: ViewEncapsulation.None, + }] + }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: Document, decorators: [{ + type: Inject, + args: [DOCUMENT] + }] }], propDecorators: { config: [{ + type: Input + }], messages: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], inputValue: [{ + type: Input + }], onSendMessage: [{ + type: Output + }], onInputChange: [{ + type: Output + }], onFeedback: [{ + type: Output + }], onDialogConfirm: [{ + type: Output + }], onDialogCancel: [{ + type: Output + }], standaloneRef: [{ + type: ViewChild, + args: ['standaloneRef'] + }] } }); +export class VfChatbotStandalonePageComponent { + constructor() { + this.chatbotConfig = { + type: 'standalone', + title: 'Visual Framework Assistant', + welcome_logo: true, + welcome_message: "Welcome! I'm here to help with Visual Framework components.", + welcome_logo_alt: 'Visual Framework Assistant', + welcome_suggestions_title: 'Try asking me:', + input_placeholder: 'Ask a question...', + welcome_max_suggestions: 4, + disclaimer: 'This demo chatbot is for internal component testing and UI exploration.', + footnote: 'Review generated responses before using them in production.', + icons: { + assistant_avatar: './assets/vf-chatbot/assets/vf-chatbot--icon-16x16-dark-green.svg', + user_avatar: './assets/vf-chatbot/assets/vf-chatbot--avatar-user.svg', + send_button: './assets/vf-chatbot/assets/vf-chatbot--icon-send.svg', + minimize: './assets/vf-chatbot/assets/vf-chatbot--icon-minimize.svg', + close: './assets/vf-chatbot/assets/vf-chatbot--icon-close.svg', + main_logo_url: './assets/vf-chatbot/assets/vf-chatbot--icon-32x32-dark-green.svg' + }, + features: { + enable_welcome: true, + enable_welcome_suggestions: true, + enable_qa_data_loading: true, + enable_predefined_qa: true, + enable_fallback_responses: true, + enable_feedback: true, + enable_disclaimer: true, + enable_typing_indicator: true + }, + behavior: { + show_scrollbar: true, + auto_scroll: true + }, + api: { + qa_data_url: './assets/vf-chatbot/assets/vf-chatbot-qa.json' + } + }; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandalonePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotStandalonePageComponent, isStandalone: true, selector: "app-vf-chatbot-standalone-page", ngImport: i0, template: ` + + `, isInline: true }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandalonePageComponent, decorators: [{ + type: Component, + args: [{ + selector: 'app-vf-chatbot-standalone-page', + standalone: true, + schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], + template: ` + + ` + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC1zdGFuZGFsb25lLmFuZ3VsYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC1zdGFuZGFsb25lLmFuZ3VsYXIvc3JjL2xpYi92Zi1jaGF0Ym90LXN0YW5kYWxvbmUuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFHWixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLE1BQU0sRUFDTixzQkFBc0IsRUFDdEIsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLG1DQUFtQztJQWtCOUMsWUFDVSxRQUFtQixFQUNELFFBQWtCO1FBRHBDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBbkJyQyxXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFZixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFJcEQsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNYLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUt2QyxDQUFDO0lBRUosUUFBUSxLQUFJLENBQUM7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QWdCLENBQUM7b0JBQ25ELFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFJlbmRlcmVyMixcbiAgSW5qZWN0LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBOT19FUlJPUlNfU0NIRU1BLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmYtY2hhdGJvdC1zdGFuZGFsb25lJyxcbiAgdGVtcGxhdGU6IGBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBWZkNoYXRib3RTdGFuZGFsb25lQW5ndWxhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNvbmZpZzogYW55ID0ge307XG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBzb3VyY2VzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBwcm9tcHRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBpbnB1dFZhbHVlID0gJyc7XG5cbiAgQE91dHB1dCgpIG9uU2VuZE1lc3NhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBvbklucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uRmVlZGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uRGlhbG9nQ29uZmlybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG9uRGlhbG9nQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3N0YW5kYWxvbmVSZWYnKSBzdGFuZGFsb25lUmVmITogRWxlbWVudFJlZjtcblxuICBxYURhdGE6IGFueVtdID0gW107XG4gIHByaXZhdGUgbG9hZGVkU2NyaXB0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkV29ya2luZ1NjcmlwdHMoKTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXRib3QoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXRib3QoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRXb3JraW5nU2NyaXB0cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtb2R1bGVTY3JpcHRzID0gW1xuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC1mYWIvdmYtY2hhdGJvdC1mYWIuanMnLFxuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC1kaWFsb2cvdmYtY2hhdGJvdC1kaWFsb2cuanMnLFxuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC1mZWVkYmFjay92Zi1jaGF0Ym90LWZlZWRiYWNrLmpzJyxcbiAgICAgICcvYXNzZXRzL3ZmLWNoYXRib3Qtc2VsZWN0b3IvdmYtY2hhdGJvdC1zZWxlY3Rvci5qcycsXG4gICAgICAnL2Fzc2V0cy92Zi1jaGF0Ym90LXNvdXJjZXMvdmYtY2hhdGJvdC1zb3VyY2VzLmpzJyxcbiAgICAgICcvYXNzZXRzL3ZmLWNoYXRib3Qtd2VsY29tZS92Zi1jaGF0Ym90LXdlbGNvbWUuanMnXG4gICAgXTtcblxuICAgIGNvbnN0IG1vZHVsZVNjcmlwdHNXaXRoRGVwZW5kZW5jaWVzID0gW1xuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC92Zi1jaGF0Ym90LmpzJyxcbiAgICAgICcvYXNzZXRzL3ZmLWNoYXRib3QtbW9kYWwvdmYtY2hhdGJvdC1tb2RhbC5qcycsXG4gICAgICAnL2Fzc2V0cy92Zi1jaGF0Ym90LXN0YW5kYWxvbmUvdmYtY2hhdGJvdC1zdGFuZGFsb25lLmpzJ1xuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IHNjcmlwdFNyYyBvZiBtb2R1bGVTY3JpcHRzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRTaW5nbGVTY3JpcHQoc2NyaXB0U3JjKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBLZWVwIGxvYWRpbmcgcmVtYWluaW5nIHNjcmlwdHM7IHN0YW5kYWxvbmUgaW5pdCB0b2xlcmF0ZXMgbWlzc2luZyBvcHRpb25hbCBtb2R1bGVzLlxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc2NyaXB0U3JjIG9mIG1vZHVsZVNjcmlwdHNXaXRoRGVwZW5kZW5jaWVzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRTaW5nbGVTY3JpcHQoc2NyaXB0U3JjKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBLZWVwIGxvYWRpbmcgcmVtYWluaW5nIHNjcmlwdHM7IHN0YW5kYWxvbmUgaW5pdCB0b2xlcmF0ZXMgbWlzc2luZyBvcHRpb25hbCBtb2R1bGVzLlxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNpbmdsZVNjcmlwdChzcmM6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmxvYWRlZFNjcmlwdHMuaGFzKHNyYykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tJZ25vcmU6IHRydWUgKi8gc3JjKTtcbiAgICAgIHRoaXMubG9hZGVkU2NyaXB0cy5hZGQoc3JjKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBzY3JpcHQgdGFnIGxvYWRpbmcgaWYgZHluYW1pYyBpbXBvcnQgZmFpbHMuXG4gICAgfVxuXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nU2NyaXB0ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjPVwiJHtzcmN9XCJdYCk7XG4gICAgICBpZiAoZXhpc3RpbmdTY3JpcHQpIHtcbiAgICAgICAgdGhpcy5sb2FkZWRTY3JpcHRzLmFkZChzcmMpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC50eXBlID0gJ21vZHVsZSc7XG4gICAgICBzY3JpcHQuc3JjID0gc3JjO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcblxuICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZWRTY3JpcHRzLmFkZChzcmMpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZWRTY3JpcHRzLmFkZChgJHtzcmN9X2ZhaWxlZGApO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgc2NyaXB0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNoYXRib3QoKTogdm9pZCB7XG4gICAgY29uc3QgYWxsSW5pdEZ1bmN0aW9ucyA9IFtcbiAgICAgICdpbml0VkZDaGF0Ym90RmFiJyxcbiAgICAgICdpbml0VkZDaGF0Ym90RGlhbG9nJyxcbiAgICAgICdpbml0VkZDaGF0Ym90RmVlZGJhY2snLFxuICAgICAgJ2luaXRWRkNoYXRib3RTZWxlY3RvcicsXG4gICAgICAnaW5pdFZGQ2hhdGJvdFNvdXJjZXMnLFxuICAgICAgJ2luaXRWRkNoYXRib3RXZWxjb21lJyxcbiAgICAgICdpbml0VkZDaGF0Ym90U3RhbmRhbG9uZScsXG4gICAgICAnaW5pdFZGQ2hhdGJvdE1vZGFsJyxcbiAgICAgICdpbml0VkZDaGF0Ym90J1xuICAgIF07XG5cbiAgICBhbGxJbml0RnVuY3Rpb25zLmZvckVhY2goZnVuY05hbWUgPT4ge1xuICAgICAgaWYgKHR5cGVvZiAod2luZG93IGFzIGFueSlbZnVuY05hbWVdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgKHdpbmRvdyBhcyBhbnkpW2Z1bmNOYW1lXSgpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBDb250aW51ZSBpbml0aWFsaXppbmcgYXZhaWxhYmxlIG1vZHVsZXMuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdmYtY2hhdGJvdC1zdGFuZGFsb25lLXBhZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZmLWNoYXRib3RcbiAgICAgIFtjb25maWddPVwiY2hhdGJvdENvbmZpZ1wiXG4gICAgICBbcWFEYXRhXT1cIltdXCJcbiAgICAgIFttZXNzYWdlc109XCJbXVwiXG4gICAgICBbc291cmNlc109XCJbXVwiXG4gICAgICBbcHJvbXB0c109XCJbXVwiXG4gICAgPjwvdmYtY2hhdGJvdD5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBWZkNoYXRib3RTdGFuZGFsb25lUGFnZUNvbXBvbmVudCB7XG4gIHB1YmxpYyBjaGF0Ym90Q29uZmlnID0ge1xuICAgIHR5cGU6ICdzdGFuZGFsb25lJyxcbiAgICB0aXRsZTogJ1Zpc3VhbCBGcmFtZXdvcmsgQXNzaXN0YW50JyxcbiAgICB3ZWxjb21lX2xvZ286IHRydWUsXG4gICAgd2VsY29tZV9tZXNzYWdlOiBcIldlbGNvbWUhIEknbSBoZXJlIHRvIGhlbHAgd2l0aCBWaXN1YWwgRnJhbWV3b3JrIGNvbXBvbmVudHMuXCIsXG4gICAgd2VsY29tZV9sb2dvX2FsdDogJ1Zpc3VhbCBGcmFtZXdvcmsgQXNzaXN0YW50JyxcbiAgICB3ZWxjb21lX3N1Z2dlc3Rpb25zX3RpdGxlOiAnVHJ5IGFza2luZyBtZTonLFxuICAgIGlucHV0X3BsYWNlaG9sZGVyOiAnQXNrIGEgcXVlc3Rpb24uLi4nLFxuICAgIHdlbGNvbWVfbWF4X3N1Z2dlc3Rpb25zOiA0LFxuICAgIGRpc2NsYWltZXI6ICdUaGlzIGRlbW8gY2hhdGJvdCBpcyBmb3IgaW50ZXJuYWwgY29tcG9uZW50IHRlc3RpbmcgYW5kIFVJIGV4cGxvcmF0aW9uLicsXG4gICAgZm9vdG5vdGU6ICdSZXZpZXcgZ2VuZXJhdGVkIHJlc3BvbnNlcyBiZWZvcmUgdXNpbmcgdGhlbSBpbiBwcm9kdWN0aW9uLicsXG4gICAgaWNvbnM6IHtcbiAgICAgIGFzc2lzdGFudF9hdmF0YXI6ICcuL2Fzc2V0cy92Zi1jaGF0Ym90L2Fzc2V0cy92Zi1jaGF0Ym90LS1pY29uLTE2eDE2LWRhcmstZ3JlZW4uc3ZnJyxcbiAgICAgIHVzZXJfYXZhdGFyOiAnLi9hc3NldHMvdmYtY2hhdGJvdC9hc3NldHMvdmYtY2hhdGJvdC0tYXZhdGFyLXVzZXIuc3ZnJyxcbiAgICAgIHNlbmRfYnV0dG9uOiAnLi9hc3NldHMvdmYtY2hhdGJvdC9hc3NldHMvdmYtY2hhdGJvdC0taWNvbi1zZW5kLnN2ZycsXG4gICAgICBtaW5pbWl6ZTogJy4vYXNzZXRzL3ZmLWNoYXRib3QvYXNzZXRzL3ZmLWNoYXRib3QtLWljb24tbWluaW1pemUuc3ZnJyxcbiAgICAgIGNsb3NlOiAnLi9hc3NldHMvdmYtY2hhdGJvdC9hc3NldHMvdmYtY2hhdGJvdC0taWNvbi1jbG9zZS5zdmcnLFxuICAgICAgbWFpbl9sb2dvX3VybDogJy4vYXNzZXRzL3ZmLWNoYXRib3QvYXNzZXRzL3ZmLWNoYXRib3QtLWljb24tMzJ4MzItZGFyay1ncmVlbi5zdmcnXG4gICAgfSxcbiAgICBmZWF0dXJlczoge1xuICAgICAgZW5hYmxlX3dlbGNvbWU6IHRydWUsXG4gICAgICBlbmFibGVfd2VsY29tZV9zdWdnZXN0aW9uczogdHJ1ZSxcbiAgICAgIGVuYWJsZV9xYV9kYXRhX2xvYWRpbmc6IHRydWUsXG4gICAgICBlbmFibGVfcHJlZGVmaW5lZF9xYTogdHJ1ZSxcbiAgICAgIGVuYWJsZV9mYWxsYmFja19yZXNwb25zZXM6IHRydWUsXG4gICAgICBlbmFibGVfZmVlZGJhY2s6IHRydWUsXG4gICAgICBlbmFibGVfZGlzY2xhaW1lcjogdHJ1ZSxcbiAgICAgIGVuYWJsZV90eXBpbmdfaW5kaWNhdG9yOiB0cnVlXG4gICAgfSxcbiAgICBiZWhhdmlvcjoge1xuICAgICAgc2hvd19zY3JvbGxiYXI6IHRydWUsXG4gICAgICBhdXRvX3Njcm9sbDogdHJ1ZVxuICAgIH0sXG4gICAgYXBpOiB7XG4gICAgICBxYV9kYXRhX3VybDogJy4vYXNzZXRzL3ZmLWNoYXRib3QvYXNzZXRzL3ZmLWNoYXRib3QtcWEuanNvbidcbiAgICB9XG4gIH07XG59XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/visual-framework-vf-chatbot-standalone.angular.mjs b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/visual-framework-vf-chatbot-standalone.angular.mjs new file mode 100644 index 0000000000..42db69abed --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/esm2022/visual-framework-vf-chatbot-standalone.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-standalone.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LXN0YW5kYWxvbmUuYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3Qtc3RhbmRhbG9uZS5hbmd1bGFyL3NyYy9saWIvdmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LXN0YW5kYWxvbmUuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC1zdGFuZGFsb25lLmFuZ3VsYXIuY29tcG9uZW50JztcbiJdfQ== \ No newline at end of file diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs new file mode 100644 index 0000000000..9964e56f57 --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs @@ -0,0 +1,231 @@ +import * as i0 from '@angular/core'; +import { EventEmitter, Component, ViewEncapsulation, Inject, Input, Output, ViewChild, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core'; +import { DOCUMENT } from '@angular/common'; + +class VfChatbotStandaloneAngularComponent { + constructor(renderer, document) { + this.renderer = renderer; + this.document = document; + this.config = {}; + this.messages = []; + this.sources = []; + this.prompts = []; + this.inputValue = ''; + this.onSendMessage = new EventEmitter(); + this.onInputChange = new EventEmitter(); + this.onFeedback = new EventEmitter(); + this.onDialogConfirm = new EventEmitter(); + this.onDialogCancel = new EventEmitter(); + this.qaData = []; + this.loadedScripts = new Set(); + } + ngOnInit() { } + async ngAfterViewInit() { + try { + await this.loadWorkingScripts(); + this.initializeChatbot(); + } + catch { + this.initializeChatbot(); + } + } + async loadWorkingScripts() { + const moduleScripts = [ + '/assets/vf-chatbot-fab/vf-chatbot-fab.js', + '/assets/vf-chatbot-dialog/vf-chatbot-dialog.js', + '/assets/vf-chatbot-feedback/vf-chatbot-feedback.js', + '/assets/vf-chatbot-selector/vf-chatbot-selector.js', + '/assets/vf-chatbot-sources/vf-chatbot-sources.js', + '/assets/vf-chatbot-welcome/vf-chatbot-welcome.js' + ]; + const moduleScriptsWithDependencies = [ + '/assets/vf-chatbot/vf-chatbot.js', + '/assets/vf-chatbot-modal/vf-chatbot-modal.js', + '/assets/vf-chatbot-standalone/vf-chatbot-standalone.js' + ]; + for (const scriptSrc of moduleScripts) { + try { + await this.loadSingleScript(scriptSrc); + } + catch { + // Keep loading remaining scripts; standalone init tolerates missing optional modules. + } + } + for (const scriptSrc of moduleScriptsWithDependencies) { + try { + await this.loadSingleScript(scriptSrc); + } + catch { + // Keep loading remaining scripts; standalone init tolerates missing optional modules. + } + } + } + async loadSingleScript(src) { + if (this.loadedScripts.has(src)) { + return; + } + try { + await import(/* webpackIgnore: true */ src); + this.loadedScripts.add(src); + return; + } + catch { + // Fall through to script tag loading if dynamic import fails. + } + await new Promise((resolve) => { + const existingScript = this.document.querySelector(`script[src="${src}"]`); + if (existingScript) { + this.loadedScripts.add(src); + resolve(); + return; + } + const script = this.renderer.createElement('script'); + script.type = 'module'; + script.src = src; + script.async = true; + script.onload = () => { + this.loadedScripts.add(src); + resolve(); + }; + script.onerror = () => { + this.loadedScripts.add(`${src}_failed`); + resolve(); + }; + this.renderer.appendChild(this.document.head, script); + }); + } + initializeChatbot() { + const allInitFunctions = [ + 'initVFChatbotFab', + 'initVFChatbotDialog', + 'initVFChatbotFeedback', + 'initVFChatbotSelector', + 'initVFChatbotSources', + 'initVFChatbotWelcome', + 'initVFChatbotStandalone', + 'initVFChatbotModal', + 'initVFChatbot' + ]; + allInitFunctions.forEach(funcName => { + if (typeof window[funcName] === 'function') { + try { + window[funcName](); + } + catch { + // Continue initializing available modules. + } + } + }); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandaloneAngularComponent, deps: [{ token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotStandaloneAngularComponent, selector: "vf-chatbot-standalone", inputs: { config: "config", messages: "messages", sources: "sources", prompts: "prompts", inputValue: "inputValue" }, outputs: { onSendMessage: "onSendMessage", onInputChange: "onInputChange", onFeedback: "onFeedback", onDialogConfirm: "onDialogConfirm", onDialogCancel: "onDialogCancel" }, viewQueries: [{ propertyName: "standaloneRef", first: true, predicate: ["standaloneRef"], descendants: true }], ngImport: i0, template: ``, isInline: true, encapsulation: i0.ViewEncapsulation.None }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandaloneAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot-standalone', + template: ``, + encapsulation: ViewEncapsulation.None, + }] + }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: Document, decorators: [{ + type: Inject, + args: [DOCUMENT] + }] }], propDecorators: { config: [{ + type: Input + }], messages: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], inputValue: [{ + type: Input + }], onSendMessage: [{ + type: Output + }], onInputChange: [{ + type: Output + }], onFeedback: [{ + type: Output + }], onDialogConfirm: [{ + type: Output + }], onDialogCancel: [{ + type: Output + }], standaloneRef: [{ + type: ViewChild, + args: ['standaloneRef'] + }] } }); +class VfChatbotStandalonePageComponent { + constructor() { + this.chatbotConfig = { + type: 'standalone', + title: 'Visual Framework Assistant', + welcome_logo: true, + welcome_message: "Welcome! I'm here to help with Visual Framework components.", + welcome_logo_alt: 'Visual Framework Assistant', + welcome_suggestions_title: 'Try asking me:', + input_placeholder: 'Ask a question...', + welcome_max_suggestions: 4, + disclaimer: 'This demo chatbot is for internal component testing and UI exploration.', + footnote: 'Review generated responses before using them in production.', + icons: { + assistant_avatar: './assets/vf-chatbot/assets/vf-chatbot--icon-16x16-dark-green.svg', + user_avatar: './assets/vf-chatbot/assets/vf-chatbot--avatar-user.svg', + send_button: './assets/vf-chatbot/assets/vf-chatbot--icon-send.svg', + minimize: './assets/vf-chatbot/assets/vf-chatbot--icon-minimize.svg', + close: './assets/vf-chatbot/assets/vf-chatbot--icon-close.svg', + main_logo_url: './assets/vf-chatbot/assets/vf-chatbot--icon-32x32-dark-green.svg' + }, + features: { + enable_welcome: true, + enable_welcome_suggestions: true, + enable_qa_data_loading: true, + enable_predefined_qa: true, + enable_fallback_responses: true, + enable_feedback: true, + enable_disclaimer: true, + enable_typing_indicator: true + }, + behavior: { + show_scrollbar: true, + auto_scroll: true + }, + api: { + qa_data_url: './assets/vf-chatbot/assets/vf-chatbot-qa.json' + } + }; + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandalonePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotStandalonePageComponent, isStandalone: true, selector: "app-vf-chatbot-standalone-page", ngImport: i0, template: ` + + `, isInline: true }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotStandalonePageComponent, decorators: [{ + type: Component, + args: [{ + selector: 'app-vf-chatbot-standalone-page', + standalone: true, + schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], + template: ` + + ` + }] + }] }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotStandaloneAngularComponent, VfChatbotStandalonePageComponent }; +//# sourceMappingURL=visual-framework-vf-chatbot-standalone.angular.mjs.map diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs.map b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs.map new file mode 100644 index 0000000000..2791a43187 --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot-standalone.angular.mjs","sources":["../../../projects/vf-chatbot-standalone.angular/src/lib/vf-chatbot-standalone.angular.component.ts","../../../projects/vf-chatbot-standalone.angular/src/lib/visual-framework-vf-chatbot-standalone.angular.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n OnInit,\n AfterViewInit,\n ViewChild,\n ViewEncapsulation,\n Renderer2,\n Inject,\n CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'vf-chatbot-standalone',\n template: ``,\n encapsulation: ViewEncapsulation.None,\n})\nexport class VfChatbotStandaloneAngularComponent implements OnInit, AfterViewInit {\n @Input() config: any = {};\n @Input() messages: any[] = [];\n @Input() sources: any[] = [];\n @Input() prompts: any[] = [];\n @Input() inputValue = '';\n\n @Output() onSendMessage = new EventEmitter();\n @Output() onInputChange = new EventEmitter();\n @Output() onFeedback = new EventEmitter();\n @Output() onDialogConfirm = new EventEmitter();\n @Output() onDialogCancel = new EventEmitter();\n\n @ViewChild('standaloneRef') standaloneRef!: ElementRef;\n\n qaData: any[] = [];\n private loadedScripts = new Set();\n\n constructor(\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document: Document\n ) {}\n\n ngOnInit() {}\n\n async ngAfterViewInit() {\n try {\n await this.loadWorkingScripts();\n this.initializeChatbot();\n } catch {\n this.initializeChatbot();\n }\n }\n\n private async loadWorkingScripts(): Promise {\n const moduleScripts = [\n '/assets/vf-chatbot-fab/vf-chatbot-fab.js',\n '/assets/vf-chatbot-dialog/vf-chatbot-dialog.js',\n '/assets/vf-chatbot-feedback/vf-chatbot-feedback.js',\n '/assets/vf-chatbot-selector/vf-chatbot-selector.js',\n '/assets/vf-chatbot-sources/vf-chatbot-sources.js',\n '/assets/vf-chatbot-welcome/vf-chatbot-welcome.js'\n ];\n\n const moduleScriptsWithDependencies = [\n '/assets/vf-chatbot/vf-chatbot.js',\n '/assets/vf-chatbot-modal/vf-chatbot-modal.js',\n '/assets/vf-chatbot-standalone/vf-chatbot-standalone.js'\n ];\n\n for (const scriptSrc of moduleScripts) {\n try {\n await this.loadSingleScript(scriptSrc);\n } catch {\n // Keep loading remaining scripts; standalone init tolerates missing optional modules.\n }\n }\n\n for (const scriptSrc of moduleScriptsWithDependencies) {\n try {\n await this.loadSingleScript(scriptSrc);\n } catch {\n // Keep loading remaining scripts; standalone init tolerates missing optional modules.\n }\n }\n }\n\n private async loadSingleScript(src: string): Promise {\n if (this.loadedScripts.has(src)) {\n return;\n }\n\n try {\n await import(/* webpackIgnore: true */ src);\n this.loadedScripts.add(src);\n return;\n } catch {\n // Fall through to script tag loading if dynamic import fails.\n }\n\n await new Promise((resolve) => {\n const existingScript = this.document.querySelector(`script[src=\"${src}\"]`);\n if (existingScript) {\n this.loadedScripts.add(src);\n resolve();\n return;\n }\n\n const script = this.renderer.createElement('script');\n script.type = 'module';\n script.src = src;\n script.async = true;\n\n script.onload = () => {\n this.loadedScripts.add(src);\n resolve();\n };\n\n script.onerror = () => {\n this.loadedScripts.add(`${src}_failed`);\n resolve();\n };\n\n this.renderer.appendChild(this.document.head, script);\n });\n }\n\n private initializeChatbot(): void {\n const allInitFunctions = [\n 'initVFChatbotFab',\n 'initVFChatbotDialog',\n 'initVFChatbotFeedback',\n 'initVFChatbotSelector',\n 'initVFChatbotSources',\n 'initVFChatbotWelcome',\n 'initVFChatbotStandalone',\n 'initVFChatbotModal',\n 'initVFChatbot'\n ];\n\n allInitFunctions.forEach(funcName => {\n if (typeof (window as any)[funcName] === 'function') {\n try {\n (window as any)[funcName]();\n } catch {\n // Continue initializing available modules.\n }\n }\n });\n }\n}\n\n@Component({\n selector: 'app-vf-chatbot-standalone-page',\n standalone: true,\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\n template: `\n \n `\n})\nexport class VfChatbotStandalonePageComponent {\n public chatbotConfig = {\n type: 'standalone',\n title: 'Visual Framework Assistant',\n welcome_logo: true,\n welcome_message: \"Welcome! I'm here to help with Visual Framework components.\",\n welcome_logo_alt: 'Visual Framework Assistant',\n welcome_suggestions_title: 'Try asking me:',\n input_placeholder: 'Ask a question...',\n welcome_max_suggestions: 4,\n disclaimer: 'This demo chatbot is for internal component testing and UI exploration.',\n footnote: 'Review generated responses before using them in production.',\n icons: {\n assistant_avatar: './assets/vf-chatbot/assets/vf-chatbot--icon-16x16-dark-green.svg',\n user_avatar: './assets/vf-chatbot/assets/vf-chatbot--avatar-user.svg',\n send_button: './assets/vf-chatbot/assets/vf-chatbot--icon-send.svg',\n minimize: './assets/vf-chatbot/assets/vf-chatbot--icon-minimize.svg',\n close: './assets/vf-chatbot/assets/vf-chatbot--icon-close.svg',\n main_logo_url: './assets/vf-chatbot/assets/vf-chatbot--icon-32x32-dark-green.svg'\n },\n features: {\n enable_welcome: true,\n enable_welcome_suggestions: true,\n enable_qa_data_loading: true,\n enable_predefined_qa: true,\n enable_fallback_responses: true,\n enable_feedback: true,\n enable_disclaimer: true,\n enable_typing_indicator: true\n },\n behavior: {\n show_scrollbar: true,\n auto_scroll: true\n },\n api: {\n qa_data_url: './assets/vf-chatbot/assets/vf-chatbot-qa.json'\n }\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-standalone.angular.component';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/index.d.ts b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/index.d.ts new file mode 100644 index 0000000000..edd5650ded --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-standalone.angular.component'; diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/package.json b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/package.json new file mode 100644 index 0000000000..d00f47030d --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot-standalone.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot-standalone.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot-standalone.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot-standalone.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/vf-chatbot-standalone.angular.component.d.ts b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/vf-chatbot-standalone.angular.component.d.ts new file mode 100644 index 0000000000..29732f8a39 --- /dev/null +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.angular/vf-chatbot-standalone.angular.component.d.ts @@ -0,0 +1,68 @@ +import { ElementRef, EventEmitter, OnInit, AfterViewInit, Renderer2 } from '@angular/core'; +import * as i0 from "@angular/core"; +export declare class VfChatbotStandaloneAngularComponent implements OnInit, AfterViewInit { + private renderer; + private document; + config: any; + messages: any[]; + sources: any[]; + prompts: any[]; + inputValue: string; + onSendMessage: EventEmitter; + onInputChange: EventEmitter; + onFeedback: EventEmitter; + onDialogConfirm: EventEmitter; + onDialogCancel: EventEmitter; + standaloneRef: ElementRef; + qaData: any[]; + private loadedScripts; + constructor(renderer: Renderer2, document: Document); + ngOnInit(): void; + ngAfterViewInit(): Promise; + private loadWorkingScripts; + private loadSingleScript; + private initializeChatbot; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export declare class VfChatbotStandalonePageComponent { + chatbotConfig: { + type: string; + title: string; + welcome_logo: boolean; + welcome_message: string; + welcome_logo_alt: string; + welcome_suggestions_title: string; + input_placeholder: string; + welcome_max_suggestions: number; + disclaimer: string; + footnote: string; + icons: { + assistant_avatar: string; + user_avatar: string; + send_button: string; + minimize: string; + close: string; + main_logo_url: string; + }; + features: { + enable_welcome: boolean; + enable_welcome_suggestions: boolean; + enable_qa_data_loading: boolean; + enable_predefined_qa: boolean; + enable_fallback_responses: boolean; + enable_feedback: boolean; + enable_disclaimer: boolean; + enable_typing_indicator: boolean; + }; + behavior: { + show_scrollbar: boolean; + auto_scroll: boolean; + }; + api: { + qa_data_url: string; + }; + }; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} diff --git a/components/vf-chatbot-standalone/vf-chatbot-standalone.config.yml b/components/vf-chatbot-standalone/vf-chatbot-standalone.config.yml index a38bcf2760..56e1bcf4d5 100644 --- a/components/vf-chatbot-standalone/vf-chatbot-standalone.config.yml +++ b/components/vf-chatbot-standalone/vf-chatbot-standalone.config.yml @@ -1,6 +1,6 @@ title: Chatbot Standalone label: Chatbot Standalone -status: beta +status: live preview: '@preview' context: component-type: container @@ -55,8 +55,8 @@ variants: typing_delay: 800 show_scrollbar: false - selectorContext: - chatbotRoutes: + selectorContext: + chatbotRoutes: multiSelect: true maxMultiSelect: 3 showSearch: true @@ -68,7 +68,7 @@ variants: title: "Services" selector_logo_url: "../../assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg" selector_logo_title: "AI Assistant" - + # Custom Event Handlers (function names) handlers: on_message_send: "handleMessageSend" @@ -82,4 +82,4 @@ variants: # Legacy support disclaimer: 'Disclaimer: This chatbot is designed to assist you with general information and basic inquiries. See our disclaimer notes.' footnote: 'Review AI generated content for accuracy. Leave feedback.' - react: \ No newline at end of file + react: diff --git a/components/vf-chatbot-welcome/CHANGELOG.md b/components/vf-chatbot-welcome/CHANGELOG.md index 3fa59aecea..fe4bc1cda9 100644 --- a/components/vf-chatbot-welcome/CHANGELOG.md +++ b/components/vf-chatbot-welcome/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.1 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ## 1.0.0 * Version bump diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/.npmignore b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/README.md b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/README.md new file mode 100644 index 0000000000..a3f843be7d --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotWelcomeAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot-welcome.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot-welcome.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.component.mjs b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.component.mjs new file mode 100644 index 0000000000..2c19649609 --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.component.mjs @@ -0,0 +1,170 @@ +import { Component, Input, ViewChild } from '@angular/core'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +export class VfChatbotWelcomeAngularComponent { + constructor() { + this.qaData = []; + this.welcome_logo = false; + this.welcome_logo_url = ''; + this.welcome_logo_alt = 'AI Assistant'; + this.welcome_title = ''; + this.welcome_message = ''; + this.welcome_suggestions_title = ''; + this.enable_welcome_suggestions = false; + this.welcome_max_suggestions = 4; + this.enable_qa_data_loading = true; + this.enable_predefined_qa = true; + this.enable_fallback_responses = true; + this.qa_data_url = ''; + } + ngAfterViewInit() { + // Initialize chatbot welcome + // Render the action prompt template + if (this.templateRef?.nativeElement) { + const el = this.templateRef.nativeElement; + el.innerHTML = ` +
+ +
+ `; + } + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotWelcomeAngularComponent, selector: "vf-chatbot-welcome", inputs: { qaData: "qaData", welcome_logo: "welcome_logo", welcome_logo_url: "welcome_logo_url", welcome_logo_alt: "welcome_logo_alt", welcome_title: "welcome_title", welcome_message: "welcome_message", welcome_suggestions_title: "welcome_suggestions_title", enable_welcome_suggestions: "enable_welcome_suggestions", welcome_max_suggestions: "welcome_max_suggestions", enable_qa_data_loading: "enable_qa_data_loading", enable_predefined_qa: "enable_predefined_qa", enable_fallback_responses: "enable_fallback_responses", qa_data_url: "qa_data_url" }, viewQueries: [{ propertyName: "welcomeRef", first: true, predicate: ["welcomeRef"], descendants: true, static: true }, { propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, static: true }], ngImport: i0, template: ` +
+
+ + +

+ {{ welcome_title }} +

+ +
+ {{ welcome_message }} +
+
+ +
+

+ {{ welcome_suggestions_title }} +

+ +
+
+ + +
+ `, isInline: true, styles: [".vf-chatbot-welcome{display:block}.vf-chatbot-welcome__logo{text-align:center;margin-bottom:1rem}.vf-chatbot-welcome__logo-image{max-width:64px;height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularComponent, decorators: [{ + type: Component, + args: [{ selector: 'vf-chatbot-welcome', template: ` +
+
+ + +

+ {{ welcome_title }} +

+ +
+ {{ welcome_message }} +
+
+ +
+

+ {{ welcome_suggestions_title }} +

+ +
+
+ + +
+ `, styles: [".vf-chatbot-welcome{display:block}.vf-chatbot-welcome__logo{text-align:center;margin-bottom:1rem}.vf-chatbot-welcome__logo-image{max-width:64px;height:auto}\n"] }] + }], propDecorators: { qaData: [{ + type: Input + }], welcome_logo: [{ + type: Input + }], welcome_logo_url: [{ + type: Input + }], welcome_logo_alt: [{ + type: Input + }], welcome_title: [{ + type: Input + }], welcome_message: [{ + type: Input + }], welcome_suggestions_title: [{ + type: Input + }], enable_welcome_suggestions: [{ + type: Input + }], welcome_max_suggestions: [{ + type: Input + }], enable_qa_data_loading: [{ + type: Input + }], enable_predefined_qa: [{ + type: Input + }], enable_fallback_responses: [{ + type: Input + }], qa_data_url: [{ + type: Input + }], welcomeRef: [{ + type: ViewChild, + args: ['welcomeRef', { static: true }] + }], templateRef: [{ + type: ViewChild, + args: ['templateRef', { static: true }] + }] } }); +export * from './vf-chatbot-welcome.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC13ZWxjb21lLmFuZ3VsYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC13ZWxjb21lLmFuZ3VsYXIvc3JjL2xpYi92Zi1jaGF0Ym90LXdlbGNvbWUuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBNkR2RixNQUFNLE9BQU8sZ0NBQWdDO0lBMUQ3QztRQTJEVyxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixxQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFDbEMsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsOEJBQXlCLEdBQUcsRUFBRSxDQUFDO1FBQy9CLCtCQUEwQixHQUFHLEtBQUssQ0FBQztRQUNuQyw0QkFBdUIsR0FBRyxDQUFDLENBQUM7UUFDNUIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1Qiw4QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7S0FtQjNCO0lBZEMsZUFBZTtRQUNiLDZCQUE2QjtRQUc3QixvQ0FBb0M7UUFDcEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBNEIsQ0FBQztZQUN6RCxFQUFFLENBQUMsU0FBUyxHQUFHOzs7O09BSWQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOytHQS9CVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyxtMEJBeERqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVDs7NEZBT1UsZ0NBQWdDO2tCQTFENUMsU0FBUzsrQkFDRSxvQkFBb0IsWUFDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRFQ7OEJBUVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFcUMsVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNHLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7QUFrQjVDLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2Zi1jaGF0Ym90LXdlbGNvbWUnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICN3ZWxjb21lUmVmXG4gICAgICBjbGFzcz1cInZmLWNoYXRib3Qtd2VsY29tZVwiXG4gICAgICBkYXRhLXZmLWpzLWNoYXRib3Qtd2VsY29tZVxuICAgICAgW2F0dHIuZGF0YS1tYXgtcXVlc3Rpb25zXT1cIndlbGNvbWVfbWF4X3N1Z2dlc3Rpb25zXCJcbiAgICAgIFthdHRyLmRhdGEtZW5hYmxlLXFhLWRhdGEtbG9hZGluZ109XCJlbmFibGVfcWFfZGF0YV9sb2FkaW5nXCJcbiAgICAgIFthdHRyLmRhdGEtZW5hYmxlLXByZWRlZmluZWQtcWFdPVwiZW5hYmxlX3ByZWRlZmluZWRfcWFcIlxuICAgICAgW2F0dHIuZGF0YS1lbmFibGUtZmFsbGJhY2stcmVzcG9uc2VzXT1cImVuYWJsZV9mYWxsYmFja19yZXNwb25zZXNcIlxuICAgICAgW2F0dHIuZGF0YS1xYS1kYXRhLXVybF09XCJxYV9kYXRhX3VybFwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cIndlbGNvbWVfdGl0bGUgfHwgd2VsY29tZV9sb2dvIHx8IHdlbGNvbWVfbWVzc2FnZVwiIGNsYXNzPVwidmYtY2hhdGJvdC13ZWxjb21lX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWxjb21lX2xvZ29cIiBjbGFzcz1cInZmLWNoYXRib3Qtd2VsY29tZV9fbG9nb1wiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICpuZ0lmPVwid2VsY29tZV9sb2dvX3VybFwiXG4gICAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3Qtd2VsY29tZV9fbG9nby1pbWFnZVwiXG4gICAgICAgICAgICBbc3JjXT1cIndlbGNvbWVfbG9nb191cmxcIlxuICAgICAgICAgICAgW2FsdF09XCJ3ZWxjb21lX2xvZ29fYWx0IHx8ICdBSSBBc3Npc3RhbnQnXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8aDEgKm5nSWY9XCJ3ZWxjb21lX3RpdGxlXCIgY2xhc3M9XCJ2Zi1jaGF0Ym90LXdlbGNvbWVfX3RpdGxlXCI+XG4gICAgICAgICAge3sgd2VsY29tZV90aXRsZSB9fVxuICAgICAgICA8L2gxPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWxjb21lX21lc3NhZ2VcIiBjbGFzcz1cInZmLWNoYXRib3Qtd2VsY29tZV9fbWVzc2FnZVwiPlxuICAgICAgICAgIHt7IHdlbGNvbWVfbWVzc2FnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZW5hYmxlX3dlbGNvbWVfc3VnZ2VzdGlvbnNcIlxuICAgICAgICBjbGFzcz1cInZmLWNoYXRib3Qtd2VsY29tZV9fc3VnZ2VzdGlvbnNcIlxuICAgICAgPlxuICAgICAgICA8aDNcbiAgICAgICAgICAqbmdJZj1cIndlbGNvbWVfc3VnZ2VzdGlvbnNfdGl0bGVcIlxuICAgICAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC13ZWxjb21lX19zdWdnZXN0aW9ucy10aXRsZVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB3ZWxjb21lX3N1Z2dlc3Rpb25zX3RpdGxlIH19XG4gICAgICAgIDwvaDM+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC13ZWxjb21lX19zdWdnZXN0aW9ucy1ncmlkXCJcbiAgICAgICAgICBkYXRhLXZmLWpzLWNoYXRib3Qtd2VsY29tZS1zdWdnZXN0aW9ucy1ncmlkXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dGVtcGxhdGUgI3RlbXBsYXRlUmVmIGlkPVwid2VsY29tZS1zdWdnZXN0aW9uLXRlbXBsYXRlXCI+PC90ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC52Zi1jaGF0Ym90LXdlbGNvbWUgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgIC52Zi1jaGF0Ym90LXdlbGNvbWVfX2xvZ28geyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAudmYtY2hhdGJvdC13ZWxjb21lX19sb2dvLWltYWdlIHsgbWF4LXdpZHRoOiA2NHB4OyBoZWlnaHQ6IGF1dG87IH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90V2VsY29tZUFuZ3VsYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcWFEYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSB3ZWxjb21lX2xvZ28gPSBmYWxzZTtcbiAgQElucHV0KCkgd2VsY29tZV9sb2dvX3VybCA9ICcnO1xuICBASW5wdXQoKSB3ZWxjb21lX2xvZ29fYWx0ID0gJ0FJIEFzc2lzdGFudCc7XG4gIEBJbnB1dCgpIHdlbGNvbWVfdGl0bGUgPSAnJztcbiAgQElucHV0KCkgd2VsY29tZV9tZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIHdlbGNvbWVfc3VnZ2VzdGlvbnNfdGl0bGUgPSAnJztcbiAgQElucHV0KCkgZW5hYmxlX3dlbGNvbWVfc3VnZ2VzdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgd2VsY29tZV9tYXhfc3VnZ2VzdGlvbnMgPSA0O1xuICBASW5wdXQoKSBlbmFibGVfcWFfZGF0YV9sb2FkaW5nID0gdHJ1ZTtcbiAgQElucHV0KCkgZW5hYmxlX3ByZWRlZmluZWRfcWEgPSB0cnVlO1xuICBASW5wdXQoKSBlbmFibGVfZmFsbGJhY2tfcmVzcG9uc2VzID0gdHJ1ZTtcbiAgQElucHV0KCkgcWFfZGF0YV91cmwgPSAnJztcblxuICBAVmlld0NoaWxkKCd3ZWxjb21lUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgd2VsY29tZVJlZiE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgdGVtcGxhdGVSZWYhOiBFbGVtZW50UmVmO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJbml0aWFsaXplIGNoYXRib3Qgd2VsY29tZVxuICAgIFxuXG4gICAgLy8gUmVuZGVyIHRoZSBhY3Rpb24gcHJvbXB0IHRlbXBsYXRlXG4gICAgaWYgKHRoaXMudGVtcGxhdGVSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGVsID0gdGhpcy50ZW1wbGF0ZVJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgZWwuaW5uZXJIVE1MID0gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0XCI+XG4gICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInZmLWNoYXRib3QtYWN0aW9uLXByb21wdF9fbGlua1wiPjwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgKiBmcm9tICcuL3ZmLWNoYXRib3Qtd2VsY29tZS5hbmd1bGFyLm1vZHVsZSc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.mjs b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.mjs new file mode 100644 index 0000000000..a19a7eadff --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot-welcome.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC13ZWxjb21lLmFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LXdlbGNvbWUuYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3Qtd2VsY29tZS5hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi92Zi1jaGF0Ym90LXdlbGNvbWUuYW5ndWxhci5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.module.mjs b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.module.mjs new file mode 100644 index 0000000000..a0297757a1 --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/esm2022/vf-chatbot-welcome.angular.module.mjs @@ -0,0 +1,32 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotWelcomeAngularComponent } from './vf-chatbot-welcome.angular.component'; +import { VfChatbotActionPromptAngularModule } from 'vf-chatbot-action-prompt.angular'; +import * as i0 from "@angular/core"; +export class VfChatbotWelcomeAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, declarations: [VfChatbotWelcomeAngularComponent], imports: [CommonModule, + FormsModule, + VfChatbotActionPromptAngularModule], exports: [VfChatbotWelcomeAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotActionPromptAngularModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotWelcomeAngularComponent + ], + imports: [ + CommonModule, + FormsModule, + VfChatbotActionPromptAngularModule + ], + exports: [ + VfChatbotWelcomeAngularComponent + ] + }] + }] }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC13ZWxjb21lLmFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdmYtY2hhdGJvdC13ZWxjb21lLmFuZ3VsYXIvc3JjL2xpYi92Zi1jaGF0Ym90LXdlbGNvbWUuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQWV0RixNQUFNLE9BQU8sNkJBQTZCOytHQUE3Qiw2QkFBNkI7Z0hBQTdCLDZCQUE2QixpQkFYdEMsZ0NBQWdDLGFBR2hDLFlBQVk7WUFDWixXQUFXO1lBQ1gsa0NBQWtDLGFBR2xDLGdDQUFnQztnSEFHdkIsNkJBQTZCLFlBUnRDLFlBQVk7WUFDWixXQUFXO1lBQ1gsa0NBQWtDOzs0RkFNekIsNkJBQTZCO2tCQWJ6QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixnQ0FBZ0M7cUJBQ2pDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0NBQWtDO3FCQUNuQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0NBQWdDO3FCQUNqQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7IFxuaW1wb3J0IHsgVmZDaGF0Ym90V2VsY29tZUFuZ3VsYXJDb21wb25lbnQgfSBmcm9tICcuL3ZmLWNoYXRib3Qtd2VsY29tZS5hbmd1bGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWZkNoYXRib3RBY3Rpb25Qcm9tcHRBbmd1bGFyTW9kdWxlIH0gZnJvbSAndmYtY2hhdGJvdC1hY3Rpb24tcHJvbXB0LmFuZ3VsYXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBWZkNoYXRib3RXZWxjb21lQW5ndWxhckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFZmQ2hhdGJvdEFjdGlvblByb21wdEFuZ3VsYXJNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFZmQ2hhdGJvdFdlbGNvbWVBbmd1bGFyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90V2VsY29tZUFuZ3VsYXJNb2R1bGUgeyB9XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs new file mode 100644 index 0000000000..2fb0ec881e --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs @@ -0,0 +1,205 @@ +import * as i0 from '@angular/core'; +import { NgModule, Component, Input, ViewChild } from '@angular/core'; +import * as i1 from '@angular/common'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotActionPromptAngularModule } from 'vf-chatbot-action-prompt.angular'; + +class VfChatbotWelcomeAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, declarations: [VfChatbotWelcomeAngularComponent], imports: [CommonModule, + FormsModule, + VfChatbotActionPromptAngularModule], exports: [VfChatbotWelcomeAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotActionPromptAngularModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotWelcomeAngularComponent + ], + imports: [ + CommonModule, + FormsModule, + VfChatbotActionPromptAngularModule + ], + exports: [ + VfChatbotWelcomeAngularComponent + ] + }] + }] }); + +class VfChatbotWelcomeAngularComponent { + constructor() { + this.qaData = []; + this.welcome_logo = false; + this.welcome_logo_url = ''; + this.welcome_logo_alt = 'AI Assistant'; + this.welcome_title = ''; + this.welcome_message = ''; + this.welcome_suggestions_title = ''; + this.enable_welcome_suggestions = false; + this.welcome_max_suggestions = 4; + this.enable_qa_data_loading = true; + this.enable_predefined_qa = true; + this.enable_fallback_responses = true; + this.qa_data_url = ''; + } + ngAfterViewInit() { + // Initialize chatbot welcome + // Render the action prompt template + if (this.templateRef?.nativeElement) { + const el = this.templateRef.nativeElement; + el.innerHTML = ` +
+ +
+ `; + } + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotWelcomeAngularComponent, selector: "vf-chatbot-welcome", inputs: { qaData: "qaData", welcome_logo: "welcome_logo", welcome_logo_url: "welcome_logo_url", welcome_logo_alt: "welcome_logo_alt", welcome_title: "welcome_title", welcome_message: "welcome_message", welcome_suggestions_title: "welcome_suggestions_title", enable_welcome_suggestions: "enable_welcome_suggestions", welcome_max_suggestions: "welcome_max_suggestions", enable_qa_data_loading: "enable_qa_data_loading", enable_predefined_qa: "enable_predefined_qa", enable_fallback_responses: "enable_fallback_responses", qa_data_url: "qa_data_url" }, viewQueries: [{ propertyName: "welcomeRef", first: true, predicate: ["welcomeRef"], descendants: true, static: true }, { propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, static: true }], ngImport: i0, template: ` +
+
+ + +

+ {{ welcome_title }} +

+ +
+ {{ welcome_message }} +
+
+ +
+

+ {{ welcome_suggestions_title }} +

+ +
+
+ + +
+ `, isInline: true, styles: [".vf-chatbot-welcome{display:block}.vf-chatbot-welcome__logo{text-align:center;margin-bottom:1rem}.vf-chatbot-welcome__logo-image{max-width:64px;height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotWelcomeAngularComponent, decorators: [{ + type: Component, + args: [{ selector: 'vf-chatbot-welcome', template: ` +
+
+ + +

+ {{ welcome_title }} +

+ +
+ {{ welcome_message }} +
+
+ +
+

+ {{ welcome_suggestions_title }} +

+ +
+
+ + +
+ `, styles: [".vf-chatbot-welcome{display:block}.vf-chatbot-welcome__logo{text-align:center;margin-bottom:1rem}.vf-chatbot-welcome__logo-image{max-width:64px;height:auto}\n"] }] + }], propDecorators: { qaData: [{ + type: Input + }], welcome_logo: [{ + type: Input + }], welcome_logo_url: [{ + type: Input + }], welcome_logo_alt: [{ + type: Input + }], welcome_title: [{ + type: Input + }], welcome_message: [{ + type: Input + }], welcome_suggestions_title: [{ + type: Input + }], enable_welcome_suggestions: [{ + type: Input + }], welcome_max_suggestions: [{ + type: Input + }], enable_qa_data_loading: [{ + type: Input + }], enable_predefined_qa: [{ + type: Input + }], enable_fallback_responses: [{ + type: Input + }], qa_data_url: [{ + type: Input + }], welcomeRef: [{ + type: ViewChild, + args: ['welcomeRef', { static: true }] + }], templateRef: [{ + type: ViewChild, + args: ['templateRef', { static: true }] + }] } }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotWelcomeAngularComponent, VfChatbotWelcomeAngularModule }; +//# sourceMappingURL=vf-chatbot-welcome.angular.mjs.map diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs.map b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs.map new file mode 100644 index 0000000000..bad2f17d6a --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/fesm2022/vf-chatbot-welcome.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"vf-chatbot-welcome.angular.mjs","sources":["../../../projects/vf-chatbot-welcome.angular/src/lib/vf-chatbot-welcome.angular.module.ts","../../../projects/vf-chatbot-welcome.angular/src/lib/vf-chatbot-welcome.angular.component.ts","../../../projects/vf-chatbot-welcome.angular/src/lib/vf-chatbot-welcome.angular.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms'; \nimport { VfChatbotWelcomeAngularComponent } from './vf-chatbot-welcome.angular.component';\nimport { VfChatbotActionPromptAngularModule } from 'vf-chatbot-action-prompt.angular';\n\n@NgModule({\n declarations: [\n VfChatbotWelcomeAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n VfChatbotActionPromptAngularModule\n ],\n exports: [\n VfChatbotWelcomeAngularComponent\n ]\n})\nexport class VfChatbotWelcomeAngularModule { }\n","import { Component, ElementRef, Input, AfterViewInit, ViewChild } from '@angular/core';\n\n\n@Component({\n selector: 'vf-chatbot-welcome',\n template: `\n \n
\n
\n \n
\n\n

\n {{ welcome_title }}\n

\n\n
\n {{ welcome_message }}\n
\n
\n\n \n \n {{ welcome_suggestions_title }}\n \n\n \n \n\n \n \n `,\n styles: [`\n .vf-chatbot-welcome { display: block; }\n .vf-chatbot-welcome__logo { text-align: center; margin-bottom: 1rem; }\n .vf-chatbot-welcome__logo-image { max-width: 64px; height: auto; }\n `]\n})\nexport class VfChatbotWelcomeAngularComponent implements AfterViewInit {\n @Input() qaData: any[] = [];\n @Input() welcome_logo = false;\n @Input() welcome_logo_url = '';\n @Input() welcome_logo_alt = 'AI Assistant';\n @Input() welcome_title = '';\n @Input() welcome_message = '';\n @Input() welcome_suggestions_title = '';\n @Input() enable_welcome_suggestions = false;\n @Input() welcome_max_suggestions = 4;\n @Input() enable_qa_data_loading = true;\n @Input() enable_predefined_qa = true;\n @Input() enable_fallback_responses = true;\n @Input() qa_data_url = '';\n\n @ViewChild('welcomeRef', { static: true }) welcomeRef!: ElementRef;\n @ViewChild('templateRef', { static: true }) templateRef!: ElementRef;\n\n ngAfterViewInit(): void {\n // Initialize chatbot welcome\n \n\n // Render the action prompt template\n if (this.templateRef?.nativeElement) {\n const el = this.templateRef.nativeElement as HTMLElement;\n el.innerHTML = `\n
\n \n
\n `;\n }\n }\n}\n\nexport * from './vf-chatbot-welcome.angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot-welcome.angular.component';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/index.d.ts b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/index.d.ts new file mode 100644 index 0000000000..03857810da --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot-welcome.angular.component'; diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/package.json b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/package.json new file mode 100644 index 0000000000..daa7ba62e0 --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "vf-chatbot-welcome.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/vf-chatbot-welcome.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/vf-chatbot-welcome.angular.mjs", + "esm": "./esm2022/vf-chatbot-welcome.angular.mjs", + "default": "./fesm2022/vf-chatbot-welcome.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.component.d.ts b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.component.d.ts new file mode 100644 index 0000000000..d95eb569d2 --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.component.d.ts @@ -0,0 +1,23 @@ +import { ElementRef, AfterViewInit } from '@angular/core'; +import * as i0 from "@angular/core"; +export declare class VfChatbotWelcomeAngularComponent implements AfterViewInit { + qaData: any[]; + welcome_logo: boolean; + welcome_logo_url: string; + welcome_logo_alt: string; + welcome_title: string; + welcome_message: string; + welcome_suggestions_title: string; + enable_welcome_suggestions: boolean; + welcome_max_suggestions: number; + enable_qa_data_loading: boolean; + enable_predefined_qa: boolean; + enable_fallback_responses: boolean; + qa_data_url: string; + welcomeRef: ElementRef; + templateRef: ElementRef; + ngAfterViewInit(): void; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} +export * from './vf-chatbot-welcome.angular.module'; diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.module.d.ts b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.module.d.ts new file mode 100644 index 0000000000..5d2cf65b27 --- /dev/null +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.angular/vf-chatbot-welcome.angular.module.d.ts @@ -0,0 +1,10 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot-welcome.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +import * as i4 from "vf-chatbot-action-prompt.angular"; +export declare class VfChatbotWelcomeAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} diff --git a/components/vf-chatbot-welcome/vf-chatbot-welcome.config.yml b/components/vf-chatbot-welcome/vf-chatbot-welcome.config.yml index 3449943fbf..55b8a4646c 100644 --- a/components/vf-chatbot-welcome/vf-chatbot-welcome.config.yml +++ b/components/vf-chatbot-welcome/vf-chatbot-welcome.config.yml @@ -1,6 +1,6 @@ title: Chatbot Welcome label: Chatbot Welcome -status: beta +status: live preview: '@preview' hidden: true context: @@ -12,7 +12,7 @@ context: welcome_suggestions_title: "Try asking me:" enable_welcome_suggestions: true welcome_max_suggestions: 4 - + # Q&A Configuration enable_qa_data_loading: true enable_predefined_qa: true diff --git a/components/vf-chatbot/CHANGELOG.md b/components/vf-chatbot/CHANGELOG.md index 2452655d38..0770b7fa92 100644 --- a/components/vf-chatbot/CHANGELOG.md +++ b/components/vf-chatbot/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +### 1.0.1 + +* Added : Experimental React support for VF Chatbot component [Tracking issue](https://github.com/visual-framework/vf-core/issues/2328) + ### 1.0.0 * Version bump diff --git a/components/vf-chatbot/README.md b/components/vf-chatbot/README.md index 93f2d7e3e9..26854d2d5e 100644 --- a/components/vf-chatbot/README.md +++ b/components/vf-chatbot/README.md @@ -22,6 +22,7 @@ The [chatbot standalone](../vf-chatbot-standalone) and [chatbot modal](../vf-cha - For in-context support (e.g. help with current page or workflow) - Access point is via a floating action button on the page - Supports simple tasks such as getting information +- Supports configurable persistence storage via `persistence_storage` (`sessionStorage` or `localStorage`) #### Standalone diff --git a/components/vf-chatbot/vf-chatbot-storage.js b/components/vf-chatbot/vf-chatbot-storage.js new file mode 100644 index 0000000000..f4bb6740fc --- /dev/null +++ b/components/vf-chatbot/vf-chatbot-storage.js @@ -0,0 +1,62 @@ +function resolveStorageAvailability(storage) { + if (!storage) { + return null; + } + + try { + const testKey = "__vf_chatbot_storage_test__"; + storage.setItem(testKey, "1"); + storage.removeItem(testKey); + return storage; + } catch (error) { + return null; + } +} + +function resolveStorage(config = {}) { + if (typeof window === "undefined") { + return null; + } + + const useLocalStorage = config.persistence_storage === "localStorage"; + const primaryStorage = useLocalStorage + ? window.localStorage + : window.sessionStorage; + const fallbackStorage = useLocalStorage + ? window.sessionStorage + : window.localStorage; + + return ( + resolveStorageAvailability(primaryStorage) || + resolveStorageAvailability(fallbackStorage) + ); +} + +function createStorageAdapter(config = {}) { + const storage = resolveStorage(config); + + return { + getItem(key) { + if (!storage) { + return null; + } + return storage.getItem(key); + }, + + setItem(key, value) { + if (!storage) { + return; + } + storage.setItem(key, value); + }, + + removeItem(key) { + if (!storage) { + return; + } + storage.removeItem(key); + } + }; +} + +export { createStorageAdapter }; diff --git a/components/vf-chatbot/vf-chatbot.angular/.npmignore b/components/vf-chatbot/vf-chatbot.angular/.npmignore new file mode 100644 index 0000000000..c97ccf2941 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/.npmignore @@ -0,0 +1,2 @@ +# Nested package.json's are only needed for development. +**/package.json \ No newline at end of file diff --git a/components/vf-chatbot/vf-chatbot.angular/README.md b/components/vf-chatbot/vf-chatbot.angular/README.md new file mode 100644 index 0000000000..1dd5cf0b72 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/README.md @@ -0,0 +1,63 @@ +# VfChatbotAngular + +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.2.0. + +## Code scaffolding + +Angular CLI includes powerful code scaffolding tools. To generate a new component, run: + +```bash +ng generate component component-name +``` + +For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run: + +```bash +ng generate --help +``` + +## Building + +To build the library, run: + +```bash +ng build vf-chatbot.angular +``` + +This command will compile your project, and the build artifacts will be placed in the `dist/` directory. + +### Publishing the Library + +Once the project is built, you can publish your library by following these steps: + +1. Navigate to the `dist` directory: + ```bash + cd dist/vf-chatbot.angular + ``` + +2. Run the `npm publish` command to publish your library to the npm registry: + ```bash + npm publish + ``` + +## Running unit tests + +To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command: + +```bash +ng test +``` + +## Running end-to-end tests + +For end-to-end (e2e) testing, run: + +```bash +ng e2e +``` + +Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. + +## Additional Resources + +For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.component.mjs b/components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.component.mjs new file mode 100644 index 0000000000..80a3919bb4 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.component.mjs @@ -0,0 +1,515 @@ +import { Component, Inject, Input } from '@angular/core'; +import { DOCUMENT } from '@angular/common'; +import * as i0 from "@angular/core"; +import * as i1 from "@angular/common"; +import * as i2 from "vf-chatbot-fab.angular"; +import * as i3 from "vf-chatbot-selector.angular"; +import * as i4 from "vf-chatbot-welcome.angular"; +import * as i5 from "vf-chatbot-prompt.angular"; +import * as i6 from "vf-chatbot-dialog.angular"; +export class VfChatbotAngularComponent { + constructor(renderer, elementRef, document) { + this.renderer = renderer; + this.elementRef = elementRef; + this.document = document; + this.config = { type: 'modal' }; + this.qaData = []; + this.messages = []; + this.sources = []; + this.prompts = []; + this.notificationCount = 0; + this.isOpen = false; + this.dialogTitle = 'Close chat and delete conversation?'; + this.dialogMessage = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.'; + this.dialogCancelLabel = 'Keep chat open'; + this.dialogConfirmLabel = 'Close and delete'; + this.loadedScripts = new Set(); + } + async ngAfterViewInit() { + if (this.config?.type !== 'modal') { + return; + } + await this.loadModalScripts(); + const initVFChatbot = window.initVFChatbot; + if (typeof initVFChatbot === 'function') { + initVFChatbot(this.config); + } + } + async loadModalScripts() { + const moduleScripts = [ + '/assets/vf-chatbot-fab/vf-chatbot-fab.js', + '/assets/vf-chatbot-dialog/vf-chatbot-dialog.js', + '/assets/vf-chatbot-feedback/vf-chatbot-feedback.js', + '/assets/vf-chatbot-selector/vf-chatbot-selector.js', + '/assets/vf-chatbot-sources/vf-chatbot-sources.js', + '/assets/vf-chatbot-welcome/vf-chatbot-welcome.js' + ]; + const moduleScriptsWithDependencies = [ + '/assets/vf-chatbot-standalone/vf-chatbot-standalone.js', + '/assets/vf-chatbot-modal/vf-chatbot-modal.js', + '/assets/vf-chatbot/vf-chatbot.js' + ]; + for (const scriptSrc of moduleScripts) { + await this.loadSingleScript(scriptSrc); + } + for (const scriptSrc of moduleScriptsWithDependencies) { + await this.loadSingleScript(scriptSrc); + } + } + async loadSingleScript(src) { + if (this.loadedScripts.has(src)) { + return; + } + try { + await import(/* webpackIgnore: true */ src); + this.loadedScripts.add(src); + return; + } + catch { + // Fall through to the script tag loader. + } + await new Promise((resolve) => { + const existingScript = this.document.querySelector(`script[src="${src}"]`); + if (existingScript) { + this.loadedScripts.add(src); + resolve(); + return; + } + const script = this.renderer.createElement('script'); + script.type = 'module'; + script.src = src; + script.async = true; + script.onload = () => { + this.loadedScripts.add(src); + resolve(); + }; + script.onerror = () => { + this.loadedScripts.add(`${src}_failed`); + resolve(); + }; + this.renderer.appendChild(this.document.head, script); + }); + } + openChat() { + this.isOpen = true; + } + closeChat() { + this.isOpen = false; + } + get modalConfigJson() { + return JSON.stringify(this.config || {}); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotAngularComponent, selector: "vf-chatbot", inputs: { config: "config", qaData: "qaData", messages: "messages", sources: "sources", prompts: "prompts", notificationCount: "notificationCount" }, ngImport: i0, template: ` + + + +
+ + + +
+
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.VfChatbotFabAngularComponent, selector: "vf-chatbot-fab", inputs: ["notificationCount", "isInactive"] }, { kind: "component", type: i3.VfChatbotSelectorAngularComponent, selector: "vf-chatbot-selector", inputs: ["chatbotRoutes", "context"] }, { kind: "component", type: i4.VfChatbotWelcomeAngularComponent, selector: "vf-chatbot-welcome", inputs: ["qaData", "welcome_logo", "welcome_logo_url", "welcome_logo_alt", "welcome_title", "welcome_message", "welcome_suggestions_title", "enable_welcome_suggestions", "welcome_max_suggestions", "enable_qa_data_loading", "enable_predefined_qa", "enable_fallback_responses", "qa_data_url"] }, { kind: "component", type: i5.VfChatbotPromptAngularComponent, selector: "vf-chatbot-prompt", inputs: ["type", "isLoading", "avatar", "content", "sources", "prompts", "allowFeedback"] }, { kind: "component", type: i6.VfChatbotDialogAngularComponent, selector: "vf-chatbot-dialog", inputs: ["title", "message", "cancelLabel", "confirmLabel"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot', + template: ` + + + +
+ + + +
+
+ `, + }] + }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{ + type: Inject, + args: [DOCUMENT] + }] }], propDecorators: { config: [{ + type: Input + }], qaData: [{ + type: Input + }], messages: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], notificationCount: [{ + type: Input + }] } }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC5hbmd1bGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3QuYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3QuYW5ndWxhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBa1AzQyxNQUFNLE9BQU8seUJBQXlCO0lBZ0JwQyxZQUNVLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ0osUUFBa0I7UUFGcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ0osYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCckMsV0FBTSxHQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFVLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3BCLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFDcEIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixnQkFBVyxHQUFHLHFDQUFxQyxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsNkdBQTZHLENBQUM7UUFDOUgsc0JBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDckMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFFaEMsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBTXZDLENBQUM7SUFFSixLQUFLLENBQUMsZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxD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akIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzsrR0E1R1UseUJBQXlCLHFFQW1CMUIsUUFBUTttR0FuQlAseUJBQXlCLHdNQXBNMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa01UOzs0RkFFVSx5QkFBeUI7a0JBdE1yQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa01UO2lCQUNGOzswQkFvQkksTUFBTTsyQkFBQyxRQUFRO3lDQWxCVCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgdHlwZSBWZkNoYXRib3RNb2RlID0gJ21vZGFsJyB8ICdzdGFuZGFsb25lJztcblxuZXhwb3J0IGludGVyZmFjZSBWZkNoYXRib3RDb25maWcge1xuICB0eXBlPzogVmZDaGF0Ym90TW9kZTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHdlbGNvbWVfbG9nbz86IGJvb2xlYW47XG4gIHdlbGNvbWVfbWVzc2FnZT86IHN0cmluZztcbiAgd2VsY29tZV9sb2dvX2FsdD86IHN0cmluZztcbiAgd2VsY29tZV9zdWdnZXN0aW9uc190aXRsZT86IHN0cmluZztcbiAgaW5wdXRfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHdlbGNvbWVfbWF4X3N1Z2dlc3Rpb25zPzogbnVtYmVyO1xuICBkaXNjbGFpbWVyPzogc3RyaW5nO1xuICBmb290bm90ZT86IHN0cmluZztcbiAgaWNvbnM/OiB7XG4gICAgYXNzaXN0YW50X2F2YXRhcj86IHN0cmluZztcbiAgICB1c2VyX2F2YXRhcj86IHN0cmluZztcbiAgICBzZW5kX2J1dHRvbj86IHN0cmluZztcbiAgICBtaW5pbWl6ZT86IHN0cmluZztcbiAgICBjbG9zZT86IHN0cmluZztcbiAgICBtYWluX2xvZ29fdXJsPzogc3RyaW5nO1xuICB9O1xuICBzZWxlY3RvckNvbnRleHQ/OiB1bmtub3duO1xuICBmZWF0dXJlcz86IHtcbiAgICBlbmFibGVfd2VsY29tZT86IGJvb2xlYW47XG4gICAgZW5hYmxlX3dlbGNvbWVfc3VnZ2VzdGlvbnM/OiBib29sZWFuO1xuICAgIGVuYWJsZV9xYV9kYXRhX2xvYWRpbmc/OiBib29sZWFuO1xuICAgIGVuYWJsZV9wcmVkZWZpbmVkX3FhPzogYm9vbGVhbjtcbiAgICBlbmFibGVfZmFsbGJhY2tfcmVzcG9uc2VzPzogYm9vbGVhbjtcbiAgICBlbmFibGVfZmVlZGJhY2s/OiBib29sZWFuO1xuICAgIGVuYWJsZV9kaXNjbGFpbWVyPzogYm9vbGVhbjtcbiAgICBlbmFibGVfdHlwaW5nX2luZGljYXRvcj86IGJvb2xlYW47XG4gIH07XG4gIGJlaGF2aW9yPzoge1xuICAgIHNob3dfc2Nyb2xsYmFyPzogYm9vbGVhbjtcbiAgICBhdXRvX3Njcm9sbD86IGJvb2xlYW47XG4gIH07XG4gIGFwaT86IHtcbiAgICBxYV9kYXRhX3VybD86IHN0cmluZztcbiAgfTtcbiAgb25EaXNtaXNzRGlzY2xhaW1lcj86ICgpID0+IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZmLWNoYXRib3QnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbmZpZy50eXBlIHx8ICdtb2RhbCdcIj5cbiAgICAgIDx2Zi1jaGF0Ym90LXN0YW5kYWxvbmVcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzdGFuZGFsb25lJ1wiXG4gICAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgICAgW21lc3NhZ2VzXT1cIm1lc3NhZ2VzXCJcbiAgICAgICAgW3NvdXJjZXNdPVwic291cmNlc1wiXG4gICAgICAgIFtwcm9tcHRzXT1cInByb21wdHNcIlxuICAgICAgPjwvdmYtY2hhdGJvdC1zdGFuZGFsb25lPlxuXG4gICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQgY2xhc3M9XCJ2Zi1jaGF0Ym90XCIgZGF0YS12Zi1qcy1jaGF0Ym90PlxuICAgICAgICA8dmYtY2hhdGJvdC1mYWJcbiAgICAgICAgICBbaXNJbmFjdGl2ZV09XCJpc09wZW5cIlxuICAgICAgICAgIFtub3RpZmljYXRpb25Db3VudF09XCJub3RpZmljYXRpb25Db3VudFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5DaGF0KClcIlxuICAgICAgICA+PC92Zi1jaGF0Ym90LWZhYj5cblxuICAgICAgICA8c2VjdGlvblxuICAgICAgICAgIGNsYXNzPVwidmYtY29udGVudCB2Zi1jaGF0Ym90LW1vZGFsLWNvbnRhaW5lclwiXG4gICAgICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LW1vZGFsLWNvbnRhaW5lclxuICAgICAgICAgIFthdHRyLmRhdGEtdmYtY2hhdGJvdC1jb25maWddPVwibW9kYWxDb25maWdKc29uXCJcbiAgICAgICAgICBbY2xhc3MudmYtY2hhdGJvdC1tb2RhbC1jb250YWluZXItLWFjdGl2ZV09XCJpc09wZW5cIlxuICAgICAgICAgIFtjbGFzcy52Zi1jaGF0Ym90LW1vZGFsLWNvbnRhaW5lci0taW5hY3RpdmVdPVwiIWlzT3BlblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJpc09wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihjb25maWcudGl0bGUgfHwgJ0FJIEFzc2lzdGFudCcpICsgJyBjaGF0Ym90J1wiXG4gICAgICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1tb2RhbF9faGVhZGVyIHZmLXUtbWFyZ2luX19ib3R0b20tLTQwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX2hlYWRlci1sZWZ0XCI+XG4gICAgICAgICAgICAgIDx2Zi1jaGF0Ym90LXNlbGVjdG9yXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuc2VsZWN0b3JDb250ZXh0XCJcbiAgICAgICAgICAgICAgICBbY29udGV4dF09XCJjb25maWcuc2VsZWN0b3JDb250ZXh0XCJcbiAgICAgICAgICAgICAgPjwvdmYtY2hhdGJvdC1zZWxlY3Rvcj5cblxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWNvbmZpZy5zZWxlY3RvckNvbnRleHRcIiBjbGFzcz1cInZmLWNoYXRib3Qtc2VsZWN0b3JcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuaWNvbnM/Lm1haW5fbG9nb191cmxcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImNvbmZpZy5pY29ucz8ubWFpbl9sb2dvX3VybFwiXG4gICAgICAgICAgICAgICAgICAgIFthbHRdPVwiY29uZmlnLnRpdGxlIHx8ICdBSSBBc3Npc3RhbnQnXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1zZWxlY3Rvcl9fdGl0bGUtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZmLWNoYXRib3Qtc2VsZWN0b3JfX21haW4tdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbmZpZy50aXRsZSB8fCAnQUkgQXNzaXN0YW50JyB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX2hlYWRlci1yaWdodFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19taW5pbWl6ZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk1pbmltaXplIGNoYXRib3RcIlxuICAgICAgICAgICAgICAgIGRhdGEtdmYtanMtY2hhdGJvdC1tb2RhbC1taW5pbWl6ZVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZUNoYXQoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5pY29ucz8ubWluaW1pemVcIlxuICAgICAgICAgICAgICAgICAgW3NyY109XCJjb25maWcuaWNvbnM/Lm1pbmltaXplXCJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmYtY2hhdGJvdC1tb2RhbF9fY2xvc2VcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBjaGF0Ym90XCJcbiAgICAgICAgICAgICAgICBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWwtY2xvc2VcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VDaGF0KClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuaWNvbnM/LmNsb3NlXCJcbiAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY29uZmlnLmljb25zPy5jbG9zZVwiXG4gICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1tb2RhbCB8IHZmLXUtYmFja2dyb3VuZC1jb2xvci11aS0tZ3JleS0tbGlnaHRcIiBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmYtY2hhdGJvdC1tb2RhbF9fY29udGVudFwiIGRhdGEtdmYtanMtY2hhdGJvdC1tb2RhbC1jb250ZW50PlxuICAgICAgICAgICAgICA8dmYtY2hhdGJvdC13ZWxjb21lXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb25maWcuZmVhdHVyZXM/LmVuYWJsZV93ZWxjb21lXCJcbiAgICAgICAgICAgICAgICBbcWFEYXRhXT1cInFhRGF0YVwiXG4gICAgICAgICAgICAgICAgW3dlbGNvbWVfbG9nb109XCJjb25maWcud2VsY29tZV9sb2dvID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbd2VsY29tZV9sb2dvX3VybF09XCJjb25maWcuaWNvbnM/Lm1haW5fbG9nb191cmwgPz8gJydcIlxuICAgICAgICAgICAgICAgIFt3ZWxjb21lX2xvZ29fYWx0XT1cImNvbmZpZy53ZWxjb21lX2xvZ29fYWx0ID8/ICdBSSBBc3Npc3RhbnQnXCJcbiAgICAgICAgICAgICAgICBbd2VsY29tZV90aXRsZV09XCJjb25maWcudGl0bGUgPz8gJydcIlxuICAgICAgICAgICAgICAgIFt3ZWxjb21lX21lc3NhZ2VdPVwiY29uZmlnLndlbGNvbWVfbWVzc2FnZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgW3dlbGNvbWVfc3VnZ2VzdGlvbnNfdGl0bGVdPVwiY29uZmlnLndlbGNvbWVfc3VnZ2VzdGlvbnNfdGl0bGUgPz8gJydcIlxuICAgICAgICAgICAgICAgIFtlbmFibGVfd2VsY29tZV9zdWdnZXN0aW9uc109XCJjb25maWcuZmVhdHVyZXM/LmVuYWJsZV93ZWxjb21lX3N1Z2dlc3Rpb25zID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbd2VsY29tZV9tYXhfc3VnZ2VzdGlvbnNdPVwiY29uZmlnLndlbGNvbWVfbWF4X3N1Z2dlc3Rpb25zID8/IDRcIlxuICAgICAgICAgICAgICAgIFtxYV9kYXRhX3VybF09XCJjb25maWcuYXBpPy5xYV9kYXRhX3VybCA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgW2VuYWJsZV9xYV9kYXRhX2xvYWRpbmddPVwiY29uZmlnLmZlYXR1cmVzPy5lbmFibGVfcWFfZGF0YV9sb2FkaW5nID8/IHRydWVcIlxuICAgICAgICAgICAgICAgIFtlbmFibGVfcHJlZGVmaW5lZF9xYV09XCJjb25maWcuZmVhdHVyZXM/LmVuYWJsZV9wcmVkZWZpbmVkX3FhID8/IHRydWVcIlxuICAgICAgICAgICAgICAgIFtlbmFibGVfZmFsbGJhY2tfcmVzcG9uc2VzXT1cImNvbmZpZy5mZWF0dXJlcz8uZW5hYmxlX2ZhbGxiYWNrX3Jlc3BvbnNlcyA/PyB0cnVlXCJcbiAgICAgICAgICAgICAgPjwvdmYtY2hhdGJvdC13ZWxjb21lPlxuXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX21lc3NhZ2VzIHZmLXUtbWFyZ2luX19ib3R0b20tLTQwMFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ3ZmLWNoYXRib3QtbW9kYWxfX21lc3NhZ2VzLW5vLXNjcm9sbGJhcic6IGNvbmZpZy5iZWhhdmlvcj8uc2hvd19zY3JvbGxiYXIgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LW1vZGFsLW1lc3NhZ2VzXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvLXNjcm9sbF09XCJjb25maWcuYmVoYXZpb3I/LmF1dG9fc2Nyb2xsXCJcbiAgICAgICAgICAgICAgICByb2xlPVwicmVnaW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2hhdCBtZXNzYWdlc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dmYtY2hhdGJvdC1wcm9tcHRcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBtc2cgb2YgbWVzc2FnZXNcIlxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwibXNnLnR5cGUgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgW2F2YXRhcl09XCJtc2cuYXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgIFtjb250ZW50XT1cIm1zZy5jb250ZW50ID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgIFtzb3VyY2VzXT1cInNvdXJjZXNcIlxuICAgICAgICAgICAgICAgICAgW3Byb21wdHNdPVwicHJvbXB0c1wiXG4gICAgICAgICAgICAgICAgICBbYWxsb3dGZWVkYmFja109XCJjb25maWcuZmVhdHVyZXM/LmVuYWJsZV9mZWVkYmFjayA/PyB0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC92Zi1jaGF0Ym90LXByb21wdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmRpc2NsYWltZXIgJiYgY29uZmlnLmZlYXR1cmVzPy5lbmFibGVfZGlzY2xhaW1lclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19kaXNjbGFpbWVyXCJcbiAgICAgICAgICAgICAgICBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWwtZGlzY2xhaW1lclxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZmLWJhbm5lciB2Zi1iYW5uZXItLWFsZXJ0IHZmLWJhbm5lci0taW5mb1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZmLWJhbm5lcl9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInZmLWJhbm5lcl9fdGV4dFwiIFtpbm5lckhUTUxdPVwiY29uZmlnLmRpc2NsYWltZXJcIj48L3A+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiY2xvc2Ugbm90aWZpY2F0aW9uIGJhbm5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2Zi1idXR0b24gdmYtYnV0dG9uLS1pY29uIHZmLWJ1dHRvbi0tZGlzbWlzcyB8IHZmLWJhbm5lcl9fYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29uZmlnLm9uRGlzbWlzc0Rpc2NsYWltZXI/LigpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aXRsZT5kaXNtaXNzIGJhbm5lcjwvdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0LjMsMTIuMTc5YS4yNS4yNSwwLDAsMSwwLS4zNTRsOS4yNjMtOS4yNjJBMS41LjUsMCwwLDAsMjEuNDM5LjQ0MkwxMi4xNzcsOS43YS4yNS4yNSwwLDAsMS0uMzU0LDBMMi41NjEuNDQyQTEuNSwxLjUsMCwwLDAsLjQzOSwyLjU2M0w5LjcsMTEuODI1YS4yNS4yNSwwLDAsMSwwLC4zNTRMLjQzOSwyMS40NDJhMS41LDEuNSwwLDAsMCwyLjEyMiwyLjEyMUwxMS44MjMsMTQuM2EuMjUuMjUsMCwwLDEsLjM1NCwwbDkuMjYyLDkuMjYzYTEuNSwxLjUsMCwwLDAsMi4xMjItMi4xMjFaXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX2lucHV0LWNvbnRhaW5lclwiIHJvbGU9XCJyZWdpb25cIiBhcmlhLWxhYmVsPVwiQ2hhdCBtZXNzYWdlIGlucHV0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19pbnB1dC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidmYtdS1zci1vbmx5XCIgaWQ9XCJ2Zi1jaGF0Ym90LW1vZGFsLWlucHV0LWxhYmVsXCIgZm9yPVwidmYtY2hhdGJvdC1tb2RhbC1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgQXNrIG1lXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgIGlkPVwidmYtY2hhdGJvdC1tb2RhbC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWwtaW5wdXRcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cInZmLWNoYXRib3QtbW9kYWwtaW5wdXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19pbnB1dCB2Zi1mb3JtX190ZXh0YXJlYSB2Zi11LXBhZGRpbmdfX2xlZnQtLTQwMFwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLmlucHV0X3BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgIHJvd3M9XCIxXCJcbiAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZmLWNoYXRib3QtbW9kYWxfX3NlbmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZW5kIG1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgZGF0YS12Zi1qcy1jaGF0Ym90LW1vZGFsLXNlbmRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjb25maWcuaWNvbnM/LnNlbmRfYnV0dG9uXCIgYWx0PVwiU2VuZFwiIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5mb290bm90ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2Zi1jaGF0Ym90LW1vZGFsX19mb290bm90ZSB2Zi11LW1hcmdpbl9fdG9wLS0yMDAgdmYtdS1tYXJnaW5fX2JvdHRvbS0tMjAwXCJcbiAgICAgICAgICAgICAgICBkYXRhLXZmLWpzLWNoYXRib3QtbW9kYWwtZm9vdG5vdGVcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImNvbmZpZy5mb290bm90ZVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8dmYtY2hhdGJvdC1kaWFsb2dcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImRpYWxvZ1RpdGxlXCJcbiAgICAgICAgICAgICAgW21lc3NhZ2VdPVwiZGlhbG9nTWVzc2FnZVwiXG4gICAgICAgICAgICAgIFtjYW5jZWxMYWJlbF09XCJkaWFsb2dDYW5jZWxMYWJlbFwiXG4gICAgICAgICAgICAgIFtjb25maXJtTGFiZWxdPVwiZGlhbG9nQ29uZmlybUxhYmVsXCJcbiAgICAgICAgICAgID48L3ZmLWNoYXRib3QtZGlhbG9nPlxuXG4gICAgICAgICAgICA8dGVtcGxhdGUgaWQ9XCJ1c2VyLW1lc3NhZ2UtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIGlkPVwiYXNzaXN0YW50LW1lc3NhZ2UtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIGlkPVwic2luZ2xlLWFjdGlvbi1wcm9tcHQtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIGlkPVwibG9hZGluZy1pbmRpY2F0b3ItdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIGlkPVwiYWN0aW9uLXByb21wdHMtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIGlkPVwiZmVlZGJhY2stcG9zaXRpdmUtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgICAgICAgICAgPHRlbXBsYXRlIGlkPVwiZmVlZGJhY2stbmVnYXRpdmUtdGVtcGxhdGVcIj48L3RlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgVmZDaGF0Ym90QW5ndWxhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb25maWc6IGFueSA9IHsgdHlwZTogJ21vZGFsJyB9O1xuICBASW5wdXQoKSBxYURhdGE6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBzb3VyY2VzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBwcm9tcHRzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBub3RpZmljYXRpb25Db3VudCA9IDA7XG5cbiAgaXNPcGVuID0gZmFsc2U7XG4gIGRpYWxvZ1RpdGxlID0gJ0Nsb3NlIGNoYXQgYW5kIGRlbGV0ZSBjb252ZXJzYXRpb24/JztcbiAgZGlhbG9nTWVzc2FnZSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2xvc2UgdGhlIGNoYXQ/IDxicj5Zb3VyIGN1cnJlbnQgY29udmVyc2F0aW9uIGhpc3Rvcnkgd2lsbCBiZSBwZXJtYW5lbnRseSBkZWxldGVkLic7XG4gIGRpYWxvZ0NhbmNlbExhYmVsID0gJ0tlZXAgY2hhdCBvcGVuJztcbiAgZGlhbG9nQ29uZmlybUxhYmVsID0gJ0Nsb3NlIGFuZCBkZWxldGUnO1xuXG4gIHByaXZhdGUgbG9hZGVkU2NyaXB0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgKSB7fVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5jb25maWc/LnR5cGUgIT09ICdtb2RhbCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmxvYWRNb2RhbFNjcmlwdHMoKTtcblxuICAgIGNvbnN0IGluaXRWRkNoYXRib3QgPSAod2luZG93IGFzIGFueSkuaW5pdFZGQ2hhdGJvdDtcbiAgICBpZiAodHlwZW9mIGluaXRWRkNoYXRib3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluaXRWRkNoYXRib3QodGhpcy5jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1vZGFsU2NyaXB0cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtb2R1bGVTY3JpcHRzID0gW1xuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC1mYWIvdmYtY2hhdGJvdC1mYWIuanMnLFxuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC1kaWFsb2cvdmYtY2hhdGJvdC1kaWFsb2cuanMnLFxuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC1mZWVkYmFjay92Zi1jaGF0Ym90LWZlZWRiYWNrLmpzJyxcbiAgICAgICcvYXNzZXRzL3ZmLWNoYXRib3Qtc2VsZWN0b3IvdmYtY2hhdGJvdC1zZWxlY3Rvci5qcycsXG4gICAgICAnL2Fzc2V0cy92Zi1jaGF0Ym90LXNvdXJjZXMvdmYtY2hhdGJvdC1zb3VyY2VzLmpzJyxcbiAgICAgICcvYXNzZXRzL3ZmLWNoYXRib3Qtd2VsY29tZS92Zi1jaGF0Ym90LXdlbGNvbWUuanMnXG4gICAgXTtcblxuICAgIGNvbnN0IG1vZHVsZVNjcmlwdHNXaXRoRGVwZW5kZW5jaWVzID0gW1xuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC1zdGFuZGFsb25lL3ZmLWNoYXRib3Qtc3RhbmRhbG9uZS5qcycsXG4gICAgICAnL2Fzc2V0cy92Zi1jaGF0Ym90LW1vZGFsL3ZmLWNoYXRib3QtbW9kYWwuanMnLFxuICAgICAgJy9hc3NldHMvdmYtY2hhdGJvdC92Zi1jaGF0Ym90LmpzJ1xuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IHNjcmlwdFNyYyBvZiBtb2R1bGVTY3JpcHRzKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWRTaW5nbGVTY3JpcHQoc2NyaXB0U3JjKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHNjcmlwdFNyYyBvZiBtb2R1bGVTY3JpcHRzV2l0aERlcGVuZGVuY2llcykge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkU2luZ2xlU2NyaXB0KHNjcmlwdFNyYyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2luZ2xlU2NyaXB0KHNyYzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMubG9hZGVkU2NyaXB0cy5oYXMoc3JjKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0lnbm9yZTogdHJ1ZSAqLyBzcmMpO1xuICAgICAgdGhpcy5sb2FkZWRTY3JpcHRzLmFkZChzcmMpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIHRoZSBzY3JpcHQgdGFnIGxvYWRlci5cbiAgICB9XG5cbiAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmdTY3JpcHQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmM9XCIke3NyY31cIl1gKTtcbiAgICAgIGlmIChleGlzdGluZ1NjcmlwdCkge1xuICAgICAgICB0aGlzLmxvYWRlZFNjcmlwdHMuYWRkKHNyYyk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJztcbiAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZWRTY3JpcHRzLmFkZChzcmMpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGVkU2NyaXB0cy5hZGQoYCR7c3JjfV9mYWlsZWRgKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIHNjcmlwdCk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuQ2hhdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gIH1cblxuICBjbG9zZUNoYXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIGdldCBtb2RhbENvbmZpZ0pzb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWcgfHwge30pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.module.mjs b/components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.module.mjs new file mode 100644 index 0000000000..d831fe3487 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/esm2022/vf-chatbot.angular.module.mjs @@ -0,0 +1,55 @@ +import { NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { VfChatbotAngularComponent } from './vf-chatbot.angular.component'; +import { VfChatbotFabAngularModule } from 'vf-chatbot-fab.angular'; +// import { VfChatbotStandaloneAngularModule } from 'vf-chatbot-standalone.angular'; +import { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular'; +import { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular'; +import { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular'; +import { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular'; +import * as i0 from "@angular/core"; +export class VfChatbotAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, declarations: [VfChatbotAngularComponent], imports: [CommonModule, + FormsModule, + VfChatbotFabAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotDialogAngularModule], exports: [VfChatbotAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotFabAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotDialogAngularModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotAngularComponent + ], + imports: [ + CommonModule, + FormsModule, + VfChatbotFabAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotDialogAngularModule, + // VfChatbotStandaloneAngularModule + ], + exports: [ + VfChatbotAngularComponent + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA, + NO_ERRORS_SCHEMA + ] + }] + }] }); +export * from './vf-chatbot.angular.component'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmYtY2hhdGJvdC5hbmd1bGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ZmLWNoYXRib3QuYW5ndWxhci9zcmMvbGliL3ZmLWNoYXRib3QuYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLG9GQUFvRjtBQUNwRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUF3QnpFLE1BQU0sT0FBTyxzQkFBc0I7K0dBQXRCLHNCQUFzQjtnSEFBdEIsc0JBQXNCLGlCQXBCL0IseUJBQXlCLGFBR3pCLFlBQVk7WUFDWixXQUFXO1lBQ1gseUJBQXlCO1lBQ3pCLDhCQUE4QjtZQUM5Qiw2QkFBNkI7WUFDN0IsNEJBQTRCO1lBQzVCLDRCQUE0QixhQUk1Qix5QkFBeUI7Z0hBT2hCLHNCQUFzQixZQWpCL0IsWUFBWTtZQUNaLFdBQVc7WUFDWCx5QkFBeUI7WUFDekIsOEJBQThCO1lBQzlCLDZCQUE2QjtZQUM3Qiw0QkFBNEI7WUFDNUIsNEJBQTRCOzs0RkFXbkIsc0JBQXNCO2tCQXRCbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLHlCQUF5Qjt3QkFDekIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLDRCQUE0Qjt3QkFDNUIsNEJBQTRCO3dCQUM1QixtQ0FBbUM7cUJBQ3BDO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCLGdCQUFnQjtxQkFDakI7aUJBQ0Y7O0FBR0QsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWZkNoYXRib3RBbmd1bGFyQ29tcG9uZW50IH0gZnJvbSAnLi92Zi1jaGF0Ym90LmFuZ3VsYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFZmQ2hhdGJvdEZhYkFuZ3VsYXJNb2R1bGUgfSBmcm9tICd2Zi1jaGF0Ym90LWZhYi5hbmd1bGFyJztcbi8vIGltcG9ydCB7IFZmQ2hhdGJvdFN0YW5kYWxvbmVBbmd1bGFyTW9kdWxlIH0gZnJvbSAndmYtY2hhdGJvdC1zdGFuZGFsb25lLmFuZ3VsYXInO1xuaW1wb3J0IHsgVmZDaGF0Ym90U2VsZWN0b3JBbmd1bGFyTW9kdWxlIH0gZnJvbSAndmYtY2hhdGJvdC1zZWxlY3Rvci5hbmd1bGFyJztcbmltcG9ydCB7IFZmQ2hhdGJvdFdlbGNvbWVBbmd1bGFyTW9kdWxlIH0gZnJvbSAndmYtY2hhdGJvdC13ZWxjb21lLmFuZ3VsYXInO1xuaW1wb3J0IHsgVmZDaGF0Ym90UHJvbXB0QW5ndWxhck1vZHVsZSB9IGZyb20gJ3ZmLWNoYXRib3QtcHJvbXB0LmFuZ3VsYXInO1xuaW1wb3J0IHsgVmZDaGF0Ym90RGlhbG9nQW5ndWxhck1vZHVsZSB9IGZyb20gJ3ZmLWNoYXRib3QtZGlhbG9nLmFuZ3VsYXInO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBWZkNoYXRib3RBbmd1bGFyQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVmZDaGF0Ym90RmFiQW5ndWxhck1vZHVsZSxcbiAgICBWZkNoYXRib3RTZWxlY3RvckFuZ3VsYXJNb2R1bGUsXG4gICAgVmZDaGF0Ym90V2VsY29tZUFuZ3VsYXJNb2R1bGUsXG4gICAgVmZDaGF0Ym90UHJvbXB0QW5ndWxhck1vZHVsZSxcbiAgICBWZkNoYXRib3REaWFsb2dBbmd1bGFyTW9kdWxlLFxuICAgIC8vIFZmQ2hhdGJvdFN0YW5kYWxvbmVBbmd1bGFyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBWZkNoYXRib3RBbmd1bGFyQ29tcG9uZW50XG4gIF0sXG4gIHNjaGVtYXM6IFtcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIE5PX0VSUk9SU19TQ0hFTUFcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBWZkNoYXRib3RBbmd1bGFyTW9kdWxlIHsgfVxuXG5leHBvcnQgKiBmcm9tICcuL3ZmLWNoYXRib3QuYW5ndWxhci5jb21wb25lbnQnO1xuIl19 \ No newline at end of file diff --git a/components/vf-chatbot/vf-chatbot.angular/esm2022/visual-framework-vf-chatbot.angular.mjs b/components/vf-chatbot/vf-chatbot.angular/esm2022/visual-framework-vf-chatbot.angular.mjs new file mode 100644 index 0000000000..3fd97afca8 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/esm2022/visual-framework-vf-chatbot.angular.mjs @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +export * from './vf-chatbot.angular.module'; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWZyYW1ld29yay12Zi1jaGF0Ym90LmFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy92Zi1jaGF0Ym90LmFuZ3VsYXIvc3JjL2xpYi92aXN1YWwtZnJhbWV3b3JrLXZmLWNoYXRib3QuYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vdmYtY2hhdGJvdC5hbmd1bGFyLm1vZHVsZSc7XG4iXX0= \ No newline at end of file diff --git a/components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs b/components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs new file mode 100644 index 0000000000..19a9132355 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs @@ -0,0 +1,571 @@ +import * as i0 from '@angular/core'; +import { Component, Inject, Input, NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core'; +import * as i1 from '@angular/common'; +import { DOCUMENT, CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import * as i2 from 'vf-chatbot-fab.angular'; +import { VfChatbotFabAngularModule } from 'vf-chatbot-fab.angular'; +import * as i3 from 'vf-chatbot-selector.angular'; +import { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular'; +import * as i4 from 'vf-chatbot-welcome.angular'; +import { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular'; +import * as i5 from 'vf-chatbot-prompt.angular'; +import { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular'; +import * as i6 from 'vf-chatbot-dialog.angular'; +import { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular'; + +class VfChatbotAngularComponent { + constructor(renderer, elementRef, document) { + this.renderer = renderer; + this.elementRef = elementRef; + this.document = document; + this.config = { type: 'modal' }; + this.qaData = []; + this.messages = []; + this.sources = []; + this.prompts = []; + this.notificationCount = 0; + this.isOpen = false; + this.dialogTitle = 'Close chat and delete conversation?'; + this.dialogMessage = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.'; + this.dialogCancelLabel = 'Keep chat open'; + this.dialogConfirmLabel = 'Close and delete'; + this.loadedScripts = new Set(); + } + async ngAfterViewInit() { + if (this.config?.type !== 'modal') { + return; + } + await this.loadModalScripts(); + const initVFChatbot = window.initVFChatbot; + if (typeof initVFChatbot === 'function') { + initVFChatbot(this.config); + } + } + async loadModalScripts() { + const moduleScripts = [ + '/assets/vf-chatbot-fab/vf-chatbot-fab.js', + '/assets/vf-chatbot-dialog/vf-chatbot-dialog.js', + '/assets/vf-chatbot-feedback/vf-chatbot-feedback.js', + '/assets/vf-chatbot-selector/vf-chatbot-selector.js', + '/assets/vf-chatbot-sources/vf-chatbot-sources.js', + '/assets/vf-chatbot-welcome/vf-chatbot-welcome.js' + ]; + const moduleScriptsWithDependencies = [ + '/assets/vf-chatbot-standalone/vf-chatbot-standalone.js', + '/assets/vf-chatbot-modal/vf-chatbot-modal.js', + '/assets/vf-chatbot/vf-chatbot.js' + ]; + for (const scriptSrc of moduleScripts) { + await this.loadSingleScript(scriptSrc); + } + for (const scriptSrc of moduleScriptsWithDependencies) { + await this.loadSingleScript(scriptSrc); + } + } + async loadSingleScript(src) { + if (this.loadedScripts.has(src)) { + return; + } + try { + await import(/* webpackIgnore: true */ src); + this.loadedScripts.add(src); + return; + } + catch { + // Fall through to the script tag loader. + } + await new Promise((resolve) => { + const existingScript = this.document.querySelector(`script[src="${src}"]`); + if (existingScript) { + this.loadedScripts.add(src); + resolve(); + return; + } + const script = this.renderer.createElement('script'); + script.type = 'module'; + script.src = src; + script.async = true; + script.onload = () => { + this.loadedScripts.add(src); + resolve(); + }; + script.onerror = () => { + this.loadedScripts.add(`${src}_failed`); + resolve(); + }; + this.renderer.appendChild(this.document.head, script); + }); + } + openChat() { + this.isOpen = true; + } + closeChat() { + this.isOpen = false; + } + get modalConfigJson() { + return JSON.stringify(this.config || {}); + } + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); } + static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VfChatbotAngularComponent, selector: "vf-chatbot", inputs: { config: "config", qaData: "qaData", messages: "messages", sources: "sources", prompts: "prompts", notificationCount: "notificationCount" }, ngImport: i0, template: ` + + + +
+ + + +
+
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.VfChatbotFabAngularComponent, selector: "vf-chatbot-fab", inputs: ["notificationCount", "isInactive"] }, { kind: "component", type: i3.VfChatbotSelectorAngularComponent, selector: "vf-chatbot-selector", inputs: ["chatbotRoutes", "context"] }, { kind: "component", type: i4.VfChatbotWelcomeAngularComponent, selector: "vf-chatbot-welcome", inputs: ["qaData", "welcome_logo", "welcome_logo_url", "welcome_logo_alt", "welcome_title", "welcome_message", "welcome_suggestions_title", "enable_welcome_suggestions", "welcome_max_suggestions", "enable_qa_data_loading", "enable_predefined_qa", "enable_fallback_responses", "qa_data_url"] }, { kind: "component", type: i5.VfChatbotPromptAngularComponent, selector: "vf-chatbot-prompt", inputs: ["type", "isLoading", "avatar", "content", "sources", "prompts", "allowFeedback"] }, { kind: "component", type: i6.VfChatbotDialogAngularComponent, selector: "vf-chatbot-dialog", inputs: ["title", "message", "cancelLabel", "confirmLabel"] }] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularComponent, decorators: [{ + type: Component, + args: [{ + selector: 'vf-chatbot', + template: ` + + + +
+ + + +
+
+ `, + }] + }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: Document, decorators: [{ + type: Inject, + args: [DOCUMENT] + }] }], propDecorators: { config: [{ + type: Input + }], qaData: [{ + type: Input + }], messages: [{ + type: Input + }], sources: [{ + type: Input + }], prompts: [{ + type: Input + }], notificationCount: [{ + type: Input + }] } }); + +class VfChatbotAngularModule { + static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } + static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, declarations: [VfChatbotAngularComponent], imports: [CommonModule, + FormsModule, + VfChatbotFabAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotDialogAngularModule], exports: [VfChatbotAngularComponent] }); } + static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, imports: [CommonModule, + FormsModule, + VfChatbotFabAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotDialogAngularModule] }); } +} +i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VfChatbotAngularModule, decorators: [{ + type: NgModule, + args: [{ + declarations: [ + VfChatbotAngularComponent + ], + imports: [ + CommonModule, + FormsModule, + VfChatbotFabAngularModule, + VfChatbotSelectorAngularModule, + VfChatbotWelcomeAngularModule, + VfChatbotPromptAngularModule, + VfChatbotDialogAngularModule, + // VfChatbotStandaloneAngularModule + ], + exports: [ + VfChatbotAngularComponent + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA, + NO_ERRORS_SCHEMA + ] + }] + }] }); + +/** + * Generated bundle index. Do not edit. + */ + +export { VfChatbotAngularComponent, VfChatbotAngularModule }; +//# sourceMappingURL=visual-framework-vf-chatbot.angular.mjs.map diff --git a/components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs.map b/components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs.map new file mode 100644 index 0000000000..c0f537a6f7 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/fesm2022/visual-framework-vf-chatbot.angular.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"visual-framework-vf-chatbot.angular.mjs","sources":["../../../projects/vf-chatbot.angular/src/lib/vf-chatbot.angular.component.ts","../../../projects/vf-chatbot.angular/src/lib/vf-chatbot.angular.module.ts","../../../projects/vf-chatbot.angular/src/lib/visual-framework-vf-chatbot.angular.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef, Inject, Input, Renderer2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nexport type VfChatbotMode = 'modal' | 'standalone';\n\nexport interface VfChatbotConfig {\n type?: VfChatbotMode;\n title?: string;\n welcome_logo?: boolean;\n welcome_message?: string;\n welcome_logo_alt?: string;\n welcome_suggestions_title?: string;\n input_placeholder?: string;\n welcome_max_suggestions?: number;\n disclaimer?: string;\n footnote?: string;\n icons?: {\n assistant_avatar?: string;\n user_avatar?: string;\n send_button?: string;\n minimize?: string;\n close?: string;\n main_logo_url?: string;\n };\n selectorContext?: unknown;\n features?: {\n enable_welcome?: boolean;\n enable_welcome_suggestions?: boolean;\n enable_qa_data_loading?: boolean;\n enable_predefined_qa?: boolean;\n enable_fallback_responses?: boolean;\n enable_feedback?: boolean;\n enable_disclaimer?: boolean;\n enable_typing_indicator?: boolean;\n };\n behavior?: {\n show_scrollbar?: boolean;\n auto_scroll?: boolean;\n };\n api?: {\n qa_data_url?: string;\n };\n onDismissDisclaimer?: () => void;\n}\n\n@Component({\n selector: 'vf-chatbot',\n template: `\n \n \n\n
\n \n\n \n
\n
\n \n\n
\n
\n \n
\n \n {{ config.title || 'AI Assistant' }}\n \n
\n
\n
\n
\n\n
\n \n \n \n\n \n \n \n
\n
\n\n
\n
\n \n\n \n \n
\n\n \n
\n
\n

\n \n \n dismiss banner\n \n \n \n
\n
\n
\n
\n\n
\n
\n \n \n \n \"Send\"\n \n
\n\n
\n \n\n \n\n \n \n \n \n \n \n \n \n \n \n
\n `,\n})\nexport class VfChatbotAngularComponent implements AfterViewInit {\n @Input() config: any = { type: 'modal' };\n @Input() qaData: any[] = [];\n @Input() messages: any[] = [];\n @Input() sources: any[] = [];\n @Input() prompts: any[] = [];\n @Input() notificationCount = 0;\n\n isOpen = false;\n dialogTitle = 'Close chat and delete conversation?';\n dialogMessage = 'Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.';\n dialogCancelLabel = 'Keep chat open';\n dialogConfirmLabel = 'Close and delete';\n\n private loadedScripts = new Set();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n @Inject(DOCUMENT) private document: Document\n ) {}\n\n async ngAfterViewInit(): Promise {\n if (this.config?.type !== 'modal') {\n return;\n }\n\n await this.loadModalScripts();\n\n const initVFChatbot = (window as any).initVFChatbot;\n if (typeof initVFChatbot === 'function') {\n initVFChatbot(this.config);\n }\n }\n\n private async loadModalScripts(): Promise {\n const moduleScripts = [\n '/assets/vf-chatbot-fab/vf-chatbot-fab.js',\n '/assets/vf-chatbot-dialog/vf-chatbot-dialog.js',\n '/assets/vf-chatbot-feedback/vf-chatbot-feedback.js',\n '/assets/vf-chatbot-selector/vf-chatbot-selector.js',\n '/assets/vf-chatbot-sources/vf-chatbot-sources.js',\n '/assets/vf-chatbot-welcome/vf-chatbot-welcome.js'\n ];\n\n const moduleScriptsWithDependencies = [\n '/assets/vf-chatbot-standalone/vf-chatbot-standalone.js',\n '/assets/vf-chatbot-modal/vf-chatbot-modal.js',\n '/assets/vf-chatbot/vf-chatbot.js'\n ];\n\n for (const scriptSrc of moduleScripts) {\n await this.loadSingleScript(scriptSrc);\n }\n\n for (const scriptSrc of moduleScriptsWithDependencies) {\n await this.loadSingleScript(scriptSrc);\n }\n }\n\n private async loadSingleScript(src: string): Promise {\n if (this.loadedScripts.has(src)) {\n return;\n }\n\n try {\n await import(/* webpackIgnore: true */ src);\n this.loadedScripts.add(src);\n return;\n } catch {\n // Fall through to the script tag loader.\n }\n\n await new Promise((resolve) => {\n const existingScript = this.document.querySelector(`script[src=\"${src}\"]`);\n if (existingScript) {\n this.loadedScripts.add(src);\n resolve();\n return;\n }\n\n const script = this.renderer.createElement('script');\n script.type = 'module';\n script.src = src;\n script.async = true;\n script.onload = () => {\n this.loadedScripts.add(src);\n resolve();\n };\n script.onerror = () => {\n this.loadedScripts.add(`${src}_failed`);\n resolve();\n };\n\n this.renderer.appendChild(this.document.head, script);\n });\n }\n\n openChat(): void {\n this.isOpen = true;\n }\n\n closeChat(): void {\n this.isOpen = false;\n }\n\n get modalConfigJson(): string {\n return JSON.stringify(this.config || {});\n }\n}\n","import { NgModule, NO_ERRORS_SCHEMA, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { VfChatbotAngularComponent } from './vf-chatbot.angular.component';\nimport { VfChatbotFabAngularModule } from 'vf-chatbot-fab.angular';\n// import { VfChatbotStandaloneAngularModule } from 'vf-chatbot-standalone.angular';\nimport { VfChatbotSelectorAngularModule } from 'vf-chatbot-selector.angular';\nimport { VfChatbotWelcomeAngularModule } from 'vf-chatbot-welcome.angular';\nimport { VfChatbotPromptAngularModule } from 'vf-chatbot-prompt.angular';\nimport { VfChatbotDialogAngularModule } from 'vf-chatbot-dialog.angular';\n\n@NgModule({\n declarations: [\n VfChatbotAngularComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n VfChatbotFabAngularModule,\n VfChatbotSelectorAngularModule,\n VfChatbotWelcomeAngularModule,\n VfChatbotPromptAngularModule,\n VfChatbotDialogAngularModule,\n // VfChatbotStandaloneAngularModule\n ],\n exports: [\n VfChatbotAngularComponent\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA\n ]\n})\nexport class VfChatbotAngularModule { }\n\nexport * from './vf-chatbot.angular.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './vf-chatbot.angular.module';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/components/vf-chatbot/vf-chatbot.angular/index.d.ts b/components/vf-chatbot/vf-chatbot.angular/index.d.ts new file mode 100644 index 0000000000..aedb3ca674 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/index.d.ts @@ -0,0 +1,5 @@ +/** + * Generated bundle index. Do not edit. + */ +/// +export * from './vf-chatbot.angular.module'; diff --git a/components/vf-chatbot/vf-chatbot.angular/package.json b/components/vf-chatbot/vf-chatbot.angular/package.json new file mode 100644 index 0000000000..43b1b9f9e6 --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/package.json @@ -0,0 +1,25 @@ +{ + "name": "@visual-framework/vf-chatbot.angular", + "version": "0.0.1", + "peerDependencies": { + "@angular/common": "^19.2.0", + "@angular/core": "^19.2.0" + }, + "dependencies": { + "tslib": "^2.3.0" + }, + "sideEffects": false, + "module": "fesm2022/visual-framework-vf-chatbot.angular.mjs", + "typings": "index.d.ts", + "exports": { + "./package.json": { + "default": "./package.json" + }, + ".": { + "types": "./index.d.ts", + "esm2022": "./esm2022/visual-framework-vf-chatbot.angular.mjs", + "esm": "./esm2022/visual-framework-vf-chatbot.angular.mjs", + "default": "./fesm2022/visual-framework-vf-chatbot.angular.mjs" + } + } +} \ No newline at end of file diff --git a/components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.component.d.ts b/components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.component.d.ts new file mode 100644 index 0000000000..619b6b887e --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.component.d.ts @@ -0,0 +1,68 @@ +import { AfterViewInit, ElementRef, Renderer2 } from '@angular/core'; +import * as i0 from "@angular/core"; +export type VfChatbotMode = 'modal' | 'standalone'; +export interface VfChatbotConfig { + type?: VfChatbotMode; + title?: string; + welcome_logo?: boolean; + welcome_message?: string; + welcome_logo_alt?: string; + welcome_suggestions_title?: string; + input_placeholder?: string; + welcome_max_suggestions?: number; + disclaimer?: string; + footnote?: string; + icons?: { + assistant_avatar?: string; + user_avatar?: string; + send_button?: string; + minimize?: string; + close?: string; + main_logo_url?: string; + }; + selectorContext?: unknown; + features?: { + enable_welcome?: boolean; + enable_welcome_suggestions?: boolean; + enable_qa_data_loading?: boolean; + enable_predefined_qa?: boolean; + enable_fallback_responses?: boolean; + enable_feedback?: boolean; + enable_disclaimer?: boolean; + enable_typing_indicator?: boolean; + }; + behavior?: { + show_scrollbar?: boolean; + auto_scroll?: boolean; + }; + api?: { + qa_data_url?: string; + }; + onDismissDisclaimer?: () => void; +} +export declare class VfChatbotAngularComponent implements AfterViewInit { + private renderer; + private elementRef; + private document; + config: any; + qaData: any[]; + messages: any[]; + sources: any[]; + prompts: any[]; + notificationCount: number; + isOpen: boolean; + dialogTitle: string; + dialogMessage: string; + dialogCancelLabel: string; + dialogConfirmLabel: string; + private loadedScripts; + constructor(renderer: Renderer2, elementRef: ElementRef, document: Document); + ngAfterViewInit(): Promise; + private loadModalScripts; + private loadSingleScript; + openChat(): void; + closeChat(): void; + get modalConfigJson(): string; + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵcmp: i0.ɵɵComponentDeclaration; +} diff --git a/components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.module.d.ts b/components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.module.d.ts new file mode 100644 index 0000000000..e3120c256f --- /dev/null +++ b/components/vf-chatbot/vf-chatbot.angular/vf-chatbot.angular.module.d.ts @@ -0,0 +1,15 @@ +import * as i0 from "@angular/core"; +import * as i1 from "./vf-chatbot.angular.component"; +import * as i2 from "@angular/common"; +import * as i3 from "@angular/forms"; +import * as i4 from "vf-chatbot-fab.angular"; +import * as i5 from "vf-chatbot-selector.angular"; +import * as i6 from "vf-chatbot-welcome.angular"; +import * as i7 from "vf-chatbot-prompt.angular"; +import * as i8 from "vf-chatbot-dialog.angular"; +export declare class VfChatbotAngularModule { + static ɵfac: i0.ɵɵFactoryDeclaration; + static ɵmod: i0.ɵɵNgModuleDeclaration; + static ɵinj: i0.ɵɵInjectorDeclaration; +} +export * from './vf-chatbot.angular.component'; diff --git a/components/vf-chatbot/vf-chatbot.config.yml b/components/vf-chatbot/vf-chatbot.config.yml index 3c8040d11d..2e43c06a8f 100644 --- a/components/vf-chatbot/vf-chatbot.config.yml +++ b/components/vf-chatbot/vf-chatbot.config.yml @@ -1,6 +1,6 @@ title: Chatbot label: Chatbot -status: beta +status: live preview: '@preview' context: component-type: container @@ -56,8 +56,8 @@ variants: typing_delay: 800 show_scrollbar: false - selectorContext: - chatbotRoutes: + selectorContext: + chatbotRoutes: multiSelect: true maxMultiSelect: 3 showSearch: true @@ -69,7 +69,7 @@ variants: title: "Services" selector_logo_url: "../../assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg" selector_logo_title: "AI Assistant" - + # Custom Event Handlers (function names) handlers: on_message_send: "handleMessageSend" @@ -134,8 +134,8 @@ variants: typing_delay: 800 show_scrollbar: false - selectorContext: - chatbotRoutes: + selectorContext: + chatbotRoutes: multiSelect: true maxMultiSelect: 3 showSearch: true @@ -147,7 +147,7 @@ variants: title: "Services" selector_logo_url: "../../assets/vf-chatbot/assets/vf-chatbot--icon-24x24-dark-green.svg" selector_logo_title: "AI Assistant" - + # Custom Event Handlers (function names) handlers: on_message_send: "handleMessageSend" @@ -161,4 +161,4 @@ variants: # Legacy support disclaimer: 'Disclaimer: This chatbot is designed to assist you with general information and basic inquiries. See our disclaimer notes.' footnote: 'Review AI generated content for accuracy. Leave feedback.' - react: \ No newline at end of file + react: diff --git a/components/vf-chatbot/vf-chatbot.js b/components/vf-chatbot/vf-chatbot.js index 14d5565b84..59f2e03d2d 100644 --- a/components/vf-chatbot/vf-chatbot.js +++ b/components/vf-chatbot/vf-chatbot.js @@ -5,16 +5,18 @@ import { initVFChatbotFab } from "../vf-chatbot-fab/vf-chatbot-fab.js"; import { initVFChatbotModal } from "../vf-chatbot-modal/vf-chatbot-modal.js"; import { initVFChatbotStandalone } from "../vf-chatbot-standalone/vf-chatbot-standalone.js"; +import { createStorageAdapter } from "./vf-chatbot-storage.js"; // Accessibility helpers let previouslyFocusedElement = null; let focusTrapHandler = null; let escapeHandler = null; // vf-chatbot -function VFChatbot(element) { +function VFChatbot(element, config = {}) { this.el = element; this.fab = this.el.querySelector("[data-vf-js-chatbot-fab]"); this.modal = this.el.querySelector("[data-vf-js-chatbot-modal-container]"); + this.storage = createStorageAdapter(config); this.init(); } @@ -143,7 +145,7 @@ VFChatbot.prototype = { }); } - sessionStorage.setItem("chatbotModalMinimized", "false"); + this.storage.setItem("chatbotModalMinimized", "false"); }, closeChat: function() { this.fab.classList.remove("vf-chatbot-fab--inactive"); @@ -157,7 +159,7 @@ VFChatbot.prototype = { previouslyFocusedElement.focus(); } - sessionStorage.setItem("chatbotModalMinimized", "true"); + this.storage.setItem("chatbotModalMinimized", "true"); } }; @@ -229,7 +231,7 @@ function initVFChatbot(config = {}) { "--vf-chatbot-modal-right-margin", `${chatbotBottomMargin[1]}px` ); - new VFChatbot(element); + new VFChatbot(element, config); initVFChatbotFab(); modalInstances = modalInstances.concat(initVFChatbotModal(config)); });